bcf06e0b4b
When configuring vf-lag, it will not work properly when configuring switchdev capability while there are some vfs bounded. So removing all the binding codes as it's not needed anymore. Closes-Bug: 1809733 Change-Id: I135cef33bece6fd31363e093e53617caac413ce0
39 lines
1.4 KiB
Plaintext
39 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
|
|
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
|