iopsys-feed/layer2interface/broadcom/etc/init.d/layer2_interface_ethernet
2015-06-23 17:27:14 +02:00

87 lines
2 KiB
Bash
Executable file

#!/bin/sh /etc/rc.common
. /lib/functions.sh
include /lib/network
START=21
USE_PROCD=1
removeethernet() {
config_get ifname $1 ifname
vlanctl --if-delete $ifname
config_load layer2_interface_vlan
#kill all vlans related to this interface
config_foreach removevlan vlan_interface
}
removevlan() {
local baseifname
local ifname
local wan=`uci -q get layer2_interface_ethernet.Wan.baseifname`
config_get baseifname $1 baseifname
config_get ifname $1 ifname
if [ "$wan" == "$baseifname" ]; then
echo "vlanctl --if-delete $ifname"
vlanctl --if-delete $ifname
fi
}
addethernet() {
config_get baseifname $1 baseifname
config_get ifname $1 ifname
config_get bridge $1 bridge
brcm_virtual_interface_rules "$baseifname" "$ifname" "$bridge"
}
boot() {
local $baseifname
config_load layer2_interface_ethernet
config_get baseifname Wan baseifname
if [ "$(db get hw.board.hardware)" != "EG300" ]; then
get_current_status $baseifname
local ret=$?
if [ $ret -eq 1 ]; then
ethctl $baseifname phy-power down
ethctl $baseifname phy-power up
fi
fi
for interf in `db get hw.board.ethernetPortOrder`; do ethswctl -c wan -i $interf -o disable ; done
local tm=`db get hw.board.tm`
if [ "$tm" == "1" ]; then
for interf in `db get hw.board.ethernetPortOrder`; do tmctl porttminit --devtype ETH --if $interf --flag 1 ; done
fi
ethswctl -c pause -p 8 -v 1
ethswctl -c hw-switching -o enable
if [ $baseifname ]; then
ethswctl -c wan -i $baseifname -o enable
fi
ifconfig $baseifname up
}
start_service() {
local baseifname
echo "Setting up Ethernet WAN"
config_load layer2_interface_ethernet
config_foreach addethernet ethernet_interface
}
stop_service() {
local ifname
config_load layer2_interface_ethernet
config_foreach removeethernet ethernet_interface
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger layer2_interface_ethernet
}