02_network 21 KB

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