RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1917813 - Creating vlan interface on top of a bond device at OVN Kubernetes fails
Summary: Creating vlan interface on top of a bond device at OVN Kubernetes fails
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: nmstate
Version: 8.3
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: rc
: 8.0
Assignee: Gris Ge
QA Contact: Mingyu Shi
URL:
Whiteboard:
Depends On:
Blocks: 1918712 1918713
TreeView+ depends on / blocked
 
Reported: 2021-01-19 12:36 UTC by Quique Llorente
Modified: 2021-05-18 15:18 UTC (History)
5 users (show)

Fixed In Version: nmstate-1.0.1-1.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1918712 1918713 (view as bug list)
Environment:
Last Closed: 2021-05-18 15:18:22 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
verification (36.19 KB, text/plain)
2021-01-27 06:28 UTC, Mingyu Shi
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1913248 0 urgent CLOSED Creating vlan interface on top of a bond device via NodeNetworkConfigurationPolicy fails 2021-03-10 11:23:17 UTC

Description Quique Llorente 2021-01-19 12:36:45 UTC
Description of problem:

Trying to apply the following state at a CNV 2.6 with OVN Kubernetes fails

    interfaces:
    - name: bond0.375
      type: vlan
      state: up
      vlan:
        base-iface: bond0
        id: 375

    - name: bigip-mgmt
      description: Linux bridge with bond0 vlan375 as a port!
      type: linux-bridge
      state: up
      bridge:
        options:
          stp:
            enabled: false
        port:
        - name: bond0.375

    - name: bond0.376
      type: vlan
      state: up
      vlan:
        base-iface: bond0
        id: 376

    - name: bigip-ha
      description: Linux bridge with bond0 vlan376 as a port!
      type: linux-bridge
      state: up
      bridge:
        options:
          stp:
            enabled: false
        port:
        - name: bond0.376


which results in the following error message:

 File \"/usr/bin/nmstatectl\", line 11, in <module>                            
    load_entry_point('nmstate==0.3.4', 'console_scripts', 'nmstatectl')()       
  File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 67, in main
    return args.func(args)                                                      
  File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 267, in apply
    args.save_to_disk,                                                          
  File \"/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py\", line 289, in apply_state
    save_to_disk=save_to_disk,                                                  
  File \"/usr/lib/python3.6/site-packages/libnmstate/netapplier.py\", line 69, in apply
    net_state = NetState(desired_state, current_state, save_to_disk)            
  File \"/usr/lib/python3.6/site-packages/libnmstate/net_state.py\", line 40, in __init__
    save_to_disk,                                                               
  File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py\", line 106, in __init__
    self._pre_edit_validation_and_cleanup()                                     
  File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py\", line 128, in _pre_edit_validation_and_cleanup
    self._validate_over_booked_slaves()                                         
  File \"/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py\", line 423, in _validate_over_booked_slaves
    f\"Interface {iface.name} slave {slave_name} is \"                          
libnmstate.error.NmstateValueError: Interface br-ex slave enp5s0 is already enslaved by interface bond0


This is the networking layout on the nodes:

enp4s0
bond0: enp5s0,enp6s0
br-ex bridge created during deployment includes bond0 interface

nmcli con
NAME                UUID                                  TYPE           DEVICE 
ovs-if-br-ex        e0b6fe95-b4c6-4bbb-8f15-50ad1bd6b718  ovs-interface  br-ex  
Wired connection 1  9ca44b7c-265d-3fe3-bc51-7e52d84ab74c  ethernet       enp4s0 
br-ex               49a80196-d3df-42d9-ac1b-33282d94ae8d  ovs-bridge     br-ex  
ovs-if-phys0        22fb5643-4768-4fff-839a-122a0868a6c5  bond           bond0  
ovs-port-br-ex      3c390181-35c4-4f6b-9fe6-464f10210121  ovs-port       br-ex  
ovs-port-phys0      69aaa7d4-450d-40f6-80f9-696ebbc6bc72  ovs-port       bond0  
System enp5s0       9310e179-14b6-430a-6843-6491c047d532  ethernet       enp5s0 
System enp6s0       b43fa2aa-5a85-7b0a-9a20-469067dba6d6  ethernet       enp6s0 
bond0               ad33d8b0-1f7b-cab9-9447-ba07f855b143  bond           --     


