summaryrefslogtreecommitdiff
path: root/target/linux/brcm47xx/base-files/lib/preinit/15_set_preinit_interface_brcm
blob: bc749398f55c55942c3ce6544b76341012c634f8 (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
#!/bin/sh

preinit_net_echo_send() {
	preinit_ip

	[ -d /proc/switch/eth0 ] && [ "$pi_ifname" = "eth0" ] && {

		echo 1 > /proc/switch/eth0/reset
		echo 1 > /proc/switch/eth0/enable
		echo 1 > /proc/switch/eth0/enable_vlan

		# 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/eth0/vlan/1/ports
			sleep 1

			netmsg $pi_broadcast "$1"
		}; done

	} || netmsg $pi_broadcast "$1"
}

preinit_net_echo() {
	[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
		{ 
			[ "$pi_preinit_net_messages" = "y" ] || {
    		     		[ "$pi_failsafe_net_message"  = "true" ] && 
    		         	    [ "$pi_preinit_no_failsafe_netmsg" != "y" ] 
    		         }
		} && preinit_net_echo_send $1
    	}
}