Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-31972

Rollback on checkpoint of OVS bridge does not work

    • None
    • Important
    • ZStream
    • 2
    • sst_network_management
    • ssg_networking
    • 5
    • False
    • Hide

      None

      Show
      None
    • No
    • NMT - RHEL-9.5 DTM 14, NMT - RHEL-9.5 DTM 20
    • Approved Blocker
    • Hide

      Given a system administrator configures an OVS bridge and an OVS interface with the same name on a system with NM and sets up network configurations with checkpoint created for rollback purposes, 

      When they modify the network configuration to include additional interfaces and attempt to rollback to the checkpoint, 

      Then,  the OVS interface profile is reactivated and its IP configuration is kept.

       

      Definition of Done:

      • The implementation meets the acceptance criteria
      • Integration tests are written and pass
      • The fix is part of a downstream build attached to an errata
      • The fix is backported into RHEL-9.2 (OCP 4.16 initially will based on RHEL 9.2)
      Show
      Given a system administrator configures an OVS bridge and an OVS interface with the same name on a system with NM and sets up network configurations with checkpoint created for rollback purposes,  When they modify the network configuration to include additional interfaces and attempt to rollback to the checkpoint,  Then,  the OVS interface profile is reactivated and its IP configuration is kept.   Definition of Done: The implementation meets the acceptance criteria Integration tests are written and pass The fix is part of a downstream build attached to an errata The fix is backported into RHEL-9.2 (OCP 4.16 initially will based on RHEL 9.2)
    • Requested
    • None
    • Release Note Not Required
    • None

      What were you trying to do that didn't work?

      The rollback on checkpoint with OVS interace holding the same name of OVS bridge will leave OVS interface deactivated, which will cause the whole OCP node lose network access.

      Please provide the package NVR for which bug is seen:

      NetworkManager-1.47.4-33201.copr.0bb37455c3.el9.x86_64

      How reproducible:

      100%

      Steps to reproduce

      #!/bin/bash -x
      
      echo '---
      interfaces:
      - name: br0
        type: ovs-bridge
        state: absent
      - name: eth1
        type: ethernet
        state: absent
      ' | sudo nmstatectl set -
      
      
      sudo ip link del eth1
      sudo ip netns add tmp
      sudo ip link add eth1 type veth peer name eth1peer
      sudo ip link set eth1 up
      sudo ip link set eth1peer up
      sudo ip link set eth1peer netns tmp
      sudo ip netns exec tmp ip link set eth1peer up
      sudo nmcli device set eth1 managed yes
      
      echo '---
      interfaces:
      - name: br0
        type: ovs-bridge
        state: up
        bridge:
          port:
          - name: ovs0
          - name: eth1
            vlan:
              mode: access
              tag: 100
      ' | sudo nmstatectl set -
      
      sleep 1
      
      sudo nmcli c
      
      sleep 5
      
      # To reproduce the issue, we need to make sure
      #  1. OVS bridge, OVS port and OVS system interface connections are all changed
      #  2. The failure(no vlan ID) is trigger at `connection-add` state with no new
      #     activation/reapply to OVS bridge/port/interface
      echo '
      interfaces:
      - name: eth1
        type: ethernet
        ovs-db:
          external_ids:
            gris: eth1-if
      - name: br0
        type: ovs-bridge
        state: up
        ovs-db:
          external_ids:
            gris: br0-br
        bridge:
          port:
          - name: ovs0
          - name: eth1
            vlan:
              mode: access
              tag: 101
      - name: vlan9
        type: vlan
      ' | sudo nmstatectl set - --no-commit
      
      sleep 5
      sudo ovs-vsctl show
      if [ "CHK$(nmcli c show --active eth1)" == "CHK" ];then
          sudo nmcli c show
          echo "FAILED"
          exit 1
      fi
      

      Expected results

      The `br0` OVS interface activated with IP address 192.0.2.1

      Actual results

      The `br0` OVS interface is deactivated:

      2f528b1b-3b71-4976-8aa4-cf2abde91226
          Bridge br0
              Port dummy1
                  Interface dummy1
                      type: system
          ovs_version: "3.1.4"
      + sudo nmcli c show
      NAME       UUID                                  TYPE           DEVICE 
      ens3       ec835f14-6e70-4fca-b6a6-b0f09ed5477c  ethernet       ens3   
      br0-br     fa50a228-878b-4d25-bff9-581a3749e5c5  ovs-bridge     br0    
      eth1-port  3a8df14a-f408-40b7-aaa5-56f180a605e5  ovs-port       eth1   
      ovs0-if    537a6726-a589-431a-9780-326f397482df  ovs-interface  ovs0   
      ovs0-port  a7eda067-6861-41a7-81d3-95bc80b7c92f  ovs-port       ovs0   
      lo         536820ab-4966-453f-8497-6c3531ccff87  loopback       lo     
      eth1       59c69fb1-e3de-4844-9d5e-1391ef6849d7  ethernet       --
      

        1. ovs_checkpoint.sh
          1 kB
        2. nm.log
          686 kB

              fge@redhat.com Gris Ge
              fge@redhat.com Gris Ge
              Network Management Team Network Management Team
              Filip Pokryvka Filip Pokryvka
              Votes:
              1 Vote for this issue
              Watchers:
              16 Start watching this issue

                Created:
                Updated:
                Resolved: