| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- . /lib/functions.sh
- . /lib/functions/uci-defaults.sh
- . /lib/functions/system.sh
- ucidef_set_poe() {
- json_select_object poe
- json_add_string "budget" "$1"
- json_select_array ports
- for port in $2; do
- if [ -n "$3" -a -n "$(expr "$3" : "\(.\+[[:space:]]\)\{0,1\}$port\([[:space:]].*\|\$\)")" ]; then
- continue # skip ports passed via $3
- fi
- json_add_string "" "$port"
- done
- json_select ..
- json_select ..
- }
- board=$(board_name)
- board_config_update
- lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
- lan_list_rev=$(ls -1 -v -d -r /sys/class/net/lan* | xargs -n1 basename | xargs)
- ucidef_set_bridge_device switch
- ucidef_set_interface_lan "$lan_list"
- lan_mac=""
- lan_mac_start=""
- lan_mac_end=""
- label_mac=""
- case $board in
- hpe,1920-8g|\
- hpe,1920-8g-poe-65w|\
- hpe,1920-8g-poe-180w|\
- hpe,1920-16g|\
- hpe,1920-24g)
- label_mac=$(mtd_get_mac_binary factory 0x68)
- lan_mac=$label_mac
- mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
- mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
- lan_mac_start=$(macaddr_add $lan_mac 2)
- lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
- ;;
- tplink,sg2008p-v1|\
- tplink,sg2210p-v3|\
- tplink,sg2452p-v4|\
- tplink,t1600g-28ts-v3)
- label_mac=$(get_mac_label)
- lan_mac="$label_mac"
- ;;
- *)
- lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
- lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)
- label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
- [ -z "$lan_mac" ] && lan_mac=$label_mac
- ;;
- esac
- ucidef_set_interface_macaddr "lan" $lan_mac
- ucidef_set_bridge_mac "$lan_mac"
- ucidef_set_network_device_mac eth0 $lan_mac
- [ -z "$lan_mac_start" ] && lan_mac_start=$lan_mac
- for lan in $lan_list; do
- ucidef_set_network_device_mac $lan $lan_mac_start
- [ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start)
- lan_mac_start=$(macaddr_add $lan_mac_start 1)
- done
- [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
- case $board in
- d-link,dgs-1210-10mp-f)
- ucidef_set_poe 130 "$lan_list" "lan9 lan10"
- ;;
- d-link,dgs-1210-10p)
- ucidef_set_poe 65 "$lan_list" "lan9 lan10"
- ;;
- d-link,dgs-1210-28mp-f)
- ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
- lan22 lan21 lan20 lan19 lan18 lan17" "lan25 lan26 lan27 lan28"
- ;;
- engenius,ews2910p)
- ucidef_set_poe 60 "$lan_list" "lan9 lan10"
- ;;
- hpe,1920-8g-poe-65w)
- ucidef_set_poe 65 "$lan_list_rev" "lan9 lan10"
- ;;
- hpe,1920-8g-poe-180w)
- ucidef_set_poe 180 "$lan_list_rev" "lan9 lan10"
- ;;
- netgear,gs110tpp-v1)
- ucidef_set_poe 130 "$lan_list" "lan9 lan10"
- ;;
- netgear,gs110tup-v1)
- ucidef_set_poe 240 "$lan_list" "lan9 lan10"
- ;;
- netgear,gs310tp-v1)
- ucidef_set_poe 55 "$lan_list" "lan9 lan10"
- ;;
- zyxel,gs1900-10hp)
- ucidef_set_poe 77 "$lan_list" "lan9 lan10"
- ;;
- zyxel,gs1900-8hp-v1|\
- zyxel,gs1900-8hp-v2)
- ucidef_set_poe 70 "$lan_list"
- ;;
- zyxel,gs1900-24hp-v1|\
- zyxel,gs1900-24hp-v2)
- ucidef_set_poe 170 "$lan_list" "lan25 lan26"
- ;;
- esac
- board_config_flush
- exit 0
|