Bug 1970195

Summary: nmstate reports some unchangeable ethtool features on vrf
Product: Red Hat Enterprise Linux 8 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Fernando F. Mancera <ferferna>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.5CC: ferferna, jiji, jishi, network-qe, till
Target Milestone: betaKeywords: FutureFeature, Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 17:43:51 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:

Description Mingyu Shi 2021-06-10 03:40:54 UTC
Description of problem:
`nmstatectl show` reports some unchangeable ethtool features on vrf, it should only report changeable settings.

Version-Release number of selected component (if applicable):
nmstate-1.1.0-0.3.alpha3.el8.noarch
nispor-1.1.0-1.el8.x86_64
NetworkManager-1.32.0-0.4.el8.x86_64

How reproducible:
100%

Steps to Reproduce:
echo "interfaces:
- name: vrf0
  type: vrf
  state: up
  vrf:
    route-table-id: 1000" | nmstatectl apply -
nmstatectl show vrf0 > vrf0.yaml
nmstatectl apply vrf0.yaml

Actual results:
Traceback (most recent call last):
  File "/usr/bin/nmstatectl", line 11, in <module>
    load_entry_point('nmstate==1.1.0', 'console_scripts', 'nmstatectl')()
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 73, in main
    return args.func(args)
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 326, in set
    return apply(args)
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 343, in apply
    args.save_to_disk,
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 407, in apply_state
    save_to_disk=save_to_disk,
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 81, in apply
    _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 114, in _apply_ifaces_state
    plugin.apply_changes(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/plugin.py", line 201, in apply_changes
    NmProfiles(self.context).apply_config(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/profiles.py", line 74, in apply_config
    profile.prepare_config(save_to_disk, gen_conf_mode=False)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/profile.py", line 305, in prepare_config
    self._iface, self._nm_profile
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/connection.py", line 246, in create_new_nm_simple_conn
    nm_profile,
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/ethtool.py", line 88, in create_ethtool_setting
    nm_set_feature(nm_setting, kernel_feature_name, value)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/ethtool.py", line 140, in nm_set_feature
    f"Ethtool feature {kernel_feature_name} is invalid "
libnmstate.error.NmstateValueError: Ethtool feature netns-local is invalid or not supported by current NetworkManager

Expected results:
Don't show `netns-local` if it is not changeable.

Additional info:
Besides, `tx-lockless` and `vlan-challenged` are also shown while unchangeable:
# ethtool -k vrf0 | grep -E 'netns-local|tx-lockless|vlan-challenged'
vlan-challenged: on [fixed]
tx-lockless: on [fixed]
netns-local: on [fixed]

Comment 2 Fernando F. Mancera 2021-06-10 07:20:58 UTC
Hi Mingyu,

This patch will fix this report. https://github.com/nmstate/nmstate/pull/1629

If the user does not modify the value it won't fail. Does that sound good to you?

Thanks,
Fernando.

Comment 3 Fernando F. Mancera 2021-06-10 10:52:22 UTC
Upstream patch: https://github.com/nmstate/nmstate/pull/1629

Comment 5 Mingyu Shi 2021-06-22 07:42:35 UTC
Pretested  with versions:
nmstate-2.0.0-0.20210615155046013041.pr1629.63.g789546c.el8.noarch
nispor-1.1.1-1.el8.x86_64
NetworkManager-1.32.0-0.5.el8.x86_64

Run the reproducer, check the state:
 nmstatectl show vrf0
/tmp/2021-06-22-15:40:51.log
---
dns-resolver:
  config: {}
  running:
    search:
    - rhts.eng.pek2.redhat.com
    server:
    - 10.73.2.107
    - 10.73.2.108
    - 10.66.127.10
route-rules:
  config: []
routes:
  config: []
  running: []
interfaces:
- name: vrf0
  type: vrf
  state: up
  accept-all-mac-addresses: false
  ethtool:
    feature:
      highdma: true
      rx-checksum: true
      rx-gro: true
      rx-gro-list: false
      tx-checksum-ip-generic: true
      tx-checksum-sctp: true
      tx-generic-segmentation: true
      tx-nocache-copy: false
      tx-scatter-gather-fraglist: true
      tx-sctp-segmentation: true
      tx-tcp-ecn-segmentation: true
      tx-tcp-mangleid-segmentation: true
      tx-tcp-segmentation: true
      tx-tcp6-segmentation: true
  ipv4:
    enabled: false
    address: []
    dhcp: false
  ipv6:
    enabled: false
    address: []
    autoconf: false
    dhcp: false
  lldp:
    enabled: false
  mac-address: 8A:72:AC:E1:5F:A2
  mtu: 65536
  vrf:
    port: []
    route-table-id: 1000

Comment 8 Mingyu Shi 2021-06-29 06:45:48 UTC
Verified with versions:
nmstate-1.1.0-0.5.alpha4.el8.noarch
nispor-1.1.1-1.el8.x86_64
NetworkManager-1.32.0-1.el8.x86_64

Comment 10 errata-xmlrpc 2021-11-09 17:43:51 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 (nmstate 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-2021:4157