02_network 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. . /lib/functions/system.sh
  2. . /lib/functions/uci-defaults.sh
  3. ath79_setup_interfaces()
  4. {
  5. local board="$1"
  6. case "$board" in
  7. buffalo,whr-g301n)
  8. ucidef_set_interface_wan "eth0"
  9. ucidef_add_switch "switch0" \
  10. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  11. ;;
  12. dlink,dap-1720-a1|\
  13. engenius,eap350-v1|\
  14. engenius,ecb350-v1|\
  15. pqi,air-pen|\
  16. tplink,tl-mr10u|\
  17. tplink,tl-mr3020-v1|\
  18. tplink,tl-mr3040-v2|\
  19. tplink,tl-wa701nd-v1|\
  20. tplink,tl-wa730re-v1|\
  21. tplink,tl-wa801nd-v1|\
  22. tplink,tl-wa801nd-v3|\
  23. tplink,tl-wa801nd-v4|\
  24. tplink,tl-wa830re-v1|\
  25. tplink,tl-wa850re-v1|\
  26. tplink,tl-wa850re-v2|\
  27. tplink,tl-wa860re-v1|\
  28. tplink,tl-wa901nd-v1|\
  29. tplink,tl-wa901nd-v2|\
  30. tplink,tl-wa901nd-v3|\
  31. tplink,tl-wa901nd-v4|\
  32. tplink,tl-wa901nd-v5|\
  33. tplink,tl-wr703n|\
  34. tplink,tl-wr802n-v1|\
  35. tplink,tl-wr802n-v2|\
  36. ubnt,bullet-m-ar7240|\
  37. ubnt,bullet-m-ar7241|\
  38. ubnt,nanobridge-m|\
  39. ubnt,picostation-m|\
  40. ubnt,nanostation-loco-m)
  41. ucidef_set_interface_lan "eth0"
  42. ;;
  43. dlink,dir-615-e4|\
  44. netgear,wnr1000-v2|\
  45. netgear,wnr2000-v3|\
  46. netgear,wnr612-v2|\
  47. on,n150r|\
  48. tplink,tl-wr740n-v1|\
  49. tplink,tl-wr740n-v3|\
  50. tplink,tl-wr741-v1|\
  51. tplink,tl-wr743nd-v1|\
  52. tplink,tl-wr841-v5|\
  53. tplink,tl-wr941-v4)
  54. ucidef_set_interface_wan "eth0"
  55. ucidef_add_switch "switch0" \
  56. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  57. ;;
  58. dlink,dir-859-a1|\
  59. dlink,dir-859-a3|\
  60. dlink,dir-869-a1)
  61. ucidef_add_switch "switch0" \
  62. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  63. ;;
  64. engenius,enh202-v1)
  65. ucidef_set_interface_lan "eth0"
  66. ucidef_add_switch "switch0" \
  67. "0@eth1" "4:lan:1"
  68. ;;
  69. tplink,tl-mr3220-v1|\
  70. tplink,tl-mr3420-v1|\
  71. tplink,tl-mr3420-v3|\
  72. tplink,tl-wr841-v7|\
  73. tplink,tl-wr841-v9|\
  74. tplink,tl-wr841-v10|\
  75. tplink,tl-wr841-v11|\
  76. tplink,tl-wr841-v12|\
  77. tplink,tl-wr940n-v3|\
  78. tplink,tl-wr940n-v4|\
  79. tplink,tl-wr940n-v6|\
  80. tplink,tl-wr941nd-v6)
  81. ucidef_set_interface_wan "eth1"
  82. ucidef_add_switch "switch0" \
  83. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  84. ;;
  85. tplink,tl-mr3420-v2|\
  86. tplink,tl-wr740n-v4|\
  87. tplink,tl-wr740n-v5|\
  88. tplink,tl-wr741nd-v4|\
  89. tplink,tl-wr841-v8|\
  90. tplink,tl-wr941nd-v5)
  91. ucidef_set_interface_wan "eth1"
  92. ucidef_add_switch "switch0" \
  93. "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  94. ;;
  95. tplink,tl-wpa8630p-v2-int|\
  96. tplink,tl-wpa8630p-v2.0-eu|\
  97. tplink,tl-wpa8630p-v2.1-eu)
  98. # port 5 (internal) is the power-line port
  99. ucidef_add_switch "switch0" \
  100. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
  101. ;;
  102. tplink,tl-wr941-v2)
  103. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  104. ;;
  105. tplink,tl-wr941n-v7-cn)
  106. ucidef_add_switch "switch0" \
  107. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  108. ;;
  109. ubnt,airrouter)
  110. ucidef_set_interface_wan "eth1"
  111. ucidef_add_switch "switch0" \
  112. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  113. ;;
  114. ubnt,nanostation-m)
  115. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  116. ;;
  117. *)
  118. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  119. ;;
  120. esac
  121. }
  122. ath79_setup_macs()
  123. {
  124. local board="$1"
  125. case "$board" in
  126. dlink,dir-615-e4)
  127. lan_mac=$(mtd_get_mac_ascii "nvram" "lan_mac")
  128. wan_mac=$(mtd_get_mac_ascii "nvram" "wan_mac")
  129. label_mac=$wan_mac
  130. ;;
  131. dlink,dir-859-a1|\
  132. dlink,dir-869-a1)
  133. lan_mac=$(mtd_get_mac_text "devdata" 0xc9)
  134. wan_mac=$(mtd_get_mac_text "devdata" 0x79)
  135. ;;
  136. dlink,dir-859-a3)
  137. lan_mac=$(get_mac_label)
  138. wan_mac=$(macaddr_add "$lan_mac" 3)
  139. ;;
  140. engenius,enh202-v1|\
  141. ubnt,airrouter|\
  142. ubnt,bullet-m-ar7240|\
  143. ubnt,bullet-m-ar7241|\
  144. ubnt,nanobridge-m|\
  145. ubnt,nanostation-loco-m|\
  146. ubnt,nanostation-m|\
  147. ubnt,picostation-m)
  148. label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
  149. ;;
  150. tplink,tl-wr941-v2|\
  151. tplink,tl-wr941n-v7-cn)
  152. base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  153. wan_mac=$(macaddr_add "$base_mac" 1)
  154. ;;
  155. esac
  156. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  157. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  158. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  159. }
  160. board_config_update
  161. board=$(board_name)
  162. ath79_setup_interfaces $board
  163. ath79_setup_macs $board
  164. board_config_flush
  165. exit 0