mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 20:27:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# create an associative array of vrf interfaces and their ports
 | 
						|
 | 
						|
IFLINES=()
 | 
						|
declare -A IFNAMES
 | 
						|
export IFNAMES
 | 
						|
declare -A VRFNAMES
 | 
						|
export VRFNAMES
 | 
						|
 | 
						|
while read line; do
 | 
						|
   IFLINES+=("$line")
 | 
						|
done < <(ip -o link show)
 | 
						|
 | 
						|
RE_MASTER=' master ([^ ]+) state '
 | 
						|
for item in "${IFLINES[@]}"; do
 | 
						|
   #echo -e "\t$item"
 | 
						|
   [[ x$item = x ]] && continue
 | 
						|
 | 
						|
   IFS=': ' hunks=($item)
 | 
						|
   [[ "${hunks[1]}" = "" ]] && continue
 | 
						|
 | 
						|
   ifname="${hunks[1]}"
 | 
						|
   [[ "$ifname" = *NOARP,MASTER* ]] && continue
 | 
						|
 | 
						|
   IFNAMES["$ifname"]="unknown"
 | 
						|
 | 
						|
   if [[ $item = *master* ]] && [[ $item = *vrf* ]]; then
 | 
						|
      #echo "Looking for vrf in $ifname"
 | 
						|
      if [[ $item =~ $RE_MASTER ]]; then
 | 
						|
         [[ x${BASH_REMATCH[1]} = x ]] && continue;
 | 
						|
         vrfname=${BASH_REMATCH[1]};
 | 
						|
         #echo "[[[$ifname]]]  [[[$vrfname]]]"
 | 
						|
         IFNAMES["$ifname"]="$vrfname"
 | 
						|
         VRFNAMES["$vrfname"]="$ifname"
 | 
						|
      fi
 | 
						|
   fi
 | 
						|
done
 | 
						|
 | 
						|
if [[ x$VRF_DEBUG = x1 ]]; then
 | 
						|
   echo "Interfaces: "
 | 
						|
   for ifname in "${!IFNAMES[@]}"; do
 | 
						|
      echo "IFN   $ifname => ${IFNAMES[$ifname]}"
 | 
						|
   done
 | 
						|
 | 
						|
   echo "virtual routers: "
 | 
						|
   for vrfname in "${!VRFNAMES[@]}"; do
 | 
						|
      echo "VRF   $vrfname => ${VRFNAMES[$vrfname]}"
 | 
						|
   done
 | 
						|
fi
 | 
						|
#
 |