NetworkManager/libnm-core
Fernando Fernandez Mancera cd0cf9229d
veth: add support to configure veth interfaces
NetworkManager is now able to configure veth interfaces throught the
NMSettingVeth. Veth interfaces only have "peer" property.

In order to support Veth interfaces in NetworkManager the design need
to pass the following requirements:

 * Veth setting only has "peer" attribute.
 * Ethernet profiles must be applicable to Veth interfaces.
 * When creating a veth interface, the peer will be managed by
   NetworkManager but will not have a profile.
 * Veth connection can reapply only if the peer has not been modified.
 * In order to modify the veth peer, NetworkManager must deactivate the
   connection and create a new one with peer modified.

In general, it should support the basis of veth interfaces but without
breaking any existing feature or use case. The users that are using veth
interfaces as ethernet should not notice anything changed unless they
specified the veth peer setting.

Creating a Veth interface in NetworkManager is useful even without the
support for namespaces for some use cases, e.g "connecting one side of
the veth to an OVS bridge and the other side to a Linux bridge" this is
done when using OVN kubernetes [1][2]. In addition, it would provide
persistent configuration and rollback support for Veth interfaces.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1885605
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1894139

Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2020-11-27 10:12:36 +01:00
..
nm-keyfile trivial: fix coding style 2020-11-20 19:06:28 +01:00
nm-libnm-core-aux license: relicense "libnm-core/nm-libnm-core-aux/nm-dispatcher-api.h" under LGPL-2.1+ 2020-10-20 15:58:41 +02:00
nm-libnm-core-intern core/ovs: track external-ids for cached ovsdb objects 2020-11-09 17:53:18 +01:00
tests libnm: with meson include "nm-default.h" for glib-mkenums sources 2020-11-03 15:39:01 +01:00
meson.build veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-connection-private.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-connection.c veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-connection.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-core-enum-types.c.template libnm-core: add ovs-dpdk setting 2019-06-14 12:10:20 +02:00
nm-core-enum-types.h.template build: use template files for enum types' sources generation 2017-12-18 11:25:06 +01:00
nm-core-internal.h veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-core-types-internal.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-core-types.h veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-crypto-gnutls.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-crypto-impl.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-crypto-nss.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-crypto.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-crypto.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-dbus-interface.h license: relicense "libnm-core/nm-dbus-interface.h" under LGPL-2.1+ 2020-10-20 16:43:01 +02:00
nm-dbus-utils.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-errors.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-errors.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-keyfile.h keyfile: expose keyfile handling in libnm as public API 2020-10-28 14:30:49 +01:00
nm-property-compare.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-property-compare.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-6lowpan.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-6lowpan.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-8021x.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-8021x.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-adsl.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-adsl.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-bluetooth.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-bluetooth.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-bond.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-bond.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-bridge-port.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-bridge-port.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-bridge.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-bridge.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-cdma.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-cdma.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-connection.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-connection.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-dcb.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-dcb.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-dummy.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-dummy.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ethtool.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ethtool.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-generic.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-generic.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-gsm.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-gsm.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-hostname.c all: add hostname setting 2020-11-16 16:43:39 +01:00
nm-setting-hostname.h all: add hostname setting 2020-11-16 16:43:39 +01:00
nm-setting-infiniband.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-infiniband.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ip-config.c Revert "dns: change default DNS priority of VPNs to -50" 2020-11-23 18:53:52 +01:00
nm-setting-ip-config.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ip-tunnel.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ip-tunnel.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ip4-config.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ip4-config.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ip6-config.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ip6-config.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-macsec.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-macsec.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-macvlan.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-macvlan.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-match.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-match.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-olpc-mesh.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-olpc-mesh.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ovs-bridge.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ovs-bridge.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ovs-dpdk.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ovs-dpdk.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ovs-external-ids.c libnm: return NMSetting pointer from nm_setting_ovs_external_ids_new() 2020-11-17 19:49:03 +01:00
nm-setting-ovs-external-ids.h libnm: return NMSetting pointer from nm_setting_ovs_external_ids_new() 2020-11-17 19:49:03 +01:00
nm-setting-ovs-interface.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ovs-interface.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ovs-patch.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ovs-patch.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ovs-port.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ovs-port.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-ppp.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-ppp.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-pppoe.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-pppoe.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-private.h shared/libnm: move NMSettingPriority helpers to "shared/nm-meta-setting.h" 2020-11-17 22:19:22 +01:00
nm-setting-proxy.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-proxy.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-serial.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-serial.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-sriov.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-sriov.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-tc-config.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-tc-config.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-team-port.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-team-port.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-team.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-team.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-tun.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-tun.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-user.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-user.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-veth.c veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-setting-veth.h veth: add support to configure veth interfaces 2020-11-27 10:12:36 +01:00
nm-setting-vlan.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-vlan.h all: use C-style comments for "clang-format on|off" 2020-09-29 18:22:18 +02:00
nm-setting-vpn.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-vpn.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-vrf.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-vrf.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-vxlan.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-vxlan.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wifi-p2p.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wifi-p2p.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wimax.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-wimax.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wired.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-wired.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wireguard.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wireguard.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting-wireless-security.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-wireless-security.h all: use C-style comments for "clang-format on|off" 2020-09-29 18:22:18 +02:00
nm-setting-wireless.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-wireless.h libnm/trivial: fix indentation for NMSettingWirelessWakeOnWLan enum 2020-09-29 18:23:18 +02:00
nm-setting-wpan.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-setting-wpan.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-setting.c shared/libnm: move NMSettingPriority helpers to "shared/nm-meta-setting.h" 2020-11-17 22:19:22 +01:00
nm-setting.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-simple-connection.c all: drop unnecessary cast for return value of g_object_new() 2020-11-12 16:03:09 +01:00
nm-simple-connection.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-team-utils.c all/trivial: rename _nm_utils_strv_equal()/_nm_utils_strv_cmp_n() to have no leading underscore 2020-10-12 22:18:26 +02:00
nm-team-utils.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-utils-private.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-utils.c libnm: cleanup constructing GVariants for IP addresses 2020-10-30 11:58:45 +01:00
nm-utils.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-version.h version: add 1.30 macros 2020-10-20 14:43:03 +02:00
nm-vpn-dbus-interface.h license: relicense "libnm-core/nm-vpn-dbus-interface.h" under LGPL-2.1+ 2020-10-20 16:47:33 +02:00
nm-vpn-editor-plugin.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-vpn-editor-plugin.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-vpn-plugin-info.c all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00
nm-vpn-plugin-info.h all: unify comment style for SPDX-License-Identifier tag 2020-09-29 16:50:53 +02:00