40c24a976967917d70e02d1dac6d57401f6653fe
[openwrt.git] / target / linux / ramips / base-files / etc / board.d / 02_network
1 #!/bin/sh
2
3 . /lib/functions.sh
4 . /lib/ramips.sh
5 . /lib/functions/uci-defaults.sh
6 . /lib/functions/system.sh
7
8 ramips_setup_rt3x5x_vlans()
9 {
10         if [ ! -x /sbin/swconfig ]; then
11                 # legacy default
12                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
13                 return
14         fi
15         local wanports=""
16         local lanports=""
17         for port in 5 4 3 2 1 0; do
18                 if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
19                         continue
20                 fi
21                 if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
22                         wanports="$port:wan $wanports"
23                 else
24                         lanports="$port:lan $lanports"
25                 fi
26         done
27         ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
28         ucidef_add_switch "rt305x" $lanports $wanports "6@eth0"
29 }
30
31 ramips_setup_interfaces()
32 {
33         local board="$1"
34
35         case $board in
36         3g150b|\
37         3g300m|\
38         all0256n|\
39         all5002|\
40         all5003|\
41         broadway|\
42         dcs-930|\
43         dcs-930l-b1|\
44         ht-tm02|\
45         linkits7688 | \
46         linkits7688d | \
47         microwrt|\
48         ncs601w|\
49         w150m|\
50         wnce2001|\
51         zte-q7)
52                 ucidef_add_switch "switch0"
53                 ucidef_add_switch_attr "switch0" "reset" "false"
54                 ucidef_set_interface_lan "eth0"
55                 ;;
56         3g-6200nl|\
57         mlw221|\
58         mr-102n)
59                 ucidef_set_interface_lan "eth0.2"
60                 ;;
61         3g-6200n|\
62         ai-br100|\
63         db-wrt01|\
64         dir-300-b7|\
65         dir-320-b1|\
66         dir-610-a1|\
67         dir-615-h1|\
68         firewrt|\
69         hlk-rm04|\
70         miwifi-mini|\
71         mt7621|\
72         mt7628|\
73         mzk-750dhp|\
74         mzk-w300nh2|\
75         oy-0001|\
76         pbr-m1|\
77         psg1208|\
78         sap-g3200u3|\
79         wf-2881|\
80         whr-300hp2|\
81         whr-600d|\
82         witi|\
83         wsr-1166|\
84         wsr-600|\
85         wt1520|\
86         y1|\
87         zbt-wg2626|\
88         youku-yk1)
89                 ucidef_add_switch "switch0" \
90                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
91                 ;;
92         a5-v11)
93                 ucidef_add_switch "switch0" \
94                         "0:lan" "6t@eth0"
95                 ;;
96         ar670w|\
97         ar725w|\
98         rt-n15|\
99         wl-351)
100                 ucidef_add_switch "switch0" \
101                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
102                 ;;
103         asl26555|\
104         re6500|\
105         rp-n53)
106                 ucidef_add_switch "switch0" \
107                         "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
108                 ;;
109         atp-52b|\
110         awm002-evb|\
111         awm003-evb|\
112         dir-645|\
113         dir-860l-b1|\
114         f5d8235-v1|\
115         f5d8235-v2|\
116         gl-mt300a|\
117         gl-mt300n|\
118         hg255d|\
119         mzk-wdpr|\
120         jhr-n805r|\
121         jhr-n825r|\
122         jhr-n926r|\
123         rt-n14u|\
124         ubnt-erx|\
125         ur-326n4g|\
126         wrtnode|\
127         wrtnode2p | \
128         wrtnode2r | \
129         wt3020|\
130         zbt-wa05)
131                 ucidef_add_switch "switch0" \
132                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
133                 ;;
134         awapn2403)
135                 ucidef_add_switch "switch0" \
136                         "0:lan" "1:wan" "6@eth0"
137                 ;;
138         b2c|\
139         nw718|\
140         psr-680w|\
141         sl-r7205|\
142         ur-336un|\
143         w502u|\
144         wr6202)
145                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
146                 ;;
147         br-6475nd)
148                 ucidef_add_switch "switch0" \
149                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
150                 ;;
151         cf-wr800n|\
152         ex2700)
153                 ucidef_add_switch "switch0" \
154                         "4:lan" "6t@eth0"
155                 ;;
156         cy-swr1100)
157                 ucidef_add_switch "switch0" \
158                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
159                 ;;
160         d105|\
161         hpm|\
162         na930|\
163         wli-tx4-ag300n)
164                 ucidef_set_interface_lan "eth0"
165                 ;;
166         e1700|\
167         mt7620a_mt7530)
168                 ucidef_add_switch "switch1" \
169                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
170                 ;;
171         hc5*61|\
172         y1s)
173                 ucidef_add_switch "switch0" \
174                         "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
175                 ;;
176         m2m)
177                 ucidef_add_switch "switch0"
178                 ucidef_add_switch_attr "switch0" "reset" "false"
179                 ucidef_set_interface_lan "eth0"
180                 ;;
181         mlwg2|\
182         wizard8800|\
183         wl-330n|\
184         wmr-300)
185                 ucidef_set_interface_lan "eth0.1"
186                 ;;
187         mzk-dp150n|\
188         vocore)
189                 ucidef_add_switch "switch0" \
190                         "0:lan" "4:lan" "6t@eth0"
191                 ;;
192         rt-n56u)
193                 ucidef_add_switch "switch0" \
194                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
195                 ;;
196         tew-691gr|\
197         tew-692gr)
198                 ucidef_add_switch "switch0" \
199                         "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
200                 ;;
201         v11st-fe|\
202         wzr-agl300nh)
203                 ucidef_add_switch "switch0" \
204                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
205                 ;;
206         wcr-150gn)
207                 ucidef_add_switch "switch0" \
208                         "0:lan" "6t@eth0"
209                 ;;
210         whr-1166d)
211                 ucidef_add_switch "switch0" \
212                         "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
213                 ;;
214         wizfi630a)
215                 ucidef_add_switch "switch0" \
216                         "1:lan" "2:lan" "0:wan" "6@eth0"
217                 ;;
218         zbt-we826|\
219         zbt-wr8305rt)
220                 ucidef_add_switch "switch0" \
221                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
222                 ;;
223         *)
224                 RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
225                 if [ -n "${RT3X5X}" ]; then
226                         ramips_setup_rt3x5x_vlans
227                 else
228                         ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
229                 fi
230                 ;;
231         esac
232 }
233
234 ramips_setup_macs()
235 {
236         local board="$1"
237         local lan_mac=""
238         local wan_mac=""
239
240         case $board in
241         a5-v11|\
242         bc2|\
243         broadway|\
244         d105|\
245         dir-300-b7|\
246         dir-320-b1|\
247         dir-620-a1|\
248         esr-9753|\
249         freestation5|\
250         hlk-rm04|\
251         mpr-a1|\
252         mpr-a2|\
253         psr-680w|\
254         sl-r7205|\
255         y1|\
256         y1s)
257                 lan_mac=$(cat /sys/class/net/eth0/address)
258                 lan_mac=$(macaddr_setbit_la "$lan_mac")
259                 wan_mac=$(macaddr_add "$lan_mac" 1)
260                 ;;
261         all0239-3g|\
262         carambola|\
263         freestation5|\
264         w502u|\
265         wnce2001)
266                 wan_mac=$(mtd_get_mac_binary factory 46)
267                 ;;
268         br-6475nd)
269                 lan_mac=$(cat /sys/class/net/eth0/address)
270                 wan_mac=$(mtd_get_mac_binary devdata 7)
271                 ;;
272         cy-swr1100|\
273         dir-645)
274                 lan_mac=$(mtd_get_mac_ascii nvram lanmac)
275                 wan_mac=$(mtd_get_mac_ascii nvram wanmac)
276                 ;;
277         e1700)
278                 wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
279                 ;;
280         hc5*61)
281                 lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "`
282                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
283                 wan_mac=$(macaddr_add "$lan_mac" 1)
284                 ;;
285         ht-tm02)
286                 lan_mac=$(cat /sys/class/net/eth0/address)
287                 ;;
288         linkits7688 | \
289         linkits7688d)
290                 wan_mac=$(mtd_get_mac_binary factory 4)
291                 lan_mac=$(mtd_get_mac_binary factory 46)
292                 ;;
293         m3|\
294         m4|\
295         x5|\
296         x8)
297                 lan_mac=$(cat /sys/class/net/eth0/address)
298                 lan_mac=$(macaddr_add "$lan_mac" -2)
299                 ;;
300         oy-0001)
301                 lan_mac=$(mtd_get_mac_binary factory 40)
302                 wan_mac=$(mtd_get_mac_binary factory 46)
303                 ;;
304         rt-n56u)
305                 lan_mac=$(cat /sys/class/net/eth0/address)
306                 lan_mac=$(macaddr_setbit_la "$lan_mac")
307                 wan_mac=$(mtd_get_mac_binary factory 32772)
308                 ;;
309         tew-691gr)
310                 lan_mac=$(cat /sys/class/net/eth0/address)
311                 wan_mac=$(macaddr_add "$lan_mac" 3)
312                 ;;
313         tew-692gr)
314                 lan_mac=$(cat /sys/class/net/eth0/address)
315                 wan_mac=$(macaddr_add "$lan_mac" 4)
316                 ;;
317         tiny-ac)
318                 lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
319                 wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
320                 ;;
321         w306r-v20)
322                 lan_mac=$(cat /sys/class/net/eth0/address)
323                 wan_mac=$(macaddr_add "$lan_mac" 5)
324                 ;;
325         wcr-150gn)
326                 wan_mac=$(mtd_get_mac_binary factory 40)
327                 ;;
328         whr-1166d|\
329         whr-300hp2|\
330         whr-600d|\
331         wsr-600)
332                 wan_mac=$(mtd_get_mac_binary factory 4)
333                 lan_mac=$wan_mac
334                 ;;
335         wizfi630a)
336                 lan_mac=$(mtd_get_mac_binary factory 4)
337                 wan_mac=$(mtd_get_mac_binary factory 40)
338                 ;;
339         wsr-1166)
340                 local index="$(find_mtd_index "board_data")"
341                 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
342                 lan_mac=$wan_mac
343                 ;;
344         *)
345                 lan_mac=$(cat /sys/class/net/eth0/address)
346                 wan_mac=$(macaddr_add "$lan_mac" 1)
347                 ;;
348         esac
349
350         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
351         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
352 }
353
354 board_config_update
355 board=$(ramips_board_name)
356 ramips_setup_interfaces $board
357 ramips_setup_macs $board
358 board_config_flush
359
360 exit 0