02_network 9.0 KB

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