• Jacob Keller's avatar
    fm10k: setup VLANs for l2 accelerated macvlan interfaces · 3c6a67dd
    Jacob Keller authored
    We have support for accelerating macvlan devices via the
    .ndo_dfwd_add_station() netdev op. These accelerated macvlan MAC
    addresses are stored in the l2_accel structure, separate from the
    unicast or multicast address lists.
    
    If a VLAN is added on top of the macvlan device by the stack, traffic
    will not properly flow to the macvlan. This occurs because we fail to
    setup the VLANs for l2_accel MAC addresses.
    
    In the non-offloaded case the MAC address is added to the unicast
    address list, and thus the normal setup for enabling VLANs works as
    expected.
    
    We also need to add VLANs marked from .ndo_vlan_rx_add_vid() into the
    l2_accel MAC addresses. Otherwise, VLAN traffic will not properly be
    received by the VLAN devices attached to the offloaded macvlan devices.
    
    Fix this by adding necessary logic to setup VLANs not only for the
    unicast and multicast addresses, but also the l2_accel list. We need
    similar logic in dfwd_add_station, dfwd_del_station, fm10k_update_vid,
    and fm10k_restore_rx_state.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: default avatarKrishneil Singh <krishneil.k.singh@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    3c6a67dd
fm10k_netdev.c 44.4 KB