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

[RFE] Support OVS-DPDK dpdk-lsc-interrupt in nmstate

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

    • Medium
    • 1
    • rhel-net-mgmt
    • ssg_networking
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • No
    • 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.

      As a system administrator, I want to configure the dpdk-lsc-interrupt option for DPDK physical ports and bonds within Nmstate, so that I can optimize network performance for DPDK-enabled environments.

      Given a system administrator configuring DPDK physical ports for high-performance networking on a RHEL system,

      When they specify dpdk-lsc-interrupt in the nmstate YAML configuration for a DPDK interface,

      Then Nmstate must:
        - Accept the dpdk-lsc-interrupt option in the YAML configuration
        - Apply the option to the OVS interface configuration
        - Return an error if the option is not supported by the underlying OVS version
        - Persist the configuration so it survives system reboots


      Integration test case is available upstream.


      Code is reviewed and merged upstream.


      Preliminary testing is done.


      ( ) Upstream documentation is written in the upstream MR.

      Show
      Definition of Done: Please mark each item below with ( / ) if completed or ( x ) if incomplete: () The acceptance criteria defined below are met. As a system administrator, I want to configure the dpdk-lsc-interrupt option for DPDK physical ports and bonds within Nmstate, so that I can optimize network performance for DPDK-enabled environments. Given a system administrator configuring DPDK physical ports for high-performance networking on a RHEL system, When they specify dpdk-lsc-interrupt in the nmstate YAML configuration for a DPDK interface, Then Nmstate must:   - Accept the dpdk-lsc-interrupt option in the YAML configuration   - Apply the option to the OVS interface configuration   - Return an error if the option is not supported by the underlying OVS version   - Persist the configuration so it survives system reboots Integration test case is available upstream. Code is reviewed and merged upstream. Preliminary testing is done. ( ) Upstream documentation is written in the upstream MR.
    • Pass
    • None
    • Unspecified Release Note Type - Unknown
    • None

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

      Set the OVS option option dpdk-lsc-interrupt=false on DPDK physical ports. However nmstate schema doesn't include this OVS option. For info about why this option is required, see this link:

      OVS Documentation: Link State Change (LSC) Detection Configuration

      https://docs.openvswitch.org/en/latest/topics/dpdk/phy/#link-state-change-lsc-detection-configuration

      Also, in nmstate on RHEL

      Additionally the mtu_request should be set to the same value as the MTU of the parent DPDK bond, see further description at end of this summary.

      Please provide the package NVR for which bug is seen:

      nmstate 2.2.34

      How reproducible:

      100%

      Steps to reproduce

      1. 1 Configure a DPDK user-mode bridge to use a polling mode driver
      2. 2 Configure a DPDK bond on the bridge
      3. 3 Configure two DPDK physical ports attached to the bond with multiple receive queues (e.g. options:n_rxq=8)
      4. 4 Atrempt to configure options:dpdk-lsc-interrupt=false

      Expected results

      The OVS option dpdk-lsc-interrupt should be configurable to false (default is true) on DPDK physical ports if required.

      Actual results

      There is no setting for this option, only the following options are supported:

      class Dpdk:
      DEVARGS = "devargs"
      RX_QUEUE = "rx-queue"
      N_RXQ_DESC = "n_rxq_desc"
      N_TXQ_DESC = "n_txq_desc"

      The OVS option dpdk-lsc-interrupt is required for RHOSP NFV customers, but nmstate cannot set this OVS option currently. In order to use polling mode (instead of interrupt mode) for Link State Change (LSC) detection the OVS option:dpdk-lsc-interrupt=false must be set on the DPDK physical ports. This is required for maximum performance when using DPDK bonds attached to OVS DPDK user-mode bridges with a Polling Mode Driver (PMD).

      The inability to set the Link State Change (LSC) interrupt boolean is blocking the changeover from network-init-scripts to nmstate/NetworkManager in RHOSP 17.1.4 and RHOSO 18.0.x. Currently os-net-config can only set this option when using deprecated network-init-scripts ifcfg files and not nmstate. Red Hat Openstack NFV/telco customers use OVS-DPDK for maximum network performance with NICs such as Mellanox ConnectX, Intel 7xx/8xx, and many other 25Gb-400Gb+ network adapters. In order to support maximum performance in DPDK bonds the LSC interrupt mode must be set to false to enable polling mode.

      Additional possible issue: The mtu_request setting of DPDK ports that are members of a DPDKBond should be set to the same value as the MTU of the DPDKBond. The OVS command to do this is "set Interface $DEVICE mtu_request=$MTU" where $MTU is the value set for the DPDK bond and this is run once for each DPDK port in the bond with $DEVICE set to the name of the port.

      For example consider the following os-net-config configuration:

      members:

      • type: ovs_dpdk_bond
        name: dpdkbond1
        mtu: 9200
        members:
      • type: ovs_dpdk_port
        name: dpdk2
        members:
      • type: interface
        name: ens4f0
      • type: ovs_dpdk_port
        name: dpdk3
        members:
      • type: interface
        name: ens4f1

      This should result in mtu_request=9200 for both dpdk2 and dpdk3. I could not verify whether nmstate already sets the mtu_request correctly already.

              rh-ee-mshi1 Mingyu Shi
              rhn-engineering-dsneddon Dan Sneddon (Inactive)
              Network Management Team Network Management Team
              Mingyu Shi Mingyu Shi
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

                Created:
                Updated: