• Ido Schimmel's avatar
    vxlan: Add support for nexthop ID metadata · d977e1c8
    Ido Schimmel authored
    VXLAN FDB entries can point to FDB nexthop objects. Each such object
    includes the IP address(es) of remote VTEP(s) via which the target host
    is accessible. Example:
    
     # ip nexthop add id 1 via 192.0.2.1 fdb
     # ip nexthop add id 2 via 192.0.2.17 fdb
     # ip nexthop add id 1000 group 1/2 fdb
     # bridge fdb add 00:11:22:33:44:55 dev vx0 self static nhid 1000 src_vni 10020
    
    This is useful for EVPN multihoming where a single host can be connected
    to multiple VTEPs. The source VTEP will calculate the flow hash of the
    skb and forward it towards the IP address of one of the VTEPs member in
    the nexthop group.
    
    There are cases where an external entity (e.g., the bridge driver) can
    provide not only the tunnel ID (i.e., VNI) of the skb, but also the ID
    of the nexthop object via which the skb should be forwarded.
    
    Therefore, in order to support such cases, when the VXLAN device is in
    external / collect metadata mode and the tunnel info attached to the skb
    is of bridge type, extract the nexthop ID from the tunnel info. If the
    ID is valid (i.e., non-zero), forward the skb via the nexthop object
    associated with the ID, as if the skb hit an FDB entry associated with
    this ID.
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Acked-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d977e1c8
vxlan_core.c 121 KB