02_network 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868
  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_set_interface_wan "eth1"
  420. ucidef_add_switch "switch0" \
  421. "0@eth0" "1:lan:2" "2:lan:1"
  422. ;;
  423. meraki,mr12)
  424. ucidef_set_interface_lan "eth0"
  425. ucidef_add_switch "switch0" \
  426. "0@eth1" "1:lan"
  427. ;;
  428. asus,rt-ac59u|\
  429. asus,rt-ac59u-v2|\
  430. mercury,mw4530r-v1|\
  431. tplink,archer-a7-v5|\
  432. tplink,archer-a9-v6|\
  433. tplink,archer-c6-v2|\
  434. tplink,archer-c6-v2-us|\
  435. tplink,archer-c7-v4|\
  436. tplink,archer-c7-v5|\
  437. tplink,tl-wdr3600-v1|\
  438. tplink,tl-wdr4300-v1|\
  439. tplink,tl-wdr4300-v1-il|\
  440. tplink,tl-wdr4310-v1)
  441. ucidef_add_switch "switch0" \
  442. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  443. ;;
  444. nec,wf1200cr)
  445. ucidef_set_interface_wan "eth1"
  446. ucidef_add_switch "switch0" \
  447. "0@eth0" "1:lan"
  448. ;;
  449. nec,wg1200cr|\
  450. qxwlan,e1700ac-v2-8m|\
  451. qxwlan,e1700ac-v2-16m|\
  452. qxwlan,e750g-v8-8m|\
  453. qxwlan,e750g-v8-16m|\
  454. ubnt,nanobeam-ac-gen2|\
  455. ubnt,nanostation-ac|\
  456. yuncore,a782|\
  457. yuncore,xd3200|\
  458. yuncore,xd4200)
  459. ucidef_add_switch "switch0" \
  460. "0@eth0" "2:lan" "3:wan"
  461. ;;
  462. nec,wg800hp|\
  463. xiaomi,aiot-ac2350)
  464. ucidef_add_switch "switch0" \
  465. "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
  466. ;;
  467. netgear,wndr3700|\
  468. netgear,wndr3700-v2|\
  469. netgear,wndr3800|\
  470. netgear,wndr3800ch|\
  471. netgear,wndrmac-v1|\
  472. netgear,wndrmac-v2)
  473. ucidef_set_interface_wan "eth1"
  474. ucidef_add_switch "switch0" \
  475. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
  476. ucidef_add_switch_attr "switch0" "blinkrate" 2
  477. ucidef_add_switch_port_attr "switch0" 1 led 6
  478. ucidef_add_switch_port_attr "switch0" 2 led 9
  479. ucidef_add_switch_port_attr "switch0" 5 led 2
  480. ;;
  481. netgear,wnr2200-8m|\
  482. netgear,wnr2200-16m)
  483. ucidef_set_interface_wan "eth0"
  484. ucidef_add_switch "switch0" \
  485. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  486. ;;
  487. phicomm,k2t)
  488. ucidef_add_switch "switch0" \
  489. "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
  490. ;;
  491. qihoo,c301)
  492. ucidef_set_interface_wan "eth1"
  493. ucidef_add_switch "switch0" \
  494. "0@eth0" "2:lan" "3:lan"
  495. ;;
  496. qxwlan,e558-v2-8m|\
  497. qxwlan,e558-v2-16m)
  498. ucidef_add_switch "switch0" \
  499. "0@eth1" "4:lan" "5:lan" "6@eth0" "3:wan"
  500. ;;
  501. rosinson,wr818)
  502. ucidef_add_switch "switch0" \
  503. "0@eth0" "1:lan" "2:lan" "3:wan"
  504. ;;
  505. ruckus,zf7025)
  506. ucidef_set_interface_lan "eth0 eth1"
  507. ucidef_add_switch "switch0" \
  508. "0u@eth1" "4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4"
  509. ;;
  510. ruckus,r500)
  511. ucidef_add_switch "switch0" \
  512. "6u@eth0" "5:lan:1" "3:lan:2" "0@eth1"
  513. ;;
  514. teltonika,rut955|\
  515. teltonika,rut955-h7v3c0)
  516. ucidef_set_interface_wan "eth1"
  517. ucidef_add_switch "switch0" \
  518. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
  519. ;;
  520. tplink,archer-d50-v1)
  521. ucidef_add_switch "switch0" \
  522. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
  523. ;;
  524. tplink,archer-d7-v1|\
  525. tplink,archer-d7b-v1)
  526. ucidef_add_switch "switch0" \
  527. "0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
  528. ;;
  529. tplink,deco-m4r-v1|\
  530. tplink,deco-s4-v2)
  531. ucidef_add_switch "switch0" \
  532. "0@eth0" "3:lan:1" "5:lan:2"
  533. ;;
  534. tplink,eap225-wall-v2)
  535. ucidef_add_switch "switch0" \
  536. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  537. ;;
  538. tplink,eap245-v3)
  539. ucidef_add_switch "switch0" \
  540. "0@eth0" "2:lan:1" "5:lan:2"
  541. ;;
  542. tplink,tl-mr6400-v1)
  543. ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
  544. ucidef_add_switch "switch0" \
  545. "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
  546. ;;
  547. tplink,tl-wpa8630-v1)
  548. # port 5 (internal) is the power-line port
  549. ucidef_add_switch "switch0" \
  550. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
  551. ;;
  552. tplink,tl-wr841hp-v2|\
  553. tplink,tl-wr842n-v2|\
  554. tplink,tl-wr941hp-v1)
  555. ucidef_set_interface_wan "eth1"
  556. ucidef_add_switch "switch0" \
  557. "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  558. ;;
  559. tplink,tl-wr1043nd-v1)
  560. ucidef_add_switch "switch0" \
  561. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  562. ;;
  563. tplink,tl-wr1043nd-v2|\
  564. tplink,tl-wr1043nd-v3|\
  565. tplink,tl-wr1045nd-v2)
  566. ucidef_add_switch "switch0" \
  567. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  568. ;;
  569. tplink,tl-wr2543-v1)
  570. ucidef_add_switch "switch0" \
  571. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  572. ;;
  573. ubnt,aircube-ac)
  574. ucidef_add_switch "switch0" \
  575. "0@eth0" "2:lan:1" "3:lan:2" "5:lan:3" "4:wan"
  576. ;;
  577. ubnt,aircube-isp)
  578. ucidef_set_interface_wan "eth1"
  579. ucidef_add_switch "switch0" \
  580. "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
  581. ;;
  582. ubnt,amplifi-router-hd)
  583. ucidef_add_switch "switch0" \
  584. "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2" "5:lan:4" "1:wan"
  585. ;;
  586. ubnt,edgeswitch-5xp)
  587. ucidef_set_interface_wan "eth1"
  588. ucidef_add_switch "switch0" \
  589. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  590. ;;
  591. ubnt,edgeswitch-8xp)
  592. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8" "eth1"
  593. ;;
  594. ubnt,routerstation-pro)
  595. ucidef_set_interface_wan "eth0"
  596. ucidef_add_switch "switch0" \
  597. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  598. ;;
  599. ubnt,nanostation-m-xw)
  600. ucidef_add_switch "switch0" \
  601. "0@eth0" "5:lan" "1:wan"
  602. ;;
  603. ubnt,unifiac-mesh-pro|\
  604. ubnt,unifiac-pro)
  605. ucidef_add_switch "switch0" \
  606. "0@eth0" "2:lan:1" "3:lan:2"
  607. ;;
  608. ubnt,unifi-ap-pro)
  609. ucidef_add_switch "switch0" \
  610. "0@eth0" "1:lan" "2:lan"
  611. ;;
  612. hiwifi,hc6361|\
  613. xiaomi,mi-router-4q|\
  614. zbtlink,zbt-wd323)
  615. ucidef_set_interface_wan "eth1"
  616. ucidef_add_switch "switch0" \
  617. "0@eth0" "3:lan:1" "4:lan:2"
  618. ;;
  619. *)
  620. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  621. ;;
  622. esac
  623. }
  624. ath79_setup_macs()
  625. {
  626. local board="$1"
  627. case "$board" in
  628. adtran,bsap1800-v2|\
  629. adtran,bsap1840)
  630. lan_mac=$(mtd_get_mac_binary "Board data" 2)
  631. label_mac=$lan_mac
  632. ;;
  633. alfa-network,ap121f|\
  634. alfa-network,ap121fe|\
  635. alfa-network,n2q|\
  636. alfa-network,n5q|\
  637. alfa-network,pi-wifi4|\
  638. alfa-network,r36a|\
  639. alfa-network,tube-2hq|\
  640. alfa-network,wifi-camppro-nano-duo|\
  641. engenius,eap300-v2|\
  642. engenius,ens202ext-v1)
  643. label_mac=$(mtd_get_mac_binary art 0x1002)
  644. ;;
  645. arduino,yun)
  646. base_mac=$(mtd_get_mac_binary art 0x1002)
  647. lan_mac=$(macaddr_setbit $base_mac 29)
  648. [ $lan_mac = $base_mac ] && lan_mac=$(macaddr_unsetbit $base_mac 29)
  649. ;;
  650. avm,fritz1750e|\
  651. avm,fritz450e|\
  652. avm,fritzdvbc)
  653. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  654. ;;
  655. avm,fritz300e)
  656. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  657. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  658. ;;
  659. avm,fritz4020)
  660. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  661. wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
  662. ;;
  663. comfast,cf-e375ac)
  664. wan_mac=$(macaddr_add $(mtd_get_mac_binary art 0x0) 1)
  665. ;;
  666. compex,wpj344-16m|\
  667. compex,wpj558-16m|\
  668. compex,wpj563)
  669. wan_mac=$(mtd_get_mac_binary u-boot 0x2e018)
  670. ;;
  671. devolo,dlan-pro-1200plus-ac|\
  672. devolo,magic-2-wifi)
  673. label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
  674. ;;
  675. dlink,covr-c1200-a1)
  676. lan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
  677. wan_mac=$(mtd_get_mac_ascii art "protest_wan_mac")
  678. label_mac=$lan_mac
  679. ;;
  680. dlink,covr-p2500-a1)
  681. lan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
  682. wan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
  683. label_mac=$(mtd_get_mac_ascii art "protest_plc_mac")
  684. plc_mac=$(mtd_get_mac_ascii art "protest_plc_mac")
  685. [ -n "$plc_mac" ] && ucidef_set_interface_macaddr "plc" $plc_mac
  686. ;;
  687. dlink,dap-2230-a1|\
  688. dlink,dap-2660-a1|\
  689. dlink,dap-2680-a1|\
  690. dlink,dap-3320-a1)
  691. lan_mac=$(mtd_get_mac_ascii bdcfg "lanmac")
  692. label_mac=$lan_mac
  693. ;;
  694. dlink,dap-2695-a1|\
  695. dlink,dap-3662-a1)
  696. label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
  697. ;;
  698. dlink,dir-629-a1)
  699. wan_mac=$(mtd_get_mac_text "mfcdata" 0x6a)
  700. ;;
  701. dlink,dir-825-c1|\
  702. dlink,dir-835-a1)
  703. wan_mac=$(mtd_get_mac_text "mac" 0x18)
  704. ;;
  705. dlink,dir-842-c1|\
  706. dlink,dir-842-c2|\
  707. dlink,dir-842-c3)
  708. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  709. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  710. label_mac=$lan_mac
  711. ;;
  712. qihoo,c301|\
  713. wd,mynet-n600|\
  714. wd,mynet-n750)
  715. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  716. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  717. ;;
  718. elecom,wab-i1750-ps|\
  719. elecom,wab-s1167-ps|\
  720. elecom,wab-s600-ps|\
  721. engenius,ecb1200|\
  722. engenius,ecb1750)
  723. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  724. label_mac=$lan_mac
  725. ;;
  726. elecom,wrc-1750ghbk2-i|\
  727. elecom,wrc-300ghbk2-i)
  728. wan_mac=$(mtd_get_mac_ascii hwconfig "HW.WAN.MAC.Address")
  729. label_mac=$wan_mac
  730. ;;
  731. engenius,epg5000|\
  732. engenius,esr1200|\
  733. engenius,esr1750|\
  734. engenius,esr900)
  735. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  736. ;;
  737. engenius,ews511ap)
  738. lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
  739. eth1_mac=$(macaddr_add "$lan_mac" 1)
  740. ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
  741. ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
  742. ;;
  743. hak5,lan-turtle|\
  744. hak5,packet-squirrel)
  745. label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  746. ;;
  747. iodata,etg3-r)
  748. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  749. wan_mac=$(macaddr_add "$lan_mac" -1)
  750. label_mac=$wan_mac
  751. ;;
  752. iodata,wn-ac1167dgr|\
  753. iodata,wn-ac1600dgr|\
  754. iodata,wn-ac1600dgr2|\
  755. iodata,wn-ag300dgr)
  756. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  757. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  758. label_mac=$wan_mac
  759. ;;
  760. mercury,mw4530r-v1|\
  761. tplink,tl-wdr3600-v1|\
  762. tplink,tl-wdr4300-v1|\
  763. tplink,tl-wdr4300-v1-il)
  764. base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  765. wan_mac=$(macaddr_add "$base_mac" 1)
  766. ;;
  767. tplink,deco-s4-v2)
  768. lan_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
  769. label_mac=$lan_mac
  770. ;;
  771. moxa,awk-1137c)
  772. lan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
  773. wan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
  774. label_mac=$lan_mac
  775. ;;
  776. nec,wf1200cr|\
  777. nec,wg1200cr)
  778. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  779. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  780. label_mac=$wan_mac
  781. ;;
  782. nec,wg800hp)
  783. wan_mac=$(mtd_get_mac_text board_data 0x480)
  784. label_mac=$wan_mac
  785. ;;
  786. comfast,cf-e380ac-v2|\
  787. netgear,wndr3700|\
  788. netgear,wndr3700-v2|\
  789. netgear,wndr3800|\
  790. netgear,wndrmac-v1|\
  791. netgear,wndrmac-v2)
  792. lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
  793. ;;
  794. phicomm,k2t)
  795. lan_mac=$(k2t_get_mac "lan_mac")
  796. wan_mac=$(k2t_get_mac "wan_mac")
  797. ;;
  798. rosinson,wr818)
  799. wan_mac=$(mtd_get_mac_binary factory 0x0)
  800. lan_mac=$(macaddr_setbit_la "$wan_mac")
  801. ;;
  802. ruckus,r500|\
  803. ruckus,zf7025|\
  804. ruckus,zf7321|\
  805. ruckus,zf7341|\
  806. ruckus,zf7351|\
  807. ruckus,zf7363|\
  808. ruckus,zf7372)
  809. lan_mac=$(mtd_get_mac_binary board-data 0x807E)
  810. label_mac=$lan_mac
  811. ;;
  812. sitecom,wlr-7100|\
  813. sitecom,wlr-8100)
  814. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  815. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  816. label_mac=$lan_mac
  817. ;;
  818. tplink,archer-a7-v5|\
  819. tplink,archer-a9-v6|\
  820. tplink,archer-c7-v4|\
  821. tplink,archer-c7-v5|\
  822. tplink,tl-wr1043nd-v4|\
  823. tplink,tl-wr1043n-v5)
  824. base_mac=$(mtd_get_mac_binary info 0x8)
  825. wan_mac=$(macaddr_add "$base_mac" 1)
  826. ;;
  827. ubnt,powerbridge-m|\
  828. ubnt,rocket-m|\
  829. ubnt,unifi)
  830. label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
  831. ;;
  832. ubnt,litebeam-ac-gen2|\
  833. ubnt,nanobeam-ac-gen2|\
  834. ubnt,nanobeam-ac-xc|\
  835. ubnt,powerbeam-5ac-500|\
  836. ubnt,powerbeam-5ac-gen2)
  837. label_mac=$(mtd_get_mac_binary art 0x5006)
  838. ;;
  839. ubnt,routerstation|\
  840. ubnt,routerstation-pro)
  841. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
  842. lan_mac=$(macaddr_add "$wan_mac" 1)
  843. ;;
  844. wd,mynet-wifi-rangeextender)
  845. lan_mac=$(nvram get et0macaddr)
  846. ;;
  847. xiaomi,aiot-ac2350)
  848. lan_mac=$(mtd_get_mac_binary art 0x1002)
  849. ;;
  850. esac
  851. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  852. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  853. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  854. }
  855. board_config_update
  856. board=$(board_name)
  857. ath79_setup_interfaces $board
  858. ath79_setup_macs $board
  859. board_config_flush
  860. exit 0