NetworkManager/src/core
Beniamino Galvani 2a8181bcd7 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)
2021-06-17 16:51:25 +02:00
..
devices core,libnm: don't touch device TC configuration by default 2021-06-17 16:51:25 +02:00
dhcp dhcp: fix nm_dhcp_lease_data_parse_cstr() to correctly detect NUL chars 2021-06-04 21:26:40 +02:00
dns core: force emission of DNS_CONFIG_CHANGED signal on SIGUSR1 2021-06-10 18:08:24 +02:00
dnsmasq all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
initrd Revert "initrd: set the bootif MAC in existing connection with ifname" 2021-03-26 07:33:40 +01:00
ndisc shared: remove "str" argument from nm_str_buf_reset() 2021-02-11 09:23:06 +01:00
platform core: don't add dependent local route for addresses 2021-03-24 14:24:54 +01:00
ppp all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
settings keyfile: fix comparison in nms_keyfile_nmmeta_read() 2021-06-04 21:26:31 +02:00
supplicant supplicant: fix leaking handle in nm_supplicant_manager_create_interface() 2021-06-10 16:03:20 +02:00
systemd all: add "nm-default-systemd{,-shared}.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
tests systemd/tests: avoid using g_free() with buffers allocated with malloc() in _test_unbase64mem_mem() 2021-06-04 21:25:39 +02:00
vpn all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
main-utils.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
main-utils.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
main.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
meson.build libnm: merge libnm-keyfile into libnm-core 2021-02-09 12:38:19 +01:00
NetworkManagerUtils.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
NetworkManagerUtils.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-act-request.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-act-request.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-active-connection.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-active-connection.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-audit-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-audit-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-auth-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-auth-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-auth-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-auth-utils.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-checkpoint-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-checkpoint-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-checkpoint.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-checkpoint.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-config-data.c core: fix leak in _config_data_get_main_auth_polkit() 2021-06-04 20:33:45 +02:00
nm-config-data.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-config.c libnm: merge libnm-keyfile into libnm-core 2021-02-09 12:38:19 +01:00
nm-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-connectivity.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-connectivity.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-core-utils.c wifi: fix parsing Microsoft Network Cost IE 2021-06-04 20:52:25 +02:00
nm-core-utils.h all: drop unnecessary cast of g_object_new() 2021-02-08 17:02:09 +01:00
nm-dbus-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dbus-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-dbus-object.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dbus-object.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-dbus-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-dbus-utils.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-dcb.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dcb.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-default-daemon.h all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dhcp-config.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dhcp-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-dispatcher.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-dispatcher.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-firewall-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-firewall-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-hostname-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-hostname-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-iface-helper.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-ip-config.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-ip-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-ip4-config.c core: don't add dependent local route for addresses 2021-03-24 14:24:54 +01:00
nm-ip4-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-ip6-config.c core: don't add dependent local route for addresses 2021-03-24 14:24:54 +01:00
nm-ip6-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-keep-alive.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-keep-alive.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-l3-config-data.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-l3-config-data.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-l3-ipv4ll.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-l3-ipv4ll.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-l3cfg.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-l3cfg.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-manager.c manager: fix assertion failure in active_connection_find() 2021-06-02 15:39:13 +02:00
nm-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-netns.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-netns.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-pacrunner-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-pacrunner-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-policy.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-policy.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-proxy-config.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-proxy-config.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-rfkill-manager.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-rfkill-manager.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-session-monitor.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-session-monitor.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-sleep-monitor.c all: add "src/core/nm-default-daemon.h" as replacement for "nm-default.h" 2021-02-09 12:38:18 +01:00
nm-sleep-monitor.h all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00
nm-test-utils-core.h libnm: merge libnm-keyfile into libnm-core 2021-02-09 12:38:19 +01:00
nm-types.h core: add NM_IP_ROUTE_TABLE_SYNC_MODE_ALL_PRUNE mode 2021-03-24 14:24:53 +01:00
org.freedesktop.NetworkManager.conf all: move "src/" directory to "src/core/" 2021-02-04 09:45:55 +01:00