realtek: clean up board.json generation
authorJohn Crispin <john@phrozen.org>
Sat, 28 Nov 2020 10:44:44 +0000 (11:44 +0100)
committerJohn Crispin <john@phrozen.org>
Wed, 2 Dec 2020 06:53:21 +0000 (07:53 +0100)
In this new setup the switch is treated as wan, lan1.100 is used as
our mgmt vlan.

The board mac is applied to eth0, switch and switch.1

The board mac is assigned with the LA bit set to all lan ports while
incrementing it.

Signed-off-by: John Crispin <john@phrozen.org>
target/linux/realtek/base-files/etc/board.d/02_network

index dc1465661b2ae4377b0b92d9340f047528cc9e28..84980c8982804e8c697aefc26803213f83e7db39 100755 (executable)
@@ -4,40 +4,56 @@
 . /lib/functions/uci-defaults.sh
 . /lib/functions/system.sh
 
-rtl838x_setup_switch()
-{
-       local lan 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"
+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 ..
 }
 
-rtl838x_setup_macs()
-{
-       local board="$1"
-       local lan_mac
-       local wan_mac
-       local label_mac
-
-       case $board in
-       allnet,all-sg8208m|\
-       netgear,gs110tpp-v1)
-               lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
-               label_mac=$lan_mac
-       esac
-
-       [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
-       [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
-       [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
-}
-
-board_config_update
 board=$(board_name)
-rtl838x_setup_switch
-rtl838x_setup_macs $board
+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_wan "$lan_list"
+ucidef_set_interface "lan" ifname "lan1:t" protocol "static" vlan 100
+
+lan_mac=""
+wan_mac=""
+label_mac=""
+case $board in
+*)
+       wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
+       label_mac=$lan_mac
+       ;;
+esac
+
+lan_mac=$(macaddr_setbit_la $wan_mac)
+
+ucidef_set_interface_macaddr "lan" $lan_mac
+ucidef_set_interface_macaddr "wan" $wan_mac
+ucidef_set_bridge_mac "$wan_mac"
+ucidef_set_network_device_mac eth0 $wan_mac
+for lan in $lan_list; do
+       ucidef_set_network_device_mac $lan $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"
+       ;;
+esac
+
 board_config_flush
 
 exit 0