aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
blob: 9d366fa339da715b0e5f1580d42bbd6bf1f8995f (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
#!/bin/sh

port_net_echo() {
	[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
		if [ "$pi_preinit_net_messages" = "y" ] || [ "$pi_failsafe_net_message" = "true" ] && [ "$pi_preinit_no_failsafe_netmsg" != "y" ]; then 
			netmsg $pi_broadcast "$1"
		fi
	}
}

preinit_ip_deconfig() {
	if [ -z "$pi_ifname" ]; then
		ifconfig $ifname 0.0.0.0 down
	else
		grep -q "$pi_ifname" /proc/net/dev && {
			ifconfig $pi_ifname 0.0.0.0 down
		}
	fi
	[ -d "/proc/switch/$ifname" ] && {
		echo 1 > "/proc/switch/$ifname/reset"
		echo "0 1 2 3 4 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
	}

}

preinit_net_echo() {
	preinit_ip
	
	[ -d "/proc/switch/$ifname" ] && {
		echo 1 > "/proc/switch/$ifname/reset"

		# this would be easier if we blasted the message across all ports
		# but we don't want packets leaking across interfaces
		for port in $(seq 0 4); do {
			echo "$port ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
			port_net_echo $1
		}; done
		
		echo "0 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
		
	} || port_net_echo $1
}