| #!/bin/sh |
| wan_port=$(cat /etc/config/wanport) |
| lan_port=$(cat /etc/config/lanport) |
| mgmt_vlan=$(cat /etc/config/mgmtvlan) |
| |
| hostname GFiberONU |
| |
| case $1 in |
| start) |
| echo "Starting WAN." |
| # Creating this file tells the dhclient-script that it is okay to use |
| # IPv6 DNS. There's a bug in older uclib's that causes memory corruption |
| # and a crash, but it's fixed in Marvell's version 0.9.32. |
| echo 1 >/tmp/ipv6_dns_ok |
| |
| # 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 glaser; then |
| if [ -z "$mgmt_vlan" ]; then |
| # TODO(apenwarr): we should never rely on arbitrary delays like this. |
| sleep 3 && tpmadm -w "$wan_port" $lan_arg -v |
| else |
| sleep 3 && tpmadm -w "$wan_port" $lan_arg -m "$mgmt_vlan" -v |
| ip link add link "$wan_port" name man type vlan id "$mgmt_vlan" |
| fi |
| elif runnable start_sycl; then |
| echo "Starting sycl" |
| ip link add link pon0 name man type vlan id "$mgmt_vlan" |
| ifup man |
| start_sycl 2>&1 | logos sycl & |
| fi |
| ;; |
| stop) |
| echo -n "Stopping WAN..." |
| if [ -n "$mgmt_vlan" ]; then |
| ifdown man |
| ip link del man |
| fi |
| ifdown "$wan_port" |
| ;; |
| restart|reload) |
| $0 stop |
| $0 start |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|restart}" |
| exit 1 |
| esac |