NetworkManager/src
Beniamino Galvani 57a3f7b5f9 core,libnm: don't touch device TC configuration by default
NetworkManager supports a very limited set of qdiscs. If users want to
configure a unsupported qdisc, they need to do it outside of
NetworkManager using tc.

The problem is that NM also removes all qdiscs and filters during
activation if the connection doesn't contain a TC setting. Therefore,
setting TC configuration outside of NM is hard because users need to
do it *after* the connection is up (for example through a dispatcher
script).

Let NM consider the presence (or absence) of a TC setting in the
connection to determine whether NM should configure (or not) qdiscs
and filters on the interface. We already do something similar for
SR-IOV configuration.

Since new connections don't have the TC setting, the new behavior
(ignore existing configuration) will be the default. The impact of
this change in different scenarios is:

 - the user previously configured TC settings via NM. This continues
   to work as before;

 - the user didn't set any qdiscs or filters in the connection, and
   expected NM to clear them from the interface during activation.
   Here there is a change in behavior, but it seems unlikely that
   anybody relied on the old one;

 - the user didn't care about qdiscs and filters; NM removed all
   qdiscs upon activation, and so the default qdisc from kernel was
   used. After this change, NM will not touch qdiscs and the default
   qdisc will be used, as before;

 - the user set a different qdisc via tc and NM cleared it during
   activation. Now this will work as expected.

So, the new default behavior seems better than the previous one.

https://bugzilla.redhat.com/show_bug.cgi?id=1928078
(cherry picked from commit a48edd0410)
(cherry picked from commit 2a8181bcd7)
(cherry picked from commit de1449375a)
(cherry picked from commit 97620ec18b)
(cherry picked from commit c3b6a44ef6)
2021-06-18 10:18:46 +02:00
..
devices core,libnm: don't touch device TC configuration by default 2021-06-18 10:18:46 +02:00
dhcp dhcp: export the DHCPv6 FQDN option 2020-09-29 13:09:13 +02:00
dns all: unify spelling of "fall-through" comment for switch statements 2020-02-22 10:50:07 +01:00
dnsmasq meson: Improve the src build file 2019-10-01 09:49:33 +02:00
initrd initrd: fix memory leak 2020-09-04 13:58:01 +02:00
ndisc ndisc/tests: relax assertion in "test-ndisc-fake.c" 2020-09-08 14:51:52 +02:00
platform platform: fix test failure when /proc is mounted read-only 2020-05-04 14:00:27 +02:00
ppp all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
settings introspection: avoid compiler warning in generated introspection files 2021-06-10 16:59:52 +02:00
supplicant supplicant: fix verification of key_mgmt config for FT-FILS-SHA{256,384} 2020-06-11 11:10:29 +02:00
systemd systemd: dhcp6: parse the FQDN option 2020-09-29 13:09:12 +02:00
tests tests: replace NMTST_SWAP() by new NM_SWAP() macro 2020-03-26 22:22:57 +01:00
vpn vpn: clear host part of IPv6 routes received from VPN plugin 2020-04-28 09:43:04 +02:00
main-utils.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
main-utils.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
main.c config: print config warnings during NetworkManager --print-config 2019-12-11 13:13:05 +01:00
meson.build meson: Improve the src build file 2019-10-01 09:49:33 +02:00
NetworkManagerUtils.c move tc parsing out of nm-device.c 2021-06-18 10:18:46 +02:00
NetworkManagerUtils.h move tc parsing out of nm-device.c 2021-06-18 10:18:46 +02:00
nm-act-request.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-act-request.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-active-connection.c core: signal parent-active only when the parent AC is activated 2020-05-19 21:43:42 +02:00
nm-active-connection.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-audit-manager.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-audit-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-auth-manager.c core: add main.auth-polkit option "root-only" 2019-12-11 13:13:05 +01:00
nm-auth-manager.h core: add main.auth-polkit option "root-only" 2019-12-11 13:13:05 +01:00
nm-auth-subject.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-auth-subject.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-auth-utils.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-auth-utils.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-checkpoint-manager.c all: use nm_dbus_path_not_empty() 2019-11-07 11:34:36 +01:00
nm-checkpoint-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-checkpoint.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-checkpoint.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-config-data.c config: emit warning about invalid main.auth-polkit setting 2019-12-11 13:13:05 +01:00
nm-config-data.h config: add nm_config_data_get_warnings() to get additional warnings about wrong configuration 2019-12-11 13:13:05 +01:00
nm-config.c core/trivial: rename nm_config_device_state_prune_unseen() to nm_config_device_state_prune_stale() 2020-03-04 16:59:22 +01:00
nm-config.h core/trivial: rename nm_config_device_state_prune_unseen() to nm_config_device_state_prune_stale() 2020-03-04 16:59:22 +01:00
nm-connectivity.c all: remove wrong CURL option initialization 2020-02-03 15:31:18 +01:00
nm-connectivity.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-core-utils.c all: use nm_utils_ifname_valid_kernel() instead of nm_utils_is_valid_iface_name() 2020-02-17 17:28:14 +01:00
nm-core-utils.h core: remove 'legacy_unstable_byteorder' argument from client-id helpers 2019-12-02 18:02:41 +01:00
nm-dbus-manager.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dbus-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dbus-object.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dbus-object.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dbus-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dbus-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dcb.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dcb.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dhcp4-config.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dhcp4-config.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dhcp6-config.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dhcp6-config.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dispatcher.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dispatcher.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-firewall-manager.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-firewall-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-hostname-manager.c core: avoid deprecated matchfilecon SELinux API instead of selabel 2020-08-28 22:51:56 +02:00
nm-hostname-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-iface-helper.c ndisc: implement "ipv6.ra-timeout" property 2020-02-17 15:06:10 +01:00
nm-ip4-config.c all: add support for "scope" attribute for IPv4 routes 2019-11-28 00:11:15 +01:00
nm-ip4-config.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-ip6-config.c core: don't add prefix route for external addresses 2019-10-23 21:46:26 +02:00
nm-ip6-config.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-keep-alive.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-keep-alive.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-logging.c nm-logging: fix stack-use-after-scope error detected by asan 2020-02-22 12:22:51 +01:00
nm-logging.h core: move _LOG*() macros to "shared/nm-glib-aux/nm-logging-fwd.h" 2019-11-22 15:32:52 +01:00
nm-manager.c core: fix D-Bus type for "org.freedesktop.NetworkManager.Capabilities" property 2020-09-18 15:34:41 +02:00
nm-manager.h core: return ifindex from nm_manager_write_device_state() 2020-03-04 16:59:22 +01:00
nm-netns.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-netns.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-pacrunner-manager.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-pacrunner-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-policy.c policy: get the DHCPv6 hostname from the FQDN option 2020-09-29 13:21:21 +02:00
nm-policy.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-proxy-config.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-proxy-config.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-rfkill-manager.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-rfkill-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-session-monitor.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-session-monitor.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-sleep-monitor.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-sleep-monitor.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-test-utils-core.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-types.h core: track whether IP addresses are external 2019-10-23 17:44:38 +02:00
org.freedesktop.NetworkManager.conf wifi-p2p: rename Wi-Fi P2P 2019-02-01 17:02:57 +01:00