openwrt/target/linux/realtek/base-files/etc/board.d/02_network

71 lines
1.5 KiB
Plaintext

. /lib/functions.sh
. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh
ucidef_set_poe() {
json_select_object poe
json_add_string "budget" "$1"
json_select_array ports
for port in $2; do
json_add_string "" "$port"
done
json_select ..
json_select ..
}
board=$(board_name)
board_config_update
lan_list=""
for lan in /sys/class/net/lan*; do
lan_list="$lan_list $(basename $lan)"
done
ucidef_set_bridge_device switch
ucidef_set_interface_lan "$lan_list"
lan_mac=""
lan_mac_end=""
label_mac=""
case $board in
*)
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
for lan in $lan_list; do
ucidef_set_network_device_mac $lan $lan_mac
[ -z "$lan_mac_end" ] || [ "$lan_mac" == "$lan_mac_end" ] && lan_mac=$(macaddr_setbit_la $lan_mac)
lan_mac=$(macaddr_add $lan_mac 1)
done
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
case $board in
netgear,gs110tpp-v1)
ucidef_set_poe 130 "$lan_list"
;;
netgear,gs310tp-v1)
ucidef_set_poe 55 "$lan_list"
;;
zyxel,gs1900-10hp)
ucidef_set_poe 77 "$lan_list"
;;
zyxel,gs1900-8hp-v1|\
zyxel,gs1900-8hp-v2)
ucidef_set_poe 70 "$lan_list"
;;
zyxel,gs1900-24hp-v2)
ucidef_set_poe 170 "$lan_list"
;;
esac
board_config_flush
exit 0