5c110b375e85b9dfdba41786f74995fda60c227a
[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 accton,wr6202|\
172 airlive,air3gii|\
173 argus,atp-52b|\
174 asiarf,awapn2403|\
175 asiarf,awm002-evb-4m|\
176 asiarf,awm002-evb-8m|\
177 asus,rt-g32-b1|\
178 asus,rt-n10-plus|\
179 asus,rt-n13u|\
180 asus,wl-330n3g|\
181 aztech,hw550-3g|\
182 belkin,f5d8235-v2|\
183 belkin,f7c027|\
184 dlink,dap-1350|\
185 dlink,dir-300-b1|\
186 dlink,dir-600-b1|\
187 dlink,dir-610-a1|\
188 dlink,dir-620-d1|\
189 dlink,dwr-512-b|\
190 edimax,3g-6200n|\
191 edimax,3g-6200nl|\
192 fon,fonera-20n|\
193 huawei,hg255d|\
194 jcg,jhr-n805r|\
195 jcg,jhr-n825r|\
196 jcg,jhr-n926r|\
197 mofinetwork,mofi3500-3gn|\
198 netcore,nw718|\
199 nexx,wt1520-4m|\
200 nexx,wt1520-8m|\
201 nixcore,x1-16m|\
202 nixcore,x1-8m|\
203 olimex,rt5350f-olinuxino|\
204 olimex,rt5350f-olinuxino-evb|\
205 omnima,miniembplug|\
206 omnima,miniembwifi|\
207 planex,mzk-w300nh2|\
208 planex,mzk-wdpr|\
209 poray,ip2202|\
210 prolink,pwh2004|\
211 ralink,v22rw-2x2|\
212 sitecom,wl-351|\
213 teltonika,rut5xx|\
214 trendnet,tew-714tru|\
215 unbranded,wr512-3gn-4m|\
216 unbranded,wr512-3gn-8m|\
217 unbranded,xdx-rn502j|\
218 upvel,ur-326n4g|\
219 upvel,ur-336un|\
220 zyxel,keenetic|\
221 zyxel,nbg-419n|\
222 zyxel,nbg-419n-v2)
223 wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 1)
224 ;;
225 8devices,carambola|\
226 alfa-network,w502u|\
227 arcwireless,freestation5|\
228 netgear,wnce2001)
229 wan_mac=$(mtd_get_mac_binary factory 0x2e)
230 ;;
231 dlink,dir-300-b7|\
232 dlink,dir-320-b1|\
233 dlink,dir-620-a1|\
234 engenius,esr-9753|\
235 hame,mpr-a1|\
236 hauppauge,broadway|\
237 huawei,d105|\
238 hilink,hlk-rm04|\
239 nexaira,bc2|\
240 petatel,psr-680w|\
241 skyline,sl-r7205)
242 lan_mac=$(macaddr_setbit_la "$(cat /sys/class/net/eth0/address)")
243 wan_mac=$(macaddr_add "$lan_mac" 1)
244 ;;
245 dlink,dir-615-d|\
246 dlink,dir-615-h1)
247 wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 1)
248 label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
249 ;;
250 poray,m3|\
251 poray,m4-4m|\
252 poray,m4-8m|\
253 poray,x5|\
254 poray,x8)
255 lan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" -2)
256 ;;
257 sparklan,wcr-150gn|\
258 wiznet,wizfi630a)
259 wan_mac=$(mtd_get_mac_binary factory 0x28)
260 ;;
261 tenda,w306r-v2)
262 wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 5)
263 ;;
264 esac
265
266 [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
267 [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
268 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
269 }
270
271 board_config_update
272 board=$(board_name)
273 ramips_setup_interfaces $board
274 ramips_setup_macs $board
275 board_config_flush
276
277 exit 0