OpenWrt – Blame information for rev 1
?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 | phicomm,k3) |
||
28 | ucidef_add_switch "switch0" \ |
||
29 | "0:lan" "1:lan" "2:lan" "3:wan" "5@eth0" |
||
30 | board_config_flush |
||
31 | exit 0 |
||
32 | ;; |
||
33 | esac |
||
34 | |||
35 | wan_macaddr="$(nvram get wan_hwaddr)" |
||
36 | case "$board" in |
||
37 | asus,rt-ac87u) |
||
38 | ifname=eth1 |
||
39 | etXmacaddr=$(nvram get et1macaddr) |
||
40 | ;; |
||
41 | dlink,dir-885l | \ |
||
42 | netgear,r7900 | \ |
||
43 | netgear,r8000 | \ |
||
44 | netgear,r8500) |
||
45 | ifname=eth2 |
||
46 | etXmacaddr=$(nvram get et2macaddr) |
||
47 | ;; |
||
48 | *) |
||
49 | ifname=eth0 |
||
50 | etXmacaddr=$(nvram get et0macaddr) |
||
51 | ;; |
||
52 | esac |
||
53 | |||
54 | # If WAN MAC isn't explicitly set, calculate it using base MAC as reference. |
||
55 | [ -z "$wan_macaddr" -a -n "$etXmacaddr" ] && wan_macaddr=$(macaddr_add "$etXmacaddr" 1) |
||
56 | |||
57 | # Workaround for devices using eth2 connected to (CPU) switch port 8 |
||
58 | case "$board" in |
||
59 | dlink,dir-885l | \ |
||
60 | netgear,r7900 | \ |
||
61 | netgear,r8000 | \ |
||
62 | netgear,r8500) |
||
63 | ifname=eth0 |
||
64 | ucidef_add_switch "switch0" \ |
||
65 | "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname" |
||
66 | |||
67 | # These devices should use eth2 so their eth0 interface often has no MAC |
||
68 | # assigned. Manually assign eth2's MAC to the LAN. |
||
69 | et2macaddr="$(nvram get et2macaddr)" |
||
70 | [ -n "$et2macaddr" ] && ucidef_set_interface_macaddr "lan" "$et2macaddr" |
||
71 | [ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr" |
||
72 | |||
73 | board_config_flush |
||
74 | exit 0 |
||
75 | ;; |
||
76 | esac |
||
77 | |||
78 | # NVRAM entries may contain unsorted ports, e.g. Netgear R6250 uses |
||
79 | # vlan1ports=3 2 1 0 5* |
||
80 | # vlan2ports=4 5u |
||
81 | # and early Netgear R8000 was using |
||
82 | # vlan1ports=3 2 1 0 5 7 8* |
||
83 | vlan1ports="$(echo $(nvram get vlan1ports | tr " " "\n" | sort))" |
||
84 | vlan2ports="$(echo $(nvram get vlan2ports | tr " " "\n" | sort))" |
||
85 | if echo "$vlan1ports" | egrep -q "^1 2 3 4 5" && \ |
||
86 | echo "$vlan2ports" | egrep -q "^0 5"; then |
||
87 | ucidef_add_switch "switch0" \ |
||
88 | "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5t@$ifname" |
||
89 | elif echo "$vlan1ports" | egrep -q "^1 2 3 5 7" && \ |
||
90 | echo "$vlan2ports" | egrep -q "^0 7"; then |
||
91 | ucidef_add_switch "switch0" \ |
||
92 | "1:lan" "2:lan" "3:lan" "5:lan" "0:wan" "7t@$ifname" |
||
93 | elif echo "$vlan1ports" | egrep -q "^0 1 2 3 5 7 8" && \ |
||
94 | echo "$vlan2ports" | egrep -q "^4 8"; then |
||
95 | ucidef_add_switch "switch0" \ |
||
96 | "0:lan" "1:lan" "2:lan" "3:lan" "5:lan" "7:lan" "4:wan" "8t@$ifname" |
||
97 | else |
||
98 | ucidef_add_switch "switch0" \ |
||
99 | "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname" |
||
100 | fi |
||
101 | |||
102 | [ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr" |
||
103 | |||
104 | board_config_flush |
||
105 | |||
106 | exit 0 |