mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 |