5efcd5395546644bbd512558ba7e8d8512522bce
[openwrt/openwrt.git] / target / linux / ramips / rt305x / 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 ramips_setup_rt3x5x_vlans()
8 {
9 if [ ! -x /sbin/swconfig ]; then
10 # legacy default
11 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
12 return
13 fi
14 local wanports=""
15 local lanports=""
16 for port in 5 4 3 2 1 0; do
17 if [ "$(swconfig dev rt305x port $port get disable)" = "1" ]; then
18 continue
19 fi
20 if [ "$(swconfig dev rt305x port $port get lan)" = "0" ]; then
21 wanports="$port:wan $wanports"
22 else
23 lanports="$port:lan $lanports"
24 fi
25 done
26 ucidef_add_switch "rt305x" $lanports $wanports "6t@eth0"
27 }
28
29 ramips_setup_interfaces()
30 {
31 local board="$1"
32
33 case $board in
34 accton,wr6202|\
35 alfa-network,w502u|\
36 netcore,nw718|\
37 petatel,psr-680w|\
38 skyline,sl-r7205|\
39 upvel,ur-336un)
40 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
41 ;;
42 allnet,all0256n-4m|\
43 allnet,all0256n-8m|\
44 allnet,all5002|\
45 allnet,all5003|\
46 dlink,dcs-930l-b1|\
47 dlink,dcs-930|\
48 hame,mpr-a2|\
49 hauppauge,broadway|\
50 hootoo,ht-tm02|\
51 intenso,memory2move|\
52 netgear,wnce2001|\
53 tenda,3g150b|\
54 tenda,3g300m|\
55 tenda,w150m|\
56 unbranded,a5-v11|\
57 wansview,ncs601w|\
58 zorlik,zl5900v2)
59 ucidef_add_switch "switch0"
60 ucidef_add_switch_attr "switch0" "enable" "false"
61 ucidef_set_interface_lan "eth0"
62 ;;
63 alphanetworks,asl26555-8m|\
64 alphanetworks,asl26555-16m)
65 ucidef_add_switch "switch0" \
66 "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
67 ;;
68 argus,atp-52b|\
69 asiarf,awm002-evb-4m|\
70 asiarf,awm002-evb-8m|\
71 jcg,jhr-n805r|\
72 jcg,jhr-n825r|\
73 jcg,jhr-n926r|\
74 planex,mzk-wdpr|\
75 upvel,ur-326n4g)
76 ucidef_add_switch "switch0" \
77 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
78 ;;
79 asiarf,awapn2403)
80 ucidef_add_switch "switch0" \
81 "0:lan" "1:wan" "6@eth0"
82 ;;
83 asus,wl-330n|\
84 easyacc,wizard-8800)
85 ucidef_set_interface_lan "eth0.1"
86 ;;
87 aximcom,mr-102n)
88 ucidef_set_interface_lan "eth0.2"
89 ;;
90 belkin,f5d8235-v2|\
91 trendnet,tew-714tru)
92 ucidef_add_switch "switch0" \
93 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
94 ;;
95 buffalo,whr-g300n|\
96 dlink,dir-300-b7|\
97 dlink,dir-320-b1|\
98 dlink,dir-610-a1|\
99 edimax,3g-6200n|\
100 hilink,hlk-rm04|\
101 nixcore,x1-16m|\
102 nixcore,x1-8m|\
103 planex,mzk-w300nh2|\
104 zyxel,keenetic)
105 ucidef_add_switch "switch0" \
106 "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
107 ;;
108 dlink,dir-615-h1)
109 ucidef_add_switch "switch0" \
110 "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
111 ;;
112 huawei,d105)
113 ucidef_set_interface_lan "eth0"
114 ;;
115 huawei,hg255d)
116 ucidef_add_switch "switch0" \
117 "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
118 ;;
119 nexx,wt1520-4m|\
120 nexx,wt1520-8m)
121 ucidef_add_switch "switch0" \
122 "0:lan" "4:wan" "6@eth0"
123 ;;
124 planex,mzk-dp150n|\
125 vocore,vocore-8m|\
126 vocore,vocore-16m)
127 ucidef_add_switch "switch0" \
128 "0:lan" "4:lan" "6t@eth0"
129 ;;
130 sitecom,wl-351)
131 ucidef_add_switch "switch0" \
132 "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
133 ;;
134 sparklan,wcr-150gn)
135 ucidef_add_switch "switch0" \
136 "0:lan" "6t@eth0"
137 ;;
138 trendnet,tew-638apb-v2)
139 ucidef_add_switch "switch0" \
140 "4:lan" "6@eth0"
141 ;;
142 wiznet,wizfi630a)
143 ucidef_add_switch "switch0" \
144 "0:lan" "1:lan" "2:wan" "6@eth0"
145 ;;
146 zyxel,keenetic-start)
147 ucidef_add_switch "switch0" \
148 "0:lan:3" "1:lan:2" "2:lan:1" "3:lan:0" "4:wan" "6@eth0"
149 ;;
150 *)
151 RT3X5X=$(grep -E "(RT3.5|RT5350)" /proc/cpuinfo)
152 if [ -n "${RT3X5X}" ]; then
153 ramips_setup_rt3x5x_vlans
154 else
155 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
156 fi
157 ;;
158 esac
159 }
160
161 ramips_setup_macs()
162 {
163 local board="$1"
164 local lan_mac=""
165 local wan_mac=""
166 local label_mac=""
167
168 case $board in
169 7links,px-4885-4m|\
170 7links,px-4885-8m)
171 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devconf 0x28)" 1)
172 ;;
173 8devices,carambola|\
174 alfa-network,w502u|\
175 arcwireless,freestation5|\
176 netgear,wnce2001)
177 wan_mac=$(mtd_get_mac_binary factory 0x2e)
178 ;;
179 accton,wr6202|\
180 asiarf,awm002-evb-4m|\
181 asiarf,awm002-evb-8m|\
182 asus,rt-n13u|\
183 aztech,hw550-3g|\
184 fon,fonera-20n|\
185 huawei,hg255d|\
186 omnima,miniembwifi|\
187 planex,mzk-wdpr|\
188 poray,ip2202|\
189 teltonika,rut5xx|\
190 unbranded,xdx-rn502j|\
191 zyxel,keenetic|\
192 zyxel,nbg-419n|\
193 zyxel,nbg-419n-v2)
194 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
195 ;;
196 airlive,air3gii|\
197 argus,atp-52b|\
198 asus,wl-330n3g|\
199 dlink,dir-620-d1|\
200 edimax,3g-6200n|\
201 edimax,3g-6200nl|\
202 netcore,nw718|\
203 nexx,wt1520-4m|\
204 nexx,wt1520-8m|\
205 nixcore,x1-16m|\
206 nixcore,x1-8m|\
207 olimex,rt5350f-olinuxino|\
208 olimex,rt5350f-olinuxino-evb|\
209 omnima,miniembplug|\
210 planex,mzk-w300nh2|\
211 sitecom,wl-351|\
212 trendnet,tew-714tru)
213 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
214 ;;
215 asus,rt-g32-b1|\
216 asus,rt-n10-plus)
217 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devconf 0x4)" 1)
218 ;;
219 belkin,f5d8235-v2)
220 wan_mac=$(macaddr_add "$(mtd_get_mac_binary uboot 0x40004)" 1)
221 ;;
222 dlink,dir-300-b7|\
223 dlink,dir-320-b1|\
224 dlink,dir-620-a1|\
225 engenius,esr-9753|\
226 hame,mpr-a1|\
227 hauppauge,broadway|\
228 huawei,d105|\
229 hilink,hlk-rm04|\
230 nexaira,bc2|\
231 petatel,psr-680w|\
232 skyline,sl-r7205)
233 lan_mac=$(macaddr_setbit_la "$(cat /sys/class/net/eth0/address)")
234 wan_mac=$(macaddr_add "$lan_mac" 1)
235 ;;
236 dlink,dap-1350)
237 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devdata 0x2e)" 1)
238 ;;
239 dlink,dir-300-b1|\
240 dlink,dir-600-b1|\
241 dlink,dir-610-a1)
242 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devdata 0x4004)" 1)
243 ;;
244 dlink,dir-615-d)
245 label_mac=$(mtd_get_mac_binary devdata 0x4004)
246 ;;
247 dlink,dir-615-h1)
248 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
249 label_mac=$(mtd_get_mac_binary factory 0x4)
250 ;;
251 dlink,dwr-512-b)
252 wan_mac=$(macaddr_add "$(mtd_get_mac_binary config 0xe07e)" 1)
253 ;;
254 jcg,jhr-n805r|\
255 jcg,jhr-n825r|\
256 jcg,jhr-n926r)
257 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x2e)" 1)
258 ;;
259 poray,m3|\
260 poray,m4-4m|\
261 poray,m4-8m|\
262 poray,x5|\
263 poray,x8)
264 lan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -2)
265 ;;
266 sparklan,wcr-150gn|\
267 wiznet,wizfi630a)
268 wan_mac=$(mtd_get_mac_binary factory 0x28)
269 ;;
270 tenda,w306r-v2)
271 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 5)
272 ;;
273 upvel,ur-326n4g|\
274 upvel,ur-336un)
275 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4004)" 1)
276 ;;
277 esac
278
279 [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
280 [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
281 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
282 }
283
284 board_config_update
285 board=$(board_name)
286 ramips_setup_interfaces $board
287 ramips_setup_macs $board
288 board_config_flush
289
290 exit 0