network 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. #!/bin/sh
  2. . /etc/functions.sh
  3. . /lib/ramips.sh
  4. . /lib/functions/uci-defaults.sh
  5. if [ ! -x /usr/sbin/maccalc ]; then
  6. echo "$0: maccalc not found!"
  7. return
  8. fi
  9. ramips_setup_rt3x5x_vlans()
  10. {
  11. if [ ! -x /sbin/swconfig ]; then
  12. # legacy default
  13. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  14. return
  15. fi
  16. local wanports=""
  17. local lanports=""
  18. swconfig dev rt305x set reset 1
  19. for port in 5 4 3 2 1 0; do
  20. if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
  21. continue
  22. fi
  23. if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
  24. wanports="$port $wanports"
  25. else
  26. lanports="$port $lanports"
  27. fi
  28. done
  29. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  30. ucidef_add_switch "rt305x" "1" "1"
  31. ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t"
  32. ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t"
  33. }
  34. ramips_setup_interfaces()
  35. {
  36. local board="$1"
  37. ucidef_set_interface_loopback
  38. case $board in
  39. all0256n | \
  40. all5002)
  41. ucidef_set_interface_lan "eth0"
  42. ;;
  43. dir-615-h1 | \
  44. wl-330n)
  45. ucidef_set_interface_lan "eth0.1"
  46. ;;
  47. 3g-6200n | \
  48. argus-atp52b | \
  49. b2c | \
  50. nw718 | \
  51. psr-680w | \
  52. sl-r7205 | \
  53. w502u | \
  54. wr6202)
  55. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  56. ;;
  57. dir-645)
  58. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  59. ucidef_add_switch "switch0" "1" "1"
  60. ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
  61. ucidef_add_switch_vlan "switch0" "2" "0 6t"
  62. ;;
  63. f5d8235-v1 | \
  64. f5d8235-v2 | \
  65. ur-336un)
  66. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  67. ;;
  68. v11st-fe)
  69. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  70. ucidef_add_switch "switch0" "1" "1"
  71. ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t"
  72. ucidef_add_switch_vlan "switch0" "2" "0 5t"
  73. ;;
  74. rt-n15 | \
  75. wl-351)
  76. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  77. ucidef_add_switch "switch0" "1" "1"
  78. ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
  79. ucidef_add_switch_vlan "switch0" "2" "4 5t"
  80. ;;
  81. rt-n56u)
  82. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  83. ucidef_add_switch "switch0" "1" "1"
  84. ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t"
  85. ucidef_add_switch_vlan "switch0" "2" "4 8t"
  86. ;;
  87. tew-691gr|\
  88. tew-692gr)
  89. ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
  90. ucidef_add_switch "switch0" "1" "1"
  91. ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4"
  92. ucidef_add_switch_vlan "switch0" "2" "0t 5"
  93. ;;
  94. freestation5 | \
  95. wcr-150gn)
  96. ucidef_set_interfaces_lan_wan "eth0.2" "eth0.1"
  97. ;;
  98. wli-tx4-ag300n)
  99. ucidef_set_interface_lan "eth0"
  100. ;;
  101. *)
  102. RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
  103. if [ -n "${RT3X5X}" ]; then
  104. ramips_setup_rt3x5x_vlans
  105. else
  106. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  107. fi
  108. ;;
  109. esac
  110. }
  111. ramips_setup_macs()
  112. {
  113. local board="$1"
  114. local lan_mac=""
  115. local wan_mac=""
  116. case $board in
  117. all0256n | \
  118. all5002 | \
  119. dir-615-h1)
  120. lan_mac=$(ramips_get_mac_binary factory 40)
  121. ;;
  122. 3g-6200n | \
  123. argus-atp52b | \
  124. bc2 | \
  125. f5d8235-v1 | \
  126. nw718 | \
  127. psr-680w | \
  128. rt-n15 | \
  129. sl-r7205 | \
  130. wl-351)
  131. lan_mac=$(ramips_get_mac_binary factory 4)
  132. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  133. ;;
  134. w306r-v20)
  135. lan_mac=$(ramips_get_mac_binary factory 4)
  136. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 5)
  137. ;;
  138. rt-n13u | \
  139. fonera20n)
  140. lan_mac=$(ramips_get_mac_binary factory 40)
  141. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  142. ;;
  143. dir-300-b1 |\
  144. dir-300-b2 |\
  145. dir-600-b1)
  146. lan_mac=$(ramips_get_mac_binary devdata 16388)
  147. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  148. ;;
  149. dir-620-a1)
  150. lan_mac=$(ramips_get_mac_binary factory 4)
  151. lan_mac=$(maccalc or "$lan_mac" "02:00:00:00:00:00")
  152. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  153. ;;
  154. dir-645)
  155. lan_mac=$(ramips_get_mac_nvram nvram lanmac)
  156. wan_mac=$(ramips_get_mac_nvram nvram wanmac)
  157. ;;
  158. esr-9753 | \
  159. ur-336un)
  160. lan_mac=$(ramips_get_mac_binary devdata 16388)
  161. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  162. ;;
  163. nbg-419n | \
  164. wcr-150gn)
  165. lan_mac=$(ramips_get_mac_binary factory 4)
  166. wan_mac=$(ramips_get_mac_binary factory 40)
  167. ;;
  168. f5d8235-v2)
  169. lan_mac=$(ramips_get_mac_binary "u-boot" 262148)
  170. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  171. ;;
  172. rt-n56u)
  173. lan_mac=$(ramips_get_mac_binary factory 4)
  174. wan_mac=$(ramips_get_mac_binary factory 32772)
  175. ;;
  176. tew-691gr)
  177. lan_mac=$(ramips_get_mac_binary factory 40)
  178. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 3)
  179. ;;
  180. tew-692gr)
  181. lan_mac=$(ramips_get_mac_binary factory 40)
  182. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 4)
  183. ;;
  184. all0239-3g | \
  185. carambola | \
  186. w502u)
  187. lan_mac=$(ramips_get_mac_binary factory 40)
  188. wan_mac=$(ramips_get_mac_binary factory 46)
  189. ;;
  190. wl341v3)
  191. lan_mac=$(ramips_get_mac_binary board-nvram 65440)
  192. wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
  193. ;;
  194. wli-tx4-ag300n)
  195. lan_mac=$(ramips_get_mac_binary factory 4)
  196. ;;
  197. esac
  198. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
  199. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
  200. }
  201. [ -e /etc/config/network ] && exit 0
  202. touch /etc/config/network
  203. board=$(ramips_board_name)
  204. ramips_setup_interfaces $board
  205. ramips_setup_macs $board
  206. uci commit network
  207. exit 0