Bug 2158328

Summary: RFE: Support changing txqueuelen and other link settings
Product: Red Hat Enterprise Linux 9 Reporter: Jonathan Maxwell <jmaxwell>
Component: NetworkManagerAssignee: Beniamino Galvani <bgalvani>
Status: CLOSED ERRATA QA Contact: Vladimir Benes <vbenes>
Severity: low Docs Contact: Marc Muehlfeld <mmuehlfe>
Priority: medium    
Version: 9.2CC: bgalvani, ferferna, lrintel, rkhan, sfaye, sukulkar, till, vbenes
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: NetworkManager-1.43.3-1.el9 Doc Type: Enhancement
Doc Text:
.NetworkManager supports specifying link-related properties This enhancement adds the following network link properties to NetworkManager connection profiles: * `link.tx-queue-length` - The size of the transmit (TX) queue length in number of packets. * `link.gro-max-size` - The maximum size in bytes of a Generic Receive Offload (GRO) packet the device accepts. * `link.gso-max-segments` - The maximum number of segments of a Generic Segmentation Offload (GSO) packet the device accepts. * `link.gso-max-size` - The maximum size in bytes of a GSO packet. Previously, you could configure these kernel settings only by using `ip` commands or by using such commands in NetworkManager dispatcher scripts. With this enhancement, you can now configure these settings directly in connection profiles. Note that NetworkManager supports these properties only in connection profiles in `keyfile` format and not in the deprecated `ifcfg` format.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:37:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2183217    

Description Jonathan Maxwell 2023-01-05 04:56:15 UTC
We had a request from a customer to set txqueuelen in /etc/NetworkManager/system-connections/<interface>.nmconnection. 

According to "man nm-settings" there is currently no way to do this. So the customer needs to use udev rules, rc_local or write a NM dispatcher script.

Please can a txqueuelen option under the connection setting be added?

Comment 5 Beniamino Galvani 2023-01-24 15:55:05 UTC
While at it, we could add support for other related properties as well:

 txqueuelen   (IFLA_TXQLEN)
 numtxqueues  (IFLA_NUM_TX_QUEUES)
 numrxqueues  (IFLA_NUM_RX_QUEUES)
 gso_max_size (IFLA_GSO_MAX_SIZE)
 gso_max_segs (IFLA_GSO_MAX_SEGS)
 gro_max_size (IFLA_GRO_MAX_SIZE)
 tso_max_size (IFLA_TSO_MAX_SIZE)
 tso_max_segs (IFLA_TSO_MAX_SEGS)

Probably those properties should go in the "connection" setting.

Comment 6 Vladimir Benes 2023-03-07 13:41:39 UTC
This doesn't work under ifcfg-rh plugin, changes are simply gone. Moving back to assigned.

Comment 7 Till Maas 2023-03-07 18:41:03 UTC
(In reply to Vladimir Benes from comment #6)
> This doesn't work under ifcfg-rh plugin, changes are simply gone. Moving
> back to assigned.

The original request was only for key files, see comment:0. Therefore it seems to be fine to support this only with key files.

Comment 8 Till Maas 2023-03-07 18:47:15 UTC
(In reply to Till Maas from comment #7)
> (In reply to Vladimir Benes from comment #6)
> > This doesn't work under ifcfg-rh plugin, changes are simply gone. Moving
> > back to assigned.
> 
> The original request was only for key files, see comment:0. Therefore it
> seems to be fine to support this only with key files.

The acceptance criteria concur:

As a linux administrator, I would like a way to configure the number of frames allowed per kernel transmission queue using NetworkManager so that I don’t need to write a dispatcher script or to use udev rules or rc local.


Given a RHEL machine where NetworkManager is running

When txqueuelen is set in /etc/NetworkManager/system-connections/<interface>.nmconnection in the “connection” or “ethtool” setting (depending where it makes most sense)

Then, NetworkManager should configure the txqueuelen for this interface.

Moving back to ON_QA.

Comment 9 Beniamino Galvani 2023-03-07 22:00:05 UTC
> The original request was only for key files, see comment:0. Therefore it seems to be fine to support this only with key files.

The problem is that there is no indication anywhere that the properties are ignored because ifcfg doesn't support them, they just vanish from the connection upon saving. If a RHEL9 machine has ifcfg files (that were generated manually or copied from RHEL8), these property won't work and it would be very hard to understand why for users. It seems better to either add ifcfg support for them, or add a mechanism to return an error when a property is not supported by the current format.

Comment 17 errata-xmlrpc 2023-11-07 08:37:57 UTC
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 (NetworkManager 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.

https://access.redhat.com/errata/RHBA-2023:6585