02_network 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. . /lib/functions.sh
  2. . /lib/functions/uci-defaults.sh
  3. . /lib/functions/system.sh
  4. ucidef_set_poe() {
  5. json_select_object poe
  6. json_add_string "budget" "$1"
  7. json_select_array ports
  8. for port in $2; do
  9. if [ -n "$3" -a -n "$(expr "$3" : "\(.\+[[:space:]]\)\{0,1\}$port\([[:space:]].*\|\$\)")" ]; then
  10. continue # skip ports passed via $3
  11. fi
  12. json_add_string "" "$port"
  13. done
  14. json_select ..
  15. json_select ..
  16. }
  17. board=$(board_name)
  18. board_config_update
  19. lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
  20. lan_list_rev=$(ls -1 -v -d -r /sys/class/net/lan* | xargs -n1 basename | xargs)
  21. ucidef_set_bridge_device switch
  22. ucidef_set_interface_lan "$lan_list"
  23. lan_mac=""
  24. lan_mac_start=""
  25. lan_mac_end=""
  26. label_mac=""
  27. case $board in
  28. hpe,1920-8g|\
  29. hpe,1920-8g-poe-65w|\
  30. hpe,1920-8g-poe-180w|\
  31. hpe,1920-16g|\
  32. hpe,1920-24g)
  33. label_mac=$(mtd_get_mac_binary factory 0x68)
  34. lan_mac=$label_mac
  35. mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
  36. mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
  37. lan_mac_start=$(macaddr_add $lan_mac 2)
  38. lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
  39. ;;
  40. tplink,sg2008p-v1|\
  41. tplink,sg2210p-v3|\
  42. tplink,sg2452p-v4|\
  43. tplink,t1600g-28ts-v3)
  44. label_mac=$(get_mac_label)
  45. lan_mac="$label_mac"
  46. ;;
  47. *)
  48. lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
  49. lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)
  50. label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  51. [ -z "$lan_mac" ] && lan_mac=$label_mac
  52. ;;
  53. esac
  54. ucidef_set_interface_macaddr "lan" $lan_mac
  55. ucidef_set_bridge_mac "$lan_mac"
  56. ucidef_set_network_device_mac eth0 $lan_mac
  57. [ -z "$lan_mac_start" ] && lan_mac_start=$lan_mac
  58. for lan in $lan_list; do
  59. ucidef_set_network_device_mac $lan $lan_mac_start
  60. [ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start)
  61. lan_mac_start=$(macaddr_add $lan_mac_start 1)
  62. done
  63. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  64. case $board in
  65. d-link,dgs-1210-10mp-f)
  66. ucidef_set_poe 130 "$lan_list" "lan9 lan10"
  67. ;;
  68. d-link,dgs-1210-10p)
  69. ucidef_set_poe 65 "$lan_list" "lan9 lan10"
  70. ;;
  71. d-link,dgs-1210-28mp-f)
  72. ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
  73. lan22 lan21 lan20 lan19 lan18 lan17" "lan25 lan26 lan27 lan28"
  74. ;;
  75. engenius,ews2910p)
  76. ucidef_set_poe 60 "$lan_list" "lan9 lan10"
  77. ;;
  78. hpe,1920-8g-poe-65w)
  79. ucidef_set_poe 65 "$lan_list_rev" "lan9 lan10"
  80. ;;
  81. hpe,1920-8g-poe-180w)
  82. ucidef_set_poe 180 "$lan_list_rev" "lan9 lan10"
  83. ;;
  84. netgear,gs110tpp-v1)
  85. ucidef_set_poe 130 "$lan_list" "lan9 lan10"
  86. ;;
  87. netgear,gs110tup-v1)
  88. ucidef_set_poe 240 "$lan_list" "lan9 lan10"
  89. ;;
  90. netgear,gs310tp-v1)
  91. ucidef_set_poe 55 "$lan_list" "lan9 lan10"
  92. ;;
  93. zyxel,gs1900-10hp)
  94. ucidef_set_poe 77 "$lan_list" "lan9 lan10"
  95. ;;
  96. zyxel,gs1900-8hp-v1|\
  97. zyxel,gs1900-8hp-v2)
  98. ucidef_set_poe 70 "$lan_list"
  99. ;;
  100. zyxel,gs1900-24hp-v1|\
  101. zyxel,gs1900-24hp-v2)
  102. ucidef_set_poe 170 "$lan_list" "lan25 lan26"
  103. ;;
  104. esac
  105. board_config_flush
  106. exit 0