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> |
||
|---|---|---|
| .. | ||
| tests | ||
| meson.build | ||
| nm-connection-private.h | ||
| nm-connection.c | ||
| nm-dbus-utils.c | ||
| nm-default-libnm-core.h | ||
| nm-errors.c | ||
| nm-keyfile-utils.c | ||
| nm-keyfile.c | ||
| nm-meta-setting-base-impl.c | ||
| nm-property-compare.c | ||
| nm-property-compare.h | ||
| nm-setting-6lowpan.c | ||
| nm-setting-8021x.c | ||
| nm-setting-adsl.c | ||
| nm-setting-bluetooth.c | ||
| nm-setting-bond-port.c | ||
| nm-setting-bond.c | ||
| nm-setting-bridge-port.c | ||
| nm-setting-bridge.c | ||
| nm-setting-cdma.c | ||
| nm-setting-connection.c | ||
| nm-setting-dcb.c | ||
| nm-setting-dummy.c | ||
| nm-setting-ethtool.c | ||
| nm-setting-generic.c | ||
| nm-setting-gsm.c | ||
| nm-setting-hostname.c | ||
| nm-setting-infiniband.c | ||
| nm-setting-ip-config.c | ||
| nm-setting-ip-tunnel.c | ||
| nm-setting-ip4-config.c | ||
| nm-setting-ip6-config.c | ||
| nm-setting-macsec.c | ||
| nm-setting-macvlan.c | ||
| nm-setting-match.c | ||
| nm-setting-olpc-mesh.c | ||
| nm-setting-ovs-bridge.c | ||
| nm-setting-ovs-dpdk.c | ||
| nm-setting-ovs-external-ids.c | ||
| nm-setting-ovs-interface.c | ||
| nm-setting-ovs-patch.c | ||
| nm-setting-ovs-port.c | ||
| nm-setting-ppp.c | ||
| nm-setting-pppoe.c | ||
| nm-setting-private.h | ||
| nm-setting-proxy.c | ||
| nm-setting-serial.c | ||
| nm-setting-sriov.c | ||
| nm-setting-tc-config.c | ||
| nm-setting-team-port.c | ||
| nm-setting-team.c | ||
| nm-setting-tun.c | ||
| nm-setting-user.c | ||
| nm-setting-veth.c | ||
| nm-setting-vlan.c | ||
| nm-setting-vpn.c | ||
| nm-setting-vrf.c | ||
| nm-setting-vxlan.c | ||
| nm-setting-wifi-p2p.c | ||
| nm-setting-wimax.c | ||
| nm-setting-wired.c | ||
| nm-setting-wireguard.c | ||
| nm-setting-wireless-security.c | ||
| nm-setting-wireless.c | ||
| nm-setting-wpan.c | ||
| nm-setting.c | ||
| nm-simple-connection.c | ||
| nm-team-utils.c | ||
| nm-team-utils.h | ||
| nm-utils-private.h | ||
| nm-utils.c | ||
| nm-vpn-editor-plugin.c | ||
| nm-vpn-plugin-info.c | ||
| README.md | ||
libnm-core-impl
NetworkManager provides a client library libnm.
NetworkManager core does not (dynamically) link against all of libnm.
Instead, it statically links against a part of it.
That part is the static helper library libnm-core-impl.
libnm-core-impl implements (and provides) the API from
libnm-core-public, which is part of the public
API of libnm. In this form, libnm-core-impl is part
of the implementation of libnm. It also implements (and
provides) an internal API libnm-core-intern which
can only be used by those who link statically against libnm-core-impl.
Only NetworkManager core and libnm are allowed to statically
link with libnm-core-impl. Consequently, only those are allowed to include
libnm-core-intern.
This directory should not be added to the include search path of other
components as they are only allowed to include libnm-core-public
and libnm-core-intern.