realtek: clean up board.json generation
[openwrt/staging/jow.git] / target / linux / realtek / base-files / etc / board.d / 02_network
1 #!/bin/sh
2
3 . /lib/functions.sh
4 . /lib/functions/uci-defaults.sh
5 . /lib/functions/system.sh
6
7 ucidef_set_poe() {
8 json_select_object poe
9 json_add_string "budget" "$1"
10 json_select_array ports
11 for port in $2; do
12 json_add_string "" "$port"
13 done
14 json_select ..
15 json_select ..
16 }
17
18 board=$(board_name)
19 board_config_update
20
21 lan_list=""
22 for lan in /sys/class/net/lan*; do
23 lan_list="$lan_list $(basename $lan)"
24 done
25 ucidef_set_bridge_device switch
26 ucidef_set_interface_wan "$lan_list"
27 ucidef_set_interface "lan" ifname "lan1:t" protocol "static" vlan 100
28
29 lan_mac=""
30 wan_mac=""
31 label_mac=""
32 case $board in
33 *)
34 wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
35 label_mac=$lan_mac
36 ;;
37 esac
38
39 lan_mac=$(macaddr_setbit_la $wan_mac)
40
41 ucidef_set_interface_macaddr "lan" $lan_mac
42 ucidef_set_interface_macaddr "wan" $wan_mac
43 ucidef_set_bridge_mac "$wan_mac"
44 ucidef_set_network_device_mac eth0 $wan_mac
45 for lan in $lan_list; do
46 ucidef_set_network_device_mac $lan $lan_mac
47 lan_mac=$(macaddr_add $lan_mac 1)
48 done
49 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
50
51 case $board in
52 netgear,gs110tpp-v1)
53 ucidef_set_poe 130 "$lan_list"
54 ;;
55 esac
56
57 board_config_flush
58
59 exit 0