02_network 8.2 KB

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