mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			606 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			606 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/ash
 | |
| 
 | |
| alias debug=${DEBUG:-:}
 | |
| 
 | |
| # allow env to override nvram
 | |
| nvram_get () {
 | |
|  eval "echo \${$1:-\$(nvram get $1)}"
 | |
| }
 | |
| . /etc/nvram.overrides
 | |
| 
 | |
| # valid interface?
 | |
| if_valid () (
 | |
|   [ "${1%%[0-9]}" = "vlan" ] && {
 | |
|     i=${1#vlan}
 | |
|     hwname=$(nvram_get vlan${i}hwname)
 | |
|     hwaddr=$(nvram_get ${hwname}macaddr)
 | |
|     [ -z "$hwaddr" ] && return 1
 | |
| 
 | |
|     vif=$(ifconfig -a | awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE=1)
 | |
|     debug "# vlan$i: $hwname $hwaddr => $vif"
 | |
| 
 | |
|     $DEBUG ifconfig $vif up
 | |
|     $DEBUG vconfig add $vif $i 2>/dev/null
 | |
|   }
 | |
|   ifconfig "$1" >/dev/null 2>&1 || [ "${1%%[0-9]}" = "br" ]
 | |
| )
 |