[core@worker-0-0 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:35:d4:fc brd ff:ff:ff:ff:ff:ff
    inet6 fd00:1101::552a:b19:e27a:4e9/128 scope global dynamic noprefixroute 
       valid_lft 2045sec preferred_lft 2045sec
    inet6 fe80::83db:b124:3a5d:20fd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp5s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 52:54:00:a5:49:43 brd ff:ff:ff:ff:ff:ff
4: enp6s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 52:54:00:a5:49:43 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether 52:54:00:a5:49:43 brd ff:ff:ff:ff:ff:ff
7: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 42:0e:c2:af:fe:9d brd ff:ff:ff:ff:ff:ff
8: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 52:54:00:a5:49:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.123.123/24 brd 192.168.123.255 scope global dynamic noprefixroute br-ex
       valid_lft 2229sec preferred_lft 2229sec
    inet 192.168.123.10/32 scope global br-ex
       valid_lft forever preferred_lft forever
    inet6 fe80::acb7:e581:b640:6c69/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[...]


Version-Release number of selected component (if applicable):
registry-proxy.engineering.redhat.com/rh-osbs/iib:35589
python3-libnmstate-0.3.4-17.el8_3.noarch
nmstate-0.3.4-17.el8_3.noarc

How reproducible:


Steps to Reproduce:

1. Deploy OCP 4.7 via baremetal IPI flow. Nodes have the following network layout: one nic used for provisioning network and 2 nics grouped in a bond used for the control plane network

2. Deploy CNV 2.6

3. Apply the following state at a worker

---
 interfaces:
    - name: bond0.375
      type: vlan
      state: up
      vlan:
        base-iface: bond0
        id: 375

    - name: bigip-mgmt
      description: Linux bridge with bond0 vlan375 as a port!
      type: linux-bridge
      state: up
      bridge:
        options:
          stp:
            enabled: false
        port:
        - name: bond0.375

    - name: bond0.376
      type: vlan
      state: up
      vlan:
        base-iface: bond0
        id: 376

    - name: bigip-ha
      description: Linux bridge with bond0 vlan376 as a port!
      type: linux-bridge
      state: up
      bridge:
        options:
          stp:
            enabled: false
        port:
        - name: bond0.376

Actual results:

state fails to get configured

Expected results:

state is configured correctly

Additional info:

Attaching nmstate pods logs.

Comment 1 Quique Llorente 2021-01-19 12:37:34 UTC
nmstate fix for this https://github.com/nmstate/nmstate/commit/a85b3dddf82f9e71774229740fbae6ea843d86d6

Comment 2 Gris Ge 2021-01-19 12:40:51 UTC
Reproducer:

nmcli c del br0 ovs-port-bond0 ovs-iface-bond0 eth1 eth2 2>/dev/null

nmcli c add type ovs-bridge connection.id br0 ifname br0

nmcli c add type ovs-port connection.id ovs-port-bond0 ifname bond0 \
    connection.master br0 connection.slave-type ovs-bridge

nmcli c add type bond connection.id ovs-iface-bond0 ifname bond0 \
    ipv4.method disabled ipv6.method disabled \
    connection.master bond0 connection.slave-type ovs-port

nmcli c add type ethernet connection.id eth1 ifname eth1 \
    connection.master bond0 connection.slave-type bond

nmcli c add type ethernet connection.id eth2 ifname eth2 \
    connection.master bond0 connection.slave-type bond


echo '
---
interfaces:
  - name: bond0.101
    type: vlan
    state: up
    vlan:
      base-iface: bond0
      id: 101' | nmstatectl set -

Comment 8 Mingyu Shi 2021-01-27 06:28:02 UTC
Created attachment 1751140 [details]
verification

Verified with versions:
nmstate-1.0.2-0.1.el8.noarch
nispor-1.0.1-2.el8.x86_64
NetworkManager-1.30.0-0.7.el8.x86_64

Comment 10 errata-xmlrpc 2021-05-18 15:18:22 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:1748


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