02_network 6.6 KB

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