realtek: use full range of assigned MAC addresses
[openwrt/staging/nbd.git] / target / linux / realtek / base-files / etc / board.d / 02_network
1
2 . /lib/functions.sh
3 . /lib/functions/uci-defaults.sh
4 . /lib/functions/system.sh
5
6 ucidef_set_poe() {
7 json_select_object poe
8 json_add_string "budget" "$1"
9 json_select_array ports
10 for port in $2; do
11 json_add_string "" "$port"
12 done
13 json_select ..
14 json_select ..
15 }
16
17 board=$(board_name)
18 board_config_update
19
20 lan_list=""
21 for lan in /sys/class/net/lan*; do
22 lan_list="$lan_list $(basename $lan)"
23 done
24 ucidef_set_bridge_device switch
25 ucidef_set_interface_lan "$lan_list"
26
27 lan_mac=""
28 lan_mac_end=""
29 label_mac=""
30 case $board in
31 *)
32 lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
33 lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)
34 label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
35 [ -z "$lan_mac" ] && lan_mac=$label_mac
36 ;;
37 esac
38
39 ucidef_set_interface_macaddr "lan" $lan_mac
40 ucidef_set_bridge_mac "$lan_mac"
41 ucidef_set_network_device_mac eth0 $lan_mac
42 for lan in $lan_list; do
43 ucidef_set_network_device_mac $lan $lan_mac
44 [ -z "$lan_mac_end" ] || [ "$lan_mac" == "$lan_mac_end" ] && lan_mac=$(macaddr_setbit_la $lan_mac)
45 lan_mac=$(macaddr_add $lan_mac 1)
46 done
47 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
48
49 case $board in
50 netgear,gs110tpp-v1)
51 ucidef_set_poe 130 "$lan_list"
52 ;;
53 netgear,gs310tp-v1)
54 ucidef_set_poe 55 "$lan_list"
55 ;;
56 zyxel,gs1900-10hp)
57 ucidef_set_poe 77 "$lan_list"
58 ;;
59 zyxel,gs1900-8hp-v1|\
60 zyxel,gs1900-8hp-v2)
61 ucidef_set_poe 70 "$lan_list"
62 ;;
63 zyxel,gs1900-24hp-v2)
64 ucidef_set_poe 170 "$lan_list"
65 ;;
66 esac
67
68 board_config_flush
69
70 exit 0