NetworkManager/src/libnm-core-public
Adrian Freihofer cbde63a493
settings: add ipv4.link-local flag
Introduction of a new setting ipv4.link-local, which enables
link-local IP addresses concurrently with other IP address assignment
implementations such as dhcp or manually.
No way is implemented to obtain a link-local address as a fallback when
dhcp does not respond (as dhcpd does, for example). This could be be
added later.

To maintain backward compatibility with ipv4.method ipv4.link-local has
lower priority than ipv4.method. This results in:
* method=link-local overrules link-local=disabled
* method=disabled overrules link-local=enabled

Furthermore, link-local=auto means that method defines whether
link-local is enabled or disabled:
* method=link-local --> link-local=enabled
* else --> link-local=disabled

The upside is, that this implementation requires no normalization.
Normalization is confusing to implement, because to get it really
right, we probably should support normalizing link-local based on
method, but also vice versa. And since the method affects how other
properties validate/normalize, it's hard to normalize that one, so that
the result makes sense. Normalization is also often not great to the
user, because it basically means to modify the profile based on other
settings.

The downside is that the auto flag becomes API and exists because
we need backward compatibility with ipv4.method.
We would never add this flag, if we would redesign "ipv4.method"
(by replacing by per-method-specific settings).

Defining a default setting for ipv4.link-local in the global
configuration is also supported.
The default setting for the new property can be "default", since old
users upgrading to a new version that supports ipv4.link-local will not
have configured the global default in NetworkManager.conf. Therefore,
they will always use the expected "auto" default unless they change
their configuration.

Co-Authored-By: Thomas Haller <thaller@redhat.com>
2022-05-27 08:24:28 +02:00
..
meson.build bond: add support of queue_id of bond port 2021-08-26 23:04:31 +02:00
nm-connection.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-core-types.h bond: add support of queue_id of bond port 2021-08-26 23:04:31 +02:00
nm-dbus-interface.h core: export radio flags 2022-03-29 09:34:07 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-8021x.h wifi: support "802-1x.phase1-auth-flags=tls-allow-unsafe-renegotiation" flag 2022-05-16 12:09:11 +02: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 format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00: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 format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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 all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-ip-tunnel.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-ip4-config.h settings: add ipv4.link-local flag 2022-05-27 08:24:28 +02:00
nm-setting-ip6-config.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-macsec.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-macvlan.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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 clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting-tc-config.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00: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 all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-tun.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02: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: drop unnecessary /*clang-format off*/ 2022-02-08 11:14:01 +01:00
nm-setting-vpn.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00: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 all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-wireless.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +01:00
nm-setting-wpan.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-setting.h all: adjust glib-mkenums annotations for automated formatting 2022-02-08 11:14:01 +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: move dependency to libnm-crypto out of libnm-core's "nm-utils.c" 2022-03-29 11:56:04 +02:00
nm-version-macros.h.in version: add 1.40 macros 2022-05-01 14:12:20 +02:00
nm-version.h version: add 1.40 macros 2022-05-01 14:12:20 +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 format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00: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).