• David Lebrun's avatar
    ipv6: sr: define core operations for seg6local lightweight tunnel · d1df6fd8
    David Lebrun authored
    This patch implements a new type of lightweight tunnel named seg6local.
    A seg6local lwt is defined by a type of action and a set of parameters.
    The action represents the operation to perform on the packets matching the
    lwt's route, and is not necessarily an encapsulation. The set of parameters
    are arguments for the processing function.
    
    Each action is defined in a struct seg6_action_desc within
    seg6_action_table[]. This structure contains the action, mandatory
    attributes, the processing function, and a static headroom size required by
    the action. The mandatory attributes are encoded as a bitmask field. The
    static headroom is set to a non-zero value when the processing function
    always add a constant number of bytes to the skb (e.g. the header size for
    encapsulations).
    
    To facilitate rtnetlink-related operations such as parsing, fill_encap,
    and cmp_encap, each type of action parameter is associated to three
    function pointers, in seg6_action_params[].
    
    All actions defined in seg6_local.h are detailed in [1].
    
    [1] https://tools.ietf.org/html/draft-filsfils-spring-srv6-network-programming-01Signed-off-by: default avatarDavid Lebrun <david.lebrun@uclouvain.be>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d1df6fd8
lwtunnel.c 8.9 KB