realtek: clean up board.json generation
[openwrt/staging/jow.git] / 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