• John Hurley's avatar
    nfp: flower: enable MAC address sharing for offloadable devs · 20cce886
    John Hurley authored
    A MAC address is not necessarily a unique identifier for a netdev. Drivers
    such as Linux bonds, for example, can apply the same MAC address to the
    upper layer device and all lower layer devices.
    
    NFP MAC offload for tunnel decap includes port verification for reprs but
    also supports the offload of non-repr MAC addresses by assigning 'global'
    indexes to these. This means that the FW will not verify the incoming port
    of a packet matching this destination MAC.
    
    Modify the MAC offload logic to assign global indexes based on MAC address
    instead of net device (as it currently does). Use this to allow multiple
    devices to share the same MAC. In other words, if a repr shares its MAC
    address with another device then give the offloaded MAC a global index
    rather than associate it with an ingress port. Track this so that changes
    can be reverted as MACs stop being shared.
    
    Implement this by removing the current list based assignment of global
    indexes and replacing it with an rhashtable that maps an offloaded MAC
    address to the number of devices sharing it, distributing global indexes
    based on this.
    Signed-off-by: default avatarJohn Hurley <john.hurley@netronome.com>
    Reviewed-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    20cce886
main.c 19.1 KB