Bug 2211555

Summary: nmstate throws exception when assigning IP address to VLAN interface
Product: Red Hat Enterprise Linux 8 Reporter: Rogue Blue <darren.reed>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED MIGRATED QA Contact: Mingyu Shi <mshi>
Severity: high Docs Contact:
Priority: unspecified    
Version: 8.4CC: ferferna, jiji, jishi, network-qe, sfaye, till
Target Milestone: rcKeywords: MigratedToJIRA, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-17 09:55:41 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 Rogue Blue 2023-06-01 03:15:17 UTC
Description of problem:

When applying a manifest to set the IP address on a network interface for a host, the "oc apply" fails. A base64 encoded gzip message is:

  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 154, in __init__
    self._mark_vf_interface_as_absent_when_sriov_vf_decrease()
  File "/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py", line 256, in _mark_vf_interface_as_absent_when_sriov_vf_decrease
    cur_iface.sriov_total_vfs != 0
AttributeError: 'VlanIface' object has no attribute 'sriov_total_vfs'

Version-Release number of selected component (if applicable):
OpenShift 4.12.16

How reproducible:
Every time.

Steps to Reproduce:
1. Use "oc apply -f -" with this input:
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: vlan-100-policy-master-worker4
spec:
  nodeSelector:
    kubernetes.io/hostname: worker4
  desiredState:
    interfaces:
    - name: ens192.100
      description: Configuring ens192.100 on worker4
      type: ethernet
      state: up
      ipv4:
        address:
        - ip: 10.0.100.4
          prefix-length: 24
        enabled: true
        dhcp: false

Actual results:
$ oc get nncp
NAME                             STATUS      REASON
vlan-100-policy-master-worker4   Degraded    FailedToConfigure

Expected results:
nmstate to apply IP address to VLAN interface.

Additional info:

Comment 1 Gris Ge 2023-07-21 10:02:55 UTC
Hi Rogue Blue,

The OCP 4.12 now has new nmstate-1.4.4-2.el8_6, can you upgrade and try again?



Thank you!

Comment 2 Rogue Blue 2023-07-24 01:37:48 UTC
Which version of 4.12 will this be fixed in? 4.12.24? (I think this is the latest that I can see.)