02_network 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  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. alfa-network,tube-2hq|\
  14. araknis,an-300-ap-i-n|\
  15. araknis,an-500-ap-i-ac|\
  16. araknis,an-700-ap-i-ac|\
  17. arduino,yun|\
  18. aruba,ap-105|\
  19. aruba,ap-175|\
  20. asus,rp-ac51|\
  21. asus,rp-ac66|\
  22. avm,fritz1750e|\
  23. avm,fritz300e|\
  24. avm,fritzdvbc|\
  25. comfast,cf-wr752ac-v1|\
  26. comfast,cf-e130n-v2|\
  27. comfast,cf-e380ac-v2|\
  28. devolo,dvl1200i|\
  29. devolo,dvl1750c|\
  30. devolo,dvl1750i|\
  31. devolo,dvl1750x|\
  32. dlink,dap-1330-a1|\
  33. dlink,dap-1365-a1|\
  34. dlink,dap-1720-a1|\
  35. dlink,dap-2230-a1|\
  36. dlink,dap-2660-a1|\
  37. dlink,dap-2680-a1|\
  38. dlink,dap-3320-a1|\
  39. dlink,dir-505|\
  40. engenius,eap1200h|\
  41. engenius,eap1750h|\
  42. engenius,eap600|\
  43. engenius,ecb1200|\
  44. engenius,ecb1750|\
  45. engenius,ecb600|\
  46. enterasys,ws-ap3705i|\
  47. extreme-networks,ws-ap3805i|\
  48. fortinet,fap-220-b|\
  49. fortinet,fap-221-b|\
  50. glinet,gl-ar300m-lite|\
  51. glinet,gl-usb150|\
  52. hak5,wifi-pineapple-nano|\
  53. meraki,mr16|\
  54. netgear,ex7300|\
  55. netgear,ex7300-v2|\
  56. netgear,wndap360|\
  57. ocedo,koala|\
  58. ocedo,raccoon|\
  59. onion,omega|\
  60. openmesh,mr600-v1|\
  61. openmesh,mr600-v2|\
  62. openmesh,mr900-v1|\
  63. openmesh,mr900-v2|\
  64. openmesh,mr1750-v1|\
  65. openmesh,mr1750-v2|\
  66. pcs,cap324|\
  67. pisen,ts-d084|\
  68. pisen,wmb001n|\
  69. pisen,wmm003n|\
  70. ruckus,zf7321|\
  71. ruckus,zf7341|\
  72. ruckus,zf7351|\
  73. siemens,ws-ap3610|\
  74. sophos,ap15|\
  75. sophos,ap55|\
  76. sophos,ap55c|\
  77. sophos,ap100|\
  78. sophos,ap100c|\
  79. tplink,cpe210-v2|\
  80. tplink,cpe210-v3|\
  81. tplink,cpe510-v2|\
  82. tplink,cpe510-v3|\
  83. tplink,cpe605-v1|\
  84. tplink,cpe610-v1|\
  85. tplink,cpe610-v2|\
  86. tplink,cpe710-v1|\
  87. tplink,eap225-outdoor-v1|\
  88. tplink,eap225-outdoor-v3|\
  89. tplink,eap225-v1|\
  90. tplink,eap225-v3|\
  91. tplink,eap225-v4|\
  92. tplink,eap245-v1|\
  93. tplink,re350k-v1|\
  94. tplink,re355-v1|\
  95. tplink,re450-v1|\
  96. tplink,re450-v2|\
  97. tplink,re450-v3|\
  98. tplink,re455-v1|\
  99. tplink,tl-wa1201-v2|\
  100. tplink,tl-wr902ac-v1|\
  101. ubnt,bullet-ac|\
  102. ubnt,bullet-m-xw|\
  103. ubnt,lap-120|\
  104. ubnt,litebeam-ac-gen2|\
  105. ubnt,nanobeam-ac|\
  106. ubnt,nanobeam-ac-xc|\
  107. ubnt,nanostation-ac-loco|\
  108. ubnt,nanostation-loco-m-xw|\
  109. ubnt,powerbeam-5ac-500|\
  110. ubnt,powerbeam-5ac-gen2|\
  111. ubnt,powerbeam-m2-xw|\
  112. ubnt,powerbeam-m5-xw|\
  113. ubnt,powerbridge-m|\
  114. ubnt,rocket-5ac-lite|\
  115. ubnt,rocket-m|\
  116. ubnt,unifiac-lite|\
  117. ubnt,unifiac-lr|\
  118. ubnt,unifiac-mesh|\
  119. ubnt,unifi|\
  120. watchguard,ap100|\
  121. watchguard,ap200|\
  122. watchguard,ap300|\
  123. wd,mynet-wifi-rangeextender|\
  124. winchannel,wb2000|\
  125. zyxel,nwa1100-nh|\
  126. zyxel,nwa1121-ni|\
  127. zyxel,nwa1123-ac|\
  128. zyxel,nwa1123-ni)
  129. ucidef_set_interface_lan "eth0"
  130. ;;
  131. airtight,c-75)
  132. ucidef_add_switch "switch0" \
  133. "0@eth0" "2:wan" "3:lan" "6@eth1"
  134. ;;
  135. alfa-network,ap121fe)
  136. ucidef_set_interface_lan "eth0 usb0"
  137. ;;
  138. alfa-network,n2q|\
  139. alfa-network,n5q|\
  140. devolo,dvl1200e|\
  141. devolo,dvl1750e|\
  142. engenius,enstationac-v1|\
  143. engenius,ews511ap|\
  144. engenius,ews660ap|\
  145. ocedo,ursus|\
  146. ruckus,zf7363|\
  147. ruckus,zf7372|\
  148. ubnt,unifi-ap-outdoor-plus)
  149. ucidef_set_interface_lan "eth0 eth1"
  150. ;;
  151. asus,pl-ac56)
  152. # port 6 (internal) is the power-line port
  153. ucidef_add_switch "switch0" \
  154. "0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "6:lan:4"
  155. ;;
  156. asus,zenwifi-cd6n)
  157. ucidef_add_switch "switch0" \
  158. "0@eth0" "1:lan:1" "4:lan:2"
  159. ;;
  160. asus,zenwifi-cd6r)
  161. ucidef_add_switch "switch0" \
  162. "0@eth0" "1:lan:2" "3:lan:1" "4:lan:3" "2:wan"
  163. ;;
  164. atheros,db120)
  165. ucidef_add_switch "switch0" \
  166. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  167. ucidef_add_switch "switch1" \
  168. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  169. ;;
  170. avm,fritz4020|\
  171. pcs,cr3000|\
  172. tplink,archer-c58-v1|\
  173. tplink,archer-c59-v1|\
  174. tplink,archer-c59-v2|\
  175. wd,mynet-n600)
  176. ucidef_set_interface_wan "eth1"
  177. ucidef_add_switch "switch0" \
  178. "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  179. ;;
  180. belkin,f9j1108-v2|\
  181. belkin,f9k1115-v2|\
  182. tplink,archer-c5-v1|\
  183. tplink,archer-c7-v1|\
  184. tplink,archer-c7-v2|\
  185. tplink,tl-wdr4900-v2|\
  186. tplink,tl-wdr7500-v3)
  187. ucidef_add_switch "switch0" \
  188. "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
  189. ;;
  190. buffalo,bhr-4grv|\
  191. buffalo,wzr-hp-g450h)
  192. ucidef_add_switch "switch0" \
  193. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  194. ;;
  195. buffalo,bhr-4grv2|\
  196. trendnet,tew-823dru)
  197. ucidef_add_switch "switch0" \
  198. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
  199. ;;
  200. buffalo,wzr-600dhp|\
  201. buffalo,wzr-hp-ag300h|\
  202. tplink,archer-c25-v1|\
  203. tplink,archer-c60-v1|\
  204. tplink,archer-c60-v2|\
  205. tplink,archer-c60-v3|\
  206. tplink,tl-wdr3500-v1|\
  207. tplink,tl-wr842n-v1|\
  208. tplink,tl-wr842n-v3)
  209. ucidef_set_interface_wan "eth1"
  210. ucidef_add_switch "switch0" \
  211. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  212. ;;
  213. teltonika,rut300)
  214. ucidef_set_interface_wan "eth1"
  215. ucidef_add_switch "switch0" \
  216. "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  217. ;;
  218. buffalo,wzr-hp-g300nh-rb|\
  219. buffalo,wzr-hp-g300nh-s|\
  220. dlink,dir-825-b1|\
  221. trendnet,tew-673gru)
  222. ucidef_set_interface_wan "eth1"
  223. ucidef_add_switch "switch0" \
  224. "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
  225. ;;
  226. buffalo,wzr-hp-g302h-a1a0)
  227. ucidef_add_switch "switch0" \
  228. "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
  229. ;;
  230. alcatel,hh40v|\
  231. comfast,cf-e110n-v2|\
  232. comfast,cf-e120a-v3|\
  233. comfast,cf-e314n-v2|\
  234. compex,wpj531-16m|\
  235. openmesh,a40|\
  236. openmesh,a60|\
  237. openmesh,om2p-v1|\
  238. openmesh,om2p-v4|\
  239. openmesh,om2p-hs-v4|\
  240. plasmacloud,pa300|\
  241. plasmacloud,pa300e|\
  242. tplink,cpe210-v1|\
  243. tplink,cpe220-v2|\
  244. tplink,cpe220-v3|\
  245. tplink,cpe510-v1|\
  246. tplink,wbs210-v1|\
  247. tplink,wbs210-v2|\
  248. tplink,wbs510-v1|\
  249. tplink,wbs510-v2|\
  250. ubnt,routerstation)
  251. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  252. ;;
  253. comfast,cf-e375ac|\
  254. moxa,awk-1137c)
  255. ucidef_add_switch "switch0" \
  256. "0@eth0" "1:wan" "2:lan"
  257. ;;
  258. comfast,cf-e560ac|\
  259. qca,ap143-8m|\
  260. qca,ap143-16m|\
  261. tplink,tl-wr841hp-v3|\
  262. tplink,tl-wdr6500-v2)
  263. ucidef_set_interface_wan "eth1"
  264. ucidef_add_switch "switch0" \
  265. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  266. ;;
  267. comfast,cf-wr650ac-v1|\
  268. comfast,cf-wr650ac-v2|\
  269. zyxel,nbg6616)
  270. ucidef_add_switch "switch0" \
  271. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
  272. ;;
  273. compex,wpj344-16m|\
  274. compex,wpj563)
  275. ucidef_add_switch "switch0" \
  276. "0@eth0" "3:lan" "2:wan"
  277. ;;
  278. compex,wpj558-16m)
  279. ucidef_add_switch "switch0" \
  280. "1:wan" "5:lan" "6@eth0"
  281. ;;
  282. devolo,dlan-pro-1200plus-ac|\
  283. devolo,magic-2-wifi)
  284. ucidef_add_switch "switch0" \
  285. "0@eth0" "2:wan" "3:lan" "4:lan"
  286. ;;
  287. dlink,covr-p2500-a1)
  288. ucidef_add_switch "switch0" \
  289. "0@eth0" "1:lan" "2:lan" "3:wan" "4:plc"
  290. ;;
  291. dlink,dap-2695-a1)
  292. ucidef_add_switch "switch0" \
  293. "0@eth0" "2:lan" "3:wan" "6@eth1"
  294. ;;
  295. dlink,dap-3662-a1)
  296. ucidef_add_switch "switch0" \
  297. "0@eth0" "1:lan:2" "2:lan:1" "6@eth1"
  298. ;;
  299. dlink,dch-g020-a1)
  300. ucidef_add_switch "switch0" \
  301. "0@eth0" "1:lan:2" "2:lan:1"
  302. ;;
  303. dlink,dir-629-a1|\
  304. dlink,dir-825-c1|\
  305. dlink,dir-835-a1|\
  306. dlink,dir-842-c1|\
  307. dlink,dir-842-c2|\
  308. dlink,dir-842-c3|\
  309. dlink,dir-859-a1|\
  310. dlink,dir-859-a3|\
  311. dlink,dir-869-a1|\
  312. engenius,epg5000|\
  313. engenius,esr1200|\
  314. engenius,esr1750|\
  315. engenius,esr900|\
  316. sitecom,wlr-7100|\
  317. tplink,archer-c2-v3|\
  318. tplink,tl-wr1043nd-v4|\
  319. tplink,tl-wr1043n-v5)
  320. ucidef_add_switch "switch0" \
  321. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  322. ;;
  323. elecom,wrc-1750ghbk2-i|\
  324. elecom,wrc-300ghbk2-i|\
  325. sitecom,wlr-8100)
  326. ucidef_add_switch "switch0" \
  327. "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
  328. ;;
  329. embeddedwireless,balin)
  330. ucidef_add_switch "switch0" \
  331. "0@eth0" "5:lan:1" "4:lan:2" "3:wan"
  332. ;;
  333. embeddedwireless,dorin)
  334. ucidef_add_switch "switch0" \
  335. "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
  336. ;;
  337. engenius,eap300-v2)
  338. ucidef_add_switch "switch0" \
  339. "0@eth0" "1:lan"
  340. ;;
  341. engenius,ens202ext-v1)
  342. ucidef_set_interface_lan "eth1"
  343. ucidef_add_switch "switch0" \
  344. "0@eth0" "1:lan"
  345. ;;
  346. etactica,eg200)
  347. ucidef_set_interface_lan "eth0" "dhcp"
  348. ;;
  349. glinet,gl-ar750)
  350. ucidef_set_interface_wan "eth1"
  351. ucidef_add_switch "switch0" \
  352. "0@eth0" "1:lan" "2:lan"
  353. ;;
  354. glinet,gl-x300b)
  355. ucidef_set_interface_wan "eth1"
  356. ucidef_add_switch "switch0" \
  357. "0@eth0" "4:lan"
  358. ;;
  359. iodata,etg3-r|\
  360. iodata,wn-ac1167dgr|\
  361. iodata,wn-ac1600dgr|\
  362. iodata,wn-ac1600dgr2|\
  363. iodata,wn-ag300dgr|\
  364. pcs,cr5000|\
  365. wd,mynet-n750)
  366. ucidef_add_switch "switch0" \
  367. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  368. ;;
  369. jjplus,jwap230)
  370. ucidef_add_switch "switch0" \
  371. "0@eth0" "5:wan:1" "1:lan:2" "6@eth1"
  372. ;;
  373. joyit,jt-or750i)
  374. ucidef_set_interface_wan "eth1"
  375. ucidef_add_switch "switch0" \
  376. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
  377. ;;
  378. kuwfi,c910)
  379. ucidef_set_interface_wan "eth1"
  380. ucidef_add_switch "switch0" \
  381. "0@eth0" "1:lan:2" "4:lan:1"
  382. ;;
  383. letv,lba-047-ch)
  384. ucidef_set_interface_wan "eth0"
  385. ucidef_add_switch "switch0" \
  386. "0@eth1" "3:lan:2" "4:lan:1"
  387. ;;
  388. librerouter,librerouter-v1)
  389. ucidef_add_switch "switch0" \
  390. "0@eth0" "5:wan" "6@eth1" "4:lan"
  391. ;;
  392. meraki,mr12)
  393. ucidef_set_interface_lan "eth0"
  394. ucidef_add_switch "switch0" \
  395. "0@eth1" "1:lan"
  396. ;;
  397. asus,rt-ac59u|\
  398. asus,rt-ac59u-v2|\
  399. mercury,mw4530r-v1|\
  400. tplink,archer-a7-v5|\
  401. tplink,archer-a9-v6|\
  402. tplink,archer-c6-v2|\
  403. tplink,archer-c6-v2-us|\
  404. tplink,archer-c7-v4|\
  405. tplink,archer-c7-v5|\
  406. tplink,tl-wdr3600-v1|\
  407. tplink,tl-wdr4300-v1|\
  408. tplink,tl-wdr4300-v1-il|\
  409. tplink,tl-wdr4310-v1)
  410. ucidef_add_switch "switch0" \
  411. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  412. ;;
  413. nec,wf1200cr)
  414. ucidef_set_interface_wan "eth1"
  415. ucidef_add_switch "switch0" \
  416. "0@eth0" "1:lan"
  417. ;;
  418. nec,wg1200cr|\
  419. qxwlan,e1700ac-v2-8m|\
  420. qxwlan,e1700ac-v2-16m|\
  421. qxwlan,e750g-v8-8m|\
  422. qxwlan,e750g-v8-16m|\
  423. ubnt,nanobeam-ac-gen2|\
  424. ubnt,nanostation-ac|\
  425. yuncore,a782|\
  426. yuncore,xd3200|\
  427. yuncore,xd4200)
  428. ucidef_add_switch "switch0" \
  429. "0@eth0" "2:lan" "3:wan"
  430. ;;
  431. nec,wg800hp|\
  432. xiaomi,aiot-ac2350)
  433. ucidef_add_switch "switch0" \
  434. "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
  435. ;;
  436. netgear,wndr3700|\
  437. netgear,wndr3700-v2|\
  438. netgear,wndr3800|\
  439. netgear,wndr3800ch|\
  440. netgear,wndrmac-v1|\
  441. netgear,wndrmac-v2)
  442. ucidef_set_interface_wan "eth1"
  443. ucidef_add_switch "switch0" \
  444. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
  445. ucidef_add_switch_attr "switch0" "blinkrate" 2
  446. ucidef_add_switch_port_attr "switch0" 1 led 6
  447. ucidef_add_switch_port_attr "switch0" 2 led 9
  448. ucidef_add_switch_port_attr "switch0" 5 led 2
  449. ;;
  450. netgear,wnr2200-8m|\
  451. netgear,wnr2200-16m)
  452. ucidef_set_interface_wan "eth0"
  453. ucidef_add_switch "switch0" \
  454. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  455. ;;
  456. phicomm,k2t)
  457. ucidef_add_switch "switch0" \
  458. "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
  459. ;;
  460. qihoo,c301)
  461. ucidef_set_interface_wan "eth1"
  462. ucidef_add_switch "switch0" \
  463. "0@eth0" "2:lan" "3:lan"
  464. ;;
  465. qxwlan,e558-v2-8m|\
  466. qxwlan,e558-v2-16m)
  467. ucidef_add_switch "switch0" \
  468. "0@eth1" "4:lan" "5:lan" "6@eth0" "3:wan"
  469. ;;
  470. rosinson,wr818)
  471. ucidef_add_switch "switch0" \
  472. "0@eth0" "1:lan" "2:lan" "3:wan"
  473. ;;
  474. ruckus,zf7025)
  475. ucidef_set_interface_lan "eth0 eth1"
  476. ucidef_add_switch "switch0" \
  477. "0u@eth1" "4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4"
  478. ;;
  479. teltonika,rut955|\
  480. teltonika,rut955-h7v3c0)
  481. ucidef_set_interface_wan "eth1"
  482. ucidef_add_switch "switch0" \
  483. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
  484. ;;
  485. tplink,archer-d50-v1)
  486. ucidef_add_switch "switch0" \
  487. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
  488. ;;
  489. tplink,archer-d7-v1|\
  490. tplink,archer-d7b-v1)
  491. ucidef_add_switch "switch0" \
  492. "0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
  493. ;;
  494. tplink,eap225-wall-v2)
  495. ucidef_add_switch "switch0" \
  496. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  497. ;;
  498. tplink,eap245-v3)
  499. ucidef_add_switch "switch0" \
  500. "0@eth0" "2:lan:1" "5:lan:2"
  501. ;;
  502. tplink,tl-mr6400-v1)
  503. ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
  504. ucidef_add_switch "switch0" \
  505. "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
  506. ;;
  507. tplink,tl-wpa8630-v1)
  508. # port 5 (internal) is the power-line port
  509. ucidef_add_switch "switch0" \
  510. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
  511. ;;
  512. tplink,tl-wr841hp-v2|\
  513. tplink,tl-wr842n-v2|\
  514. tplink,tl-wr941hp-v1)
  515. ucidef_set_interface_wan "eth1"
  516. ucidef_add_switch "switch0" \
  517. "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  518. ;;
  519. tplink,tl-wr1043nd-v1)
  520. ucidef_add_switch "switch0" \
  521. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  522. ;;
  523. tplink,tl-wr1043nd-v2|\
  524. tplink,tl-wr1043nd-v3|\
  525. tplink,tl-wr1045nd-v2)
  526. ucidef_add_switch "switch0" \
  527. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  528. ;;
  529. tplink,tl-wr2543-v1)
  530. ucidef_add_switch "switch0" \
  531. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  532. ;;
  533. ubnt,aircube-ac)
  534. ucidef_add_switch "switch0" \
  535. "0@eth0" "2:lan:1" "3:lan:2" "5:lan:3" "4:wan"
  536. ;;
  537. ubnt,aircube-isp)
  538. ucidef_set_interface_wan "eth1"
  539. ucidef_add_switch "switch0" \
  540. "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
  541. ;;
  542. ubnt,edgeswitch-5xp)
  543. ucidef_set_interface_wan "eth1"
  544. ucidef_add_switch "switch0" \
  545. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  546. ;;
  547. ubnt,edgeswitch-8xp)
  548. ucidef_set_interface_wan "eth1"
  549. ucidef_add_switch "switch0" \
  550. "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"
  551. ;;
  552. ubnt,routerstation-pro)
  553. ucidef_set_interface_wan "eth0"
  554. ucidef_add_switch "switch0" \
  555. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  556. ;;
  557. ubnt,nanostation-m-xw)
  558. ucidef_add_switch "switch0" \
  559. "0@eth0" "5:lan" "1:wan"
  560. ;;
  561. ubnt,unifiac-mesh-pro|\
  562. ubnt,unifiac-pro)
  563. ucidef_add_switch "switch0" \
  564. "0@eth0" "2:lan:1" "3:lan:2"
  565. ;;
  566. ubnt,unifi-ap-pro)
  567. ucidef_add_switch "switch0" \
  568. "0@eth0" "1:lan" "2:lan"
  569. ;;
  570. tplink,deco-m4r-v1|\
  571. tplink,deco-s4-v2)
  572. ucidef_add_switch "switch0" \
  573. "0@eth0" "3:lan:1" "5:lan:2"
  574. ;;
  575. hiwifi,hc6361|\
  576. xiaomi,mi-router-4q|\
  577. zbtlink,zbt-wd323)
  578. ucidef_set_interface_wan "eth1"
  579. ucidef_add_switch "switch0" \
  580. "0@eth0" "3:lan:1" "4:lan:2"
  581. ;;
  582. *)
  583. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  584. ;;
  585. esac
  586. }
  587. ath79_setup_macs()
  588. {
  589. local board="$1"
  590. case "$board" in
  591. adtran,bsap1800-v2|\
  592. adtran,bsap1840)
  593. lan_mac=$(mtd_get_mac_binary "Board data" 2)
  594. label_mac=$lan_mac
  595. ;;
  596. alfa-network,ap121f|\
  597. alfa-network,ap121fe|\
  598. alfa-network,n2q|\
  599. alfa-network,n5q|\
  600. alfa-network,pi-wifi4|\
  601. alfa-network,r36a|\
  602. alfa-network,tube-2hq|\
  603. engenius,eap300-v2|\
  604. engenius,ens202ext-v1)
  605. label_mac=$(mtd_get_mac_binary art 0x1002)
  606. ;;
  607. arduino,yun)
  608. base_mac=$(mtd_get_mac_binary art 0x1002)
  609. lan_mac=$(macaddr_setbit $base_mac 29)
  610. [ $lan_mac = $base_mac ] && lan_mac=$(macaddr_unsetbit $base_mac 29)
  611. ;;
  612. avm,fritz1750e|\
  613. avm,fritz450e|\
  614. avm,fritzdvbc)
  615. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  616. ;;
  617. avm,fritz300e)
  618. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  619. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  620. ;;
  621. avm,fritz4020)
  622. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  623. wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
  624. ;;
  625. comfast,cf-e375ac)
  626. wan_mac=$(macaddr_add $(mtd_get_mac_binary art 0x0) 1)
  627. ;;
  628. compex,wpj344-16m|\
  629. compex,wpj558-16m|\
  630. compex,wpj563)
  631. wan_mac=$(mtd_get_mac_binary u-boot 0x2e018)
  632. ;;
  633. devolo,dlan-pro-1200plus-ac|\
  634. devolo,magic-2-wifi)
  635. label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
  636. ;;
  637. dlink,covr-p2500-a1)
  638. lan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
  639. wan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
  640. label_mac=$(mtd_get_mac_ascii art "protest_plc_mac")
  641. plc_mac=$(mtd_get_mac_ascii art "protest_plc_mac")
  642. [ -n "$plc_mac" ] && ucidef_set_interface_macaddr "plc" $plc_mac
  643. ;;
  644. dlink,dap-1330-a1|\
  645. dlink,dap-1365-a1|\
  646. dlink,dch-g020-a1)
  647. lan_mac=$(mtd_get_mac_text "mp" 0x1)
  648. label_mac=$lan_mac
  649. ;;
  650. dlink,dap-2230-a1|\
  651. dlink,dap-2660-a1|\
  652. dlink,dap-2680-a1|\
  653. dlink,dap-3320-a1)
  654. lan_mac=$(mtd_get_mac_ascii bdcfg "lanmac")
  655. label_mac=$lan_mac
  656. ;;
  657. dlink,dap-2695-a1|\
  658. dlink,dap-3662-a1)
  659. label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
  660. ;;
  661. dlink,dir-629-a1)
  662. wan_mac=$(mtd_get_mac_text "mfcdata" 0x6a)
  663. ;;
  664. trendnet,tew-673gru)
  665. lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
  666. wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
  667. label_mac=$wan_mac
  668. ;;
  669. dlink,dir-505)
  670. lan_mac=$(mtd_get_mac_text "mac" 0x4)
  671. ;;
  672. dlink,dir-825-c1|\
  673. dlink,dir-835-a1)
  674. wan_mac=$(mtd_get_mac_text "mac" 0x18)
  675. ;;
  676. dlink,dir-842-c1|\
  677. dlink,dir-842-c2|\
  678. dlink,dir-842-c3)
  679. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  680. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  681. label_mac=$lan_mac
  682. ;;
  683. dlink,dir-859-a1|\
  684. dlink,dir-869-a1)
  685. lan_mac=$(mtd_get_mac_text "devdata" 0xc9)
  686. wan_mac=$(mtd_get_mac_text "devdata" 0x79)
  687. ;;
  688. dlink,dir-859-a3)
  689. lan_mac=$(get_mac_label)
  690. wan_mac=$(macaddr_add "$lan_mac" 3)
  691. ;;
  692. qihoo,c301|\
  693. wd,mynet-n600|\
  694. wd,mynet-n750)
  695. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  696. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  697. ;;
  698. elecom,wrc-1750ghbk2-i|\
  699. elecom,wrc-300ghbk2-i)
  700. wan_mac=$(mtd_get_mac_ascii hwconfig "HW.WAN.MAC.Address")
  701. label_mac=$wan_mac
  702. ;;
  703. engenius,ecb1200|\
  704. engenius,ecb1750)
  705. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  706. label_mac=$lan_mac
  707. ;;
  708. engenius,epg5000|\
  709. engenius,esr1200|\
  710. engenius,esr1750|\
  711. engenius,esr900)
  712. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  713. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  714. ;;
  715. engenius,ews511ap)
  716. lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
  717. eth1_mac=$(macaddr_add "$lan_mac" 1)
  718. ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
  719. ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
  720. ;;
  721. enterasys,ws-ap3705i)
  722. label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
  723. ;;
  724. fortinet,fap-221-b)
  725. lan_mac=$(mtd_get_mac_text u-boot 0x3ff80 12)
  726. label_mac=$lan_mac
  727. ;;
  728. hak5,lan-turtle|\
  729. hak5,packet-squirrel)
  730. label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  731. ;;
  732. iodata,etg3-r)
  733. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  734. wan_mac=$(macaddr_add "$lan_mac" -1)
  735. label_mac=$wan_mac
  736. ;;
  737. iodata,wn-ac1167dgr|\
  738. iodata,wn-ac1600dgr|\
  739. iodata,wn-ac1600dgr2|\
  740. iodata,wn-ag300dgr)
  741. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  742. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  743. label_mac=$wan_mac
  744. ;;
  745. mercury,mw4530r-v1|\
  746. tplink,tl-wdr3600-v1|\
  747. tplink,tl-wdr4300-v1|\
  748. tplink,tl-wdr4300-v1-il)
  749. base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  750. wan_mac=$(macaddr_add "$base_mac" 1)
  751. ;;
  752. tplink,deco-s4-v2)
  753. lan_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
  754. label_mac=$lan_mac
  755. ;;
  756. moxa,awk-1137c)
  757. lan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
  758. wan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
  759. label_mac=$lan_mac
  760. ;;
  761. nec,wf1200cr|\
  762. nec,wg1200cr)
  763. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  764. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  765. label_mac=$wan_mac
  766. ;;
  767. nec,wg800hp)
  768. lan_mac=$(mtd_get_mac_text board_data 0x280)
  769. wan_mac=$(mtd_get_mac_text board_data 0x480)
  770. label_mac=$wan_mac
  771. ;;
  772. comfast,cf-e380ac-v2|\
  773. netgear,wndr3700|\
  774. netgear,wndr3700-v2|\
  775. netgear,wndr3800|\
  776. netgear,wndrmac-v1|\
  777. netgear,wndrmac-v2)
  778. lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
  779. ;;
  780. phicomm,k2t)
  781. lan_mac=$(k2t_get_mac "lan_mac")
  782. wan_mac=$(k2t_get_mac "wan_mac")
  783. ;;
  784. rosinson,wr818)
  785. wan_mac=$(mtd_get_mac_binary factory 0x0)
  786. lan_mac=$(macaddr_setbit_la "$wan_mac")
  787. ;;
  788. ruckus,zf7025|\
  789. ruckus,zf7321|\
  790. ruckus,zf7341|\
  791. ruckus,zf7351|\
  792. ruckus,zf7363|\
  793. ruckus,zf7372)
  794. lan_mac=$(mtd_get_mac_binary board-data 0x807E)
  795. label_mac=$lan_mac
  796. ;;
  797. sitecom,wlr-7100|\
  798. sitecom,wlr-8100)
  799. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  800. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  801. label_mac=$lan_mac
  802. ;;
  803. tplink,archer-a7-v5|\
  804. tplink,archer-a9-v6|\
  805. tplink,archer-c7-v4|\
  806. tplink,archer-c7-v5|\
  807. tplink,tl-wr1043nd-v4|\
  808. tplink,tl-wr1043n-v5)
  809. base_mac=$(mtd_get_mac_binary info 0x8)
  810. wan_mac=$(macaddr_add "$base_mac" 1)
  811. ;;
  812. trendnet,tew-823dru)
  813. lan_mac=$(mtd_get_mac_text mac 0x4)
  814. wan_mac=$(mtd_get_mac_text mac 0x18)
  815. label_mac=$wan_mac
  816. ;;
  817. ubnt,powerbridge-m|\
  818. ubnt,rocket-m|\
  819. ubnt,unifi)
  820. label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
  821. ;;
  822. ubnt,litebeam-ac-gen2|\
  823. ubnt,nanobeam-ac-gen2|\
  824. ubnt,nanobeam-ac-xc|\
  825. ubnt,powerbeam-5ac-500|\
  826. ubnt,powerbeam-5ac-gen2)
  827. label_mac=$(mtd_get_mac_binary art 0x5006)
  828. ;;
  829. ubnt,routerstation|\
  830. ubnt,routerstation-pro)
  831. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
  832. lan_mac=$(macaddr_add "$wan_mac" 1)
  833. ;;
  834. wd,mynet-wifi-rangeextender)
  835. lan_mac=$(nvram get et0macaddr)
  836. ;;
  837. xiaomi,aiot-ac2350)
  838. lan_mac=$(mtd_get_mac_binary art 0x1002)
  839. ;;
  840. zyxel,nbg6616)
  841. label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  842. ;;
  843. esac
  844. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  845. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  846. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  847. }
  848. board_config_update
  849. board=$(board_name)
  850. ath79_setup_interfaces $board
  851. ath79_setup_macs $board
  852. board_config_flush
  853. exit 0