mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-11 06:54:21 +00:00
realtek: move port filtering out of uci_set_poe()
uci_set_poe() now performs two duties: filtering the list of device ports to exclude non-PoE ports, and generating the PoE related device config. Extract the port filtering to an external function, which is made a bit more readable by the use of 'sort -V [-r] | uniq -u' to filter duplicate entries out of a (reverse) version sorted list. Signed-off-by: Sander Vanheule <sander@svanheule.net>
This commit is contained in:
parent
356a0b86eb
commit
7cbfe5654d
@ -8,20 +8,32 @@ ucidef_set_poe() {
|
|||||||
json_add_string "budget" "$1"
|
json_add_string "budget" "$1"
|
||||||
json_select_array ports
|
json_select_array ports
|
||||||
for port in $2; do
|
for port in $2; do
|
||||||
if [ -n "$3" -a -n "$(expr "$3" : "\(.\+[[:space:]]\)\{0,1\}$port\([[:space:]].*\|\$\)")" ]; then
|
|
||||||
continue # skip ports passed via $3
|
|
||||||
fi
|
|
||||||
json_add_string "" "$port"
|
json_add_string "" "$port"
|
||||||
done
|
done
|
||||||
json_select ..
|
json_select ..
|
||||||
json_select ..
|
json_select ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_filter_port_list_ordered() {
|
||||||
|
local ports="$1"
|
||||||
|
local excluded="$2"
|
||||||
|
local sort_opts="$3"
|
||||||
|
echo $ports $excluded | xargs -n1 basename | sort -V $sort_opts | uniq -u | xargs
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_port_list() {
|
||||||
|
_filter_port_list_ordered "$1" "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_port_list_reverse() {
|
||||||
|
_filter_port_list_ordered "$1" "$2" "-r"
|
||||||
|
}
|
||||||
|
|
||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
board_config_update
|
board_config_update
|
||||||
|
|
||||||
lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
|
lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
|
||||||
lan_list_rev=$(ls -1 -v -d -r /sys/class/net/lan* | xargs -n1 basename | xargs)
|
|
||||||
ucidef_set_bridge_device switch
|
ucidef_set_bridge_device switch
|
||||||
ucidef_set_interface_lan "$lan_list"
|
ucidef_set_interface_lan "$lan_list"
|
||||||
|
|
||||||
@ -70,35 +82,35 @@ done
|
|||||||
|
|
||||||
case $board in
|
case $board in
|
||||||
d-link,dgs-1210-10mp-f)
|
d-link,dgs-1210-10mp-f)
|
||||||
ucidef_set_poe 130 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
d-link,dgs-1210-10p)
|
d-link,dgs-1210-10p)
|
||||||
ucidef_set_poe 65 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 65 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
d-link,dgs-1210-28mp-f)
|
d-link,dgs-1210-28mp-f)
|
||||||
ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
|
ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
|
||||||
lan22 lan21 lan20 lan19 lan18 lan17" "lan25 lan26 lan27 lan28"
|
lan22 lan21 lan20 lan19 lan18 lan17"
|
||||||
;;
|
;;
|
||||||
engenius,ews2910p)
|
engenius,ews2910p)
|
||||||
ucidef_set_poe 60 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
hpe,1920-8g-poe-65w)
|
hpe,1920-8g-poe-65w)
|
||||||
ucidef_set_poe 65 "$lan_list_rev" "lan9 lan10"
|
ucidef_set_poe 65 "$(filter_port_list_reversed "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
hpe,1920-8g-poe-180w)
|
hpe,1920-8g-poe-180w)
|
||||||
ucidef_set_poe 180 "$lan_list_rev" "lan9 lan10"
|
ucidef_set_poe 180 "$(filter_port_list_reversed "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
netgear,gs110tpp-v1)
|
netgear,gs110tpp-v1)
|
||||||
ucidef_set_poe 130 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
netgear,gs110tup-v1)
|
netgear,gs110tup-v1)
|
||||||
ucidef_set_poe 240 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 240 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
netgear,gs310tp-v1)
|
netgear,gs310tp-v1)
|
||||||
ucidef_set_poe 55 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 55 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
zyxel,gs1900-10hp)
|
zyxel,gs1900-10hp)
|
||||||
ucidef_set_poe 77 "$lan_list" "lan9 lan10"
|
ucidef_set_poe 77 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
||||||
;;
|
;;
|
||||||
zyxel,gs1900-8hp-v1|\
|
zyxel,gs1900-8hp-v1|\
|
||||||
zyxel,gs1900-8hp-v2)
|
zyxel,gs1900-8hp-v2)
|
||||||
@ -106,7 +118,7 @@ zyxel,gs1900-8hp-v2)
|
|||||||
;;
|
;;
|
||||||
zyxel,gs1900-24hp-v1|\
|
zyxel,gs1900-24hp-v1|\
|
||||||
zyxel,gs1900-24hp-v2)
|
zyxel,gs1900-24hp-v2)
|
||||||
ucidef_set_poe 170 "$lan_list" "lan25 lan26"
|
ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user