02_network 16 KB

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