From: Sven Eckelmann Date: Sun, 5 Oct 2025 06:55:49 +0000 (+0200) Subject: realtek: Split initial network setup in functions X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=f0648fd5760c3f9ec036d1a51a41c8eedd399ec6;p=openwrt%2Fstaging%2Fnbd.git realtek: Split initial network setup in functions Having everything in a big script without any structure makes it unnecessary hard to get an overview or modify it without triggering unexpected side effects. Signed-off-by: Sven Eckelmann Link: https://github.com/openwrt/openwrt/pull/20241 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index 56643ba556..79c140c32a 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -18,137 +18,168 @@ filter_port_list_reverse() { _filter_port_list_ordered "$1" "$2" "-r" } -board=$(board_name) -board_config_update +realtek_setup_interfaces() +{ + local board="$1" + local lan_list="$2" -lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs) + ucidef_set_bridge_device switch + ucidef_set_interface_lan "$lan_list" +} + +realtek_setup_macs_lan() +{ + local lan_list="$1" + local lan_mac_start="$2" + local lan_mac_end="$3" + + for lan in $lan_list; do + ucidef_set_network_device_mac $lan $lan_mac_start + [ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start) + lan_mac_start=$(macaddr_add $lan_mac_start 1) + done +} + +realtek_setup_macs() +{ + local board="$1" + local lan_list="$2" + + local lan_mac="" + local lan_mac_start="" + local lan_mac_end="" + local label_mac="" + + case $board in + hpe,1920-8g|\ + hpe,1920-8g-poe-65w|\ + hpe,1920-8g-poe-180w|\ + hpe,1920-16g|\ + hpe,1920-24g|\ + hpe,1920-24g-poe-180w|\ + hpe,1920-24g-poe-370w|\ + hpe,1920-48g|\ + hpe,1920-48g-poe) + label_mac=$(mtd_get_mac_binary factory 0x68) + lan_mac=$label_mac + mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null) + mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null) + lan_mac_start=$(macaddr_add $lan_mac 2) + lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1))) + ;; + plasmacloud,esx28|\ + plasmacloud,psx8|\ + plasmacloud,psx10|\ + plasmacloud,psx28|\ + tplink,sg2008p-v1|\ + tplink,sg2210p-v3|\ + tplink,sg2452p-v4|\ + tplink,t1600g-28ts-v3) + label_mac=$(get_mac_label) + lan_mac="$label_mac" + ;; + tplink,tl-st1008f-v2) + lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) + [ -z "$lan_mac" ] || [ "$lan_mac" = "00:e0:4c:00:00:00" ] && lan_mac=$(macaddr_random) + ;; + xikestor,sks8300-8x) + lan_mac=$(mtd_get_mac_binary board-info 0x1f1) + ;; + xikestor,sks8310-8x) + lan_mac=$(mtd_get_mac_binary factory 0x80) + label_mac="$lan_mac" + ;; + *) + lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start) + lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end) + label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) + [ -z "$lan_mac" ] && lan_mac=$label_mac + ;; + esac -ucidef_set_bridge_device switch -ucidef_set_interface_lan "$lan_list" - -lan_mac="" -lan_mac_start="" -lan_mac_end="" -label_mac="" -case $board in -hpe,1920-8g|\ -hpe,1920-8g-poe-65w|\ -hpe,1920-8g-poe-180w|\ -hpe,1920-16g|\ -hpe,1920-24g|\ -hpe,1920-24g-poe-180w|\ -hpe,1920-24g-poe-370w|\ -hpe,1920-48g|\ -hpe,1920-48g-poe) - label_mac=$(mtd_get_mac_binary factory 0x68) - lan_mac=$label_mac - mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null) - mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null) - lan_mac_start=$(macaddr_add $lan_mac 2) - lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1))) - ;; -plasmacloud,esx28|\ -plasmacloud,psx8|\ -plasmacloud,psx10|\ -plasmacloud,psx28|\ -tplink,sg2008p-v1|\ -tplink,sg2210p-v3|\ -tplink,sg2452p-v4|\ -tplink,t1600g-28ts-v3) - label_mac=$(get_mac_label) - lan_mac="$label_mac" - ;; -tplink,tl-st1008f-v2) - lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) - [ -z "$lan_mac" ] || [ "$lan_mac" = "00:e0:4c:00:00:00" ] && lan_mac=$(macaddr_random) - ;; -xikestor,sks8300-8x) - lan_mac=$(mtd_get_mac_binary board-info 0x1f1) - ;; -xikestor,sks8310-8x) - lan_mac=$(mtd_get_mac_binary factory 0x80) - label_mac="$lan_mac" - ;; -*) - lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start) - lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end) - label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) - [ -z "$lan_mac" ] && lan_mac=$label_mac - ;; -esac - -ucidef_set_interface_macaddr "lan" $lan_mac -ucidef_set_bridge_mac "$lan_mac" -ucidef_set_network_device_mac eth0 $lan_mac -[ -z "$lan_mac_start" ] && lan_mac_start=$lan_mac -for lan in $lan_list; do - ucidef_set_network_device_mac $lan $lan_mac_start - [ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start) - lan_mac_start=$(macaddr_add $lan_mac_start 1) -done -[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac - -case $board in -d-link,dgs-1210-10mp-f) - ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -d-link,dgs-1210-10p) - ucidef_set_poe 65 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -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 - lan22 lan21 lan20 lan19 lan18 lan17" - ;; -d-link,dgs-1210-28p-f) - ucidef_set_poe 193 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23 - lan22 lan21 lan20 lan19 lan18 lan17" - ;; -engenius,ews2910p-v1|\ -engenius,ews2910p-v3) - ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -hpe,1920-8g-poe-65w) - ucidef_set_poe 65 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")" - ;; -hpe,1920-8g-poe-180w) - ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")" - ;; -hpe,1920-24g-poe-180w) - ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")" - ;; -hpe,1920-24g-poe-370w) - ucidef_set_poe 370 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")" - ;; -hpe,1920-48g-poe) - 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 lan32 lan31 lan30 lan29 lan28 lan27 lan26 lan25 lan40 lan39 lan38 lan37 - lan36 lan35 lan34 lan33 lan48 lan47 lan46 lan45 lan44 lan43 lan42 lan41" - ;; -netgear,gs110tpp-v1) - ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -netgear,gs110tup-v1) - ucidef_set_poe 240 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -netgear,gs310tp-v1) - ucidef_set_poe 55 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -zyxel,gs1900-10hp) - ucidef_set_poe 77 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; -zyxel,gs1900-8hp-v1|\ -zyxel,gs1900-8hp-v2) - ucidef_set_poe 70 "$lan_list" - ;; -zyxel,gs1900-24ep) - ucidef_set_poe 130 "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12" - ;; -zyxel,gs1900-24hp-v1|\ -zyxel,gs1900-24hp-v2) - ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")" - ;; -esac + ucidef_set_interface_macaddr "lan" $lan_mac + ucidef_set_bridge_mac "$lan_mac" + ucidef_set_network_device_mac eth0 $lan_mac + [ -z "$lan_mac_start" ] && lan_mac_start=$lan_mac + realtek_setup_macs_lan "$lan_list" "$lan_mac_start" "$lan_mac_end" + + [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac +} + +realtek_setup_poe() +{ + local board="$1" + local lan_list="$2" + + case $board in + d-link,dgs-1210-10mp-f) + ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + d-link,dgs-1210-10p) + ucidef_set_poe 65 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + 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 + lan22 lan21 lan20 lan19 lan18 lan17" + ;; + d-link,dgs-1210-28p-f) + ucidef_set_poe 193 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23 + lan22 lan21 lan20 lan19 lan18 lan17" + ;; + engenius,ews2910p-v1|\ + engenius,ews2910p-v3) + ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + hpe,1920-8g-poe-65w) + ucidef_set_poe 65 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")" + ;; + hpe,1920-8g-poe-180w) + ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")" + ;; + hpe,1920-24g-poe-180w) + ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")" + ;; + hpe,1920-24g-poe-370w) + ucidef_set_poe 370 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")" + ;; + hpe,1920-48g-poe) + 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 lan32 lan31 lan30 lan29 lan28 lan27 lan26 lan25 lan40 lan39 lan38 lan37 + lan36 lan35 lan34 lan33 lan48 lan47 lan46 lan45 lan44 lan43 lan42 lan41" + ;; + netgear,gs110tpp-v1) + ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + netgear,gs110tup-v1) + ucidef_set_poe 240 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + netgear,gs310tp-v1) + ucidef_set_poe 55 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + zyxel,gs1900-10hp) + ucidef_set_poe 77 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; + zyxel,gs1900-8hp-v1|\ + zyxel,gs1900-8hp-v2) + ucidef_set_poe 70 "$lan_list" + ;; + zyxel,gs1900-24ep) + ucidef_set_poe 130 "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12" + ;; + zyxel,gs1900-24hp-v1|\ + zyxel,gs1900-24hp-v2) + ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")" + ;; + esac +} + +board=$(board_name) +board_config_update +lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs) +realtek_setup_interfaces "$board" "$lan_list" +realtek_setup_macs "$board" "$lan_list" +realtek_setup_poe "$board" "$lan_list" board_config_flush exit 0