02_network 11 KB

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