• Jakub Kicinski's avatar
    udp_tunnel: add central NIC RX port offload infrastructure · cc4e3835
    Jakub Kicinski authored
    Cater to devices which:
     (a) may want to sleep in the callbacks;
     (b) only have IPv4 support;
     (c) need all the programming to happen while the netdev is up.
    
    Drivers attach UDP tunnel offload info struct to their netdevs,
    where they declare how many UDP ports of various tunnel types
    they support. Core takes care of tracking which ports to offload.
    
    Use a fixed-size array since this matches what almost all drivers
    do, and avoids a complexity and uncertainty around memory allocations
    in an atomic context.
    
    Make sure that tunnel drivers don't try to replay the ports when
    new NIC netdev is registered. Automatic replays would mess up
    reference counting, and will be removed completely once all drivers
    are converted.
    
    v4:
     - use a #define NULL to avoid build issues with CONFIG_INET=n.
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cc4e3835
udp_tunnel.h 10.1 KB