02_network 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. #!/bin/sh
  2. #
  3. # Copyright (C) 2011-2015 OpenWrt.org
  4. #
  5. . /lib/functions/system.sh
  6. . /lib/functions/uci-defaults.sh
  7. . /lib/ar71xx.sh
  8. ar71xx_setup_interfaces()
  9. {
  10. local board="$1"
  11. case "$board" in
  12. airgatewaypro)
  13. ucidef_add_switch "switch0" \
  14. "0@eth0" "4:lan" "5:wan"
  15. ;;
  16. airrouter|\
  17. ap121|\
  18. ap121-mini|\
  19. ap96|\
  20. dir-600-a1|\
  21. dir-615-c1|\
  22. dir-615-e1|\
  23. dir-615-e4|\
  24. hiwifi-hc6361|\
  25. ja76pf|\
  26. mc-mac1200r|\
  27. minibox-v1|\
  28. mynet-n600|\
  29. oolite|\
  30. qihoo-c301|\
  31. rb-750|\
  32. rb-751|\
  33. som9331|\
  34. tew-632brp|\
  35. tew-712br|\
  36. tew-732br|\
  37. tl-mr3220|\
  38. tl-mr3220-v2|\
  39. tl-mr3420|\
  40. tl-wdr3320-v2|\
  41. tl-wdr3500|\
  42. tl-wr741nd-v4|\
  43. tl-wr841n-v11|\
  44. tl-wr841n-v9|\
  45. tl-wr842n-v3|\
  46. whr-g301n|\
  47. whr-hp-g300n|\
  48. whr-hp-gn|\
  49. wzr-hp-ag300h|\
  50. zbt-we1526)
  51. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  52. ucidef_add_switch "switch0" \
  53. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  54. ;;
  55. alfa-ap120c|\
  56. all0305|\
  57. antminer-s1|\
  58. antminer-s3|\
  59. antrouter-r1|\
  60. ap121f|\
  61. aw-nr580|\
  62. bullet-m|\
  63. c-55|\
  64. cap4200ag|\
  65. cf-e380ac-v1|\
  66. cf-e380ac-v2|\
  67. eap120|\
  68. eap300v2|\
  69. eap7660d|\
  70. el-mini|\
  71. loco-m-xw|\
  72. mr12|\
  73. mr16|\
  74. mr1750|\
  75. mr1750v2|\
  76. mr18|\
  77. mr600|\
  78. mr600v2|\
  79. mr900|\
  80. mr900v2|\
  81. mynet-rext|\
  82. rb-411|\
  83. rb-411u|\
  84. rb-911g-2hpnd|\
  85. rb-911g-5hpacd|\
  86. rb-911g-5hpnd|\
  87. rb-912uag-2hpnd|\
  88. rb-912uag-5hpnd|\
  89. rb-sxt2n|\
  90. rb-sxt5n|\
  91. re450|\
  92. rocket-m-xw|\
  93. tl-mr10u|\
  94. tl-mr11u|\
  95. tl-mr12u|\
  96. tl-mr13u|\
  97. tl-mr3020|\
  98. tl-mr3040|\
  99. tl-mr3040-v2|\
  100. tl-wa701nd-v2|\
  101. tl-wa7210n-v2|\
  102. tl-wa750re|\
  103. tl-wa801nd-v2|\
  104. tl-wa830re-v2|\
  105. tl-wa850re|\
  106. tl-wa901nd|\
  107. tl-wa901nd-v2|\
  108. tl-wa901nd-v3|\
  109. tl-wa901nd-v4|\
  110. tl-wr703n|\
  111. tl-wr802n-v1|\
  112. tpe-r1100|\
  113. tube2h|\
  114. unifiac-lite|\
  115. wndap360|\
  116. wp543)
  117. ucidef_set_interface_lan "eth0"
  118. ;;
  119. a40|\
  120. a60|\
  121. alfa-ap96|\
  122. alfa-nx|\
  123. dr344|\
  124. gl-ar150|\
  125. gl-usb150)
  126. ucidef_set_interface_lan "eth0"
  127. ;;
  128. gl-ar300m|\
  129. gl-domino|\
  130. gl-inet|\
  131. gl-mifi|\
  132. jwap003|\
  133. om2pv4|\
  134. om2p-hsv4|\
  135. pb42|\
  136. pb44|\
  137. rb-951ui-2hnd|\
  138. routerstation|\
  139. tl-wr710n|\
  140. tl-wr720n-v3|\
  141. tl-wr810n|\
  142. wpe72|\
  143. wrtnode2q)
  144. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  145. ;;
  146. all0258n|\
  147. all0315n|\
  148. dlan-hotspot|\
  149. dlan-pro-500-wp|\
  150. ja76pf2|\
  151. rocket-m-ti|\
  152. ubnt-unifi-outdoor)
  153. ucidef_set_interface_lan "eth0 eth1"
  154. ;;
  155. wzr-hp-g300nh2)
  156. ucidef_add_switch "switch0" \
  157. "0@eth0" "1:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "2:wan"
  158. ;;
  159. ap132|\
  160. ap136|\
  161. ap152|\
  162. rb-750gl|\
  163. rb-751g|\
  164. rb-951g-2hnd|\
  165. wlr8100|\
  166. wzr-hp-g450h)
  167. ucidef_add_switch "switch0" \
  168. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  169. ;;
  170. ap135-020|\
  171. ap136-020|\
  172. bhr-4grv2|\
  173. tew-823dru|\
  174. tl-wr1043nd-v2|\
  175. wzr-450hp2)
  176. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  177. ucidef_add_switch "switch0" \
  178. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  179. ;;
  180. ap136-010|\
  181. ap147-010|\
  182. nbg6616|\
  183. nbg6716)
  184. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  185. ucidef_add_switch "switch0" \
  186. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
  187. ;;
  188. ap143|\
  189. rb-433|\
  190. rb-433u)
  191. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  192. ucidef_add_switch "switch0" \
  193. "1:lan" "2:lan" "5@eth1"
  194. ;;
  195. archer-c5|\
  196. archer-c7|\
  197. tl-wdr4900-v2)
  198. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  199. ucidef_add_switch "switch0" \
  200. "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
  201. ;;
  202. arduino-yun|\
  203. dir-505-a1|\
  204. tl-wa801nd-v3)
  205. ucidef_set_interface_lan "eth1"
  206. ;;
  207. bsb)
  208. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  209. ucidef_add_switch "switch0" \
  210. "0@eth1" "1:lan" "3:lan"
  211. ;;
  212. c-60)
  213. ucidef_add_switch "switch0" \
  214. "0@eth0" "3:wan" "4:lan"
  215. ;;
  216. cap324)
  217. ucidef_set_interface_lan "eth0" "dhcp"
  218. ;;
  219. cpe210|\
  220. cpe510|\
  221. wbs210|\
  222. wbs510)
  223. ucidef_add_switch "switch0" \
  224. "0@eth0" "5:lan" "4:wan"
  225. ;;
  226. cr3000)
  227. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  228. ucidef_add_switch "switch0" \
  229. "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  230. ;;
  231. cr5000|\
  232. dgl-5500-a1|\
  233. dhp-1565-a1|\
  234. dir-825-c1|\
  235. dir-835-a1|\
  236. esr900|\
  237. mynet-n750|\
  238. sr3200|\
  239. wndr3700v4|\
  240. wndr4300)
  241. ucidef_add_switch "switch0" \
  242. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  243. ;;
  244. dap-2695-a1)
  245. ucidef_add_switch "switch0" "0@eth0" "2:lan" "3:wan" "6@eth1"
  246. ;;
  247. rb-941-2nd)
  248. ucidef_add_switch "switch0" \
  249. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:wan:1"
  250. ;;
  251. db120|\
  252. rb-2011l|\
  253. rb-2011uas|\
  254. rb-2011uas-2hnd|\
  255. rb-2011uias|\
  256. rb-2011uias-2hnd)
  257. case "$board" in
  258. rb-2011uas*|\
  259. rb-2011uias|\
  260. rb-2011uias-2hnd)
  261. ucidef_add_switch "switch0" \
  262. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan" "6:sfp"
  263. ;;
  264. *)
  265. ucidef_add_switch "switch0" \
  266. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  267. ;;
  268. esac
  269. ucidef_add_switch "switch1" \
  270. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  271. ;;
  272. dir-615-i1|\
  273. omy-g1|\
  274. r6100|\
  275. smart-300|\
  276. tl-mr3420-v2|\
  277. tl-wdr6500-v2|\
  278. tl-wr841n-v8|\
  279. tl-wr940n-v4|\
  280. tl-wr941nd-v5|\
  281. tl-wr941nd-v6|\
  282. wnr1000-v2|\
  283. wnr2000-v4|\
  284. wnr2200|\
  285. wnr612-v2|\
  286. wpn824n)
  287. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  288. ucidef_add_switch "switch0" \
  289. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4@eth1"
  290. ;;
  291. dir-825-b1|\
  292. nbg460n_550n_550nh|\
  293. tew-673gru|\
  294. wzr-hp-g300nh)
  295. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  296. ucidef_add_switch "switch0" \
  297. "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
  298. ;;
  299. dlan-pro-1200-ac)
  300. ucidef_set_interface_lan "eth0"
  301. ucidef_add_switch "switch0" \
  302. "0@eth0" "2:lan" "3:lan" "4:lan"
  303. ucidef_add_switch_attr "switch0" "enable" "false"
  304. ;;
  305. el-m150)
  306. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  307. ucidef_add_switch "switch0" \
  308. "0:lan" "1:lan" "3@eth1"
  309. ;;
  310. dir-869-a1|\
  311. epg5000|\
  312. esr1750|\
  313. tl-wr1043nd-v4)
  314. ucidef_add_switch "switch0" \
  315. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  316. ;;
  317. ew-dorin)
  318. ucidef_add_switch "switch0" \
  319. "0@eth0" "1:lan" "2:lan" "3:wan"
  320. ;;
  321. ew-dorin-router)
  322. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  323. ucidef_add_switch "switch0" \
  324. "0@eth0" "2:lan" "3:lan"
  325. ;;
  326. dw33d|\
  327. f9k1115v2)
  328. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  329. ucidef_add_switch "switch0" \
  330. "2:lan" "3:lan" "4:lan" "5:lan" "6@eth1" "0@eth0" "1:wan"
  331. ;;
  332. gl-ar300|\
  333. wnr2000-v3)
  334. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  335. ucidef_add_switch "switch0" \
  336. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  337. ;;
  338. jwap230)
  339. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  340. ucidef_add_switch "switch0" \
  341. "0@eth0" "1:lan" "5:wan" "6@eth1"
  342. ;;
  343. nanostation-m-xw)
  344. ucidef_add_switch "switch0" \
  345. "0@eth0" "5:lan" "1:wan"
  346. ;;
  347. onion-omega)
  348. ucidef_set_interface_lan "wlan0"
  349. ;;
  350. rb-435g)
  351. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  352. ucidef_add_switch "switch0" \
  353. "0@eth1" "1:lan" "2:lan"
  354. ;;
  355. rb-450)
  356. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  357. ucidef_add_switch "switch0" \
  358. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth1"
  359. ;;
  360. rb-450g)
  361. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  362. ucidef_add_switch "switch0" \
  363. "0@eth1" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  364. ;;
  365. routerstation-pro)
  366. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  367. ucidef_add_switch "switch0" \
  368. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  369. ;;
  370. rb-493g)
  371. ucidef_set_interfaces_lan_wan "eth0 eth1.1" "eth1.2"
  372. ucidef_add_switch "switch0" \
  373. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  374. ucidef_add_switch "switch1" \
  375. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  376. ;;
  377. tellstick-znet-lite)
  378. ucidef_set_interface_wan "eth0"
  379. ucidef_set_interface_raw "wlan" "wlan0" "dhcp"
  380. ;;
  381. tl-wdr4300|\
  382. tl-wr1041n-v2)
  383. ucidef_add_switch "switch0" \
  384. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  385. ;;
  386. tl-wpa8630)
  387. ucidef_add_switch "switch0" \
  388. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
  389. ;;
  390. tl-wr1043nd)
  391. ucidef_add_switch "switch0" \
  392. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  393. ;;
  394. tl-wr2543n)
  395. ucidef_add_switch "switch0" \
  396. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  397. ;;
  398. tl-wr841n-v1|\
  399. tl-wr941nd)
  400. ucidef_set_interface_raw "eth" "eth0"
  401. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  402. ;;
  403. tl-wr741nd|\
  404. tl-wr841n-v7)
  405. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  406. ucidef_add_switch "switch0" \
  407. "0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4"
  408. ;;
  409. tl-wr842n-v2)
  410. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  411. ucidef_add_switch "switch0" \
  412. "0@eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  413. ;;
  414. uap-pro|\
  415. wpj342)
  416. ucidef_add_switch "switch0" \
  417. "0@eth0" "1:lan" "2:wan"
  418. ;;
  419. unifiac-pro|\
  420. xd3200)
  421. ucidef_add_switch "switch0" \
  422. "0@eth0" "2:lan" "3:wan"
  423. ;;
  424. wndr3700|\
  425. wndr3700v2|\
  426. wndr3800|\
  427. wndr3800ch)
  428. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  429. ucidef_add_switch "switch0" \
  430. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth0"
  431. ucidef_add_switch_attr "switch0" "blinkrate" 2
  432. ucidef_add_switch_port_attr "switch0" 1 led 6
  433. ucidef_add_switch_port_attr "switch0" 2 led 9
  434. ucidef_add_switch_port_attr "switch0" 5 led 2
  435. ;;
  436. wpj344)
  437. ucidef_add_switch "switch0" \
  438. "0@eth0" "3:lan" "2:wan"
  439. ;;
  440. wpj558)
  441. ucidef_add_switch "switch0" \
  442. "5:lan" "1:wan" "6@eth0"
  443. ;;
  444. wrt160nl)
  445. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  446. ucidef_add_switch "switch0" \
  447. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4@eth0"
  448. ;;
  449. wzr-hp-g450h)
  450. ucidef_add_switch "switch0" \
  451. "0@eth0" "2:lan:1 3:lan:2 4:lan:3 5:lan:4" "1:wan"
  452. ;;
  453. z1)
  454. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  455. ucidef_add_switch "switch0" \
  456. "0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4" "5:wan"
  457. ;;
  458. *)
  459. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  460. ;;
  461. esac
  462. }
  463. ar71xx_setup_macs()
  464. {
  465. local board="$1"
  466. local lan_mac=""
  467. local wan_mac=""
  468. case $board in
  469. dgl-5500-a1|\
  470. dir-825-c1)
  471. wan_mac=$(mtd_get_mac_ascii nvram "wan_mac")
  472. ;;
  473. dhp-1565-a1|\
  474. dir-835-a1|\
  475. wndr3700v4|\
  476. wndr4300)
  477. lan_mac=$(mtd_get_mac_binary caldata 0)
  478. wan_mac=$(mtd_get_mac_binary caldata 6)
  479. ;;
  480. tl-wr1043nd-v4)
  481. lan_mac=$(mtd_get_mac_binary product-info 8)
  482. wan_mac=$(macaddr_add "$lan_mac" 1)
  483. ;;
  484. esr900)
  485. wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
  486. ;;
  487. dir-869-a1|\
  488. mynet-n750)
  489. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  490. ;;
  491. esac
  492. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  493. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  494. }
  495. board_config_update
  496. board=$(ar71xx_board_name)
  497. ar71xx_setup_interfaces $board
  498. ar71xx_setup_macs $board
  499. board_config_flush
  500. exit 0