aboutsummaryrefslogtreecommitdiff
path: root/target/linux/realtek/base-files/etc/board.d/02_network
blob: 35c79cffa24baf7a7f56c792d91c30723462560b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
. /lib/functions.sh
. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh

_filter_port_list_ordered() {
	local ports="$1"
	local excluded="$2"
	local sort_opts="$3"
	echo $ports $excluded | xargs -n1 basename | sort -V $sort_opts | uniq -u | xargs
}

filter_port_list() {
	_filter_port_list_ordered "$1" "$2"
}

filter_port_list_reverse() {
	_filter_port_list_ordered "$1" "$2" "-r"
}

board=$(board_name)
board_config_update

lan_list=$(ls -1 -v -d /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 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
d-link,dgs-1210-10p)
	ucidef_set_poe 65 "$(filter_port_list "$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"
	;;
engenius,ews2910p)
	ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
hpe,1920-8g-poe-65w)
	ucidef_set_poe 65 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")"
	;;
hpe,1920-8g-poe-180w)
	ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")"
	;;
netgear,gs110tpp-v1)
	ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
netgear,gs110tup-v1)
	ucidef_set_poe 240 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
netgear,gs310tp-v1)
	ucidef_set_poe 55 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
zyxel,gs1900-10hp)
	ucidef_set_poe 77 "$(filter_port_list "$lan_list" "lan9 lan10")"
	;;
zyxel,gs1900-8hp-v1|\
zyxel,gs1900-8hp-v2)
	ucidef_set_poe 70 "$lan_list"
	;;
zyxel,gs1900-24ep)
	ucidef_set_poe 130 "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12"
	;;
zyxel,gs1900-24hp-v1|\
zyxel,gs1900-24hp-v2)
	ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")"
	;;
esac

board_config_flush

exit 0