summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-06-29dns: fix tracking of best ip configbg/dns-fix-bestBeniamino Galvani1-0/+26
When a IP configuration has type "best", it is the configuration with the best (lowest) metric default route for the specific address family. Therefore, there can be only one best configuration for address family. When a new configuration is added as best, make sure it is the only one for the address family. This reverts commit 0abc14b3a0d9259b2a17f2fe3c56444752f49215. Fixes: 0abc14b3a0d9 ('core: remove unused best_ip_config_[46] field in NMDnsManager') https://lists.freedesktop.org/archives/networkmanager/2023-June/000123.html https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1331 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1683
2023-06-29keyfile: merge branch 'th/keyfile-rename'Thomas Haller10-54/+126
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1661
2023-06-29keyfile: add a NetworkManager.conf option "keyfile.rename"Thomas Haller5-2/+36
The default behavior is not to rename profiles. I guess, that makes sense, as renaming a file when changing the "connection.id" could break users who rely on the name. My use case is the following. When I connect a Wi-Fi hotspot I use `nmcli device wifi connect $SSID`, which -- as expected -- persists the profile to "/etc/NetworkManager/system-connections/$SSID.nmconnection". Later, I always update the profile's name to "w_$SSID" so I can see on the name that this is wireless profile. I also want the filename to reflect that change of name. Add a configuration option for that. All the infrastructure ("force_rename" parameter) already exists.
2023-06-29keyfile: add option to nms_keyfile_writer_connection() to follow the ↵Thomas Haller3-7/+12
preferred name There was already a force_rename argument to nms_keyfile_writer_connection(), which -- if TRUE -- means to always rename the file, if it exists. What we also want, is to follow the change of a connection.id. So we don't want to force a rename, if we already use the preferred name, but we also want to rename otherwise. Extend the boolean "force_rename" argument to a NMTernary, where NM_TERNARY_DEFAULT now means to follow the preferred name.
2023-06-29core/settings: fix "force_rename" for writing connection to diskThomas Haller2-12/+43
"force_rename" parameter was not used previously, but it also was broken. Fix it. We need to create a new NMSettingsStorage instance when the filename changes, as the storage's filename is immutable.
2023-06-29settings: fix passing force_rename flag to _update_connection_to_plugin()Thomas Haller3-14/+16
No bad effects so far, it was unused. But as it wasn't used, also no longer set the update_reason flag NM_SETTINGS_CONNECTION_UPDATE_REASON_FORCE_RENAME. We didn't have the force-rename behavior so far. This makes the flag totally unused, and maybe should be dropped. It's kept for now, if only to show what could be done.
2023-06-29keyfile/tests: rename internal test-only function to have nmtst prefixThomas Haller3-24/+24
We have some interal code that is only used to expose functionality for the tests. Those functions should be easily distinguishable from code that is used by the "real" code. Give a "nmtst" prefix. Rename nms_keyfile_writer_test_connection() to nmtst_keyfile_writer_test_connection().
2023-06-29merge: branch 'sriov_opt'Gris Ge1-5/+1
sriov: do not fail activation on SR-IOV VF failures https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1682
2023-06-29sriov: do not fail activation on SR-IOV VF failuresGris Ge1-5/+1
When user are changing SR-IOV VF settings for options like `max-tx-rate` which some hardware not supported yet, the failure of this VF will fail the whole activation, then the SR-IOV will be disabled means all the VFs will be deleted. Deleting VFs might break network connectivity and this collateral damage of VF option failure is not acceptable for OpenShift use cases even they have checkpoint protection. This patch only log warn message on failure of VF options and will not fail the activation. NetworkManager also ignore MTU failure during activation, I believe this fit into the same assumption. User case reference: https://bugzilla.redhat.com/show_bug.cgi?id=2210164 Signed-off-by: Gris Ge <fge@redhat.com>
2023-06-29merge: branch 'bg/link-setting-ifcfg'Beniamino Galvani9-30/+61
Deprecate the ifcfg-rh setting plugin https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1570
2023-06-29ifcfg-rh: fail to save connections with the 'link' settingbg/link-setting-ifcfgBeniamino Galvani2-2/+7
Fail to save a connection with a 'link' setting instead of just ignoring it. Now: $ nmcli connection add type ethernet ifname foobar Connection 'ethernet-foobar' (c3f6f067-e1d5-4bb1-8d67-e09109253a79) successfully added. $ nmcli connection modify ethernet-foobar link.tx-queue-length 1234 Error: Failed to modify connection 'ethernet-foobar': failed to update connection: The ifcfg-rh plugin doesn't support setting 'link'. If you are modifying an existing connection profile saved in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate c3f6f067-e1d5-4bb1-8d67-e09109253a79' or via the Update2() D-Bus API and try again. $ nmcli connection migrate c3f6f067-e1d5-4bb1-8d67-e09109253a79 Connection 'ethernet-foobar' (c3f6f067-e1d5-4bb1-8d67-e09109253a79) successfully migrated. $ nmcli connection modify ethernet-foobar link.tx-queue-length 1234 $ Fixes: 39bfcf7aab97 ('all: add "link" setting')
2023-06-29ifcfg-rh: add helper to set unsupported errorBeniamino Galvani2-9/+31
The ifcfg-rh plugin is now deprecated and in bugfixes-only mode. When users try to set a property that is not supported by the plugin, we need to report an error. Add an helper function to set such error. Also, introduce a new error code so that the situation can be detected and dealt with programmatically.
2023-06-29man: update list of settings not supported by ifcfg-rhBeniamino Galvani1-1/+1
2023-06-29ifcfg-rh: emit deprecation warning when a ifcfg-rh profile is foundBeniamino Galvani1-7/+17
Emit a warning (once) when a connection profile is found in ifcfg-rh format.
2023-06-29build: don't enable ifcfg-rh by default on RH distrosBeniamino Galvani3-7/+1
Now that the plugin is deprecated, it should be enabled only by explicit user configuration.
2023-06-29build,man: document ifcfg-rh as deprecatedBeniamino Galvani3-5/+5
Document the ifcfg-rh settings plugin as deprecated, as announced in: https://lists.freedesktop.org/archives/networkmanager/2023-May/000103.html
2023-06-29libnm: sort setting headers in NetworkManager.hBeniamino Galvani1-2/+2
2023-06-28mailmap: update Jordi's identityThomas Haller1-0/+1
2023-06-28po: update Catalan (ca) translationJordi Mas1-2286/+2876
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1664
2023-06-28nm-in-container: install pytest by defaultThomas Haller1-2/+1
It is useful for running unit tests on NetworkManager-ci.
2023-06-28gitlab-ci: fix setup of debian:9 containerThomas Haller2-2/+11
Debian:9 (stretch) is archived. We need to patch the sources.list for it to be usable. Although it's end of life, we are still interested, whether we are able to build with such old compiler. Fix the test.
2023-06-28tests: avoid Python3 f-string in "test-cloud-meta-mock.py"Thomas Haller1-1/+1
It breaks tests on Debian:9, which use Python2 still. Fixes: e1f3acf3a64e ('test-cloud-meta-mock: allow configuring the provider that are mimicked')
2023-06-27systemd/README: improve readmeThomas Haller1-22/+28
2023-06-27merge: branch 'ff/fix_bridge_unit'Fernando Fernandez Mancera1-76/+72
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1672
2023-06-27tests: rename controller port unit test and variablesff/fix_bridge_unitFernando Fernandez Mancera1-65/+67
Rename the variables and function name to use conscious language. In addition, rename `type` and `link_type` variables to `port_type` and `controller_type` to make it more intuitive.
2023-06-27tests: fix linux bridge port option testFernando Fernandez Mancera1-15/+9
When configuring the bridge port options the code was checking on port link type instead of controller link type. In addition, the test is now being skipped for nm-fake-platform.
2023-06-27contrib: autodetect the Fedora version for "nm-code-format-container.sh" scriptThomas Haller1-1/+5
From time to time we bump the used clang-format (and Fedora) version. Previously, we had to change more than one places. Instead, let the "nm-code-format-container.sh" parse it from ".gitlab-ci/config.yml".
2023-06-27systemd: merge branch systemd into mainWen Liang81-879/+2919
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1666
2023-06-27docs: merge branch 'bg/device-doc'Beniamino Galvani6-0/+839
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1671
2023-06-27docs: add daemon internal documentationbg/device-docBeniamino Galvani3-0/+422
Add documentation about the implementation of the daemon.
2023-06-27docs: add device internal documentationBeniamino Galvani3-0/+417
Add documentation about the implementation of NMDevice.
2023-06-27gitlab: improve issue and merge-request templatesBeniamino Galvani2-6/+6
2023-06-26systemd: update code from upstream (2023-06-13)Wen Liang69-870/+2863
This is a direct dump from systemd git. $ git clean -fdx && \ git cat-file -p HEAD | sed '1,/^======$/ d' | bash - && \ git add . ====== SYSTEMD_DIR=../systemd COMMIT=5c193a7c3cba491a530556b7143e3a49ef704847 ( cd "$SYSTEMD_DIR" git checkout "$COMMIT" git reset --hard git clean -fdx ) git ls-files -z :/src/libnm-systemd-core/src/ \ :/src/libnm-systemd-shared/src/ \ :/src/libnm-std-aux/unaligned-fundamental.h \ :/src/libnm-std-aux/unaligned.h | \ xargs -0 rm -f nm_copy_sd_shared() { mkdir -p "./src/libnm-systemd-shared/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/libnm-systemd-shared/$1" } nm_copy_sd_core() { mkdir -p "./src/libnm-systemd-core/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/libnm-systemd-core/$1" } nm_copy_sd_stdaux() { mkdir -p "./src/libnm-std-aux/" cp "$SYSTEMD_DIR/$1" "./src/libnm-std-aux/${1##*/}" } nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.c" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-option.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-protocol.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-protocol.h" nm_copy_sd_core "src/libsystemd-network/network-common.c" nm_copy_sd_core "src/libsystemd-network/network-common.h" nm_copy_sd_core "src/libsystemd-network/network-internal.h" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-lease.c" nm_copy_sd_core "src/libsystemd/sd-device/device-util.h" nm_copy_sd_core "src/libsystemd/sd-event/event-source.h" nm_copy_sd_core "src/libsystemd/sd-event/event-util.c" nm_copy_sd_core "src/libsystemd/sd-event/event-util.h" nm_copy_sd_core "src/libsystemd/sd-event/sd-event.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.h" nm_copy_sd_core "src/libsystemd/sd-id128/sd-id128.c" nm_copy_sd_core "src/systemd/_sd-common.h" nm_copy_sd_core "src/systemd/sd-device.h" nm_copy_sd_core "src/systemd/sd-dhcp6-client.h" nm_copy_sd_core "src/systemd/sd-dhcp6-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp6-option.h" nm_copy_sd_core "src/systemd/sd-event.h" nm_copy_sd_core "src/systemd/sd-id128.h" nm_copy_sd_core "src/systemd/sd-ndisc.h" nm_copy_sd_shared "src/basic/alloc-util.c" nm_copy_sd_shared "src/basic/alloc-util.h" nm_copy_sd_shared "src/basic/async.h" nm_copy_sd_shared "src/basic/cgroup-util.h" nm_copy_sd_shared "src/basic/constants.h" nm_copy_sd_shared "src/basic/dns-def.h" nm_copy_sd_shared "src/basic/env-file.c" nm_copy_sd_shared "src/basic/env-file.h" nm_copy_sd_shared "src/basic/env-util.c" nm_copy_sd_shared "src/basic/env-util.h" nm_copy_sd_shared "src/basic/errno-util.h" nm_copy_sd_shared "src/basic/escape.c" nm_copy_sd_shared "src/basic/escape.h" nm_copy_sd_shared "src/basic/ether-addr-util.c" nm_copy_sd_shared "src/basic/ether-addr-util.h" nm_copy_sd_shared "src/basic/extract-word.c" nm_copy_sd_shared "src/basic/extract-word.h" nm_copy_sd_shared "src/basic/fd-util.c" nm_copy_sd_shared "src/basic/fd-util.h" nm_copy_sd_shared "src/basic/fileio.c" nm_copy_sd_shared "src/basic/fileio.h" nm_copy_sd_shared "src/basic/format-util.c" nm_copy_sd_shared "src/basic/format-util.h" nm_copy_sd_shared "src/basic/fs-util.c" nm_copy_sd_shared "src/basic/fs-util.h" nm_copy_sd_shared "src/basic/glyph-util.c" nm_copy_sd_shared "src/basic/glyph-util.h" nm_copy_sd_shared "src/basic/hash-funcs.c" nm_copy_sd_shared "src/basic/hash-funcs.h" nm_copy_sd_shared "src/basic/hashmap.c" nm_copy_sd_shared "src/basic/hashmap.h" nm_copy_sd_shared "src/basic/hexdecoct.c" nm_copy_sd_shared "src/basic/hexdecoct.h" nm_copy_sd_shared "src/basic/hostname-util.c" nm_copy_sd_shared "src/basic/hostname-util.h" nm_copy_sd_shared "src/basic/in-addr-util.c" nm_copy_sd_shared "src/basic/in-addr-util.h" nm_copy_sd_shared "src/basic/inotify-util.c" nm_copy_sd_shared "src/basic/inotify-util.h" nm_copy_sd_shared "src/basic/io-util.c" nm_copy_sd_shared "src/basic/io-util.h" nm_copy_sd_shared "src/basic/label.c" nm_copy_sd_shared "src/basic/label.h" nm_copy_sd_shared "src/basic/list.h" nm_copy_sd_shared "src/basic/locale-util.c" nm_copy_sd_shared "src/basic/locale-util.h" nm_copy_sd_shared "src/basic/lock-util.h" nm_copy_sd_shared "src/basic/log.h" nm_copy_sd_shared "src/basic/macro.h" nm_copy_sd_shared "src/basic/memory-util.c" nm_copy_sd_shared "src/basic/memory-util.h" nm_copy_sd_shared "src/basic/mempool.c" nm_copy_sd_shared "src/basic/mempool.h" nm_copy_sd_shared "src/basic/missing_fcntl.h" nm_copy_sd_shared "src/basic/missing_random.h" nm_copy_sd_shared "src/basic/missing_socket.h" nm_copy_sd_shared "src/basic/missing_stat.h" nm_copy_sd_shared "src/basic/missing_syscall.h" nm_copy_sd_shared "src/basic/missing_threads.h" nm_copy_sd_shared "src/basic/missing_type.h" nm_copy_sd_shared "src/basic/ordered-set.c" nm_copy_sd_shared "src/basic/ordered-set.h" nm_copy_sd_shared "src/basic/origin-id.h" nm_copy_sd_shared "src/basic/parse-util.c" nm_copy_sd_shared "src/basic/parse-util.h" nm_copy_sd_shared "src/basic/path-util.c" nm_copy_sd_shared "src/basic/path-util.h" nm_copy_sd_shared "src/basic/prioq.c" nm_copy_sd_shared "src/basic/prioq.h" nm_copy_sd_shared "src/basic/process-util.c" nm_copy_sd_shared "src/basic/process-util.h" nm_copy_sd_shared "src/basic/random-util.c" nm_copy_sd_shared "src/basic/random-util.h" nm_copy_sd_shared "src/basic/ratelimit.c" nm_copy_sd_shared "src/basic/ratelimit.h" nm_copy_sd_shared "src/basic/set.h" nm_copy_sd_shared "src/basic/signal-util.c" nm_copy_sd_shared "src/basic/signal-util.h" nm_copy_sd_shared "src/basic/siphash24.h" nm_copy_sd_shared "src/basic/socket-util.c" nm_copy_sd_shared "src/basic/socket-util.h" nm_copy_sd_shared "src/basic/sort-util.h" nm_copy_sd_shared "src/basic/sparse-endian.h" nm_copy_sd_shared "src/basic/stat-util.c" nm_copy_sd_shared "src/basic/stat-util.h" nm_copy_sd_shared "src/basic/stdio-util.h" nm_copy_sd_shared "src/basic/string-table.c" nm_copy_sd_shared "src/basic/string-table.h" nm_copy_sd_shared "src/basic/string-util.c" nm_copy_sd_shared "src/basic/string-util.h" nm_copy_sd_shared "src/basic/strv.c" nm_copy_sd_shared "src/basic/strv.h" nm_copy_sd_shared "src/basic/strxcpyx.c" nm_copy_sd_shared "src/basic/strxcpyx.h" nm_copy_sd_shared "src/basic/time-util.c" nm_copy_sd_shared "src/basic/time-util.h" nm_copy_sd_shared "src/basic/tmpfile-util.c" nm_copy_sd_shared "src/basic/tmpfile-util.h" nm_copy_sd_shared "src/basic/umask-util.h" nm_copy_sd_shared "src/basic/user-util.h" nm_copy_sd_shared "src/basic/utf8.c" nm_copy_sd_shared "src/basic/utf8.h" nm_copy_sd_shared "src/fundamental/logarithm.h" nm_copy_sd_shared "src/fundamental/macro-fundamental.h" nm_copy_sd_shared "src/fundamental/memory-util-fundamental.h" nm_copy_sd_shared "src/fundamental/sha256.c" nm_copy_sd_shared "src/fundamental/sha256.h" nm_copy_sd_shared "src/fundamental/string-util-fundamental.c" nm_copy_sd_shared "src/fundamental/string-util-fundamental.h" nm_copy_sd_shared "src/shared/dns-domain.c" nm_copy_sd_shared "src/shared/dns-domain.h" nm_copy_sd_shared "src/shared/log-link.h" nm_copy_sd_shared "src/shared/web-util.c" nm_copy_sd_shared "src/shared/web-util.h" nm_copy_sd_stdaux "src/basic/unaligned.h" nm_copy_sd_stdaux "src/fundamental/unaligned-fundamental.h"
2023-06-26platform/trivial: add code comment to NMP_SYSCTL_PATHID_NETDIR_A()Thomas Haller1-0/+7
2023-06-26platform: rename NMP_SYSCTL_PATHID_NETDIR() to have "_A" suffixThomas Haller5-47/+49
The macro uses g_alloca(). Using alloca() is potentially dangerous. For example, it must never be used in an unbounded loop. This should be immediately obvious from the name, so we don't accidentally use them in the wrong context. All other alloca() macros should have such a prefix already. And they always have to be macros, because you couldn't use alloca() to return memory from a function.
2023-06-26po: fix marking "nmtui-radio.c" for translationJavier Sánchez Parra1-0/+1
Fixes: b3b8323499fe ('tui: Enable/disable Wi-Fi and WWAN radios') https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1665
2023-06-26settings,libnm: merge branch 'th/settings-version-id'Thomas Haller9-39/+176
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1667
2023-06-26settings: add "version-id" argument to Update2() D-Bus callThomas Haller3-1/+31
We want to guard against concurrent modifications of profiles. We cannot lock profiles, so what we instead do is expose (and bump) a version ID. The user can check the version ID, plan ahead what to do, and tell NetworkManager to only make the modification if no concurrent modification was done. The conflict can be detected via the version ID. The Update2() D-Bus call gets a parameter to only allow the request if the version ID still matches. nmcli should use this, but it is quite some effort to retry upon concurrent modification. This is still to do. Note that the user might make a decision that is based on multiple profiles. As the new version-id is only per-profile, we cannot guard against such inter-profile modifications. What would be needed, is a UpdateMany() call, where we could modify multiple profiles at once, and the action only takes effect if all version IDs show no concurrent modification. That's not done yet, and maybe never will be.
2023-06-26settings,libnm: add version-id to settings/remote connectionThomas Haller7-11/+115
2023-06-26settings: refactor error handling in update_auth_cb()Thomas Haller1-27/+30
2023-06-26gitlab: add template messages for issues and merge requestsgitlab-templatesBeniamino Galvani3-0/+42
Add template messages to help contributors to create issues and merge requests that are useful and complete. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1669
2023-06-26systemd/README: add hints for reimporting systemdThomas Haller1-0/+9
2023-06-26man: fix description of environment variable NM_CONFIG_ENABLE_TAGqyecst1-1/+1
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1670
2023-06-23contrib/rpm: migrate to SPDX licenseMiroslav Suchy1-1/+1
Fedora is moving to SPDX standard in naming a licenses. See https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2 . https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1668
2023-06-15device/trivial: add code comment to _internal_activate_device() about how ↵Thomas Haller1-0/+19
activation should work
2023-06-15device/trivial: rename internal identifier carrier_wait_until_ms to have ↵Thomas Haller1-12/+12
_msec suffix "_ms" isn't very clear. We should use instead suffices like _sec, _msec, _usec, _nsec. Rename.
2023-06-14release: bump version to 1.43.10 (development)1.43.10-devThomas Haller2-2/+2
2023-06-14core: better handle ignore-carrier=no for bond/bridge/team devicesThomas Haller2-1/+81
By default, bond/bridge/team devices ignore carrier, and so do their ports. However, it can make sense to set '[device*].ignore-carrier' for the controller device. Meaningfully support that. This is a follow up to commit 8c91422954ec ('device: handle carrier changes for master device differently'), which didn't fully solve the problem. What already works, is that when you set ignore-carrier for the controller, then after loss of carrier and a carrier wait timeout, the controller and ports go down. If both the controller and port profiles have autoconnect disabled, they stay down and that's it. It works as expected, but is not very useful, because when we want to automatically react on carrier loss, we also want to automatically reconnect. For controller profiles, carrier only makes sense when ports are attached. However, we can (auto) activate controller profiles without ports. So when the user enables autoconnect for the controller profile, then the profile will eagerly reconnect. That means, after loss of carrier, the device goes down and reconnects right away. It means, when configuring a bond with ignore-carrier=no and autoconnect=yes, then the sensible thing happens (an immediate reconnect). That is just not a useful configuration. The useful way to configure configure ignore-carrier=no for a controller device, autoconnect on the master must be disabled while being enabled on the ports. After all, it's the ports that will autoconnect based on the carrier state and bring up the controller with them. Note that at the moment when a port decides to autoconnect, the controller profile is not yet selected. That only happens later during _internal_activate_device() after searching it with find_master(). At that point, the port profile checks whether it should autoconnect based on its own carrier state, and abort if not. If autoconnect is aborted due to lack of carrier, the profile gets blocked from autoconnect with reason "failed". Hence, when the carrier returns, we need to clear any "failed" blocked reasons and schedule another autoconnect check, Note that this really only works if the port is itself a simple device, like an ethernet. If the port is itself a software device (like a bond, or a VLAN), then the carrier state in _internal_activate_device() is unknown, and we cannot avoid autoconnect. It's unclear how that could make sense, if at all. This setup can be combined with "connection.autoconnect-slaves=yes". In that case, we have the first port to autoconnect when they get carrier, bringing up the controller too. Usually the other ports that don't have carrier would not autoconnect, but with autoconnect-slaves they will. The effect is, that we autoconnect whenever any of the ports has carrier, and then we immediately also bring up the ports that don't have carrier (which we usually would not). https://bugzilla.redhat.com/show_bug.cgi?id=2156684 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1658
2023-06-14cloud-setup: log a warning when no provider is detectedThomas Haller2-11/+25
When using nm-cloud-setup (and enabling any providers), then we expect to also detect a provider. Otherwise, the user is running in an environment where none of the provider exists (in which case they should disable nm-cloud-setup) or there is an unexpected failure. In either case, that's worth a warning message. https://bugzilla.redhat.com/show_bug.cgi?id=2214880 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1659
2023-06-14ppp: merge branch 'th/pppd-so-rename'Thomas Haller7-2/+27
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1312 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1660