NetworkManager/man
Thomas Haller e6a33c04eb
all: make "ipv6.addr-gen-mode" configurable by global default
It can be useful to choose a different "ipv6.addr-gen-mode". And it can be
useful to override the default for a set of profiles.

For example, in cloud or in a data center, stable-privacy might not be
the best choice. Add a mechanism to override the default via global defaults
in NetworkManager.conf:

  # /etc/NetworkManager/conf.d/90-ipv6-addr-gen-mode-override.conf
  [connection-90-ipv6-addr-gen-mode-override]
  match-device=type:ethernet
  ipv6.addr-gen-mode=0

"ipv6.addr-gen-mode" is a special property, because its default depends on
the component that configures the profile.

- when read from disk (keyfile and ifcfg-rh), a missing addr-gen-mode
  key means to default to "eui64".
- when configured via D-Bus, a missing addr-gen-mode property means to
  default to "stable-privacy".
- libnm's ip6-config::addr-gen-mode property defaults to
  "stable-privacy".
- when some tool creates a profile, they either can explicitly
  set the mode, or they get the default of the underlying mechanisms
  above.

  - nm-initrd-generator explicitly sets "eui64" for profiles it creates.
  - nmcli doesn' explicitly set it, but inherits the default form
    libnm's ip6-config::addr-gen-mode.
  - when NM creates a auto-default-connection for ethernet ("Wired connection 1"),
    it inherits the default from libnm's ip6-config::addr-gen-mode.

Global connection defaults only take effect when the per-profile
value is set to a special default/unset value. To account for the
different cases above, we add two such special values: "default" and
"default-or-eui64". That's something we didn't do before, but it seams
useful and easy to understand.

Also, this neatly expresses the current behaviors we already have. E.g.
if you don't specify the "addr-gen-mode" in a keyfile, "default-or-eui64"
is a pretty clear thing.

Note that usually we cannot change default values, in particular not for
libnm's properties. That is because we don't serialize the default
values to D-Bus/keyfile, so if we change the default, we change
behavior. Here we change from "stable-privacy" to "default" and
from "eui64" to "default-or-eui64". That means, the user only experiences
a change in behavior, if they have a ".conf" file that overrides the default.

https://bugzilla.redhat.com/show_bug.cgi?id=1743161
https://bugzilla.redhat.com/show_bug.cgi?id=2082682

See-also: https://github.com/coreos/fedora-coreos-tracker/issues/907

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1213
2022-06-29 07:38:48 +02:00
..
common.ent.in build: allow configuring default for wifi.backend setting 2022-01-04 06:41:37 +01:00
meson.build man: add NetworkManager-wait-online.service.8 manual 2022-03-02 16:09:16 +01:00
NetworkManager-dispatcher.xml man: update URL for networkmanager.dev home page 2021-08-03 14:57:35 +02:00
NetworkManager-wait-online.service.xml man: add NetworkManager-wait-online.service.8 manual 2022-03-02 16:09:16 +01:00
NetworkManager.conf.xml all: make "ipv6.addr-gen-mode" configurable by global default 2022-06-29 07:38:48 +02:00
NetworkManager.xml man: add NetworkManager-wait-online.service.8 manual 2022-03-02 16:09:16 +01:00
nm-cloud-setup.xml cloud-setup: use suppress_prefixlength rule to honor non-default-routes in the main table 2021-09-16 17:30:25 +02:00
nm-initrd-generator.xml man: mention "rd.znet_ifnames" option in man nm-initrd-generator 2022-01-26 23:00:14 +01:00
nm-online.xml man: add NetworkManager-wait-online.service.8 manual 2022-03-02 16:09:16 +01:00
nm-openvswitch.xml man: update nm-openswitch example 2019-07-09 12:05:32 +02:00
nm-settings-dbus.xsl docs: update documentation for nm-settings-nmcli manual 2020-06-11 10:53:49 +02:00
nm-settings-ifcfg-rh.xsl nm-settings-ifcfg-rh: fix typo 2022-05-26 11:41:31 +02:00
nm-settings-keyfile.xsl docs: unify "nm-property-infos-*.xml" and "nm-settings-docs-*.xml" (root element) 2020-06-11 10:53:50 +02:00
nm-settings-nmcli.xsl Support new attribute tag description-docbook 2021-06-23 08:59:45 -04:00
nmcli-examples.xml nmcli/devices: add "checkpoint" command 2022-06-15 12:26:08 +02:00
nmcli.xml nmcli/devices: add "checkpoint" command 2022-06-15 12:26:08 +02:00
nmtui.1.in man: update version number and dates in manual pages 2016-03-09 10:11:27 +01:00
nmtui.xml man: turn the manual page cross-references into links 2016-06-21 18:40:13 +02:00