• Christian Ehrig's avatar
    bpf,fou: Add bpf_skb_{set,get}_fou_encap kfuncs · c50e9609
    Christian Ehrig authored
    
    
    Add two new kfuncs that allow a BPF tc-hook, installed on an ipip
    device in collect-metadata mode, to control FOU encap parameters on a
    per-packet level. The set of kfuncs is registered with the fou module.
    
    The bpf_skb_set_fou_encap kfunc is supposed to be used in tandem and after
    a successful call to the bpf_skb_set_tunnel_key bpf-helper. UDP source and
    destination ports can be controlled by passing a struct bpf_fou_encap. A
    source port of zero will auto-assign a source port. enum bpf_fou_encap_type
    is used to specify if the egress path should FOU or GUE encap the packet.
    
    On the ingress path bpf_skb_get_fou_encap can be used to read UDP source
    and destination ports from the receiver's point of view and allows for
    packet multiplexing across different destination ports within a single
    BPF program and ipip device.
    Signed-off-by: default avatarChristian Ehrig <cehrig@cloudflare.com>
    Link: https://lore.kernel.org/r/e17c94a646b63e78ce0dbf3f04b2c33dc948a32d.1680874078.git.ce...
    c50e9609
Makefile 2.85 KB