waleed mousa cd31dd2da9 Adding a udev rule to save sriov interface name before configuring switchdev
After moving mlnx interfaces to switchdev mode in sriov, it will
reset that interface and may change its name and also will need ifup
in order to get back the previous configuration.
So adding a udev rule and ifup command the save the interface name
and its configuration

Change-Id: Ib4f384da344344f9e2ec666b0d8dbae441f24568
Closes-Bug: 1816710
2019-02-20 03:27:25 -05:00

40 lines
1.4 KiB
Plaintext

<%- | String $content_string = '', String $interface = '', String $count = '' | -%>
<%=$content_string%>set -ex
set -o pipefail
if [ "<%=$interface%>" == "$1" ]
then
exec 1> >(logger -s -t $(basename $0)) 2>&1
vendor_id="$(cat /sys/class/net/<%=$interface%>/device/vendor)"
if [ "$(cat /sys/class/net/<%=$interface%>/device/sriov_numvfs)" == "0" ]
then
echo <%=$count%> > /sys/class/net/<%=$interface%>/device/sriov_numvfs
else
exit 0
fi
if [ $vendor_id == "0x15b3" ]
then
vfs_pci_list=$(grep PCI_SLOT_NAME /sys/class/net/<%=$interface%>/device/virtfn*/uevent | cut -d'=' -f2)
for pci in $vfs_pci_list
do
echo "$pci" > /sys/bus/pci/drivers/mlx5_core/unbind
done
fi
interface_pci=$(grep PCI_SLOT_NAME /sys/class/net/<%=$interface%>/device/uevent | cut -d'=' -f2)
/usr/sbin/devlink dev eswitch set pci/"$interface_pci" mode switchdev
/usr/sbin/ifup <%=$interface%>
if [[ "$(/usr/sbin/devlink dev eswitch show pci/"$interface_pci")" =~ "mode switchdev" ]]
then
echo "PCI device $interface_pci set to mode switchdev."
else
echo "Failed to set PCI device $interface_pci to mode switchdev."
exit 1
fi
interface_device=$(cat /sys/class/net/<%=$interface%>/device/device)
if [ "$interface_device" == "0x1013" ] || [ "$interface_device" == "0x1015" ]
then
/usr/sbin/devlink dev eswitch set pci/"$interface_pci" inline-mode transport
fi
/usr/sbin/ethtool -K <%=$interface%> hw-tc-offload on
fi