02_network 8.7 KB

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