02_network 3.2 KB

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