Description of problem: I know it's an old version of nmstate, but OCP 4.12 is still using nmstate 1.3.3 Version-Release number of selected component (if applicable): nmstate 1.3.3 and 1.4 How reproducible: all the time Additional info: Apply this nmstate configuration: {code} [akaris@linux gro]$ cat nmstate.yaml apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: eno8403np1-gro spec: nodeSelector: node-role.kubernetes.io/worker: "" maxUnavailable: 1 desiredState: interfaces: - name: eno8403np1 description: eno8403np1 type: ethernet state: up ipv4: enabled: false ipv6: enabled: false ethtool: fea.ture: gro: off - name: bond-eno8403 type: bond state: up ipv4: address: - ip: 192.168.125.10 prefix-length: 24 enabled: true link-aggregation: mode: balance-rr options: miimon: '140' port: - eno8403np1 ethtool: fea.ture: gro: off {code} Result: {code} libnmstate.error.NmstateValueError The fea.ture rx-gro is not supported. (...) Traceback (most recent call last): File \"/usr/bin/nmstatectl\", line 11, in <module> load_entry_point('nmstate==1.3.3', 'console_scripts', 'nmstatectl')() File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 74, in main return args.func(args) File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 338, in set return apply(args) File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 366, in apply args.save_to_disk, File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 419, in apply_state save_to_disk=save_to_disk, File \"/usr/lib/python3.6/site-packages/libnmstate/netapplier.py\", line 86, in apply desired_state, ignored_ifnames, current_state, save_to_disk File \"/usr/lib/python3.6/site-packages/libnmstate/net_state.py\", line 51, in __init__ gen_conf_mode, File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py\", line 163, in __init__ iface.pre_edit_validation_and_cleanup() File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/base_iface.py\", line 265, in pre_edit_validation_and_cleanup self.ethtool.pre_edit_validation_and_cleanup() File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ethtool.py\", line 98, in pre_edit_validation_and_cleanup self._validate_ethtool_supported_fea.tures() File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ethtool.py\", line 105, in _validate_ethtool_supported_fea.tures f\"The fea.ture {fea.ture_name} is not supported.\" libnmstate.error.NmstateValueError: The fea.ture rx-gro is not supported. {code} This is just a typo and can easily be fixed with: {code} [akaris@linux nmstate ((3183fbde...))]$ git diff diff --git a/libnmstate/ifaces/ethtool.py b/libnmstate/ifaces/ethtool.py index 48f90f18..9b7cfd96 100644 --- a/libnmstate/ifaces/ethtool.py +++ b/libnmstate/ifaces/ethtool.py @@ -169,7 +169,7 @@ class IfaceEthtoolFea.ture: "rx-checksum", "tx-scatter-gather", "tx-tcp-segmentation", - "tx-gro", + "rx-gro", "tx-generic-segmentation", "rx-hashing", "rx-lro", diff --git a/libnmstate/nispor/base_iface.py b/libnmstate/nispor/base_iface.py index beeb176b..92389850 100644 --- a/libnmstate/nispor/base_iface.py +++ b/libnmstate/nispor/base_iface.py @@ -214,7 +214,7 @@ class EthtoolInfo: "rx-checksum", "tx-scatter-gather", "tx-tcp-segmentation", - "tx-gro", + "rx-gro", "tx-generic-segmentation", "rx-hashing", "rx-lro", {code}
https://github.com/nmstate/nmstate/pull/2278 merged upstream, so it's only a matter of pulling the fix into the downstream RHEL 8 RPM
note I had to replace feat with fea.t in the bz description to make the rule engine happy
Upstream patch has been merged: https://github.com/nmstate/nmstate/pull/2274
Nmstate in RHEL 9.2 does not have this problem.
Verified with: nmstate-1.4.3-1.el8.x86_64 nispor-1.2.10-1.el8.x86_64 NetworkManager-1.40.16-2.el8.x86_64 DISTRO=RHEL-8.9.0-20230409.25