if_geneve: Add geneve support (RFC8926)
geneve creates a generic network virtualization tunnel
interface for Tentant Systems over an L3 (IP/UDP) underlay network that
provides a Layer 2 (ethernet) or Layer 3 service using the geneve protocol.
This implementation is based on RFC8926.
- IPv4 and IPv6 is fully supported for both unicast and multicast underlay.
- Per-VNET geneve tunnel is implemented.
- RXCSUM/TXCSUM/TSO offloading capabilities are implemented.
- NETLINK/WITHOUT_NETLINK are fully supported.
- ifconfig updated to support interface creation and modification using NETLINK.
- Manual for geneve(4) is added and ifconfig(8) is updated to include geneve
parameters.
I can breakdown this revision if required.
To test, please apply D54109 patch.
Final commit for this revision must use ECN_COMPLETE from D53516 to be compliant
with RFC.