68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Copyright (C) 2006 OpenWrt.org
 | 
						|
 | 
						|
include /lib/network
 | 
						|
 | 
						|
addif() {
 | 
						|
	# Ensure that ipv6 is loaded, autoloading happens later but ipv6 might be
 | 
						|
	# required now for interface setup.
 | 
						|
	[ -d /proc/sys/net/ipv6 ] || {
 | 
						|
		grep -q '^ipv6' /etc/modules.d/* && insmod ipv6
 | 
						|
	}
 | 
						|
 | 
						|
	# PPP devices are configured by pppd, no need to run setup_interface here
 | 
						|
	case "$INTERFACE" in
 | 
						|
		ppp*) return 0;;
 | 
						|
	esac
 | 
						|
 | 
						|
	scan_interfaces
 | 
						|
	local cfg="$(find_config "$INTERFACE")"
 | 
						|
 | 
						|
	# check the autoload setting
 | 
						|
	config_get auto "$cfg" auto
 | 
						|
	case "$auto" in
 | 
						|
		1|on|enabled) setup_interface "$INTERFACE";;
 | 
						|
	esac
 | 
						|
 | 
						|
 | 
						|
	# find all vlan configurations for this interface and set them up as well
 | 
						|
	for ifc in $interfaces; do
 | 
						|
		config_get iftype "$ifc" type
 | 
						|
		config_get ifs "$ifc" device
 | 
						|
		for dev in $ifs; do
 | 
						|
			[ "${dev%%\.*}" = "$INTERFACE" -a "$dev" != "$INTERFACE" ] && {
 | 
						|
				add_vlan "$dev"
 | 
						|
			}
 | 
						|
		done
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
delif() {
 | 
						|
	scan_interfaces
 | 
						|
 | 
						|
	# find all vlan configurations for this interface and nuke 'em
 | 
						|
	for ifc in $interfaces; do
 | 
						|
		config_get iftype "$ifc" type
 | 
						|
		config_get ifs "$ifc" device
 | 
						|
		confdevs="$(uci get network.$ifc.ifname)"
 | 
						|
		for dev in $ifs; do
 | 
						|
			[ "${dev%%\.*}" = "$INTERFACE" ] && {
 | 
						|
				list_contains confdevs "$dev" || list_remove ifs "$dev"
 | 
						|
			}
 | 
						|
		done
 | 
						|
		uci_set_state "network" "$ifc" device "$ifs"
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
case "$ACTION" in
 | 
						|
	add|register)
 | 
						|
		case "$PHYSDEVDRIVER" in
 | 
						|
			natsemi) sleep 1;;
 | 
						|
		esac
 | 
						|
		addif
 | 
						|
	;;
 | 
						|
	remove|unregister)
 | 
						|
		delif
 | 
						|
	;;
 | 
						|
esac
 |