• Yevgeny Kliteynik's avatar
    net/mlx5: Geneve, Manage Geneve TLV options · 0ccc171e
    Yevgeny Kliteynik authored
    Use Geneve TLV Options object to manage the flex parser matching
    on the 32-bit options data.
    
    When the first flow with a certain class/type values is requested to
    be offloaded, create a FW object with FW command (Geneve TLV Options
    general object) and start counting the number of flows using this object.
    
    During this time, any request with a different class/type values will
    fail to be offloaded.
    Once the refcount reaches 0, destroy the TLV options general object,
    and can now offload a flow with any class/type parameters.
    
    Geneve TLV Options object is added to core device.
    It is currently used to manage Geneve TLV options general
    object allocation in FW and its reference counting only.
    In the future it will also be used for managing geneve ports
    by registering callbacks for ndo_udp_tunnel_add/del.
    Reviewed-by: default avatarOz Shlomo <ozsh@mellanox.com>
    Signed-off-by: default avatarYevgeny Kliteynik <kliteyn@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    0ccc171e
geneve.c 4.15 KB