ramips: fix Linksys RE6500 switch port mapping
[lede.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_add_switch "rt305x" $lanports $wanports "6t@eth0"
28 }
29
30 ramips_setup_interfaces()
31 {
32         local board="$1"
33
34         case $board in
35         11acnas|\
36         w2914nsv2)
37                 ucidef_add_switch "switch0" \
38                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
39                 ;;
40         3g150b|\
41         3g300m|\
42         a5-v11|\
43         all0256n|\
44         all5002|\
45         all5003|\
46         broadway|\
47         dcs-930|\
48         dcs-930l-b1|\
49         ht-tm02|\
50         linkits7688 | \
51         linkits7688d | \
52         m2m|\
53         microwrt|\
54         mpr-a2|\
55         ncs601w|\
56         omega2 | \
57         omega2p | \
58         timecloud|\
59         w150m|\
60         widora-neo|\
61         wnce2001|\
62         zbt-cpe102|\
63         zte-q7)
64                 ucidef_add_switch "switch0"
65                 ucidef_add_switch_attr "switch0" "enable" "false"
66                 ucidef_set_interface_lan "eth0"
67                 ;;
68         mlw221|\
69         mr-102n)
70                 ucidef_set_interface_lan "eth0.2"
71                 ;;
72         3g-6200n|\
73         ac1200pro|\
74         ai-br100|\
75         d240|\
76         db-wrt01|\
77         dir-300-b7|\
78         dir-320-b1|\
79         dir-610-a1|\
80         dir-615-h1|\
81         ew1200|\
82         firewrt|\
83         hc5661a|\
84         hc5962|\
85         hlk-rm04|\
86         mac1200rv2|\
87         miwifi-mini|\
88         miwifi-nano|\
89         mt7621|\
90         mt7628|\
91         mzk-750dhp|\
92         mzk-w300nh2|\
93         nixcore|\
94         oy-0001|\
95         pbr-m1|\
96         psg1208|\
97         psg1218|\
98         sap-g3200u3|\
99         sk-wb8|\
100         vr500|\
101         wf-2881|\
102         witi|\
103         wl-wn575a3|\
104         wndr3700v5|\
105         wt1520|\
106         y1|\
107         youku-yk1|\
108         zbt-ape522ii|\
109         zbt-we826|\
110         zbt-wg2626|\
111         zbt-wg3526|\
112         zbt-wr8305rt)
113                 ucidef_add_switch "switch0" \
114                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
115                 ;;
116         whr-300hp2|\
117         whr-600d|\
118         wsr-1166|\
119         wsr-600)
120                 ucidef_add_switch "switch0" \
121                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
122                 ;;
123         ar670w|\
124         ar725w|\
125         rt-n15|\
126         wl-351)
127                 ucidef_add_switch "switch0" \
128                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
129                 ;;
130         asl26555|\
131         rp-n53)
132                 ucidef_add_switch "switch0" \
133                         "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
134                 ;;
135         atp-52b|\
136         awm002-evb|\
137         awm003-evb|\
138         c20i|\
139         c50|\
140         dir-645|\
141         dir-860l-b1|\
142         f5d8235-v2|\
143         gl-mt300a|\
144         gl-mt300n|\
145         gl-mt750|\
146         hg255d|\
147         jhr-n805r|\
148         jhr-n825r|\
149         jhr-n926r|\
150         mzk-wdpr|\
151         rb750gr3|\
152         rt-n14u|\
153         ubnt-erx|\
154         ur-326n4g|\
155         wrtnode|\
156         wrtnode2p | \
157         wrtnode2r | \
158         wt3020|\
159         zbt-wa05)
160                 ucidef_add_switch "switch0" \
161                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
162                 ;;
163         awapn2403)
164                 ucidef_add_switch "switch0" \
165                         "0:lan" "1:wan" "6@eth0"
166                 ;;
167         b2c|\
168         nw718|\
169         psr-680w|\
170         sl-r7205|\
171         ur-336un|\
172         w502u|\
173         wr6202)
174                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
175                 ;;
176         br-6475nd)
177                 ucidef_add_switch "switch0" \
178                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
179                 ;;
180         cf-wr800n)
181                 ucidef_add_switch "switch0" \
182                         "4:lan" "6t@eth0"
183                 ;;
184         cy-swr1100)
185                 ucidef_add_switch "switch0" \
186                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
187                 ;;
188         cs-qr10|\
189         d105|\
190         dch-m225|\
191         ex2700|\
192         hpm|\
193         mzk-ex300np|\
194         mzk-ex750np|\
195         na930|\
196         pbr-d1|\
197         wli-tx4-ag300n|\
198         wmr-300|\
199         wn3000rpv3|\
200         wrh-300cr)
201                 ucidef_set_interface_lan "eth0"
202                 ;;
203         duzun-dm06)
204                 ucidef_add_switch "switch0" \
205                         "1:lan" "0:wan" "6@eth0"
206                 ;;
207         e1700|\
208         mt7620a_mt7530)
209                 ucidef_add_switch "switch1" \
210                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
211                 ;;
212         hc5*61|\
213         y1s)
214                 ucidef_add_switch "switch0" \
215                         "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
216                 ;;
217         kn_rc|\
218         kn_rf)
219                 ucidef_add_switch "switch0" \
220                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6@eth0"
221                 ;;
222         kng_rc)
223                 ucidef_add_switch "switch1" \
224                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
225                 ;;
226         mlwg2|\
227         wizard8800|\
228         wl-330n)
229                 ucidef_set_interface_lan "eth0.1"
230                 ;;
231         mr200)
232                 ucidef_add_switch "switch0" \
233                         "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0"
234                 ucidef_set_interface_wan "usb0"
235                 ;;
236         mzk-dp150n|\
237         vocore)
238                 ucidef_add_switch "switch0" \
239                         "0:lan" "4:lan" "6t@eth0"
240                 ;;
241         newifi-d1)
242                 ucidef_add_switch "switch0" \
243                 "1:lan:2" "2:lan:1" "4:wan" "6@eth0"
244                 ;;
245         re6500)
246                 ucidef_add_switch "switch0" \
247                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "6@eth0"
248                 ;;
249         rt-n56u)
250                 ucidef_add_switch "switch0" \
251                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
252                 ;;
253         tew-691gr|\
254         tew-692gr|\
255         wlr-6000)
256                 ucidef_add_switch "switch0" \
257                         "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
258                 ;;
259         vocore2)
260                 ucidef_add_switch "switch0" \
261                         "0:lan" "2:lan" "6t@eth0"
262                 ;;
263         f5d8235-v1|\
264         tew-714tru|\
265         v11st-fe|\
266         wzr-agl300nh)
267                 ucidef_add_switch "switch0" \
268                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
269                 ;;
270         wcr-1166ds)
271                 ucidef_add_switch "switch0" \
272                         "3:lan" "4:wan" "6@eth0"
273                 ;;
274         wcr-150gn)
275                 ucidef_add_switch "switch0" \
276                         "0:lan" "6t@eth0"
277                 ;;
278         whr-1166d)
279                 ucidef_add_switch "switch0" \
280                         "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
281                 ;;
282         wizfi630a)
283                 ucidef_add_switch "switch0" \
284                         "1:lan" "2:lan" "0:wan" "6@eth0"
285                 ;;
286         *)
287                 RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
288                 if [ -n "${RT3X5X}" ]; then
289                         ramips_setup_rt3x5x_vlans
290                 else
291                         ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
292                 fi
293                 ;;
294         esac
295 }
296
297 ramips_setup_macs()
298 {
299         local board="$1"
300         local lan_mac=""
301         local wan_mac=""
302
303         case $board in
304         a5-v11|\
305         ht-tm02)
306                 lan_mac=$(cat /sys/class/net/eth0/address)
307                 ;;
308         all0239-3g|\
309         carambola|\
310         freestation5|\
311         w502u|\
312         wnce2001)
313                 wan_mac=$(mtd_get_mac_binary factory 46)
314                 ;;
315         bc2|\
316         broadway|\
317         d105|\
318         dir-300-b7|\
319         dir-320-b1|\
320         dir-620-a1|\
321         esr-9753|\
322         freestation5|\
323         hlk-rm04|\
324         mpr-a1|\
325         psr-680w|\
326         sl-r7205|\
327         y1|\
328         y1s)
329                 lan_mac=$(cat /sys/class/net/eth0/address)
330                 lan_mac=$(macaddr_setbit_la "$lan_mac")
331                 wan_mac=$(macaddr_add "$lan_mac" 1)
332                 ;;
333         br-6475nd)
334                 lan_mac=$(cat /sys/class/net/eth0/address)
335                 wan_mac=$(mtd_get_mac_binary devdata 7)
336                 ;;
337         cy-swr1100|\
338         dch-m225)
339                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
340                 ;;
341         dir-645)
342                 lan_mac=$(mtd_get_mac_ascii nvram lanmac)
343                 wan_mac=$(mtd_get_mac_ascii nvram wanmac)
344                 ;;
345         dir-860l-b1)
346                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
347                 wan_mac=$(mtd_get_mac_ascii factory wanmac)
348                 ;;
349         e1700)
350                 wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
351                 ;;
352         hc5*61|\
353         hc5661a|\
354         hc5962)
355                 lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "`
356                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
357                 wan_mac=$(macaddr_add "$lan_mac" 1)
358                 ;;
359         kn_rc|\
360         kn_rf|\
361         kng_rc)
362                 wan_mac=$(mtd_get_mac_binary factory 40)
363                 ;;
364         linkits7688 | \
365         linkits7688d)
366                 wan_mac=$(mtd_get_mac_binary factory 4)
367                 lan_mac=$(mtd_get_mac_binary factory 46)
368                 ;;
369         mac1200rv2)
370                 lan_mac=$(mtd_get_mac_binary factory_info 13)
371                 wan_mac=$(macaddr_add "$lan_mac" 1)
372                 ;;
373         miwifi-mini)
374                 wan_mac=$(cat /sys/class/net/eth0/address)
375                 lan_mac=$(macaddr_setbit_la "$wan_mac")
376                 ;;
377         m3|\
378         m4|\
379         x5|\
380         x8)
381                 lan_mac=$(cat /sys/class/net/eth0/address)
382                 lan_mac=$(macaddr_add "$lan_mac" -2)
383                 ;;
384         newifi-d1)
385                 lan_mac=$(cat /sys/class/net/eth0/address)
386                 lan_mac=$(macaddr_add "$lan_mac" 2)
387                 ;;
388         omega2|\
389         omega2p)
390                 wan_mac=$(mtd_get_mac_binary factory 4)
391                 lan_mac=$(mtd_get_mac_binary factory 46)
392                 ;;
393         oy-0001)
394                 lan_mac=$(mtd_get_mac_binary factory 40)
395                 wan_mac=$(mtd_get_mac_binary factory 46)
396                 ;;
397         rt-n56u)
398                 lan_mac=$(cat /sys/class/net/eth0/address)
399                 lan_mac=$(macaddr_setbit_la "$lan_mac")
400                 wan_mac=$(mtd_get_mac_binary factory 32772)
401                 ;;
402         sk-wb8)
403                 wan_mac=$(mtd_get_mac_binary factory 57350)
404                 ;;
405         tew-691gr)
406                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 3)
407                 ;;
408         tew-692gr)
409                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 1)
410                 ;;
411         tiny-ac)
412                 lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
413                 wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
414                 ;;
415         vr500)
416                 lan_mac=$(mtd_get_mac_binary factory 57344)
417                 wan_mac=$(mtd_get_mac_binary factory 57350)
418                 ;;
419         w306r-v20)
420                 lan_mac=$(cat /sys/class/net/eth0/address)
421                 wan_mac=$(macaddr_add "$lan_mac" 5)
422                 ;;
423         wcr-1166ds|\
424         wsr-1166)
425                 local index="$(find_mtd_index "board_data")"
426                 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
427                 lan_mac=$wan_mac
428                 ;;
429         wcr-150gn)
430                 wan_mac=$(mtd_get_mac_binary factory 40)
431                 ;;
432         whr-1166d|\
433         whr-300hp2|\
434         whr-600d|\
435         wsr-600)
436                 wan_mac=$(mtd_get_mac_binary factory 4)
437                 lan_mac=$wan_mac
438                 ;;
439         wizfi630a)
440                 lan_mac=$(mtd_get_mac_binary factory 4)
441                 wan_mac=$(mtd_get_mac_binary factory 40)
442                 ;;
443         wlr-6000)
444                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 32772)" 2)
445                 ;;
446         *)
447                 lan_mac=$(cat /sys/class/net/eth0/address)
448                 wan_mac=$(macaddr_add "$lan_mac" 1)
449                 ;;
450         esac
451
452         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
453         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
454 }
455
456 board_config_update
457 board=$(ramips_board_name)
458 ramips_setup_interfaces $board
459 ramips_setup_macs $board
460 board_config_flush
461
462 exit 0