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

Support deactivating a connection without resetting SRIOV sriov_numvfs

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • NetworkManager-1.53.91-1.el10
    • No
    • Moderate
    • 1
    • rhel-net-mgmt
    • ssg_networking
    • 5
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • NMT SST - Refine next
    • Hide

      Definition of Done:

      Please mark each item below with ( / ) if completed or ( x ) if incomplete:

      ( ) The acceptance criteria defined below are met.

      Given a system with SRIOV configured and VFs in use,

      When the connection-activate command is used without changing SRIOV settings,

      Then NetworkManager should not reset the sriov_numvfs value. This way unnecessary purging and re-adding of VFs is avoided. 


      Integration test case is available upstream


      Code is reviewed and merged upstream


      Preliminary testing is done


      A demo is recorded

      Show
      Definition of Done: Please mark each item below with ( / ) if completed or ( x ) if incomplete: ( ) The acceptance criteria defined below are met. Given a system with SRIOV configured and VFs in use, When the connection-activate command is used without changing SRIOV settings, Then NetworkManager should not reset the sriov_numvfs value. This way unnecessary purging and re-adding of VFs is avoided.  Integration test case is available upstream Code is reviewed and merged upstream Preliminary testing is done A demo is recorded
    • Pass
    • Automated
    • None

      With SRIOV settings not changed, when invoking the DBUS call `'connection-activate`, NM will set the SRIOV sriov_numvfs to 0 and set it back to original value. This will break OpenShift and OpenStack usage as the VF NICs will be purged and re-added.

      The solution we agreed on is to introduce a new "sriov.preserve-on-down" property. When set, NetworkManager will preserve the VFs and any other SR-IOV parameter on the device during deactivation. The property can be also reapplied to a live device, like in:

        ### Create a connection with SR-IOV VFs
        $ nmcli connection add type ethernet ifname eni1np1 sriov.total-vfs 2 ipv4.method disabled ipv6.method disabled
        $ nmcli connection up ethernet-eni1np1    
        
        $ ip link show eni1np1
        342: eni1np1: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN ...
            link/ether 6e:cf:f0:08:74:f4 brd ff:ff:ff:ff:ff:ff
            vf 0     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, ...
            vf 1     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, ...    
        
        ### Now we want to bring it down without touching the VFs
      
        $ nmcli device modify eni1np1 sriov.preserve-on-down yes
        $ nmcli connection down ethernet-eni1np1    
        
        $ ip link show eni1np1
        342: eni1np1: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN ...
            link/ether 6e:cf:f0:08:74:f4 brd ff:ff:ff:ff:ff:ff
            vf 0     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, ...
            vf 1     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, ...
      

              rh-ee-sfaye Stanislas Faye
              fge@redhat.com Gris Ge
              Network Management Team Network Management Team
              Vladimir Benes Vladimir Benes
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated: