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

[RFE] Support OVS-DPDK Port Link State Polling and mtu_request

    • Icon: Story Story
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • rhel-9.2.0, rhel-9.3.0, rhel-9.4
    • nmstate
    • rhel-sst-network-management
    • ssg_networking
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • Hide

      As a system administrator, I want to configure the dpdk-lsc-interrupt option and mtu_request setting for DPDK physical ports and bonds within Nmstate, so that I can optimize network performance for DPDK-enabled environments and ensure correct MTU settings for all related interfaces.

      Acceptance criteria:

      Given a system administrator is configuring DPDK physical ports and bonds within Nmstate on a RHEL system using a polling mode driver for OVS-DPDK,

      When they specify dpdk-lsc-interrupt=false option,

      Then, the LSC interrupts should be disabled and polling mode for the ports enabled.


      Given the system administrator configures a DPDK bond with a specific MTU value in nmstate,

      When they apply this configuration,

      Then, the mtu_request for each DPDK physical port in the bond is set to match the MTU value of the parent DPDK bond.

      Definition of Done:

      • The implementation meets the acceptance criteria
      • Integration tests are written and pass
      • The code is part of a downstream build attached to an errata
      Show
      As a system administrator, I want to configure the dpdk-lsc-interrupt option and mtu_request setting for DPDK physical ports and bonds within Nmstate, so that I can optimize network performance for DPDK-enabled environments and ensure correct MTU settings for all related interfaces. Acceptance criteria: Given a system administrator is configuring DPDK physical ports and bonds within Nmstate on a RHEL system using a polling mode driver for OVS-DPDK, When they specify dpdk-lsc-interrupt=false option, Then, the LSC interrupts should be disabled and polling mode for the ports enabled. — Given the system administrator configures a DPDK bond with a specific MTU value in nmstate, When they apply this configuration, Then, the mtu_request for each DPDK physical port in the bond is set to match the MTU value of the parent DPDK bond. Definition of Done: The implementation meets the acceptance criteria Integration tests are written and pass The code is part of a downstream build attached to an errata
    • None
    • None
    • 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-sfaye Stanislas Faye
              rhn-engineering-dsneddon Dan Sneddon
              Network Management Team Network Management Team
              Mingyu Shi Mingyu Shi
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: