02_network 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  1. #!/bin/sh
  2. . /lib/functions.sh
  3. . /lib/functions/uci-defaults.sh
  4. . /lib/functions/system.sh
  5. ramips_setup_rt3x5x_vlans()
  6. {
  7. if [ ! -x /sbin/swconfig ]; then
  8. # legacy default
  9. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  10. return
  11. fi
  12. local wanports=""
  13. local lanports=""
  14. for port in 5 4 3 2 1 0; do
  15. if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
  16. continue
  17. fi
  18. if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
  19. wanports="$port:wan $wanports"
  20. else
  21. lanports="$port:lan $lanports"
  22. fi
  23. done
  24. ucidef_add_switch "rt305x" $lanports $wanports "6t@eth0"
  25. }
  26. ramips_setup_interfaces()
  27. {
  28. local board="$1"
  29. case $board in
  30. 11acnas|\
  31. w2914nsv2|\
  32. zbt-we2026)
  33. ucidef_add_switch "switch0" \
  34. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
  35. ;;
  36. 3g150b|\
  37. 3g300m|\
  38. a5-v11|\
  39. all0256n-4M|\
  40. all0256n-8M|\
  41. all5002|\
  42. all5003|\
  43. broadway|\
  44. dcs-930|\
  45. dcs-930l-b1|\
  46. ht-tm02|\
  47. linkits7688 | \
  48. linkits7688d | \
  49. m2m|\
  50. microwrt|\
  51. mpr-a2|\
  52. ncs601w|\
  53. omega2 | \
  54. omega2p | \
  55. timecloud|\
  56. w150m|\
  57. widora-neo|\
  58. wnce2001|\
  59. zbt-cpe102|\
  60. zte-q7)
  61. ucidef_add_switch "switch0"
  62. ucidef_add_switch_attr "switch0" "enable" "false"
  63. ucidef_set_interface_lan "eth0"
  64. ;;
  65. mlw221|\
  66. mr-102n)
  67. ucidef_set_interface_lan "eth0.2"
  68. ;;
  69. 3g-6200n|\
  70. ai-br100|\
  71. d240|\
  72. db-wrt01|\
  73. dir-300-b7|\
  74. dir-320-b1|\
  75. dir-610-a1|\
  76. dir-615-h1|\
  77. ew1200|\
  78. firewrt|\
  79. hc5661a|\
  80. hc5962|\
  81. hlk-rm04|\
  82. k2p|\
  83. kn|\
  84. kn_rc|\
  85. mac1200rv2|\
  86. miwifi-mini|\
  87. miwifi-nano|\
  88. mt7621|\
  89. mt7628|\
  90. mzk-750dhp|\
  91. mzk-w300nh2|\
  92. nixcore-x1-8M|\
  93. nixcore-x1-16M|\
  94. oy-0001|\
  95. pbr-m1|\
  96. psg1208|\
  97. psg1218a|\
  98. r6220|\
  99. sap-g3200u3|\
  100. sk-wb8|\
  101. vr500|\
  102. wf-2881|\
  103. witi|\
  104. wl-wn575a3|\
  105. wndr3700v5|\
  106. wt1520-4M|\
  107. wt1520-8M|\
  108. y1|\
  109. youku-yk1|\
  110. zbt-ape522ii|\
  111. zbt-we1326|\
  112. zbt-we826-16M|\
  113. zbt-we826-32M|\
  114. zbt-wg2626|\
  115. zbt-wg3526-16M|\
  116. zbt-wg3526-32M|\
  117. zbt-wr8305rt)
  118. ucidef_add_switch "switch0" \
  119. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  120. ;;
  121. psg1218b)
  122. ucidef_add_switch "switch0" \
  123. "0:lan:3" "1:lan:2" "2:lan:1" "3:wan" "6@eth0"
  124. ;;
  125. whr-300hp2|\
  126. whr-600d|\
  127. wsr-1166|\
  128. wsr-600)
  129. ucidef_add_switch "switch0" \
  130. "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
  131. ;;
  132. ar670w|\
  133. ar725w|\
  134. rt-ac51u)
  135. ucidef_add_switch "switch0" \
  136. "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
  137. ;;
  138. rt-n15|\
  139. wl-351)
  140. ucidef_add_switch "switch0" \
  141. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
  142. ;;
  143. asl26555-8M|\
  144. asl26555-16M|\
  145. rp-n53)
  146. ucidef_add_switch "switch0" \
  147. "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
  148. ;;
  149. atp-52b|\
  150. awm002-evb-4M|\
  151. awm002-evb-8M|\
  152. awm003-evb|\
  153. c20i|\
  154. c50|\
  155. dir-645|\
  156. f5d8235-v2|\
  157. gl-mt300a|\
  158. gl-mt300n|\
  159. gl-mt750|\
  160. hg255d|\
  161. jhr-n805r|\
  162. jhr-n825r|\
  163. jhr-n926r|\
  164. mzk-wdpr|\
  165. rb750gr3|\
  166. rt-n14u|\
  167. tl-wr840n-v4|\
  168. tl-wr841n-v13|\
  169. ubnt-erx|\
  170. ubnt-erx-sfp|\
  171. ur-326n4g|\
  172. wrtnode|\
  173. wrtnode2p | \
  174. wrtnode2r | \
  175. wt3020-4M|\
  176. wt3020-8M|\
  177. zbt-wa05)
  178. ucidef_add_switch "switch0" \
  179. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
  180. ;;
  181. dir-860l-b1)
  182. ucidef_add_switch "switch0" \
  183. "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
  184. ;;
  185. gb-pc1)
  186. ucidef_add_switch "switch0" \
  187. "0:lan" "4:lan" "6@eth0"
  188. ;;
  189. gl-mt300n-v2)
  190. ucidef_add_switch "switch0" \
  191. "1:lan" "0:wan" "6@eth0"
  192. ;;
  193. awapn2403)
  194. ucidef_add_switch "switch0" \
  195. "0:lan" "1:wan" "6@eth0"
  196. ;;
  197. b2c|\
  198. nw718|\
  199. psr-680w|\
  200. sl-r7205|\
  201. ur-336un|\
  202. w502u|\
  203. wr6202)
  204. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  205. ;;
  206. br-6475nd)
  207. ucidef_add_switch "switch0" \
  208. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  209. ;;
  210. cf-wr800n)
  211. ucidef_add_switch "switch0" \
  212. "4:lan" "6t@eth0"
  213. ;;
  214. cy-swr1100)
  215. ucidef_add_switch "switch0" \
  216. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
  217. ;;
  218. cs-qr10|\
  219. d105|\
  220. dch-m225|\
  221. ex2700|\
  222. ex3700|\
  223. hpm|\
  224. mzk-ex300np|\
  225. mzk-ex750np|\
  226. na930|\
  227. pbr-d1|\
  228. wli-tx4-ag300n|\
  229. wmr-300|\
  230. wn3000rpv3|\
  231. wrh-300cr)
  232. ucidef_set_interface_lan "eth0"
  233. ;;
  234. duzun-dm06)
  235. ucidef_add_switch "switch0" \
  236. "1:lan" "0:wan" "6@eth0"
  237. ;;
  238. e1700|\
  239. mt7620a_mt7530)
  240. ucidef_add_switch "switch1" \
  241. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  242. ;;
  243. hc5*61|\
  244. y1s)
  245. ucidef_add_switch "switch0" \
  246. "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
  247. ;;
  248. kn_rf)
  249. ucidef_add_switch "switch0" \
  250. "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6@eth0"
  251. ;;
  252. kng_rc)
  253. ucidef_add_switch "switch1" \
  254. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
  255. ;;
  256. mlwg2|\
  257. wizard8800|\
  258. wl-330n)
  259. ucidef_set_interface_lan "eth0.1"
  260. ;;
  261. mr200)
  262. ucidef_add_switch "switch0" \
  263. "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0"
  264. ucidef_set_interface_wan "usb0"
  265. ;;
  266. mzk-dp150n|\
  267. vocore-8M|\
  268. vocore-16M)
  269. ucidef_add_switch "switch0" \
  270. "0:lan" "4:lan" "6t@eth0"
  271. ;;
  272. newifi-d1)
  273. ucidef_add_switch "switch0" \
  274. "1:lan:2" "2:lan:1" "4:wan" "6@eth0"
  275. ;;
  276. re350-v1)
  277. ucidef_add_switch "switch0" \
  278. "0:lan" "6@eth0"
  279. ;;
  280. re6500)
  281. ucidef_add_switch "switch0" \
  282. "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "6@eth0"
  283. ;;
  284. rt-n56u)
  285. ucidef_add_switch "switch0" \
  286. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
  287. ;;
  288. tew-638apb-v2)
  289. ucidef_add_switch "switch0" \
  290. "4:lan" "6@eth0"
  291. ;;
  292. tew-691gr|\
  293. tew-692gr|\
  294. wlr-6000)
  295. ucidef_add_switch "switch0" \
  296. "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
  297. ;;
  298. vocore2)
  299. ucidef_add_switch "switch0" \
  300. "0:lan" "2:lan" "6t@eth0"
  301. ;;
  302. f5d8235-v1|\
  303. tew-714tru|\
  304. v11st-fe|\
  305. wzr-agl300nh)
  306. ucidef_add_switch "switch0" \
  307. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  308. ;;
  309. wcr-1166ds)
  310. ucidef_add_switch "switch0" \
  311. "3:lan" "4:wan" "6@eth0"
  312. ;;
  313. wcr-150gn)
  314. ucidef_add_switch "switch0" \
  315. "0:lan" "6t@eth0"
  316. ;;
  317. whr-1166d)
  318. ucidef_add_switch "switch0" \
  319. "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
  320. ;;
  321. wizfi630a)
  322. ucidef_add_switch "switch0" \
  323. "1:lan" "2:lan" "0:wan" "6@eth0"
  324. ;;
  325. *)
  326. RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
  327. if [ -n "${RT3X5X}" ]; then
  328. ramips_setup_rt3x5x_vlans
  329. else
  330. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  331. fi
  332. ;;
  333. esac
  334. }
  335. ramips_setup_macs()
  336. {
  337. local board="$1"
  338. local lan_mac=""
  339. local wan_mac=""
  340. case $board in
  341. a5-v11|\
  342. ht-tm02)
  343. lan_mac=$(cat /sys/class/net/eth0/address)
  344. ;;
  345. all0239-3g|\
  346. carambola|\
  347. freestation5|\
  348. w502u|\
  349. wnce2001)
  350. wan_mac=$(mtd_get_mac_binary factory 46)
  351. ;;
  352. bc2|\
  353. broadway|\
  354. d105|\
  355. dir-300-b7|\
  356. dir-320-b1|\
  357. dir-620-a1|\
  358. esr-9753|\
  359. freestation5|\
  360. hlk-rm04|\
  361. mpr-a1|\
  362. psr-680w|\
  363. sl-r7205|\
  364. y1|\
  365. y1s)
  366. lan_mac=$(cat /sys/class/net/eth0/address)
  367. lan_mac=$(macaddr_setbit_la "$lan_mac")
  368. wan_mac=$(macaddr_add "$lan_mac" 1)
  369. ;;
  370. br-6475nd)
  371. lan_mac=$(cat /sys/class/net/eth0/address)
  372. wan_mac=$(mtd_get_mac_binary devdata 7)
  373. ;;
  374. cy-swr1100|\
  375. dch-m225)
  376. lan_mac=$(mtd_get_mac_ascii factory lanmac)
  377. ;;
  378. dir-645)
  379. lan_mac=$(mtd_get_mac_ascii nvram lanmac)
  380. wan_mac=$(mtd_get_mac_ascii nvram wanmac)
  381. ;;
  382. dir-860l-b1)
  383. lan_mac=$(mtd_get_mac_ascii factory lanmac)
  384. wan_mac=$(mtd_get_mac_ascii factory wanmac)
  385. ;;
  386. e1700)
  387. wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
  388. ;;
  389. gl-mt300n-v2)
  390. wan_mac=$(mtd_get_mac_binary factory 4)
  391. ;;
  392. hc5*61|\
  393. hc5661a|\
  394. hc5962)
  395. lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "`
  396. [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
  397. wan_mac=$(macaddr_add "$lan_mac" 1)
  398. ;;
  399. kn_rc|\
  400. kn_rf|\
  401. kng_rc)
  402. wan_mac=$(mtd_get_mac_binary factory 40)
  403. ;;
  404. linkits7688 | \
  405. linkits7688d)
  406. wan_mac=$(mtd_get_mac_binary factory 4)
  407. lan_mac=$(mtd_get_mac_binary factory 46)
  408. ;;
  409. mac1200rv2)
  410. lan_mac=$(mtd_get_mac_binary factory_info 13)
  411. wan_mac=$(macaddr_add "$lan_mac" 1)
  412. ;;
  413. miwifi-mini)
  414. wan_mac=$(cat /sys/class/net/eth0/address)
  415. lan_mac=$(macaddr_setbit_la "$wan_mac")
  416. ;;
  417. m3|\
  418. m4-4M|\
  419. m4-8M|\
  420. x5|\
  421. x8)
  422. lan_mac=$(cat /sys/class/net/eth0/address)
  423. lan_mac=$(macaddr_add "$lan_mac" -2)
  424. ;;
  425. newifi-d1)
  426. lan_mac=$(cat /sys/class/net/eth0/address)
  427. lan_mac=$(macaddr_add "$lan_mac" 2)
  428. ;;
  429. omega2|\
  430. omega2p)
  431. wan_mac=$(mtd_get_mac_binary factory 4)
  432. lan_mac=$(mtd_get_mac_binary factory 46)
  433. ;;
  434. oy-0001)
  435. lan_mac=$(mtd_get_mac_binary factory 40)
  436. wan_mac=$(mtd_get_mac_binary factory 46)
  437. ;;
  438. r6220)
  439. wan_mac=$(mtd_get_mac_binary factory 4)
  440. lan_mac=$(macaddr_add "$wan_mac" 1)
  441. ;;
  442. rt-n56u)
  443. lan_mac=$(cat /sys/class/net/eth0/address)
  444. lan_mac=$(macaddr_setbit_la "$lan_mac")
  445. wan_mac=$(mtd_get_mac_binary factory 32772)
  446. ;;
  447. sk-wb8)
  448. wan_mac=$(mtd_get_mac_binary factory 57350)
  449. ;;
  450. tew-691gr)
  451. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 3)
  452. ;;
  453. tew-692gr)
  454. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 1)
  455. ;;
  456. tiny-ac)
  457. lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
  458. wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
  459. ;;
  460. vr500)
  461. lan_mac=$(mtd_get_mac_binary factory 57344)
  462. wan_mac=$(mtd_get_mac_binary factory 57350)
  463. ;;
  464. w306r-v20)
  465. lan_mac=$(cat /sys/class/net/eth0/address)
  466. wan_mac=$(macaddr_add "$lan_mac" 5)
  467. ;;
  468. wcr-1166ds|\
  469. wsr-1166)
  470. local index="$(find_mtd_index "board_data")"
  471. wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
  472. lan_mac=$wan_mac
  473. ;;
  474. wcr-150gn)
  475. wan_mac=$(mtd_get_mac_binary factory 40)
  476. ;;
  477. whr-1166d|\
  478. whr-300hp2|\
  479. whr-600d|\
  480. wsr-600)
  481. wan_mac=$(mtd_get_mac_binary factory 4)
  482. lan_mac=$wan_mac
  483. ;;
  484. wizfi630a)
  485. lan_mac=$(mtd_get_mac_binary factory 4)
  486. wan_mac=$(mtd_get_mac_binary factory 40)
  487. ;;
  488. wlr-6000)
  489. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 32772)" 2)
  490. ;;
  491. *)
  492. lan_mac=$(cat /sys/class/net/eth0/address)
  493. wan_mac=$(macaddr_add "$lan_mac" 1)
  494. ;;
  495. esac
  496. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  497. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  498. }
  499. board_config_update
  500. board=$(board_name)
  501. ramips_setup_interfaces $board
  502. ramips_setup_macs $board
  503. board_config_flush
  504. exit 0