mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
87 lines
2 KiB
Bash
Executable file
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
|
|
}
|
|
|
|
|