02_network 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. . /lib/functions.sh
  2. . /lib/functions/uci-defaults.sh
  3. . /lib/functions/system.sh
  4. ramips_setup_interfaces()
  5. {
  6. local board="$1"
  7. case $board in
  8. aigale,ai-br100|\
  9. alfa-network,ac1200rm|\
  10. asus,rt-n12p|\
  11. dlink,dwr-116-a1|\
  12. dlink,dwr-921-c1|\
  13. dlink,dwr-922-e2|\
  14. dovado,tiny-ac|\
  15. hongdian,h8922-v30|\
  16. ohyeah,oy-0001|\
  17. phicomm,psg1208|\
  18. planex,db-wrt01|\
  19. planex,mzk-750dhp|\
  20. ralink,mt7620a-evb|\
  21. ralink,mt7620a-mt7610e-evb|\
  22. ralink,mt7620a-v22sg-evb|\
  23. sanlinking,d240|\
  24. zbtlink,zbt-ape522ii|\
  25. zbtlink,zbt-we826-16m|\
  26. zbtlink,zbt-we826-32m|\
  27. zbtlink,zbt-we826-e|\
  28. zbtlink,zbt-wr8305rt|\
  29. zyxel,keenetic-lite-iii-a|\
  30. zyxel,keenetic-omni)
  31. ucidef_add_switch "switch0" \
  32. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  33. ;;
  34. alfa-network,r36m-e4g|\
  35. bolt,bl100|\
  36. zbtlink,zbt-we1026-h-32m)
  37. ucidef_add_switch "switch0" \
  38. "3:lan" "4:wan" "6@eth0"
  39. ;;
  40. alfa-network,tube-e4g|\
  41. ampedwireless,b1200ex|\
  42. buffalo,wmr-300|\
  43. dlink,dch-m225|\
  44. edimax,ew-7476rpc|\
  45. edimax,ew-7478ac|\
  46. elecom,wrh-300cr|\
  47. hootoo,ht-tm05|\
  48. kimax,u25awf-h1|\
  49. kimax,u35wf|\
  50. kingston,mlw221|\
  51. kingston,mlwg2|\
  52. microduino,microwrt|\
  53. netgear,ex2700|\
  54. netgear,ex3700|\
  55. netgear,ex6120|\
  56. netgear,ex6130|\
  57. netgear,wn3000rp-v3|\
  58. netgear,wn3100rp-v2|\
  59. planex,cs-qr10|\
  60. planex,mzk-ex300np|\
  61. planex,mzk-ex750np|\
  62. ravpower,rp-wd03|\
  63. sercomm,na930|\
  64. tplink,re200-v1|\
  65. tplink,re210-v1|\
  66. trendnet,tha103ac|\
  67. yukai,bocco|\
  68. zbtlink,zbt-cpe102|\
  69. zte,q7)
  70. ucidef_add_switch "switch0"
  71. ucidef_add_switch_attr "switch0" "enable" "false"
  72. ucidef_set_interface_lan "eth0"
  73. ;;
  74. asus,rp-n53)
  75. ucidef_add_switch "switch0" \
  76. "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
  77. ;;
  78. asus,rt-ac51u|\
  79. asus,rt-ac54u|\
  80. asus,rt-n14u|\
  81. bdcom,wap2100-sk|\
  82. dlink,dir-806a-b1|\
  83. domywifi,dm202|\
  84. domywifi,dm203|\
  85. domywifi,dw22d|\
  86. edimax,ew-7478apc|\
  87. glinet,gl-mt300a|\
  88. glinet,gl-mt300n|\
  89. glinet,gl-mt750|\
  90. hiwifi,hc5661|\
  91. snr,cpe-w4n-mt|\
  92. wrtnode,wrtnode|\
  93. zbtlink,zbt-wa05|\
  94. zyxel,keenetic-omni-ii)
  95. ucidef_add_switch "switch0" \
  96. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
  97. ;;
  98. buffalo,whr-1166d)
  99. ucidef_add_switch "switch0" \
  100. "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
  101. ;;
  102. buffalo,whr-300hp2|\
  103. buffalo,whr-600d)
  104. ucidef_add_switch "switch0" \
  105. "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
  106. ;;
  107. comfast,cf-wr800n|\
  108. hnet,c108|\
  109. humax,e2)
  110. ucidef_add_switch "switch0" \
  111. "4:lan" "6@eth0"
  112. ;;
  113. dlink,dir-510l)
  114. ucidef_add_switch "switch0" \
  115. "0:lan" "6@eth0"
  116. ;;
  117. dlink,dir-810l|\
  118. netcore,nw5212|\
  119. netgear,jwnr2010-v5|\
  120. phicomm,k2-v22.4|\
  121. phicomm,k2-v22.5|\
  122. rostelecom,rt-fl-1|\
  123. rostelecom,s1010|\
  124. trendnet,tew-810dr|\
  125. zbtlink,zbt-we2026)
  126. ucidef_add_switch "switch0" \
  127. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
  128. ;;
  129. dlink,dwr-118-a1)
  130. ucidef_add_switch "switch0" \
  131. "1:lan:2" "2:lan:3" "3:lan:1" "4:lan:0" "5:wan" "6@eth0"
  132. ;;
  133. dlink,dwr-118-a2)
  134. ucidef_add_switch "switch0" \
  135. "1:lan:2" "2:lan:1" "3:lan:3" "4:lan" "0:wan" "6@eth0"
  136. ;;
  137. dlink,dwr-960)
  138. ucidef_add_switch "switch0" \
  139. "1:lan" "2:lan" "3:lan" "5:lan" "0:wan" "6@eth0"
  140. ;;
  141. dlink,dwr-961-a1)
  142. ucidef_add_switch "switch0" \
  143. "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan" "0@eth0"
  144. ucidef_add_switch "switch1" \
  145. "5:lan" "6@eth0"
  146. ucidef_add_switch_attr "switch1" "enable" "false"
  147. ;;
  148. edimax,br-6208ac-v2)
  149. ucidef_add_switch "switch0" \
  150. "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
  151. ;;
  152. edimax,br-6478ac-v2|\
  153. lb-link,bl-w1200|\
  154. tplink,archer-c2-v1)
  155. ucidef_add_switch "switch0"
  156. ucidef_add_switch_attr "switch0" "enable" "false"
  157. ucidef_add_switch "switch1" \
  158. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
  159. ;;
  160. engenius,epg600|\
  161. engenius,esr600|\
  162. lava,lr-25g001|\
  163. sitecom,wlr-4100-v1-002)
  164. ucidef_add_switch "switch0" \
  165. "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "0@eth0"
  166. ucidef_add_switch "switch1" \
  167. "5:lan" "6@eth0"
  168. ucidef_add_switch_attr "switch1" "enable" "false"
  169. ;;
  170. fon,fon2601|\
  171. vonets,var11n-300)
  172. ucidef_add_switch "switch0" \
  173. "0:lan" "4:wan" "6@eth0"
  174. ;;
  175. head-weblink,hdrm200)
  176. ucidef_add_switch "switch0" \
  177. "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
  178. ;;
  179. hiwifi,hc5761)
  180. ucidef_add_switch "switch0" \
  181. "1:lan" "4:lan" "0:wan" "6@eth0"
  182. ;;
  183. hiwifi,hc5861)
  184. ucidef_add_switch "switch0" \
  185. "0:lan" "1:lan" "5:wan" "6@eth0"
  186. ;;
  187. iodata,wn-ac1167gr|\
  188. iodata,wn-ac733gr3|\
  189. iptime,a1004ns)
  190. ucidef_add_switch "switch0"
  191. ucidef_add_switch_attr "switch0" "enable" "false"
  192. ucidef_add_switch "switch1" \
  193. "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
  194. ;;
  195. iptime,a104ns)
  196. ucidef_add_switch "switch0" \
  197. "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
  198. ;;
  199. lenovo,newifi-y1|\
  200. xiaomi,miwifi-mini)
  201. ucidef_add_switch "switch0" \
  202. "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
  203. ;;
  204. lenovo,newifi-y1s)
  205. ucidef_add_switch "switch0" \
  206. "1:lan:4" "2:lan:3" "4:lan:2" "5:lan:1" "0:wan" "6@eth0"
  207. ;;
  208. linksys,e1700|\
  209. netis,wf2770|\
  210. ralink,mt7620a-mt7530-evb|\
  211. wevo,air-duo)
  212. ucidef_add_switch "switch0"
  213. ucidef_add_switch_attr "switch0" "enable" "false"
  214. ucidef_add_switch "switch1" \
  215. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  216. ;;
  217. netgear,pr2000|\
  218. nexx,wt3020-4m|\
  219. nexx,wt3020-8m)
  220. ucidef_add_switch "switch0" \
  221. "4:lan" "0:wan" "6@eth0"
  222. ;;
  223. phicomm,k2g|\
  224. wavlink,wl-wn530hg4)
  225. ucidef_add_switch "switch0" \
  226. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5:wan" "6@eth0"
  227. ;;
  228. phicomm,psg1218b)
  229. ucidef_add_switch "switch0" \
  230. "0:lan:3" "1:lan:2" "2:lan:1" "3:wan" "6@eth0"
  231. ;;
  232. tplink,archer-c20-v1|\
  233. tplink,archer-c20i|\
  234. tplink,archer-c50-v1)
  235. ucidef_add_switch "switch0" \
  236. "1:lan:3" "2:lan:4" "3:lan:1" "4:lan:2" "0:wan" "6@eth0"
  237. ;;
  238. tplink,archer-c5-v4)
  239. ucidef_add_switch "switch0"
  240. ucidef_add_switch_attr "switch0" "enable" "0"
  241. ucidef_add_switch "switch1" \
  242. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "7@eth0"
  243. ;;
  244. tplink,archer-mr200)
  245. ucidef_add_switch "switch0" \
  246. "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0"
  247. ucidef_set_interface_wan "usb0"
  248. ;;
  249. tplink,ec220-g5-v2)
  250. ucidef_add_switch "switch0"
  251. ucidef_add_switch_attr "switch0" "enable" "0"
  252. ucidef_add_switch "switch1" \
  253. "0:lan:3" "1:lan:2" "2:lan:1" "4:lan:4" "3:wan" "7@eth0"
  254. ;;
  255. wavlink,wl-wn531g3)
  256. ucidef_add_switch "switch0" \
  257. "0:lan:4" "1:lan:3" "2:lan:2" "5:lan:1" "4:wan" "6@eth0"
  258. ;;
  259. wavlink,wl-wn531g3-a2)
  260. ucidef_add_switch "switch0" \
  261. "0:lan:4" "1:lan:3" "2:lan:2" "5:lan:1" "4:wan" "6@eth0"
  262. ;;
  263. wavlink,wl-wn535k1)
  264. ucidef_add_switch "switch0" \
  265. "2:lan:2" "5:lan:1" "4:wan" "6@eth0"
  266. ;;
  267. wavlink,wl-wn579x3)
  268. ucidef_add_switch "switch0" \
  269. "5:lan" "4:wan" "6@eth0"
  270. ;;
  271. youku,x2)
  272. ucidef_add_switch "switch0" \
  273. "1:lan:2" "4:lan:1" "0:wan" "6@eth0"
  274. ;;
  275. youku,yk-l1|\
  276. youku,yk-l1c)
  277. ucidef_add_switch "switch0" \
  278. "0:lan" "1:lan" "4:wan" "6@eth0"
  279. ;;
  280. zbtlink,zbt-we1026-5g-16m)
  281. ucidef_add_switch "switch0" \
  282. "0:lan" "6t@eth0"
  283. ;;
  284. zyxel,keenetic-viva)
  285. ucidef_add_switch "switch1" \
  286. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
  287. ;;
  288. esac
  289. }
  290. ramips_setup_macs()
  291. {
  292. local board="$1"
  293. local lan_mac=""
  294. local wan_mac=""
  295. local label_mac=""
  296. case $board in
  297. aigale,ai-br100|\
  298. asus,rt-n12p|\
  299. asus,rt-n14u|\
  300. bdcom,wap2100-sk|\
  301. edimax,br-6208ac-v2|\
  302. edimax,ew-7478apc|\
  303. fon,fon2601|\
  304. head-weblink,hdrm200|\
  305. netgear,jwnr2010-v5|\
  306. nexx,wt3020-4m|\
  307. nexx,wt3020-8m|\
  308. phicomm,psg1208|\
  309. planex,db-wrt01|\
  310. planex,mzk-750dhp|\
  311. sanlinking,d240|\
  312. vonets,var11n-300|\
  313. wrtnode,wrtnode|\
  314. zbtlink,zbt-ape522ii|\
  315. zbtlink,zbt-wa05|\
  316. zbtlink,zbt-we2026|\
  317. zbtlink,zbt-we826-16m|\
  318. zbtlink,zbt-we826-32m|\
  319. zbtlink,zbt-we826-e|\
  320. zbtlink,zbt-wr8305rt)
  321. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
  322. ;;
  323. alfa-network,ac1200rm|\
  324. dlink,dir-810l|\
  325. trendnet,tew-810dr)
  326. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
  327. ;;
  328. alfa-network,r36m-e4g|\
  329. domywifi,dm202|\
  330. domywifi,dm203|\
  331. domywifi,dw22d|\
  332. zbtlink,zbt-we1026-h-32m)
  333. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  334. label_mac=$(mtd_get_mac_binary factory 0x4)
  335. ;;
  336. asus,rt-ac51u|\
  337. asus,rt-ac54u)
  338. lan_mac=$(mtd_get_mac_binary factory 0x22)
  339. ;;
  340. dlink,dch-m225|\
  341. trendnet,tha103ac)
  342. lan_mac=$(mtd_get_mac_ascii factory lanmac)
  343. ;;
  344. dlink,dir-510l|\
  345. dlink,dwr-116-a1|\
  346. dlink,dwr-118-a1|\
  347. dlink,dwr-118-a2|\
  348. dlink,dwr-921-c1|\
  349. dlink,dwr-922-e2|\
  350. dlink,dwr-960|\
  351. dlink,dwr-961-a1|\
  352. lava,lr-25g001)
  353. wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
  354. lan_mac=$(macaddr_add "$wan_mac" 1)
  355. label_mac=$wan_mac
  356. ;;
  357. dovado,tiny-ac)
  358. lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
  359. wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
  360. ;;
  361. edimax,br-6478ac-v2)
  362. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 2)
  363. ;;
  364. engenius,epg600|\
  365. engenius,esr600)
  366. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  367. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  368. label_mac=$wan_mac
  369. ;;
  370. glinet,gl-mt300a|\
  371. glinet,gl-mt300n|\
  372. glinet,gl-mt750)
  373. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4000)" 1)
  374. label_mac=$(mtd_get_mac_binary factory 0x4)
  375. ;;
  376. hiwifi,hc5661|\
  377. hiwifi,hc5761|\
  378. hiwifi,hc5861)
  379. lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
  380. label_mac=$lan_mac
  381. [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
  382. wan_mac=$(macaddr_add "$lan_mac" 1)
  383. ;;
  384. iodata,wn-ac1167gr|\
  385. iodata,wn-ac733gr3)
  386. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  387. ;;
  388. iptime,a1004ns)
  389. wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
  390. ;;
  391. iptime,a104ns)
  392. wan_mac=$(macaddr_add "$(mtd_get_mac_binary u-boot 0x1fc20)" 2)
  393. ;;
  394. lb-link,bl-w1200|\
  395. netis,wf2770|\
  396. phicomm,k2-v22.4|\
  397. phicomm,k2-v22.5|\
  398. phicomm,k2g|\
  399. phicomm,psg1218b)
  400. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  401. label_mac=$wan_mac
  402. ;;
  403. lenovo,newifi-y1|\
  404. lenovo,newifi-y1s|\
  405. ohyeah,oy-0001|\
  406. wavlink,wl-wn530hg4|\
  407. wevo,air-duo|\
  408. youku,x2|\
  409. youku,yk-l1|\
  410. youku,yk-l1c)
  411. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  412. ;;
  413. linksys,e1700)
  414. wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
  415. ;;
  416. rostelecom,rt-fl-1|\
  417. rostelecom,s1010)
  418. label_mac=$(mtd_get_mac_binary "SC Nvram(permanent data)" 0x0)
  419. wan_mac=$(macaddr_add "$label_mac" 10)
  420. ;;
  421. snr,cpe-w4n-mt)
  422. lan_mac=$(mtd_get_mac_binary Factory 0x28)
  423. wan_mac=$(mtd_get_mac_binary Factory 0x2e)
  424. label_mac=$wan_mac
  425. ;;
  426. tplink,archer-c2-v1|\
  427. tplink,archer-c20-v1|\
  428. tplink,archer-c20i|\
  429. tplink,archer-c5-v4|\
  430. tplink,archer-c50-v1|\
  431. tplink,archer-mr200|\
  432. tplink,ec220-g5-v2)
  433. wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1)
  434. ;;
  435. wavlink,wl-wn531g3|\
  436. wavlink,wl-wn531g3-a2|\
  437. zbtlink,zbt-we1026-5g-16m)
  438. label_mac=$(mtd_get_mac_binary factory 0x4)
  439. ;;
  440. wavlink,wl-wn535k1)
  441. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  442. label_mac=$(mtd_get_mac_binary factory 0x8004)
  443. ;;
  444. zyxel,keenetic-lite-iii-a)
  445. lan_mac=$(mtd_get_mac_binary RF-EEPROM 0x4)
  446. wan_mac=$(mtd_get_mac_binary RF-EEPROM 0x28)
  447. label_mac=$wan_mac
  448. ;;
  449. zyxel,keenetic-omni|\
  450. zyxel,keenetic-omni-ii|\
  451. zyxel,keenetic-viva)
  452. wan_mac=$(mtd_get_mac_binary factory 0x28)
  453. ;;
  454. esac
  455. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  456. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  457. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  458. }
  459. board_config_update
  460. board=$(board_name)
  461. ramips_setup_interfaces $board
  462. ramips_setup_macs $board
  463. board_config_flush
  464. exit 0