mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
Issue with uplink LED not being brough up on boot after earlier fix preventing restart of all ports on every reload
80 lines
1.7 KiB
Bash
Executable file
80 lines
1.7 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
START=15
|
|
USE_PROCD=1
|
|
|
|
. /lib/functions.sh
|
|
include /lib/network
|
|
|
|
check_for_config(){
|
|
if [ -s "/etc/config/ports" ]
|
|
then
|
|
if uci -q get ports.@ethport[0] >/dev/null #are there any valid content then continue
|
|
then
|
|
return 0
|
|
else
|
|
rm -f /etc/config/ports
|
|
fi
|
|
fi
|
|
touch /etc/config/ports
|
|
|
|
local portorder="$(db get hw.board.ethernetPortOrder)"
|
|
for port in $portorder
|
|
do
|
|
uci add ports ethport
|
|
uci rename ports.@ethport[-1]="$(interfacename $port)"
|
|
uci set ports.@ethport[-1].name="$(interfacename $port)"
|
|
uci set ports.@ethport[-1].ifname=$port
|
|
uci set ports.@ethport[-1].speed='auto'
|
|
if [ "$(db -q get hw.board.ethernetWanPort)" = "$port" ]
|
|
then
|
|
uci set ports.@ethport[-1].pause=1
|
|
uci set ports.@ethport[-1].uplink=1
|
|
else
|
|
uci set ports.@ethport[-1].pause=0
|
|
fi
|
|
done
|
|
|
|
local fiberorder="$(db get hw.board.fiberPortOrder)"
|
|
for fiber in $fiberorder; do
|
|
uci add ports sfpport
|
|
uci rename ports.@sfpport[-1]="$(fibername $fiber)"
|
|
uci set ports.@sfpport[-1].name="$(fibername $fiber)"
|
|
uci set ports.@sfpport[-1].ifname=$fiber
|
|
uci set ports.@sfpport[-1].speed='auto'
|
|
uci set ports.@sfpport[-1].pause=1
|
|
done
|
|
|
|
uci commit ports
|
|
|
|
[ $DEBUG ] && cat /etc/config/ports
|
|
}
|
|
|
|
configure_ethports(){
|
|
local port ifname pause speed
|
|
name=$1
|
|
config_get speed $name speed
|
|
config_get ifname $name ifname
|
|
config_get pause $name pause
|
|
set_port_speed $ifname $speed $name
|
|
set_port_pause $ifname $pause
|
|
}
|
|
|
|
start_service() {
|
|
[ -f /sbin/db -a -f /lib/db/config/hw ] && check_for_config
|
|
|
|
[ -f /lib/network/port.sh ] || return
|
|
|
|
config_load ports
|
|
config_foreach configure_ethports ethport
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger ports
|
|
}
|
|
|
|
boot() {
|
|
wan=$(db -q get hw.board.ethernetWanPort)
|
|
restart_port $wan
|
|
start
|
|
}
|