mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-27 16:20:34 +01:00
GENEVE (Generic Network Virtualization Encapsulation) is a network tunneling protocol that provides a flexible encapsulation format for overlay networks. It uses UDP as the transport protocol and supports variable-length metadata in the tunnel header. This patch adds GENEVE tunnel to NM's platform layer: - Add platform API functions (nm_platform_link_geneve_add, nm_platform_link_get_lnk_geneve) - Netlink message parsing for the following attributes: * IFLA_GENEVE_ID - VNI (Virtual Network Identifier) IPv4 and IPv6 remote * IFLA_GENEVE_REMOTE * IFLA_GENEVE_REMOTE6 TTL, TOS, and DF flags * IFLA_GENEVE_TTL * IFLA_GENEVE_TOS * IFLA_GENEVE_DF UDP destination port * IFLA_GENEVE_PORT - Add test cases for GENEVE tunnel creation and detection with two test modes covering IPv4 and IPv6. The implementation tries to follow the same patterns as other tunnel types (GRE, VXLAN, etc.) and integrates with the existing platform abstraction layer. |
||
|---|---|---|
| .. | ||
| devlink | ||
| tests | ||
| wifi | ||
| wpan | ||
| meson.build | ||
| nm-linux-platform.c | ||
| nm-linux-platform.h | ||
| nm-netlink.c | ||
| nm-netlink.h | ||
| nm-platform-private.h | ||
| nm-platform-utils.c | ||
| nm-platform-utils.h | ||
| nm-platform.c | ||
| nm-platform.h | ||
| nmp-base.c | ||
| nmp-base.h | ||
| nmp-ethtool-ioctl.c | ||
| nmp-ethtool-ioctl.h | ||
| nmp-ethtool.c | ||
| nmp-ethtool.h | ||
| nmp-global-tracker.c | ||
| nmp-global-tracker.h | ||
| nmp-netns.c | ||
| nmp-netns.h | ||
| nmp-object.c | ||
| nmp-object.h | ||
| nmp-plobj.c | ||
| nmp-plobj.h | ||
| README.md | ||
libnm-platform
A static helper library that provides NMPlatform and other utils.
This is NetworkManager's internal netlink library, but also contains
helpers for sysfs, ethtool and other kernel APIs.
NMPlaform is also a cache of objects of the netlink API: NMPCache
and NMPObject. These objects are used throughout NetworkManager
also for generally tracking information about these types. For example,
NMPlatformIP4Address (the public part of a certain type of NMPObject)
is not only used to track platform addresses from netlink in the cache,
but to track information about IPv4 addresses in general.
This depends on the following helper libraries