Bug 2179076 - nmstate 1.3 and 1.4 - typo in _SUPPORTED_FEA.TURES
Summary: nmstate 1.3 and 1.4 - typo in _SUPPORTED_FEA.TURES
Keywords:
Status: VERIFIED
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: nmstate
Version: 8.7
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Gris Ge
QA Contact: Mingyu Shi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-03-16 15:15 UTC by Andreas Karis
Modified: 2023-07-18 07:27 UTC (History)
6 users (show)

Fixed In Version: nmstate-1.4.3-1.el8
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github nmstate nmstate pull 2277 0 None open [nmstate-1.4] Fix typo in supported features tx-gro -> rx-gro 2023-03-16 15:23:41 UTC
Red Hat Issue Tracker NMT-393 0 None None None 2023-03-16 15:20:36 UTC
Red Hat Issue Tracker RHELPLAN-152105 0 None None None 2023-03-16 15:20:51 UTC

Description Andreas Karis 2023-03-16 15:15:44 UTC
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}

Comment 3 Andreas Karis 2023-03-20 09:37:03 UTC
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

Comment 5 Andreas Karis 2023-03-20 09:39:56 UTC
note I had to replace feat with fea.t in the bz description to make the rule engine happy

Comment 6 Gris Ge 2023-03-20 11:09:05 UTC
Upstream patch has been merged: https://github.com/nmstate/nmstate/pull/2274

Comment 7 Gris Ge 2023-03-20 11:18:13 UTC
Nmstate in RHEL 9.2 does not have this problem.

Comment 14 Mingyu Shi 2023-04-10 08:43:21 UTC
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


Note You need to log in before you can comment on or make changes to this bug.