02_network 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. #!/bin/sh
  2. . /lib/functions/system.sh
  3. . /lib/functions/uci-defaults.sh
  4. . /lib/functions/k2t.sh
  5. ath79_setup_interfaces()
  6. {
  7. local board="$1"
  8. case "$board" in
  9. adtran,bsap1800-v2|\
  10. adtran,bsap1840|\
  11. allnet,all-wap02860ac|\
  12. alfa-network,ap121f|\
  13. alfa-network,pi-wifi4|\
  14. arduino,yun|\
  15. aruba,ap-105|\
  16. avm,fritz1750e|\
  17. avm,fritz300e|\
  18. avm,fritzdvbc|\
  19. comfast,cf-wr752ac-v1|\
  20. comfast,cf-e130n-v2|\
  21. devolo,dvl1200i|\
  22. devolo,dvl1750c|\
  23. devolo,dvl1750i|\
  24. devolo,dvl1750x|\
  25. dlink,dap-1330-a1|\
  26. dlink,dap-1365-a1|\
  27. dlink,dir-505|\
  28. engenius,eap300-v2|\
  29. engenius,eap350-v1|\
  30. engenius,eap600|\
  31. engenius,ecb1200|\
  32. engenius,ecb1750|\
  33. engenius,ecb350-v1|\
  34. engenius,ecb600|\
  35. enterasys,ws-ap3705i|\
  36. glinet,gl-ar300m-lite|\
  37. glinet,gl-usb150|\
  38. hak5,wifi-pineapple-nano|\
  39. meraki,mr16|\
  40. netgear,ex6400|\
  41. netgear,ex7300|\
  42. ocedo,koala|\
  43. ocedo,raccoon|\
  44. pcs,cap324|\
  45. pisen,ts-d084|\
  46. pisen,wmb001n|\
  47. pisen,wmm003n|\
  48. siemens,ws-ap3610|\
  49. tplink,cpe210-v2|\
  50. tplink,cpe210-v3|\
  51. tplink,cpe510-v2|\
  52. tplink,cpe510-v3|\
  53. tplink,cpe610-v1|\
  54. tplink,cpe610-v2|\
  55. tplink,eap225-outdoor-v1|\
  56. tplink,eap225-v3|\
  57. tplink,eap245-v1|\
  58. tplink,re350k-v1|\
  59. tplink,re355-v1|\
  60. tplink,re450-v1|\
  61. tplink,re450-v2|\
  62. tplink,re450-v3|\
  63. tplink,tl-wr902ac-v1|\
  64. ubnt,bullet-m-ar7240|\
  65. ubnt,bullet-m-ar7241|\
  66. ubnt,bullet-m-xw|\
  67. ubnt,lap-120|\
  68. ubnt,litebeam-ac-gen2|\
  69. ubnt,nanobeam-ac|\
  70. ubnt,nanobridge-m|\
  71. ubnt,nanostation-ac-loco|\
  72. ubnt,nanostation-loco-m|\
  73. ubnt,nanostation-loco-m-xw|\
  74. ubnt,picostation-m|\
  75. ubnt,powerbeam-5ac-500|\
  76. ubnt,powerbeam-5ac-gen2|\
  77. ubnt,powerbridge-m|\
  78. ubnt,rocket-m|\
  79. ubnt,unifiac-lite|\
  80. ubnt,unifiac-lr|\
  81. ubnt,unifiac-mesh|\
  82. ubnt,unifi|\
  83. wd,mynet-wifi-rangeextender|\
  84. winchannel,wb2000)
  85. ucidef_set_interface_lan "eth0"
  86. ;;
  87. airtight,c-75)
  88. ucidef_add_switch "switch0" \
  89. "0@eth0" "2:wan" "3:lan" "6@eth1"
  90. ;;
  91. alfa-network,ap121fe)
  92. ucidef_set_interface_lan "eth0 usb0"
  93. ;;
  94. alfa-network,n2q|\
  95. alfa-network,n5q|\
  96. devolo,dvl1200e|\
  97. devolo,dvl1750e|\
  98. ocedo,ursus)
  99. ucidef_set_interface_lan "eth0 eth1"
  100. ;;
  101. avm,fritz4020|\
  102. pcs,cr3000|\
  103. tplink,archer-c58-v1|\
  104. tplink,archer-c59-v1|\
  105. tplink,archer-c59-v2)
  106. ucidef_set_interface_wan "eth1"
  107. ucidef_add_switch "switch0" \
  108. "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  109. ;;
  110. belkin,f9j1108-v2|\
  111. belkin,f9k1115-v2|\
  112. tplink,archer-c5-v1|\
  113. tplink,archer-c7-v1|\
  114. tplink,archer-c7-v2|\
  115. tplink,tl-wdr4900-v2|\
  116. tplink,tl-wdr7500-v3)
  117. ucidef_add_switch "switch0" \
  118. "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
  119. ;;
  120. buffalo,bhr-4grv|\
  121. buffalo,wzr-hp-g450h)
  122. ucidef_add_switch "switch0" \
  123. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  124. ;;
  125. buffalo,bhr-4grv2|\
  126. trendnet,tew-823dru)
  127. ucidef_add_switch "switch0" \
  128. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
  129. ;;
  130. buffalo,wzr-600dhp|\
  131. buffalo,wzr-hp-ag300h|\
  132. tplink,archer-c25-v1|\
  133. tplink,archer-c60-v1|\
  134. tplink,archer-c60-v2|\
  135. tplink,archer-c60-v3|\
  136. tplink,tl-wdr3500-v1|\
  137. tplink,tl-wr842n-v1|\
  138. tplink,tl-wr842n-v3|\
  139. ubnt,airrouter)
  140. ucidef_set_interface_wan "eth1"
  141. ucidef_add_switch "switch0" \
  142. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  143. ;;
  144. buffalo,wzr-hp-g302h-a1a0)
  145. ucidef_add_switch "switch0" \
  146. "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
  147. ;;
  148. comfast,cf-e110n-v2|\
  149. comfast,cf-e120a-v3|\
  150. comfast,cf-e314n-v2|\
  151. compex,wpj531-16m|\
  152. openmesh,om2p-v4|\
  153. plasmacloud,pa300|\
  154. plasmacloud,pa300e|\
  155. tplink,cpe210-v1|\
  156. tplink,cpe220-v2|\
  157. tplink,cpe220-v3|\
  158. tplink,cpe510-v1|\
  159. tplink,wbs210-v1|\
  160. tplink,wbs210-v2|\
  161. tplink,wbs510-v1|\
  162. tplink,wbs510-v2|\
  163. ubnt,nanostation-m|\
  164. ubnt,routerstation)
  165. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  166. ;;
  167. comfast,cf-e560ac)
  168. ucidef_set_interface_wan "eth1"
  169. ucidef_add_switch "switch0" \
  170. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  171. ;;
  172. comfast,cf-wr650ac-v1|\
  173. comfast,cf-wr650ac-v2|\
  174. zyxel,nbg6616)
  175. ucidef_add_switch "switch0" \
  176. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
  177. ;;
  178. compex,wpj344-16m|\
  179. compex,wpj563)
  180. ucidef_add_switch "switch0" \
  181. "0@eth0" "3:lan" "2:wan"
  182. ;;
  183. devolo,magic-2-wifi)
  184. ucidef_add_switch "switch0" \
  185. "0@eth0" "2:wan" "3:lan" "4:lan"
  186. ;;
  187. dlink,dap-2695-a1)
  188. ucidef_add_switch "switch0" "0@eth0" "2:lan" "3:wan" "6@eth1"
  189. ;;
  190. dlink,dch-g020-a1)
  191. ucidef_add_switch "switch0" \
  192. "0@eth0" "1:lan:2" "2:lan:1"
  193. ;;
  194. dlink,dir-825-b1)
  195. ucidef_set_interface_wan "eth1"
  196. ucidef_add_switch "switch0" \
  197. "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
  198. ;;
  199. dlink,dir-825-c1|\
  200. dlink,dir-835-a1|\
  201. dlink,dir-842-c1|\
  202. dlink,dir-842-c2|\
  203. dlink,dir-842-c3|\
  204. dlink,dir-859-a1|\
  205. engenius,epg5000|\
  206. tplink,archer-c2-v3|\
  207. tplink,tl-wr1043nd-v4|\
  208. tplink,tl-wr1043n-v5)
  209. ucidef_add_switch "switch0" \
  210. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  211. ;;
  212. elecom,wrc-1750ghbk2-i|\
  213. elecom,wrc-300ghbk2-i|\
  214. sitecom,wlr-8100)
  215. ucidef_add_switch "switch0" \
  216. "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
  217. ;;
  218. embeddedwireless,dorin)
  219. ucidef_add_switch "switch0" \
  220. "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
  221. ;;
  222. engenius,enh202-v1)
  223. ucidef_set_interface_wan "eth0"
  224. ucidef_add_switch "switch0" \
  225. "0@eth1" "4:lan:1"
  226. ;;
  227. engenius,ens202ext-v1)
  228. ucidef_set_interface_wan "eth1"
  229. ucidef_add_switch "switch0" \
  230. "0@eth0" "1:lan"
  231. ;;
  232. engenius,ews511ap)
  233. ucidef_set_interface_lan "eth0 eth1" "dhcp"
  234. ;;
  235. etactica,eg200)
  236. ucidef_set_interface_lan "eth0" "dhcp"
  237. ;;
  238. glinet,gl-ar750)
  239. ucidef_set_interface_wan "eth1"
  240. ucidef_add_switch "switch0" \
  241. "0@eth0" "1:lan" "2:lan"
  242. ;;
  243. iodata,etg3-r|\
  244. iodata,wn-ac1167dgr|\
  245. iodata,wn-ac1600dgr|\
  246. iodata,wn-ac1600dgr2|\
  247. iodata,wn-ag300dgr|\
  248. pcs,cr5000|\
  249. sitecom,wlr-7100|\
  250. wd,mynet-n750)
  251. ucidef_add_switch "switch0" \
  252. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  253. ;;
  254. librerouter,librerouter-v1)
  255. ucidef_add_switch "switch0" \
  256. "0@eth0" "5:wan" "6@eth1" "4:lan"
  257. ;;
  258. mercury,mw4530r-v1|\
  259. tplink,archer-a7-v5|\
  260. tplink,archer-c6-v2|\
  261. tplink,archer-c6-v2-us|\
  262. tplink,archer-c7-v4|\
  263. tplink,archer-c7-v5|\
  264. tplink,tl-wdr3600-v1|\
  265. tplink,tl-wdr4300-v1|\
  266. tplink,tl-wdr4300-v1-il|\
  267. tplink,tl-wdr4310-v1)
  268. ucidef_add_switch "switch0" \
  269. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  270. ;;
  271. nec,wg1200cr|\
  272. qxwlan,e1700ac-v2-8m|\
  273. qxwlan,e1700ac-v2-16m|\
  274. qxwlan,e750g-v8-8m|\
  275. qxwlan,e750g-v8-16m|\
  276. ubnt,nanobeam-ac-gen2|\
  277. ubnt,nanostation-ac|\
  278. yuncore,a782|\
  279. yuncore,xd4200)
  280. ucidef_add_switch "switch0" \
  281. "0@eth0" "2:lan" "3:wan"
  282. ;;
  283. nec,wg800hp)
  284. ucidef_add_switch "switch0" \
  285. "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
  286. ;;
  287. netgear,wndr3700|\
  288. netgear,wndr3700-v2|\
  289. netgear,wndr3800|\
  290. netgear,wndr3800ch|\
  291. netgear,wndrmac-v1|\
  292. netgear,wndrmac-v2)
  293. ucidef_set_interface_wan "eth1"
  294. ucidef_add_switch "switch0" \
  295. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
  296. ucidef_add_switch_attr "switch0" "blinkrate" 2
  297. ucidef_add_switch_port_attr "switch0" 1 led 6
  298. ucidef_add_switch_port_attr "switch0" 2 led 9
  299. ucidef_add_switch_port_attr "switch0" 5 led 2
  300. ;;
  301. netgear,wnr2200-8m|\
  302. netgear,wnr2200-16m)
  303. ucidef_set_interface_wan "eth0"
  304. ucidef_add_switch "switch0" \
  305. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  306. ;;
  307. phicomm,k2t)
  308. ucidef_add_switch "switch0" \
  309. "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
  310. ;;
  311. qihoo,c301)
  312. ucidef_set_interface_wan "eth1"
  313. ucidef_add_switch "switch0" \
  314. "0@eth0" "2:lan" "3:lan"
  315. ;;
  316. qxwlan,e558-v2-8m|\
  317. qxwlan,e558-v2-16m)
  318. ucidef_add_switch "switch0" \
  319. "0@eth1" "4:lan" "5:lan" "6@eth0" "3:wan"
  320. ;;
  321. rosinson,wr818)
  322. ucidef_add_switch "switch0" \
  323. "0@eth0" "1:lan" "2:lan" "3:wan"
  324. ;;
  325. teltonika,rut955|\
  326. teltonika,rut955-h7v3c0)
  327. ucidef_set_interface_wan "eth1"
  328. ucidef_add_switch "switch0" \
  329. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
  330. ;;
  331. tplink,archer-d50-v1)
  332. ucidef_add_switch "switch0" \
  333. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
  334. ;;
  335. tplink,archer-d7-v1|\
  336. tplink,archer-d7b-v1)
  337. ucidef_add_switch "switch0" \
  338. "0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
  339. ;;
  340. tplink,eap225-wall-v2)
  341. ucidef_add_switch "switch0" \
  342. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  343. ;;
  344. tplink,eap245-v3)
  345. ucidef_add_switch "switch0" \
  346. "0@eth0" "2:lan:1" "5:lan:2"
  347. ;;
  348. tplink,tl-mr6400-v1)
  349. ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
  350. ucidef_add_switch "switch0" \
  351. "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
  352. ;;
  353. tplink,tl-wpa8630-v1|\
  354. tplink,tl-wpa8630p-v2-int|\
  355. tplink,tl-wpa8630p-v2.0-eu|\
  356. tplink,tl-wpa8630p-v2.1-eu)
  357. # port 5 (internal) is the power-line port
  358. ucidef_add_switch "switch0" \
  359. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
  360. ;;
  361. tplink,tl-wr842n-v2)
  362. ucidef_set_interface_wan "eth1"
  363. ucidef_add_switch "switch0" \
  364. "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  365. ;;
  366. tplink,tl-wr1043nd-v1)
  367. ucidef_add_switch "switch0" \
  368. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  369. ;;
  370. tplink,tl-wr1043nd-v2|\
  371. tplink,tl-wr1043nd-v3|\
  372. tplink,tl-wr1045nd-v2)
  373. ucidef_add_switch "switch0" \
  374. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  375. ;;
  376. tplink,tl-wr2543-v1)
  377. ucidef_add_switch "switch0" \
  378. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  379. ;;
  380. ubnt,aircube-ac)
  381. ucidef_add_switch "switch0" \
  382. "0@eth0" "2:lan:1" "3:lan:2" "5:lan:3" "4:wan"
  383. ;;
  384. ubnt,aircube-isp)
  385. ucidef_set_interface_wan "eth1"
  386. ucidef_add_switch "switch0" \
  387. "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
  388. ;;
  389. ubnt,edgeswitch-5xp)
  390. ucidef_set_interface_wan "eth1"
  391. ucidef_add_switch "switch0" \
  392. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  393. ;;
  394. ubnt,edgeswitch-8xp)
  395. ucidef_set_interface_wan "eth1"
  396. ucidef_add_switch "switch0" \
  397. "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:lan:5" "5:lan:6" "6:lan:7" "7:lan:8" "8@eth0"
  398. ;;
  399. ubnt,routerstation-pro)
  400. ucidef_set_interface_wan "eth0"
  401. ucidef_add_switch "switch0" \
  402. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  403. ;;
  404. ubnt,nanostation-m-xw)
  405. ucidef_add_switch "switch0" \
  406. "0@eth0" "5:lan" "1:wan"
  407. ;;
  408. ubnt,unifiac-mesh-pro|\
  409. ubnt,unifiac-pro)
  410. ucidef_add_switch "switch0" \
  411. "0@eth0" "2:lan:1" "3:lan:2"
  412. ;;
  413. ubnt,unifi-ap-pro)
  414. ucidef_add_switch "switch0" \
  415. "0@eth0" "1:lan" "2:lan"
  416. ;;
  417. zbtlink,zbt-wd323|\
  418. xiaomi,mi-router-4q)
  419. ucidef_set_interface_wan "eth1"
  420. ucidef_add_switch "switch0" \
  421. "0@eth0" "3:lan:1" "4:lan:2"
  422. ;;
  423. *)
  424. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  425. ;;
  426. esac
  427. }
  428. ath79_setup_macs()
  429. {
  430. local board="$1"
  431. case "$board" in
  432. adtran,bsap1800-v2|\
  433. adtran,bsap1840)
  434. lan_mac=$(mtd_get_mac_binary "Board data" 2)
  435. label_mac=$lan_mac
  436. ;;
  437. alfa-network,ap121f|\
  438. alfa-network,ap121fe|\
  439. alfa-network,n2q|\
  440. alfa-network,n5q|\
  441. alfa-network,pi-wifi4|\
  442. alfa-network,r36a|\
  443. engenius,eap300-v2|\
  444. engenius,ens202ext-v1)
  445. label_mac=$(mtd_get_mac_binary art 0x1002)
  446. ;;
  447. arduino,yun)
  448. base_mac=$(mtd_get_mac_binary art 0x1002)
  449. lan_mac=$(macaddr_setbit $base_mac 29)
  450. [ $lan_mac = $base_mac ] && lan_mac=$(macaddr_unsetbit $base_mac 29)
  451. ;;
  452. avm,fritz1750e|\
  453. avm,fritz450e|\
  454. avm,fritzdvbc)
  455. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  456. ;;
  457. avm,fritz300e)
  458. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  459. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  460. ;;
  461. avm,fritz4020)
  462. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  463. wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
  464. ;;
  465. compex,wpj344-16m|\
  466. compex,wpj563)
  467. wan_mac=$(mtd_get_mac_binary u-boot 0x2e018)
  468. ;;
  469. devolo,magic-2-wifi)
  470. label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
  471. ;;
  472. dlink,dap-1330-a1|\
  473. dlink,dap-1365-a1|\
  474. dlink,dch-g020-a1)
  475. lan_mac=$(mtd_get_mac_text "mp" 0x1)
  476. label_mac=$lan_mac
  477. ;;
  478. dlink,dap-2660-a1)
  479. lan_mac=$(mtd_get_mac_ascii bdcfg "lanmac")
  480. label_mac=$lan_mac
  481. ;;
  482. dlink,dap-2695-a1)
  483. label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
  484. ;;
  485. dlink,dir-825-b1)
  486. lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
  487. wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
  488. ;;
  489. dlink,dir-505)
  490. lan_mac=$(mtd_get_mac_text "mac" 0x4)
  491. ;;
  492. dlink,dir-825-c1|\
  493. dlink,dir-835-a1)
  494. lan_mac=$(mtd_get_mac_text "mac" 0x4)
  495. wan_mac=$(mtd_get_mac_text "mac" 0x18)
  496. ;;
  497. dlink,dir-842-c1|\
  498. dlink,dir-842-c2|\
  499. dlink,dir-842-c3|\
  500. nec,wg1200cr)
  501. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  502. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  503. label_mac=$lan_mac
  504. ;;
  505. dlink,dir-859-a1|\
  506. qihoo,c301|\
  507. wd,mynet-n750)
  508. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  509. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  510. ;;
  511. elecom,wrc-1750ghbk2-i|\
  512. elecom,wrc-300ghbk2-i)
  513. wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" -2)
  514. ;;
  515. engenius,ecb1200|\
  516. engenius,ecb1750)
  517. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  518. label_mac=$lan_mac
  519. ;;
  520. engenius,enh202-v1|\
  521. ubnt,airrouter|\
  522. ubnt,bullet-m-ar7240|\
  523. ubnt,bullet-m-ar7241|\
  524. ubnt,nanobridge-m|\
  525. ubnt,nanostation-loco-m|\
  526. ubnt,nanostation-m|\
  527. ubnt,picostation-m|\
  528. ubnt,powerbridge-m|\
  529. ubnt,rocket-m|\
  530. ubnt,unifi)
  531. label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
  532. ;;
  533. engenius,epg5000)
  534. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  535. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  536. ;;
  537. engenius,ews511ap)
  538. lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
  539. eth1_mac=$(macaddr_add "$lan_mac" 1)
  540. ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
  541. ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
  542. ;;
  543. enterasys,ws-ap3705i)
  544. label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
  545. ;;
  546. hak5,lan-turtle|\
  547. hak5,packet-squirrel)
  548. label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  549. ;;
  550. iodata,etg3-r)
  551. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  552. wan_mac=$(macaddr_add "$lan_mac" -1)
  553. label_mac=$wan_mac
  554. ;;
  555. iodata,wn-ac1167dgr|\
  556. iodata,wn-ac1600dgr|\
  557. iodata,wn-ac1600dgr2|\
  558. iodata,wn-ag300dgr)
  559. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  560. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  561. label_mac=$wan_mac
  562. ;;
  563. jjplus,ja76pf2)
  564. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
  565. lan_mac=$(macaddr_add "$wan_mac" 1)
  566. ;;
  567. mercury,mw4530r-v1|\
  568. tplink,tl-wdr3600-v1|\
  569. tplink,tl-wdr4300-v1|\
  570. tplink,tl-wdr4300-v1-il)
  571. base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  572. wan_mac=$(macaddr_add "$base_mac" 1)
  573. ;;
  574. nec,wg800hp)
  575. lan_mac=$(mtd_get_mac_text board_data 0x280)
  576. wan_mac=$(mtd_get_mac_text board_data 0x480)
  577. label_mac=$wan_mac
  578. ;;
  579. netgear,wndr3700|\
  580. netgear,wndr3700-v2|\
  581. netgear,wndr3800|\
  582. netgear,wndrmac-v1|\
  583. netgear,wndrmac-v2)
  584. lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
  585. ;;
  586. phicomm,k2t)
  587. lan_mac=$(k2t_get_mac "lan_mac")
  588. wan_mac=$(k2t_get_mac "wan_mac")
  589. ;;
  590. rosinson,wr818)
  591. wan_mac=$(mtd_get_mac_binary factory 0x0)
  592. lan_mac=$(macaddr_setbit_la "$wan_mac")
  593. ;;
  594. sitecom,wlr-7100|\
  595. sitecom,wlr-8100)
  596. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  597. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  598. label_mac=$lan_mac
  599. ;;
  600. tplink,archer-a7-v5|\
  601. tplink,archer-c7-v4|\
  602. tplink,archer-c7-v5|\
  603. tplink,tl-wr1043nd-v4|\
  604. tplink,tl-wr1043n-v5)
  605. base_mac=$(mtd_get_mac_binary info 0x8)
  606. wan_mac=$(macaddr_add "$base_mac" 1)
  607. ;;
  608. trendnet,tew-823dru)
  609. lan_mac=$(mtd_get_mac_text mac 0x4)
  610. wan_mac=$(mtd_get_mac_text mac 0x18)
  611. label_mac=$wan_mac
  612. ;;
  613. ubnt,litebeam-ac-gen2|\
  614. ubnt,nanobeam-ac-gen2|\
  615. ubnt,powerbeam-5ac-500|\
  616. ubnt,powerbeam-5ac-gen2)
  617. label_mac=$(mtd_get_mac_binary art 0x5006)
  618. ;;
  619. ubnt,routerstation|\
  620. ubnt,routerstation-pro)
  621. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
  622. lan_mac=$(macaddr_add "$wan_mac" 1)
  623. ;;
  624. wd,mynet-wifi-rangeextender)
  625. lan_mac=$(nvram get et0macaddr)
  626. ;;
  627. zyxel,nbg6616)
  628. label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  629. ;;
  630. esac
  631. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  632. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  633. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  634. }
  635. board_config_update
  636. board=$(board_name)
  637. ath79_setup_interfaces $board
  638. ath79_setup_macs $board
  639. board_config_flush
  640. exit 0