Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-824

create dpdk tap interface failed with myeth1(rxq:1 txq:5 lsc interrupt mode:false) configure error: Operation not permitted

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • openvswitch3.1
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • rhel-sst-network-fastdatapath
    • ssg_networking

      [Imported from FD-3040]

       
      Description of problem:

      Version-Release number of selected component (if applicable):
      openvswitch3.1-3.1.0-35.el9fdp.x86_64
      openvswitch3.1-3.1.0-33.el9fdp.x86_64

      How reproducible: 100%

      Steps to Reproduce:
      1. create net/tap device

      1. ovs-vsctl --no-wait set Open_vSwitch . other_config:vhost-iommu-support=true
      2. ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
      1. ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
      2. ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs="net_tap1,iface=myeth1"

      ovs-vsctl: Error detected while setting up 'myeth1': could not add network device myeth1 to ofproto (Invalid argument). See ovs-vswitchd log for details.

      2. disable selinux and change user to root then re-run same test

      1. setenforce 0
      2. getenforce
        Permissive
      1. cat /etc/sysconfig/openvswitch
          1. Configuration options for openvswitch
            #
      2. Enable core files.
      3. This option should be set to "yes" or "no". The default is "yes".
      4. --force-corefiles=yes
        #
      5. Set "nice" priority at which to run ovsdb-server:
      6. --ovsdb-server-priority=-10
        #
      7. Set "nice" priority at which to run ovsdb-vswitchd:
      8. --ovs-vswitchd-priority=-10
        #
      9. Pass or not --mlockall option to ovs-vswitchd.
      10. This option should be set to "yes" or "no". The default is "yes".
      11. Enabling this option can avoid networking interruptions due to
      12. system memory pressure in extraordinary situations, such as multiple
      13. concurrent VM import operations.
      14. --mlockall=yes
        #
      15. Use valgrind:
      16. --ovs-vswitchd-wrapper=valgrind
      17. --ovsdb-server-wrapper=valgrind
        #
      18. Specify additional options, for example to start with debug logs:
      19. --ovs-vswitchd-options='-vconsole:dbg -vfile:dbg'
      20. --ovsdb-server-options='-vconsole:dbg -vfile:dbg'
        #
        OPTIONS=""
      1. Uncomment and set the OVS User/Group value
        #OVS_USER_ID="openvswitch:hugetlbfs"
        OVS_USER_ID="root:root"
      1. systemctl restart openvswitch
      2. ovs-vsctl del-port myeth1
      3. ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs="net_tap1,iface=myeth1"
        ovs-vsctl: Error detected while setting up 'myeth1': could not add network device myeth1 to ofproto (Invalid argument). See ovs-vswitchd log for details.
        ovs-vsctl: The default log directory is "/var/log/openvswitch".

      Actual results:
      check ovs-vswitchd.log got a loop message as below:
      2023-07-20T09:15:55.842Z|01749|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.852Z|01750|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' has been removed and detached
      2023-07-20T09:15:55.853Z|01751|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' attached to DPDK
      2023-07-20T09:15:55.853Z|01752|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.853Z|01753|dpdk|ERR|tap_dev_configure(): net_tap1: number of rx queues 1 must be equal to number of tx queues 3
      2023-07-20T09:15:55.853Z|01754|dpdk|ERR|Port2 dev_configure = -1
      2023-07-20T09:15:55.853Z|01755|netdev_dpdk|WARN|Interface myeth1 eth_dev setup error Operation not permitted
      2023-07-20T09:15:55.854Z|01756|netdev_dpdk|ERR|Interface myeth1(rxq:1 txq:3 lsc interrupt mode:false) configure error: Operation not permitted
      2023-07-20T09:15:55.854Z|01757|dpif_netdev|ERR|Failed to set interface myeth1 new configuration
      2023-07-20T09:15:55.854Z|01758|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.865Z|01759|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' has been removed and detached
      2023-07-20T09:15:55.867Z|01760|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' attached to DPDK
      2023-07-20T09:15:55.867Z|01761|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.868Z|01762|dpdk|ERR|tap_dev_configure(): net_tap1: number of rx queues 1 must be equal to number of tx queues 3
      2023-07-20T09:15:55.868Z|01763|dpdk|ERR|Port2 dev_configure = -1
      2023-07-20T09:15:55.868Z|01764|netdev_dpdk|WARN|Interface myeth1 eth_dev setup error Operation not permitted
      2023-07-20T09:15:55.868Z|01765|netdev_dpdk|ERR|Interface myeth1(rxq:1 txq:3 lsc interrupt mode:false) configure error: Operation not permitted
      2023-07-20T09:15:55.868Z|01766|dpif_netdev|ERR|Failed to set interface myeth1 new configuration
      2023-07-20T09:15:55.868Z|01767|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.876Z|01768|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' has been removed and detached
      2023-07-20T09:15:55.878Z|01769|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' attached to DPDK
      2023-07-20T09:15:55.878Z|01770|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.878Z|01771|dpdk|ERR|tap_dev_configure(): net_tap1: number of rx queues 1 must be equal to number of tx queues 3
      2023-07-20T09:15:55.878Z|01772|dpdk|ERR|Port2 dev_configure = -1
      2023-07-20T09:15:55.878Z|01773|netdev_dpdk|WARN|Interface myeth1 eth_dev setup error Operation not permitted
      2023-07-20T09:15:55.878Z|01774|netdev_dpdk|ERR|Interface myeth1(rxq:1 txq:3 lsc interrupt mode:false) configure error: Operation not permitted
      2023-07-20T09:15:55.878Z|01775|dpif_netdev|ERR|Failed to set interface myeth1 new configuration
      2023-07-20T09:15:55.878Z|01776|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.888Z|01777|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' has been removed and detached
      2023-07-20T09:15:55.891Z|01778|netdev_dpdk|INFO|Device 'net_tap1,iface=myeth1' attached to DPDK
      2023-07-20T09:15:55.891Z|01779|dpdk|INFO|Device with port_id=2 already stopped
      2023-07-20T09:15:55.892Z|01780|dpdk|ERR|tap_dev_configure(): net_tap1: number of rx queues 1 must be equal to number of tx queues 3
      2023-07-20T09:15:55.892Z|01781|dpdk|ERR|Port2 dev_configure = -1
      2023-07-20T09:15:55.892Z|01782|netdev_dpdk|WARN|Interface myeth1 eth_dev setup error Operation not permitted
      2023-07-20T09:15:55.892Z|01783|netdev_dpdk|ERR|Interface myeth1(rxq:1 txq:3 lsc interrupt mode:false) configure error: Operation not permitted
      2023-07-20T09:15:55.892Z|01784|dpif_netdev|ERR|Failed to set interface myeth1 new configuration
      2023-07-20T09:15:55.892Z|01785|dpdk|INFO|Device with port_id=2 already stopped

      Expected results:
      net tap device should be created as well

      ===================================
      echaudro@redhat.com added a comment - 2024/04/02 11:30 AM - Restricted to Red Hat Employee
      Hi mhou@redhat.com can you confirm if this is still an issue? Asking as this issue was never assigned and was never raised as not being worked on. For now, I've assigned it to mcoqueli@redhat.com to give this an initial look.

       
      mhou@redhat.com added a comment - 2023/07/20 10:01 AM
      Test on openvswitch2.17-2.17.0-94, and It can also work as well.

      1. sh tap.sh
        + awk ' { system("ovs-vsctl --if-exist del-br "$3" &>/dev/null") }'
        + grep name
        + ovs-vsctl list bridge
        + sleep 1
        + systemctl stop openvswitch
        + sleep 1
        + rm -rf /etc/openvswitch/conf.db
        + sleep 1
        + rm -rf /var/lib/openvswitch/pki
        + sleep 1
        + systemctl restart openvswitch
        + ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
        + ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
        + ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs=net_tap1,iface=myeth1
        [root@hp-dl388g10-03 ovs_bond_function]# ovs-vsctl show
        e2d39037-c1f5-4bc7-bf19-b3a57b5bf5e6
        Bridge ovsbr0
        datapath_type: netdev
        Port myeth1
        Interface myeth1
        type: dpdk
        options: {dpdk-devargs="net_tap1,iface=myeth1"}
        Port ovsbr0
        Interface ovsbr0
        type: internal
        ovs_version: "2.17.1"
        [root@hp-dl388g10-03 ovs_bond_function]# sh tap.sh
        + ovs-vsctl list bridge
        + grep name
        + awk '{ system("ovs-vsctl --if-exist del-br "$3" &>/dev/null") }

        '
        + sleep 1
        + systemctl stop openvswitch
        + sleep 1
        + rm -rf /etc/openvswitch/conf.db
        + sleep 1
        + rm -rf /var/lib/openvswitch/pki
        + sleep 1
        + systemctl restart openvswitch
        + ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
        + ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
        + ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs=net_tap1,iface=myeth1

      1. ovs-vsctl show
        d6f3f113-3d41-4f8e-ad3c-5b81fd50ce1a
        Bridge ovsbr0
        datapath_type: netdev
        Port myeth1
        Interface myeth1
        type: dpdk
        options: {dpdk-devargs="net_tap1,iface=myeth1"}
        Port ovsbr0
        Interface ovsbr0
        type: internal
        ovs_version: "2.17.8"
         
         

         

        mhou@redhat.com added a comment - 2023/07/20 9:36 AM
        This issue still existed on openvswitch3.1-3.1.0-2. But can't be reproduced on openvswitch2.17-2.17.0-4.el9fdp.x86_64.rpm. Here is a simple reproduced.

      2. cat tap.sh
        #!/bin/bash
        #ovs-vsctl --no-wait set Open_vSwitch . other_config:vhost-iommu-support=true
        set -x
        ovs-vsctl list bridge 2>/dev/null | grep name | awk ' { system("ovs-vsctl --if-exist del-br "$3" &>/dev/null") }'
        sleep 1
        systemctl stop openvswitch &>/dev/null
        sleep 1
        rm -rf /etc/openvswitch/*.db
        sleep 1
        rm -rf /var/lib/openvswitch/*
        sleep 1
        systemctl restart openvswitch
        ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true

        ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
        ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs="net_tap1,iface=myeth1"
        # sh tap.sh
        + awk '{ system("ovs-vsctl --if-exist del-br "$3" &>/dev/null") }

        '
        + grep name
        + ovs-vsctl list bridge
        + sleep 1
        + systemctl stop openvswitch
        + sleep 1
        + rm -rf /etc/openvswitch/conf.db
        + sleep 1
        + rm -rf /var/lib/openvswitch/pki
        + sleep 1
        + systemctl restart openvswitch
        + ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
        + ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
        + ovs-vsctl add-port ovsbr0 myeth1 – set Interface myeth1 type=dpdk options:dpdk-devargs=net_tap1,iface=myeth1
        [root@hp-dl388g10-03 ovs_bond_function]# ovs-vsctl show
        e2d39037-c1f5-4bc7-bf19-b3a57b5bf5e6
        Bridge ovsbr0
        datapath_type: netdev
        Port myeth1
        Interface myeth1
        type: dpdk
        options: {dpdk-devargs="net_tap1,iface=myeth1"}
        Port ovsbr0
        Interface ovsbr0
        type: internal
        ovs_version: "2.17.1"

              mcoqueli@redhat.com Maxime Coquelin
              mcoqueli@redhat.com Maxime Coquelin
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: