blob: f896abe4ff2e4688f760f792480cc755952b4716 [file] [log] [blame]
#!/bin/sh
wan_port=$(cat /etc/config/wanport)
lan_port=$(cat /etc/config/lanport)
mgmt_vlan=$(cat /etc/config/mgmtvlan)
case $1 in
start)
hostname GFiberONU
echo "WAN port: $wan_port"
echo "LAN port: $lan_port"
echo "MGMT VLAN: $mgmt_vlan"
echo
echo "Disabling accepting RAs on pon0"
sysctl -w net.ipv6.conf.pon0.accept_ra=0
sysctl -w net.ipv6.conf.pon0.accept_ra_defrtr=0
sysctl -w net.ipv6.conf.pon0.accept_ra_pinfo=0
echo "Starting WAN."
# Configure dhclient with the right hostname etc.
setup-dhclient
echo "Starting interface."
ifup "$wan_port"
echo "Configuring data path."
if [ -z "$lan_port" ]; then
lan_arg=""
else
lan_arg="-l $lan_port"
fi
if runnable start_sycl; then
echo "Starting sycl"
ip link add link pon0 name man type vlan id "$mgmt_vlan"
ifup man
rdiscloop 2>&1 | logos rdiscloop &
start_sycl 2>&1 | \
grep --line-buffered -v 'apm_avc_main_loop: type [7-9], param1 0, get state Failed' | logos sycl &
fi
# Start the optical watchdog.
babysit 60 opticalwatchdog 2>&1 | logos opticalwatchdog &
;;
stop)
echo -n "Stopping WAN..."
if [ -n "$mgmt_vlan" ]; then
ifdown man
ip link del man
fi
ifdown "$wan_port"
pkill -f rdiscloop
pkill -f sycl
pkill rstp
pkill misc
pkill upgrade
pkill igmp
pkill voip
pkill apm
pkill midware
pkill omci
;;
powerdown)
$0 stop
if [ -n "$lan_port" ]; then
ifdown "$lan_port"
fi
#power down GE PHY
devmem 0xf1072004 32 0x00000800
#power down GPON;
devmem 0xf10184f4 32 0xe2000000
#turn off some internal clocks
#devmem 0xf101821c 32 0x140200c0
#power down some internal memory
#devmem 0xf1018218 32 0x00ff0100
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|powerdown}"
exit 1
esac