02_network 8.9 KB

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