NetworkManager/src/core/devices
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
..
adsl format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
bluetooth settings: add "plugin" argument to AddAndActivate2() 2022-03-28 13:29:28 +02:00
ovs ovsdb: do not set the device as DEACTIVATING if it is DISCONNECTED 2022-05-25 15:51:43 +02:00
team device: make attach_port() asynchronous 2022-05-03 13:19:24 +02:00
tests format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
wifi wifi: disable FT in AP mode 2022-04-08 15:27:20 +02:00
wwan all: use "NM_UTILS_TO_STRING_BUFFER_SIZE" macro 2022-04-08 15:59:49 +02:00
meson.build all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-6lowpan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-6lowpan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-bond.c bond: drop _get_option_or_default() and use _get_option_normalized() 2022-05-10 12:42:11 +02:00
nm-device-bond.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-bridge.c bridge: assume wired settings are there 2022-05-10 21:41:19 +02:00
nm-device-bridge.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-dummy.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-dummy.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ethernet-utils.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-device-ethernet-utils.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ethernet.c device: drop unused variable and avoid compiler warning 2022-03-17 19:31:29 +01:00
nm-device-ethernet.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-factory.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-factory.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-generic.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-generic.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-infiniband.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-infiniband.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ip-tunnel.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-ip-tunnel.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-logging.h clang-format: use "IndentPPDirectives:None" instead of "BeforeHash" 2021-07-09 08:49:06 +02:00
nm-device-macsec.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-macsec.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-macvlan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-macvlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-ppp.c ppp: allow autoconf6 when ipv6.method is 'auto' 2022-03-16 10:43:46 +01:00
nm-device-ppp.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-private.h core/device: rename nm_device_master_release_one_slave() 2022-03-13 12:08:52 +01:00
nm-device-tun.c ovs, dpdk: ignore ovs-netdev tun interface 2022-03-31 11:49:34 +02:00
nm-device-tun.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-utils.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-utils.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-veth.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-veth.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vlan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-vlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vrf.c device: make attach_port() asynchronous 2022-05-03 13:19:24 +02:00
nm-device-vrf.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-vxlan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-vxlan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-wireguard.c platform: rename "nmp-route-manager.h" to "nmp-rules-manager.h" 2022-02-09 19:13:03 +01:00
nm-device-wireguard.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device-wpan.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-device-wpan.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-device.c settings: add ipv4.link-local flag 2022-05-27 08:24:28 +02:00
nm-device.h device: make attach_port() asynchronous 2022-05-03 13:19:24 +02:00
nm-lldp-listener.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-lldp-listener.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00