• Eyal Birger's avatar
    net: allow storing xfrm interface metadata in metadata_dst · 5182a5d4
    Eyal Birger authored
    XFRM interfaces provide the association of various XFRM transformations
    to a netdevice using an 'if_id' identifier common to both the XFRM data
    structures (polcies, states) and the interface. The if_id is configured by
    the controlling entity (usually the IKE daemon) and can be used by the
    administrator to define logical relations between different connections.
    
    For example, different connections can share the if_id identifier so
    that they pass through the same interface, . However, currently it is
    not possible for connections using a different if_id to use the same
    interface while retaining the logical separation between them, without
    using additional criteria such as skb marks or different traffic
    selectors.
    
    When having a large number of connections, it is useful to have a the
    logical separation offered by the if_id identifier but use a single
    network interface. Similar to the way collect_md mode is used in IP
    tunnels.
    
    This patch attempts to enable different configuration mechanisms - such
    as ebpf programs, LWT encapsulations, and TC - to attach metadata
    to skbs which would carry the if_id. This way a single xfrm interface in
    collect_md mode can demux traffic based on this configuration on tx and
    provide this metadata on rx.
    
    The XFRM metadata is somewhat similar to ip tunnel metadata in that it
    has an "id", and shares similar configuration entities (bpf, tc, ...),
    however, it does not necessarily represent an IP tunnel or use other
    ip tunnel information, and also has an optional "link" property which
    can be used for affecting underlying routing decisions.
    
    Additional xfrm related criteria may also be added in the future.
    
    Therefore, a new metadata type is introduced, to be used in subsequent
    patches in the xfrm interface and configuration entities.
    Reviewed-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
    Reviewed-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: default avatarEyal Birger <eyal.birger@gmail.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    5182a5d4
dst_metadata.h 5.82 KB