454f57d3dd5e19d1e8dfacfa22aeab7aa573d244
[oweals/openwrt.git] / target / linux / ath79 / base-files / etc / board.d / 02_network
1 #!/bin/sh
2
3 . /lib/functions/system.sh
4 . /lib/functions/uci-defaults.sh
5 . /lib/functions/k2t.sh
6
7 ath79_setup_interfaces()
8 {
9         local board="$1"
10
11         case "$board" in
12         adtran,bsap1800-v2|\
13         adtran,bsap1840|\
14         alfa-network,ap121f|\
15         aruba,ap-105|\
16         avm,fritz300e|\
17         devolo,dvl1200i|\
18         devolo,dvl1750c|\
19         devolo,dvl1750i|\
20         devolo,dvl1750x|\
21         engenius,ecb1750|\
22         glinet,ar300m-lite|\
23         netgear,ex6400|\
24         netgear,ex7300|\
25         ocedo,koala|\
26         ocedo,raccoon|\
27         pcs,cap324|\
28         pisen,ts-d084|\
29         pisen,wmb001n|\
30         pisen,wmm003n|\
31         pqi,air-pen|\
32         tplink,cpe210-v2|\
33         tplink,cpe210-v3|\
34         tplink,cpe510-v2|\
35         tplink,cpe510-v3|\
36         tplink,cpe610-v1|\
37         tplink,re350k-v1|\
38         tplink,re355-v1|\
39         tplink,re450-v1|\
40         tplink,re450-v2|\
41         tplink,tl-mr10u|\
42         tplink,tl-mr3020-v1|\
43         tplink,tl-mr3040-v2|\
44         tplink,tl-wa901nd-v2|\
45         tplink,tl-wr703n|\
46         ubnt,bullet-m|\
47         ubnt,bullet-m-xw|\
48         ubnt,lap-120|\
49         ubnt,nanobeam-ac|\
50         ubnt,nanostation-ac-loco|\
51         ubnt,rocket-m|\
52         ubnt,unifiac-lite|\
53         ubnt,unifiac-mesh|\
54         ubnt,unifi|\
55         wd,mynet-wifi-rangeextender|\
56         winchannel,wb2000)
57                 ucidef_set_interface_lan "eth0"
58                 ;;
59         avm,fritz4020|\
60         pcs,cr3000|\
61         tplink,archer-c58-v1|\
62         tplink,archer-c59-v1)
63                 ucidef_set_interface_wan "eth1"
64                 ucidef_add_switch "switch0" \
65                         "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
66                 ;;
67         buffalo,bhr-4grv|\
68         buffalo,wzr-hp-g450h)
69                 ucidef_add_switch "switch0" \
70                         "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
71                 ;;
72         buffalo,bhr-4grv2|\
73         trendnet,tew-823dru)
74                 ucidef_add_switch "switch0" \
75                         "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
76                 ;;
77         buffalo,whr-g301n)
78                 ucidef_set_interface_wan "eth0"
79                 ucidef_add_switch "switch0" \
80                         "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
81                 ;;
82         buffalo,wzr-hp-ag300h|\
83         tplink,archer-c25-v1|\
84         tplink,tl-mr3220-v1|\
85         tplink,tl-mr3420-v1|\
86         tplink,tl-wr841-v7|\
87         tplink,tl-wr841-v9|\
88         tplink,tl-wr841-v10|\
89         tplink,tl-wr841-v11|\
90         tplink,tl-wr841-v12|\
91         tplink,tl-wr842n-v1|\
92         tplink,tl-wr842n-v3|\
93         tplink,tl-wr940n-v3|\
94         tplink,tl-wr940n-v4|\
95         tplink,tl-wr941nd-v6|\
96         ubnt,airrouter)
97                 ucidef_set_interface_wan "eth1"
98                 ucidef_add_switch "switch0" \
99                         "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
100                 ;;
101         buffalo,wzr-hp-g302h-a1a0)
102                 ucidef_add_switch "switch0" \
103                         "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
104                 ;;
105         comfast,cf-e110n-v2|\
106         comfast,cf-e120a-v3|\
107         comfast,cf-e314n-v2|\
108         tplink,cpe210-v1|\
109         tplink,cpe220-v2|\
110         tplink,cpe510-v1|\
111         ubnt,nanostation-m|\
112         ubnt,routerstation)
113                 ucidef_set_interfaces_lan_wan "eth1" "eth0"
114                 ;;
115         comfast,cf-wr650ac-v1|\
116         comfast,cf-wr650ac-v2)
117                 ucidef_set_interfaces_lan_wan "eth0" "eth1"
118                 ucidef_add_switch "switch0" \
119                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
120                 ;;
121         devolo,dvl1200e|\
122         devolo,dvl1750e|\
123         ocedo,ursus)
124                 ucidef_set_interface_lan "eth0 eth1"
125                 ;;
126         dlink,dir-825-b1)
127                 ucidef_set_interface_wan "eth1"
128                 ucidef_add_switch "switch0" \
129                         "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
130                 ;;
131         dlink,dir-825-c1|\
132         dlink,dir-835-a1|\
133         dlink,dir-842-c1|\
134         dlink,dir-842-c2|\
135         dlink,dir-842-c3|\
136         dlink,dir-859-a1|\
137         engenius,epg5000|\
138         tplink,archer-c2-v3|\
139         tplink,tl-wr1043nd-v4|\
140         tplink,tl-wr1043n-v5)
141                 ucidef_add_switch "switch0" \
142                         "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
143                 ;;
144         elecom,wrc-1750ghbk2-i|\
145         elecom,wrc-300ghbk2-i)
146                 ucidef_add_switch "switch0" \
147                         "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
148                 ;;
149         embeddedwireless,dorin)
150                 ucidef_add_switch "switch0" \
151                         "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
152                 ;;
153         engenius,ews511ap)
154                 ucidef_set_interface_lan "eth0 eth1" "dhcp"
155                 ;;
156         etactica,eg200)
157                 ucidef_set_interface_lan "eth0" "dhcp"
158                 ;;
159         glinet,gl-ar750)
160                 ucidef_set_interface_wan "eth1"
161                 ucidef_add_switch "switch0" \
162                         "0@eth0" "1:lan" "2:lan"
163                 ;;
164         glinet,gl-ar750s)
165                 ucidef_add_switch "switch0" \
166                         "0@eth0" "2:lan:2" "3:lan:1" "1:wan"
167                 ;;
168         iodata,etg3-r|\
169         iodata,wn-ac1167dgr|\
170         iodata,wn-ac1600dgr|\
171         iodata,wn-ac1600dgr2|\
172         iodata,wn-ag300dgr|\
173         pcs,cr5000|\
174         wd,mynet-n750)
175                 ucidef_add_switch "switch0" \
176                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
177         ;;
178         librerouter,librerouter-v1)
179                 ucidef_add_switch "switch0" \
180                         "0@eth0" "5:wan" "6@eth1" "4:lan"
181         ;;
182         nec,wg1200cr|\
183         ubnt,nanostation-ac|\
184         ubnt,unifiac-mesh-pro|\
185         ubnt,unifiac-pro)
186                 ucidef_add_switch "switch0" \
187                         "0@eth0" "2:lan" "3:wan"
188                 ;;
189         nec,wg800hp)
190                 ucidef_add_switch "switch0" \
191                         "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
192                 ;;
193         netgear,wndr3700|\
194         netgear,wndr3700v2|\
195         netgear,wndr3800)
196                 ucidef_set_interfaces_lan_wan "eth0" "eth1"
197                 ucidef_add_switch "switch0" \
198                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
199                 ucidef_add_switch_attr "switch0" "blinkrate" 2
200                 ucidef_add_switch_port_attr "switch0" 1 led 6
201                 ucidef_add_switch_port_attr "switch0" 2 led 9
202                 ucidef_add_switch_port_attr "switch0" 5 led 2
203                 ;;
204         netgear,wnr612-v2|\
205         on,n150r|\
206         tplink,tl-wr740n-v1|\
207         tplink,tl-wr740n-v3|\
208         tplink,tl-wr741-v1|\
209         tplink,tl-wr743nd-v1|\
210         tplink,tl-wr841-v5|\
211         tplink,tl-wr941-v4)
212                 ucidef_set_interface_wan "eth0"
213                 ucidef_add_switch "switch0" \
214                 "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
215                 ;;
216         phicomm,k2t)
217                 ucidef_add_switch "switch0" \
218                         "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
219                 ;;
220         qihoo,c301)
221                 ucidef_set_interface_wan "eth1"
222                 ucidef_add_switch "switch0" \
223                         "0@eth0" "2:lan" "3:lan"
224                 ;;
225         rosinson,wr818)
226                 ucidef_add_switch "switch0" \
227                         "0@eth0" "1:lan" "2:lan" "3:wan"
228                 ;;
229         tplink,archer-a7-v5|\
230         tplink,archer-c6-v2|\
231         tplink,archer-c7-v4|\
232         tplink,archer-c7-v5|\
233         tplink,tl-wdr3600-v1|\
234         tplink,tl-wdr4300-v1|\
235         tplink,tl-wr941n-v7-cn)
236                 ucidef_add_switch "switch0" \
237                         "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
238                 ;;
239         tplink,archer-c5-v1|\
240         tplink,archer-c7-v1|\
241         tplink,archer-c7-v2|\
242         tplink,tl-wdr4900-v2)
243                 ucidef_add_switch "switch0" \
244                         "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
245                 ;;
246         tplink,archer-c60-v1|\
247         tplink,archer-c60-v2)
248                 ucidef_set_interface_wan "eth1"
249                 ucidef_add_switch "switch0" \
250                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
251                 ;;
252         tplink,archer-d50-v1)
253                 ucidef_add_switch "switch0" \
254                         "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
255                 ;;
256         tplink,tl-mr3420-v2|\
257         tplink,tl-wr740n-v4|\
258         tplink,tl-wr741nd-v4|\
259         tplink,tl-wr841-v8|\
260         tplink,tl-wr842n-v2)
261                 ucidef_set_interface_wan "eth1"
262                 ucidef_add_switch "switch0" \
263                         "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
264                 ;;
265         tplink,tl-wr1043nd-v1)
266                 ucidef_add_switch "switch0" \
267                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
268                 ;;
269         tplink,tl-wr1043nd-v2|\
270         tplink,tl-wr1043nd-v3)
271                 ucidef_add_switch "switch0" \
272                         "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
273                 ;;
274         tplink,tl-wr2543-v1)
275                 ucidef_add_switch "switch0" \
276                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
277                 ;;
278         tplink,tl-wr941-v2)
279                 ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
280                 ;;
281         ubnt,acb-isp)
282                 ucidef_set_interface_wan "eth1"
283                 ucidef_add_switch "switch0" \
284                         "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
285                 ;;
286         ubnt,routerstation-pro)
287                 ucidef_set_interface_wan "eth0"
288                 ucidef_add_switch "switch0" \
289                         "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
290                 ;;
291         ubnt,nanostation-m-xw)
292                 ucidef_add_switch "switch0" \
293                         "0@eth0" "5:lan" "1:wan"
294                 ;;
295         zbtlink,zbt-wd323|\
296         xiaomi,mi-router-4q)
297                 ucidef_set_interface_wan "eth1"
298                 ucidef_add_switch "switch0" \
299                         "0@eth0" "3:lan:1" "4:lan:2"
300                 ;;
301         *)
302                 ucidef_set_interfaces_lan_wan "eth0" "eth1"
303                 ;;
304         esac
305 }
306
307 ath79_setup_macs()
308 {
309         local board="$1"
310
311         case "$board" in
312         adtran,bsap1800-v2|\
313         adtran,bsap1840)
314                 lan_mac=$(mtd_get_mac_binary "Board data" 2)
315                 ;;
316         avm,fritz300e)
317                 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
318                 ;;
319         avm,fritz4020)
320                 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
321                 wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
322                 ;;
323         dlink,dir-825-b1)
324                 lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
325                 wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
326                 ;;
327         dlink,dir-825-c1|\
328         dlink,dir-835-a1)
329                 lan_mac=$(mtd_get_mac_text "mac" 0x4)
330                 wan_mac=$(mtd_get_mac_text "mac" 0x18)
331                 ;;
332         dlink,dir-842-c1|\
333         dlink,dir-842-c2|\
334         dlink,dir-842-c3|\
335         dlink,dir-859-a1|\
336         nec,wg1200cr|\
337         wd,mynet-n750)
338                 lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
339                 wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
340                 ;;
341         elecom,wrc-1750ghbk2-i|\
342         elecom,wrc-300ghbk2-i)
343                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" -2)
344                 ;;
345         engenius,ecb1750)
346                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
347                 ;;
348         engenius,epg5000|\
349         iodata,wn-ac1167dgr|\
350         iodata,wn-ac1600dgr|\
351         iodata,wn-ac1600dgr2|\
352         iodata,wn-ag300dgr)
353                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
354                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
355                 ;;
356         engenius,ews511ap)
357                 lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
358                 eth1_mac=$(macaddr_add "$lan_mac" 1)
359                 ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
360                 ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
361                 ;;
362         iodata,etg3-r)
363                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
364                 wan_mac=$(macaddr_add "$lan_mac" -1)
365                 ;;
366         jjplus,ja76pf2)
367                 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
368                 lan_mac=$(macaddr_add "$wan_mac" 1)
369                 ;;
370         nec,wg800hp)
371                 lan_mac=$(mtd_get_mac_text board_data 0x280)
372                 wan_mac=$(mtd_get_mac_text board_data 0x480)
373                 ;;
374         netgear,wndr3700|\
375         netgear,wndr3700v2|\
376         netgear,wndr3800)
377                 lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
378                 ;;
379         phicomm,k2t)
380                 lan_mac=$(k2t_get_mac "lan_mac")
381                 wan_mac=$(k2t_get_mac "wan_mac")
382                 ;;
383         qihoo,c301)
384                 lan_mac=$(mtd_get_mac_ascii devdata lanmac)
385                 wan_mac=$(mtd_get_mac_ascii devdata wanmac)
386                 ;;
387         rosinson,wr818)
388                 wan_mac=$(mtd_get_mac_binary factory 0x0)
389                 lan_mac=$(macaddr_setbit_la "$wan_mac")
390                 ;;
391         tplink,archer-a7-v5|\
392         tplink,archer-c7-v4|\
393         tplink,archer-c7-v5|\
394         tplink,tl-wr1043nd-v4|\
395         tplink,tl-wr1043n-v5)
396                 base_mac=$(mtd_get_mac_binary info 0x8)
397                 wan_mac=$(macaddr_add "$base_mac" 1)
398                 ;;
399         tplink,tl-wr941-v2|\
400         tplink,tl-wr941n-v7-cn)
401                 base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
402                 wan_mac=$(macaddr_add "$base_mac" 1)
403                 ;;
404         trendnet,tew-823dru)
405                 lan_mac=$(mtd_get_mac_text mac 0x4)
406                 wan_mac=$(mtd_get_mac_text mac 0x18)
407                 ;;
408         ubnt,routerstation|\
409         ubnt,routerstation-pro)
410                 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
411                 lan_mac=$(macaddr_add "$wan_mac" 1)
412                 ;;
413         wd,mynet-wifi-rangeextender)
414                 lan_mac=$(nvram get et0macaddr)
415                 ;;
416         esac
417
418         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
419         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
420 }
421
422 board_config_update
423 board=$(board_name)
424 ath79_setup_interfaces $board
425 ath79_setup_macs $board
426 board_config_flush
427
428 exit 0