Currently, when a connection is activated NM always sets the kernel TC
configuration to what is described in the connection profile. In
particular if there is no 'tc' setting NM resets all the
qdiscs/filters added externally.
Since the TC support is very limited in NM and it will never implement
all the features supported by kernel, there should be a way to let NM
ignore the existing TC configuration.
We already do something similar for SR-IOV, where the absence of a
'sriov' settings means 'ignore', and a 'sriov' setting with num-vfs=0
means to clear everything on activation.
NM is used to activate the default route interface on OpenShift.
When OVS HWOL is enabled on the default interface, this bug would
result in the tc filters (added by driver) be removed, which in
turn cause incomplete flows or packets be dropped unexpectedly.
It would be good to have a "ignore" setting in NM to leave the tc
filters (added by other components) untouched.
Write up on integration issues noticed so far:
We (NVIDIA Mellanox) got many customer bugs about this issue.
Therefore, I'm requesting to z-stream the fix.
z-stream it back to 8.4, right? Is it enough?
(In reply to Marcelo Ricardo Leitner from comment #6)
> z-stream it back to 8.4, right? Is it enough?
I think 8.2 is still widely used, right? so it will be great if we can get it there too.
FWIW, I support this request to 8.2.z. This is a worth having fix back there as the issue is quite nasty to debug, unfortunately.
Approving zstream for 8.4 and 8.2 after consulting with NetworkManager developer:
When there is no setting regarding tc filter and qdiscs in NetworkManager connection config, the default action regarding connection activation has changed:
From(old): Remove all existing tc filter and qdiscs.
To(new): Ignore existing tc filter and qdiscs.
Even this default action has been changed in zstream, but NetworkManager team agree this is the correct action and also be consistent with other settings like ethtool.
Meanwhile, the code change risk is acceptable.
Thanks a lot!
Hi Alaa Hlehel,
Could you use NetworkManager-1.32.0-0.5.el8 to test in your environment?
Sure, the bug reprodueced with NetworkManager-1.30.0-7.el8.x86_64
the qdisc got removed after a while (when NM tried to configure the interface).
With NetworkManager-1.32.0-0.5.el8.x86_64 , the issue no longer reproduces, the tc ingress qdiscs are still there, they were not deleted even after NM tried to configure the interfaces.
(also checked using my old test https://bugzilla.redhat.com/attachment.cgi?id=1672300 )
I ran a couple of other OVS Offload tests and the traffic was offloaded without issue.
So it look good.
Created attachment 1791858 [details]
Reproducer for QE
NMCI test case added:
*** Bug 1753684 has been marked as a duplicate of this bug. ***
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory (Moderate: NetworkManager security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.