summaryrefslogtreecommitdiffstats
path: root/openwrt/package/base-files/default/sbin/ifup
blob: be7075bf146d9064fb500b0336cb27e515673020 (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
#!/bin/ash
[ $# = 0 ] && { echo "  $0 <group>"; exit; }

. /etc/functions.sh
. /etc/network.overrides
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network

type=$1
debug "### ifup $type ###"

if_proto=$(nvram get ${type}_proto)
if=$(nvram get ${type}_ifname)
[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname)

if_valid $if || [ "$if_proto" = "pptp" ] || exit 
mac=$(nvram get ${type}_hwaddr)
$DEBUG ifconfig $if down 2>&-

if [ "${if%%[0-9]}" = "br" ]; then
	stp=$(nvram get ${type}_stp)
	$DEBUG brctl delbr $if 2>&-
	$DEBUG brctl addbr $if
	$DEBUG brctl setfd $if 0
	$DEBUG brctl stp $if ${stp:-0}

	for sif in $(nvram get ${type}_ifnames); do
		if_valid $sif || continue
		${mac:+$DEBUG ifconfig $sif down hw ether $mac}
		$DEBUG ifconfig $sif 0.0.0.0 up
		$DEBUG brctl addif $if $sif
	done
else
	${mac:+$DEBUG ifconfig $if down hw ether $mac}
fi

do_ifup $if_proto $type