#!/bin/bash

PORT_NAME=$1
IFINDEX=$2

for rep_ndev in `ls /sys/class/net/`; do
	_ifindex=`cat /sys/class/net/$rep_ndev/ifindex | head -1 2>/dev/null`
	if [ "$_ifindex" = "$IFINDEX" ]
	then
		devpath=`udevadm info /sys/class/net/$rep_ndev | grep "DEVPATH="`
		pcipath=`echo $devpath | awk -F "/net/$rep_ndev" '{print $1}'`
		array=($(echo "$pcipath" | sed 's/\// /g'))
		len=${#array[@]}
		# last element in array is pci parent device
		parent_pdev=${array[$len-1]}
		#pdev is : 0000:03:00.0, so extract them by their index
		b=`echo ${parent_pdev:5:2} | sed 's/^0//'`
		f=${parent_pdev: -1}
		SFNUM=$(($(echo "${PORT_NAME}" | grep -o -E '[0-9]+' | tail -1)))
		if (( $SFNUM == 0 )); then
			# sf num 0 is mapped to p0/p1
			sfr_name=p${f}_sf_r
		elif (( $SFNUM == 1 )) ; then
			# sf num 1 is mapped to pf0hpf/pf1hpf
			sfr_name=pf${f}hpf_sf_r
		else
			vf_idx=$((${SFNUM}-2))
			sfr_name=pf${f}vf${vf_idx}_sf_r
		fi
		# echo "ifindex:${IFINDEX} parent_pdev:${parent_pdev} b:${b} f:${f}   Port_name:${PORT_NAME} SF_name:${sfr_name}"  >> /tmp/udev
		echo "NAME=${sfr_name}"
		exit
	fi
done
