#!/bin/bash set -x PF="ens1f0" vf_prefix="ens1f0" lspci -v | grep "Ethernet controller" ethtool -i $PF cat /proc/cmdline vf_a=${vf_prefix}v0 vf_b=${vf_prefix}v1 vf_a_index=0 vf_b_index=1 temp_a=temp_$(( $RANDOM % 100 )) temp_b=temp_$(( $RANDOM % 100 )) echo 0 > /sys/class/net/$PF/device/sriov_numvfs ip netns del ns_a || true ip netns del ns_b || true sleep 1 echo 4 > /sys/class/net/$PF/device/sriov_numvfs sleep 4 ip link set dev $PF vf 0 mac `cat /sys/class/net/${vf_prefix}v0/address` ip link set dev $PF vf 1 mac `cat /sys/class/net/${vf_prefix}v1/address` ip link set dev $PF vf 2 mac `cat /sys/class/net/${vf_prefix}v2/address` ip link set dev $PF vf 3 mac `cat /sys/class/net/${vf_prefix}v3/address` sleep 5 ip netns add ns_a ip netns add ns_b # ApplyVFConfig ip link set dev $PF vf $vf_a_index vlan 0 ip link set dev $PF vf $vf_a_index state enable ip link set dev $PF vf $vf_a_index mac 20:04:0f:f1:88:A1 # SetupVF ip link set dev $vf_a down ip link set $vf_a name $temp_a ip link set dev $temp_a netns ns_a ip netns exec ns_a ip link set $temp_a name net1 ip netns exec ns_a sh -c "echo 1 > /proc/sys/net/ipv4/conf/net1/arp_notify" ip netns exec ns_a ip link set dev net1 address 20:04:0f:f1:88:A1 ||\ ip netns exec ns_a ip link set dev net1 address 20:04:0f:f1:88:A1 ip netns exec ns_a ip link set dev net1 up ip netns exec ns_a ip address add dev net1 10.255.255.1/24 sleep 3 # ApplyVFConfig ip link set dev $PF vf $vf_b_index vlan 0 ip link set dev $PF vf $vf_b_index state enable ip link set dev $PF vf $vf_b_index mac 20:04:0f:f1:88:A2 # SetupVF ip link set dev $vf_b down ip link set $vf_b name $temp_b ip link set dev $temp_b netns ns_b ip netns exec ns_b ip link set $temp_b name net1 ip netns exec ns_b sh -c "echo 1 > /proc/sys/net/ipv4/conf/net1/arp_notify" ip netns exec ns_b ip link set dev net1 address 20:04:0f:f1:88:A2 ||\ ip netns exec ns_b ip link set dev net1 address 20:04:0f:f1:88:A2 ip netns exec ns_b ip link set dev net1 up ip netns exec ns_b ip address add dev net1 10.255.255.2/24 sleep 1 ip netns exec ns_a ping -c 3 10.255.255.2