NetworkManager/src/libnm-core-public
Thomas Haller 2c1fb50fb5
core: support flag "preserve-external-ip" for Reapply() call
Reapply() is supposed to make sure that the system (the interface)
is configured as indicated by the applied-connection. That means,
it will remove/add configuration to make the system match the requested
configuration.

Add a flag "preserve-external-ip" which relaxes this. During reapply,
IP addresses/routes that exist on the interface and which are not known
(or added) by NetworkManager will be left alone.

This will be used by nm-cloud-setup, so that it can reconfigure the
interface in a less destructive way, which does not conflict with
external `ip addr/route` calls.

Note that the previous commit just adds "VersionInfo" and the
possibility to expose capabilities (patch-level). This is not used
for the new reapply flag, because, while we might backport the
reapply flag, we won't backport the "VersionInfo" property. Exposing
new capabilities via the "VersionInfo" property will only become useful
in the future, where we can backport a capability to older NM versions
(but those that have "VersionInfo" too).
2022-12-14 17:31:16 +01:00
..
meson.build support loopback interface 2022-11-23 20:51:22 +01:00
nm-connection.h libnm: move nm-errors.h include away from nm-connection.h 2022-11-13 23:36:37 +01:00
nm-core-types.h support loopback interface 2022-11-23 20:51:22 +01:00
nm-dbus-interface.h core: support flag "preserve-external-ip" for Reapply() call 2022-12-14 17:31:16 +01:00
nm-errors.h build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00
nm-keyfile.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-6lowpan.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-8021x.h supplicant: add NMSetting8021xAuthFlags for TLS v1.3 / enable a version 2022-11-08 07:15:14 +01:00
nm-setting-adsl.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-bluetooth.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-bond-port.h bond: add support of queue_id of bond port 2021-08-26 23:04:31 +02:00
nm-setting-bond.h libnm,core: support "bond.balance-slb" option 2022-10-04 12:37:41 +02:00
nm-setting-bridge-port.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-bridge.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-cdma.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-connection.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-dcb.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-dummy.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-ethtool.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-generic.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-gsm.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-hostname.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-infiniband.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-ip-config.h libnm: export nm_setting_ip_config_get_dhcp_iaid 2022-11-03 15:34:08 +01:00
nm-setting-ip-tunnel.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-ip4-config.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-ip6-config.h all: make "ipv6.addr-gen-mode" configurable by global default 2022-06-29 07:38:48 +02:00
nm-setting-loopback.h support loopback interface 2022-11-23 20:51:22 +01:00
nm-setting-macsec.h macsec: allow CKN shorter than 64 characters 2022-11-16 10:36:39 +01:00
nm-setting-macvlan.h libnm: fix a large amount of Since tags 2022-11-08 11:40:18 +01:00
nm-setting-match.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-olpc-mesh.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-ovs-bridge.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-ovs-dpdk.h openvswitch: Add ovs-dpdk n_rxq property 2022-01-10 22:48:30 +00:00
nm-setting-ovs-external-ids.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-ovs-interface.h ovs: add ofport_request option to ovs interface 2022-09-02 08:46:36 +00:00
nm-setting-ovs-patch.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-ovs-port.h libnm: add ovs-port.trunks property 2022-11-25 14:15:41 +01:00
nm-setting-ppp.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-pppoe.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-proxy.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-serial.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-sriov.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-tc-config.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-team-port.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-team.h libnm: fix a large amount of Since tags 2022-11-08 11:40:18 +01:00
nm-setting-tun.h libnm: fix a large amount of Since tags 2022-11-08 11:40:18 +01:00
nm-setting-user.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-veth.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-vlan.h libnm,nmcli: add vlan.protocol property 2022-12-14 11:33:03 +01:00
nm-setting-vpn.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-vrf.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-vxlan.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-wifi-p2p.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-wimax.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-wired.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-wireguard.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-wireless-security.h libnm: fix a large amount of Since tags 2022-11-08 11:40:18 +01:00
nm-setting-wireless.h libnm: fix a large amount of Since tags 2022-11-08 11:40:18 +01:00
nm-setting-wpan.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting.h libnm: add NMRange 2022-11-25 14:15:39 +01:00
nm-simple-connection.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-utils.h libnm/utils: add some missing deprecation guards 2022-11-13 23:36:37 +01:00
nm-version-macros.h.in version: reformat file for latest style 2022-09-01 16:33:39 +02:00
nm-version.h version: add 1.42 macros 2022-08-31 19:23:26 +02:00
nm-vpn-dbus-interface.h libnm: allow manually specified IP addresses to have prefix length 0 2022-05-26 19:08:28 +02:00
nm-vpn-editor-plugin.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-vpn-plugin-info.h libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
README.md build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00

libnm-core-public

This contains (mostly) header files only, which are also part of the public API of libnm.

Also, this API is implemented by the static library libnm-core-impl, which in turn is statically linked into NetworkManager core and libnm.

These headers can be used by anybody who either:

Note that there is also one source file: nm-core-enum-types.c. This source file really belongs to libnm-core-impl but it is here because it's a generated file and so far I couldn't figure out how to generate nm-core-enum-types.h here while moving nm-core-enum-types.c to libnm-core-impl.

Aside nm-core-enum-types.c, this directory only provides header files. Users should add this directory (both srcdir and builddir) to the include search path, because libnm users are used to include these headers unqualified (like #include "nm-setting.h).