a84ee808a3e6343b04c960df1b297107ebf3895a
[oweals/openwrt.git] / target / linux / ramips / mt7621 / 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_interfaces()
8 {
9         local board="$1"
10
11         case $board in
12         adslr,g7|\
13         afoundry,ew1200|\
14         d-team,pbr-m1|\
15         firefly,firewrt|\
16         jcg,jhr-ac876m|\
17         mediatek,ap-mt7621a-v60|\
18         mediatek,mt7621-eval-board|\
19         mqmaker,witi|\
20         mtc,wr1201|\
21         phicomm,k2p|\
22         planex,vr500|\
23         samknows,whitebox-v8|\
24         storylink,sap-g3200u3|\
25         telco-electronics,x1|\
26         totolink,a7000r|\
27         unielec,u7621-06-16m|\
28         unielec,u7621-06-64m|\
29         xiaoyu,xy-c5|\
30         xzwifi,creativebox-v1|\
31         youku,yk-l2|\
32         zbtlink,zbt-we1326|\
33         zbtlink,zbt-we3526|\
34         zbtlink,zbt-wg2626|\
35         zbtlink,zbt-wg3526-16m|\
36         zbtlink,zbt-wg3526-32m)
37                 ucidef_add_switch "switch0" \
38                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
39                 ;;
40         alfa-network,quad-e4g|\
41         netgear,r6220|\
42         netgear,r6260|\
43         netgear,r6350|\
44         netgear,r6800|\
45         netgear,r6850|\
46         netgear,wndr3700-v5|\
47         netis,wf2881|\
48         wevo,11acnas|\
49         wevo,w2914ns-v2|\
50         zio,freezio)
51                 ucidef_add_switch "switch0" \
52                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
53                 ;;
54         asiarf,ap7621-001)
55                 ucidef_add_switch "switch0" "0:lan" "4:wan" "6@eth0"
56                 ;;
57         asiarf,ap7621-nv1)
58                 ucidef_add_switch "switch0" "0:wan" "2:lan" "3:lan" "6@eth0"
59                 ;;
60         asus,rt-ac65p|\
61         asus,rt-ac57u|\
62         asus,rt-ac85p|\
63         iptime,a6ns-m|\
64         mikrotik,rb750gr3|\
65         ubiquiti,edgerouterx|\
66         ubiquiti,edgerouterx-sfp|\
67         youhua,wr1200js)
68                 ucidef_add_switch "switch0" \
69                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
70                 ;;
71         dlink,dir-860l-b1|\
72         elecom,wrc-1167ghbk2-s|\
73         elecom,wrc-1900gst|\
74         elecom,wrc-2533gst|\
75         iodata,wn-ax1167gr|\
76         iodata,wn-ax1167gr2|\
77         iodata,wn-dx1167r|\
78         iodata,wn-gx300gr|\
79         iodata,wnpr2600g|\
80         iptime,a8004t)
81                 ucidef_add_switch "switch0" \
82                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
83                 ;;
84         buffalo,wsr-1166dhp|\
85         buffalo,wsr-600dhp)
86                 ucidef_add_switch "switch0" \
87                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
88                 ;;
89         d-team,newifi-d2)
90                 ucidef_add_switch "switch0" \
91                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
92                 ;;
93         edimax,ra21s|\
94         edimax,rg21s)
95                 ucidef_add_switch "switch0" \
96                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
97                 ;;
98         gehua,ghl-r-001)
99                 ucidef_add_switch "switch0" \
100                         "0:lan" "1:lan" "2:lan" "4:wan" "6@eth0"
101                 ;;
102         gnubee,gb-pc1|\
103         gnubee,gb-pc2)
104                 ucidef_add_switch "switch0" \
105                         "0:lan" "4:lan" "6@eth0"
106                 ;;
107         hiwifi,hc5962)
108                 ucidef_add_switch "switch0" \
109                         "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
110                 ;;
111         lenovo,newifi-d1)
112                 ucidef_add_switch "switch0" \
113                 "1:lan:2" "2:lan:1" "4:wan" "6@eth0"
114                 ;;
115         linksys,re6500)
116                 ucidef_add_switch "switch0" \
117                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "6@eth0"
118                 ;;
119         mikrotik,rbm11g|\
120         thunder,timecloud)
121                 ucidef_add_switch "switch0"
122                 ucidef_add_switch_attr "switch0" "enable" "false"
123                 ucidef_set_interface_lan "eth0"
124                 ;;
125         mikrotik,rbm33g)
126                 ucidef_add_switch "switch0" \
127                         "1:lan" "2:lan" "0:wan" "6@eth0"
128                 ;;
129         netgear,ex6150|\
130         tplink,re350-v1|\
131         tplink,re650-v1)
132                 ucidef_add_switch "switch0" \
133                         "0:lan" "6@eth0"
134                 ;;
135         xiaomi,mir3g)
136                 ucidef_add_switch "switch0" \
137                         "2:lan:2" "3:lan:1" "1:wan" "6t@eth0"
138                 ;;
139         xiaomi,mir3g-v2)
140                 ucidef_add_switch "switch0" \
141                         "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
142                 ;;
143         xiaomi,mir3p)
144                 ucidef_add_switch "switch0" \
145                         "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
146                 ;;
147         *)
148                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
149                 ;;
150         esac
151 }
152
153 ramips_setup_macs()
154 {
155         local board="$1"
156         local lan_mac=""
157         local wan_mac=""
158         local label_mac=""
159
160         case $board in
161         adslr,g7)
162                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe00c)" 1)
163                 ;;
164         afoundry,ew1200|\
165         asiarf,ap7621-001|\
166         asiarf,ap7621-nv1|\
167         firefly,firewrt|\
168         gehua,ghl-r-001|\
169         mqmaker,witi|\
170         totolink,a7000r|\
171         unielec,u7621-06-16m|\
172         unielec,u7621-06-64m|\
173         xzwifi,creativebox-v1|\
174         zbtlink,zbt-wg2626)
175                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe000)" 1)
176                 ;;
177         alfa-network,quad-e4g|\
178         asus,rt-ac57u|\
179         d-team,newifi-d2|\
180         d-team,pbr-m1|\
181         elecom,wrc-1167ghbk2-s|\
182         elecom,wrc-1900gst|\
183         elecom,wrc-2533gst|\
184         lenovo,newifi-d1|\
185         netis,wf2881|\
186         phicomm,k2p|\
187         planex,vr500|\
188         samknows,whitebox-v8|\
189         youhua,wr1200js|\
190         youku,yk-l2|\
191         zbtlink,zbt-we3526)
192                 wan_mac=$(mtd_get_mac_binary factory 0xe006)
193                 ;;
194         asus,rt-ac65p|\
195         asus,rt-ac85p)
196                 wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
197                 label_mac=$(mtd_get_mac_binary factory 0x4)
198                 ;;
199         buffalo,wsr-1166dhp)
200                 local index="$(find_mtd_index "board_data")"
201                 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
202                 lan_mac=$wan_mac
203                 ;;
204         dlink,dir-860l-b1)
205                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
206                 wan_mac=$(mtd_get_mac_ascii factory wanmac)
207                 label_mac=$(mtd_get_mac_binary radio 0x4)
208                 ;;
209         edimax,ra21s|\
210         edimax,rg21s)
211                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
212                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
213                 ;;
214         hiwifi,hc5962)
215                 lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
216                 label_mac=$lan_mac
217                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
218                 wan_mac=$(macaddr_add "$lan_mac" 1)
219                 ;;
220         iodata,wn-ax1167gr|\
221         iodata,wn-gx300gr|\
222         mtc,wr1201|\
223         netgear,r6220|\
224         netgear,wndr3700-v5|\
225         xiaoyu,xy-c5)
226                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
227                 ;;
228         iodata,wn-ax1167gr2|\
229         iodata,wn-dx1167r|\
230         xiaomi,mir3g-v2)
231                 wan_mac=$(mtd_get_mac_binary factory 0xe006)
232                 label_mac=$wan_mac
233                 ;;
234         iodata,wnpr2600g)
235                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
236                 label_mac=$wan_mac
237                 ;;
238         iptime,a6ns-m|\
239         iptime,a8004t)
240                 wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
241                 ;;
242         jcg,jhr-ac876m)
243                 label_mac=$(mtd_get_mac_binary factory 0x4)
244                 wan_mac=$label_mac
245                 ;;
246         mediatek,ap-mt7621a-v60)
247                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x5)" 1)
248                 ;;
249         mikrotik,rb750gr3|\
250         mikrotik,rbm33g)
251                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary hard_config 0x10)" 2)
252                 label_mac=$(mtd_get_mac_binary hard_config 0x10)
253                 ;;
254         netgear,r6260|\
255         netgear,r6350|\
256         netgear,r6800|\
257         netgear,r6850)
258                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 2)
259                 ;;
260         storylink,sap-g3200u3|\
261         telco-electronics,x1)
262                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe006)" 1)
263                 ;;
264         ubiquiti,edgerouterx|\
265         ubiquiti,edgerouterx-sfp)
266                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x22)" 1)
267                 ;;
268         wevo,11acnas|\
269         wevo,w2914ns-v2|\
270         zio,freezio)
271                 wan_mac=$(mtd_get_mac_binary factory 0x2e)
272                 label_mac=$wan_mac
273                 ;;
274         xiaomi,mir3g|\
275         xiaomi,mir3p)
276                 lan_mac=$(mtd_get_mac_binary factory 0xe006)
277                 label_mac=$lan_mac
278                 ;;
279         zbtlink,zbt-we1326)
280                 wan_mac=$(mtd_get_mac_binary factory 0xe006)
281                 label_mac=$(mtd_get_mac_binary factory 0x4)
282                 ;;
283         zbtlink,zbt-wg3526-16m|\
284         zbtlink,zbt-wg3526-32m)
285                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe000)" 1)
286                 label_mac=$(mtd_get_mac_binary factory 0x4)
287                 ;;
288         esac
289
290         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
291         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
292         [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
293 }
294
295 board_config_update
296 board=$(board_name)
297 ramips_setup_interfaces $board
298 ramips_setup_macs $board
299 board_config_flush
300
301 exit 0