• Stefan Assmann's avatar
    iavf: remove INITIAL_MAC_SET to allow gARP to work properly · bb861c14
    Stefan Assmann authored
    IAVF_FLAG_INITIAL_MAC_SET prevents waiting on iavf_is_mac_set_handled()
    the first time the MAC is set. This breaks gratuitous ARP because the
    MAC address has not been updated yet when the gARP packet is sent out.
    
    Current behaviour:
    $ echo 1 > /sys/class/net/ens4f0/device/sriov_numvfs
    iavf 0000:88:02.0: MAC address: ee:04:19:14:ec:ea
    $ ip addr add 192.168.1.1/24 dev ens4f0v0
    $ ip link set dev ens4f0v0 up
    $ echo 1 > /proc/sys/net/ipv4/conf/ens4f0v0/arp_notify
    $ ip link set ens4f0v0 addr 00:11:22:33:44:55
    07:23:41.676611 ee:04:19:14:ec:ea > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.1, length 28
    
    With IAVF_FLAG_INITIAL_MAC_SET removed:
    $ echo 1 > /sys/class/net/ens4f0/device/sriov_numvfs
    iavf 0000:88:02.0: MAC address: 3e:8a:16:a2:37:6d
    $ ip addr add 192.168.1.1/24 dev ens4f0v0
    $ ip link set dev ens4f0v0 up
    $ echo 1 > /proc/sys/net/ipv4/conf/ens4f0v0/arp_notify
    $ ip link set ens4f0v0 addr 00:11:22:33:44:55
    07:28:01.836608 00:11:22:33:44:55 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.1, length 28
    
    Fixes: 35a2443d ("iavf: Add waiting for response from PF in set mac")
    Signed-off-by: default avatarStefan Assmann <sassmann@kpanic.de>
    Tested-by: default avatarKonrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    bb861c14
iavf_main.c 145 KB