02_network 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. #!/bin/sh
  2. . /lib/functions/system.sh
  3. . /lib/functions/uci-defaults.sh
  4. . /lib/functions/k2t.sh
  5. ath79_setup_interfaces()
  6. {
  7. local board="$1"
  8. case "$board" in
  9. avm,fritz300e|\
  10. devolo,dvl1200i|\
  11. devolo,dvl1750c|\
  12. devolo,dvl1750i|\
  13. glinet,ar300m-lite|\
  14. netgear,ex6400|\
  15. netgear,ex7300|\
  16. ocedo,koala|\
  17. ocedo,raccoon|\
  18. pcs,cap324|\
  19. pisen,wmm003n|\
  20. pqi,air-pen|\
  21. tplink,cpe210-v2|\
  22. tplink,cpe210-v3|\
  23. tplink,re350k-v1|\
  24. tplink,re450-v2|\
  25. tplink,tl-mr10u|\
  26. tplink,tl-mr3020-v1|\
  27. tplink,tl-mr3040-v2|\
  28. tplink,tl-wa901nd-v2|\
  29. tplink,tl-wr703n|\
  30. ubnt,bullet-m|\
  31. ubnt,bullet-m-xw|\
  32. ubnt,lap-120|\
  33. ubnt,nanobeam-ac|\
  34. ubnt,nanostation-ac-loco|\
  35. ubnt,rocket-m|\
  36. ubnt,unifiac-lite|\
  37. ubnt,unifiac-mesh|\
  38. ubnt,unifi|\
  39. wd,mynet-wifi-rangeextender|\
  40. winchannel,wb2000)
  41. ucidef_set_interface_lan "eth0"
  42. ;;
  43. avm,fritz4020|\
  44. pcs,cr3000|\
  45. tplink,archer-c58-v1|\
  46. tplink,archer-c59-v1)
  47. ucidef_set_interface_wan "eth0"
  48. ucidef_add_switch "switch0" \
  49. "0@eth1" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  50. ;;
  51. buffalo,bhr-4grv|\
  52. buffalo,wzr-hp-g450h)
  53. ucidef_add_switch "switch0" \
  54. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  55. ;;
  56. buffalo,bhr-4grv2)
  57. ucidef_add_switch "switch0" \
  58. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
  59. ;;
  60. buffalo,wzr-hp-ag300h)
  61. ucidef_set_interface_wan "eth1"
  62. ucidef_add_switch "switch0" \
  63. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  64. ;;
  65. buffalo,wzr-hp-g302h-a1a0)
  66. ucidef_add_switch "switch0" \
  67. "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
  68. ;;
  69. comfast,cf-e5|\
  70. glinet,gl-ar150|\
  71. glinet,gl-ar300m-nand|\
  72. glinet,gl-ar300m-nor|\
  73. glinet,gl-x750|\
  74. tplink,tl-wr810n-v1|\
  75. tplink,tl-wr810n-v2|\
  76. ubnt,routerstation|\
  77. yuncore,a770)
  78. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  79. ;;
  80. devolo,dvl1200e|\
  81. devolo,dvl1750e|\
  82. ocedo,ursus)
  83. ucidef_set_interface_lan "eth0 eth1"
  84. ;;
  85. dlink,dir-825-b1)
  86. ucidef_set_interface_wan "eth1"
  87. ucidef_add_switch "switch0" \
  88. "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
  89. ;;
  90. dlink,dir-825-c1|\
  91. dlink,dir-835-a1|\
  92. dlink,dir-859-a1|\
  93. engenius,epg5000|\
  94. tplink,archer-c2-v3|\
  95. tplink,tl-wr1043nd-v4)
  96. ucidef_add_switch "switch0" \
  97. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  98. ;;
  99. elecom,wrc-1750ghbk2-i|\
  100. elecom,wrc-300ghbk2-i)
  101. ucidef_add_switch "switch0" \
  102. "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
  103. ;;
  104. embeddedwireless,dorin)
  105. ucidef_add_switch "switch0" \
  106. "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
  107. ;;
  108. engenius,ews511ap)
  109. ucidef_set_interface_lan "eth0 eth1" "dhcp"
  110. ;;
  111. etactica,eg200)
  112. ucidef_set_interface_lan "eth0" "dhcp"
  113. ;;
  114. glinet,gl-ar750s)
  115. ucidef_add_switch "switch0" \
  116. "0@eth0" "2:lan:2" "3:lan:1" "1:wan"
  117. ;;
  118. iodata,etg3-r|\
  119. iodata,wn-ac1167dgr|\
  120. iodata,wn-ac1600dgr|\
  121. iodata,wn-ac1600dgr2|\
  122. iodata,wn-ag300dgr|\
  123. pcs,cr5000)
  124. ucidef_add_switch "switch0" \
  125. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  126. ;;
  127. librerouter,librerouter-v1)
  128. ucidef_add_switch "switch0" \
  129. "0@eth0" "5:wan" "6@eth1" "4:lan"
  130. ;;
  131. nec,wg1200cr|\
  132. ubnt,nanostation-ac|\
  133. ubnt,unifiac-mesh-pro|\
  134. ubnt,unifiac-pro)
  135. ucidef_add_switch "switch0" \
  136. "0@eth0" "2:lan" "3:wan"
  137. ;;
  138. nec,wg800hp)
  139. ucidef_add_switch "switch0" \
  140. "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
  141. ;;
  142. netgear,wndr3700|\
  143. netgear,wndr3700v2|\
  144. netgear,wndr3800)
  145. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  146. ucidef_add_switch "switch0" \
  147. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
  148. ucidef_add_switch_attr "switch0" "blinkrate" 2
  149. ucidef_add_switch_port_attr "switch0" 1 led 6
  150. ucidef_add_switch_port_attr "switch0" 2 led 9
  151. ucidef_add_switch_port_attr "switch0" 5 led 2
  152. ;;
  153. netgear,wnr612-v2|\
  154. on,n150r|\
  155. tplink,tl-wr841-v7)
  156. ucidef_set_interface_wan "eth0"
  157. ucidef_add_switch "switch0" \
  158. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  159. ;;
  160. phicomm,k2t)
  161. ucidef_add_switch "switch0" \
  162. "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
  163. ;;
  164. rosinson,wr818)
  165. ucidef_add_switch "switch0" \
  166. "0@eth0" "1:lan" "2:lan" "3:wan"
  167. ;;
  168. tplink,archer-c5-v1|\
  169. tplink,archer-c7-v1|\
  170. tplink,archer-c7-v2|\
  171. tplink,tl-wdr4900-v2)
  172. ucidef_add_switch "switch0" \
  173. "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
  174. ;;
  175. buffalo,whr-g301n|\
  176. tplink,tl-mr3220-v1|\
  177. tplink,tl-mr3420-v1|\
  178. tplink,tl-wr841-v9|\
  179. tplink,tl-wr841-v11|\
  180. tplink,tl-wr842n-v3|\
  181. ubnt,airrouter)
  182. ucidef_set_interface_wan "eth0"
  183. ucidef_add_switch "switch0" \
  184. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  185. ;;
  186. tplink,archer-a7-v5|\
  187. tplink,archer-c6-v2|\
  188. tplink,archer-c7-v4|\
  189. tplink,archer-c7-v5|\
  190. tplink,tl-wdr3600|\
  191. tplink,tl-wdr4300|\
  192. tplink,tl-wr941n-v7-cn)
  193. ucidef_add_switch "switch0" \
  194. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  195. ;;
  196. tplink,tl-wr1043nd-v1)
  197. ucidef_add_switch "switch0" \
  198. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  199. ;;
  200. tplink,tl-wr1043nd-v2|\
  201. tplink,tl-wr1043nd-v3)
  202. ucidef_add_switch "switch0" \
  203. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  204. ;;
  205. tplink,tl-wr2543-v1)
  206. ucidef_add_switch "switch0" \
  207. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  208. ;;
  209. tplink,tl-wr740n-v1|\
  210. tplink,tl-wr740n-v3|\
  211. tplink,tl-wr741-v1|\
  212. tplink,tl-wr743nd-v1|\
  213. tplink,tl-wr841-v5|\
  214. tplink,tl-wr941-v4)
  215. ucidef_set_interface_wan "eth0"
  216. ucidef_add_switch "switch0" \
  217. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  218. ;;
  219. tplink,tl-wr710n-v1)
  220. ucidef_set_interface_wan "eth0"
  221. ucidef_add_switch "switch0" \
  222. "0@eth1" "3:lan"
  223. ;;
  224. tplink,tl-wr740n-v4|\
  225. tplink,tl-wr741nd-v4|\
  226. tplink,tl-wr841-v8|\
  227. tplink,tl-wr842n-v1|\
  228. tplink,tl-wr842n-v2)
  229. ucidef_set_interface_wan "eth0"
  230. ucidef_add_switch "switch0" \
  231. "0@eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  232. ;;
  233. tplink,tl-wr941-v2)
  234. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  235. ;;
  236. ubnt,acb-isp)
  237. ucidef_set_interface_wan "eth0"
  238. ucidef_add_switch "switch0" \
  239. "0@eth1" "2:lan:1" "3:lan:3" "4:lan:2"
  240. ;;
  241. ubnt,routerstation-pro)
  242. ucidef_set_interface_wan "eth0"
  243. ucidef_add_switch "switch0" \
  244. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  245. ;;
  246. ubnt,nanostation-m-xw)
  247. ucidef_add_switch "switch0" \
  248. "0@eth0" "5:lan" "1:wan"
  249. ;;
  250. xiaomi,mi-router-4q)
  251. ucidef_set_interface_wan "eth0"
  252. ucidef_add_switch "switch0" \
  253. "0@eth1" "3:lan:1" "4:lan:2"
  254. ;;
  255. *)
  256. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  257. ;;
  258. esac
  259. }
  260. ath79_setup_macs()
  261. {
  262. local board="$1"
  263. case "$board" in
  264. avm,fritz300e)
  265. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  266. ;;
  267. avm,fritz4020)
  268. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  269. wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
  270. ;;
  271. dlink,dir-825-b1)
  272. lan_mac=$(mtd_get_mac_text "caldata" 65440)
  273. wan_mac=$(mtd_get_mac_text "caldata" 65460)
  274. ;;
  275. dlink,dir-825-c1|\
  276. dlink,dir-835-a1)
  277. lan_mac=$(mtd_get_mac_text "mac" 4)
  278. wan_mac=$(mtd_get_mac_text "mac" 24)
  279. ;;
  280. dlink,dir-859-a1|\
  281. nec,wg1200cr)
  282. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  283. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  284. ;;
  285. elecom,wrc-1750ghbk2-i|\
  286. elecom,wrc-300ghbk2-i)
  287. wan_mac=$(macaddr_add "$(mtd_get_mac_binary ART 4098)" -2)
  288. ;;
  289. engenius,epg5000|\
  290. iodata,wn-ac1167dgr|\
  291. iodata,wn-ac1600dgr|\
  292. iodata,wn-ac1600dgr2|\
  293. iodata,wn-ag300dgr)
  294. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  295. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  296. ;;
  297. engenius,ews511ap)
  298. lan_mac=$(mtd_get_mac_text "u-boot-env" 233)
  299. eth1_mac=$(macaddr_add "$lan_mac" 1)
  300. ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
  301. ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
  302. ;;
  303. iodata,etg3-r)
  304. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  305. wan_mac=$(macaddr_add "$lan_mac" -1)
  306. ;;
  307. jjplus,ja76pf2)
  308. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
  309. lan_mac=$(macaddr_add "$wan_mac" 1)
  310. ;;
  311. nec,wg800hp)
  312. lan_mac=$(mtd_get_mac_text board_data 640)
  313. wan_mac=$(mtd_get_mac_text board_data 1152)
  314. ;;
  315. netgear,wndr3700|\
  316. netgear,wndr3700v2|\
  317. netgear,wndr3800)
  318. lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0)")
  319. ;;
  320. phicomm,k2t)
  321. lan_mac=$(k2t_get_mac "lan_mac")
  322. wan_mac=$(k2t_get_mac "wan_mac")
  323. ;;
  324. rosinson,wr818)
  325. wan_mac=$(mtd_get_mac_binary factory 0)
  326. lan_mac=$(macaddr_setbit_la "$wan_mac")
  327. ;;
  328. tplink,archer-a7-v5|\
  329. tplink,archer-c7-v5)
  330. base_mac=$(mtd_get_mac_binary info 8)
  331. wan_mac=$(macaddr_add "$base_mac" 1)
  332. ;;
  333. tplink,archer-c7-v4)
  334. base_mac=$(mtd_get_mac_binary config 8)
  335. wan_mac=$(macaddr_add "$base_mac" 1)
  336. ;;
  337. tplink,tl-wr1043nd-v4)
  338. base_mac=$(mtd_get_mac_binary product-info 8)
  339. wan_mac=$(macaddr_add "$base_mac" 1)
  340. ;;
  341. tplink,tl-wr941-v2|\
  342. tplink,tl-wr941n-v7-cn)
  343. base_mac=$(mtd_get_mac_binary u-boot 130048)
  344. wan_mac=$(macaddr_add "$base_mac" 1)
  345. ;;
  346. ubnt,routerstation|\
  347. ubnt,routerstation-pro)
  348. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
  349. lan_mac=$(macaddr_add "$wan_mac" 1)
  350. ;;
  351. wd,mynet-wifi-rangeextender)
  352. lan_mac=$(nvram get et0macaddr)
  353. ;;
  354. esac
  355. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  356. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  357. }
  358. board_config_update
  359. board=$(board_name)
  360. ath79_setup_interfaces $board
  361. ath79_setup_macs $board
  362. board_config_flush
  363. exit 0