OpenWrt – Blame information for rev 3
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | #!/bin/sh |
2 | # |
||
3 | # Copyright (C) 2011 OpenWrt.org |
||
4 | # |
||
5 | |||
6 | . /lib/functions/system.sh |
||
7 | . /lib/functions/uci-defaults.sh |
||
8 | |||
9 | board_config_update |
||
10 | |||
11 | board=$(board_name) |
||
12 | |||
13 | case "$board" in |
||
14 | tenda,ac9) |
||
15 | ucidef_add_switch "switch0" \ |
||
16 | "1:lan" "2:lan" "3:lan" "4:lan" "8@eth0" "0:wan" "5@eth1" |
||
17 | board_config_flush |
||
18 | exit 0 |
||
19 | ;; |
||
20 | buffalo,wxr-1900dhp| \ |
||
21 | buffalo,wzr-1750dhp) |
||
22 | ucidef_add_switch "switch0" \ |
||
23 | "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "5@eth0" |
||
24 | board_config_flush |
||
25 | exit 0 |
||
26 | ;; |
||
27 | esac |
||
28 | |||
29 | wan_macaddr="$(nvram get wan_hwaddr)" |
||
30 | case "$board" in |
||
31 | asus,rt-ac87u) |
||
32 | ifname=eth1 |
||
33 | etXmacaddr=$(nvram get et1macaddr) |
||
34 | ;; |
||
35 | dlink,dir-885l | \ |
||
36 | netgear,r7900 | \ |
||
37 | netgear,r8000 | \ |
||
38 | netgear,r8500) |
||
39 | ifname=eth2 |
||
40 | etXmacaddr=$(nvram get et2macaddr) |
||
41 | ;; |
||
42 | *) |
||
43 | ifname=eth0 |
||
44 | etXmacaddr=$(nvram get et0macaddr) |
||
45 | ;; |
||
46 | esac |
||
47 | |||
48 | # If WAN MAC isn't explicitly set, calculate it using base MAC as reference. |
||
49 | [ -z "$wan_macaddr" -a -n "$etXmacaddr" ] && wan_macaddr=$(macaddr_add "$etXmacaddr" 1) |
||
50 | |||
51 | # Workaround for devices using eth2 connected to (CPU) switch port 8 |
||
52 | case "$board" in |
||
53 | dlink,dir-885l | \ |
||
54 | netgear,r7900 | \ |
||
55 | netgear,r8000 | \ |
||
56 | netgear,r8500) |
||
57 | ifname=eth0 |
||
58 | ucidef_add_switch "switch0" \ |
||
59 | "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname" |
||
60 | |||
61 | # These devices should use eth2 so their eth0 interface often has no MAC |
||
62 | # assigned. Manually assign eth2's MAC to the LAN. |
||
63 | et2macaddr="$(nvram get et2macaddr)" |
||
64 | [ -n "$et2macaddr" ] && ucidef_set_interface_macaddr "lan" "$et2macaddr" |
||
65 | [ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr" |
||
66 | |||
67 | board_config_flush |
||
68 | exit 0 |
||
69 | ;; |
||
70 | esac |
||
71 | |||
72 | # NVRAM entries may contain unsorted ports, e.g. Netgear R6250 uses |
||
73 | # vlan1ports=3 2 1 0 5* |
||
74 | # vlan2ports=4 5u |
||
75 | # and early Netgear R8000 was using |
||
76 | # vlan1ports=3 2 1 0 5 7 8* |
||
77 | vlan1ports="$(echo $(nvram get vlan1ports | tr " " "\n" | sort))" |
||
78 | vlan2ports="$(echo $(nvram get vlan2ports | tr " " "\n" | sort))" |
||
79 | if echo "$vlan1ports" | egrep -q "^1 2 3 4 5" && \ |
||
80 | echo "$vlan2ports" | egrep -q "^0 5"; then |
||
81 | ucidef_add_switch "switch0" \ |
||
82 | "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5t@$ifname" |
||
83 | elif echo "$vlan1ports" | egrep -q "^1 2 3 5 7" && \ |
||
84 | echo "$vlan2ports" | egrep -q "^0 7"; then |
||
85 | ucidef_add_switch "switch0" \ |
||
86 | "1:lan" "2:lan" "3:lan" "5:lan" "0:wan" "7t@$ifname" |
||
87 | elif echo "$vlan1ports" | egrep -q "^0 1 2 3 5 7 8" && \ |
||
88 | echo "$vlan2ports" | egrep -q "^4 8"; then |
||
89 | ucidef_add_switch "switch0" \ |
||
90 | "0:lan" "1:lan" "2:lan" "3:lan" "5:lan" "7:lan" "4:wan" "8t@$ifname" |
||
91 | else |
||
92 | ucidef_add_switch "switch0" \ |
||
93 | "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname" |
||
94 | fi |
||
95 | |||
96 | [ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr" |
||
97 | |||
98 | board_config_flush |
||
99 | |||
100 | exit 0 |