DPDK-dev Archive on lore.kernel.org
 help / color / Atom feed
* [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
@ 2019-08-14 17:53 Mike DeVico
  0 siblings, 0 replies; 6+ messages in thread
From: Mike DeVico @ 2019-08-14 17:53 UTC (permalink / raw)
  To: dev

Hello,

I am having an issue getting the DCB feature to work with an Intel
X710 Quad SFP+ NIC.

Here’s my setup:


  1.  DPDK 18.08 built with the following I40E configs:


CONFIG_RTE_LIBRTE_I40E_PMD=y
CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8


  1.  /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net


Network devices using DPDK-compatible driver

============================================

0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e

0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e

0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e

0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e

       Network devices using kernel driver
       ===================================
       0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
       0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*

       Other Network devices
       =====================
       <none>


  1.  We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
a packet tagged with VLAN 1 and PCP 2.


  1.  I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
as follows:
       sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3

The apps starts up fine and successfully probes the card as shown below:

sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
EAL: Detected 80 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:02:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:02:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:3b:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.2 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.3 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
vmdq queue base: 64 pool base 1
Configured vmdq pool num: 16, each vmdq pool has 8 queues
Port 0 MAC: e8 ea 6a 27 b5 4d
Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
vmdq queue base: 64 pool base 1
Configured vmdq pool num: 16, each vmdq pool has 8 queues
Port 1 MAC: e8 ea 6a 27 b5 4e
Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f

Skipping disabled port 2

Skipping disabled port 3
Core 0(lcore 1) reading queues 64-191

However, when I issue the SIGHUP I see that the packets
are being put into the first queue of Pool 1 as follows:

Pool 0: 0 0 0 0 0 0 0 0
Pool 1: 10 0 0 0 0 0 0 0
Pool 2: 0 0 0 0 0 0 0 0
Pool 3: 0 0 0 0 0 0 0 0
Pool 4: 0 0 0 0 0 0 0 0
Pool 5: 0 0 0 0 0 0 0 0
Pool 6: 0 0 0 0 0 0 0 0
Pool 7: 0 0 0 0 0 0 0 0
Pool 8: 0 0 0 0 0 0 0 0
Pool 9: 0 0 0 0 0 0 0 0
Pool 10: 0 0 0 0 0 0 0 0
Pool 11: 0 0 0 0 0 0 0 0
Pool 12: 0 0 0 0 0 0 0 0
Pool 13: 0 0 0 0 0 0 0 0
Pool 14: 0 0 0 0 0 0 0 0
Pool 15: 0 0 0 0 0 0 0 0
Finished handling signal 1

Since the packets are being tagged with PCP 2 they should be getting
mapped to 3rd queue of Pool 1, right?

As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
the packets show up in the expected queue. (Note, to get it to work I had
to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)

Here’s that setup:

/opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net

Network devices using DPDK-compatible driver
============================================
0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe

Network devices using kernel driver
===================================
0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio

Other Network devices
=====================
<none>

sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
EAL: Detected 80 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:02:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:02:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:3b:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.2 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.3 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:af:00.0 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:af:00.1 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
vmdq queue base: 0 pool base 0
Port 0 MAC: 00 1b 21 bf 71 24
Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
vmdq queue base: 0 pool base 0
Port 1 MAC: 00 1b 21 bf 71 26
Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff

Now when I send the SIGHUP, I see the packets being routed to
the expected queue:

Pool 0: 0 0 0 0 0 0 0 0
Pool 1: 0 0 58 0 0 0 0 0
Pool 2: 0 0 0 0 0 0 0 0
Pool 3: 0 0 0 0 0 0 0 0
Pool 4: 0 0 0 0 0 0 0 0
Pool 5: 0 0 0 0 0 0 0 0
Pool 6: 0 0 0 0 0 0 0 0
Pool 7: 0 0 0 0 0 0 0 0
Pool 8: 0 0 0 0 0 0 0 0
Pool 9: 0 0 0 0 0 0 0 0
Pool 10: 0 0 0 0 0 0 0 0
Pool 11: 0 0 0 0 0 0 0 0
Pool 12: 0 0 0 0 0 0 0 0
Pool 13: 0 0 0 0 0 0 0 0
Pool 14: 0 0 0 0 0 0 0 0
Pool 15: 0 0 0 0 0 0 0 0
Finished handling signal 1

What am I missing?

Thankyou in advance,
--Mike

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
  2019-09-12 17:46     ` Jeff Weeks
@ 2019-09-12 18:10       ` Mike DeVico
  0 siblings, 0 replies; 6+ messages in thread
From: Mike DeVico @ 2019-09-12 18:10 UTC (permalink / raw)
  To: Jeff Weeks, Thomas Monjalon
  Cc: dev, Beilei Xing, Qi Zhang, Bruce Richardson, Konstantin Ananyev,
	ferruh.yigit

Hi Jeff,

Thanks for chiming in...

Yeah, In my case I get the packets, but they end up being put in queue 0 instead of 2.

--Mike

From: Jeff Weeks <jweeks@sandvine.com>
Date: Thursday, September 12, 2019 at 10:47 AM
To: Mike DeVico <mdevico@xcom-labs.com>, Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>, Beilei Xing <beilei.xing@intel.com>, Qi Zhang <qi.z.zhang@intel.com>, Bruce Richardson <bruce.richardson@intel.com>, Konstantin Ananyev <konstantin.ananyev@intel.com>, "ferruh.yigit@intel.com" <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC

[EXTERNAL SENDER]

I don't have much else to add, except that I also see dcb fail on the same NIC:



  i40e_dcb_init_configure(): default dcb config fails. err = -53, aq_err = 3.



My card doesn't receive any packets, though; not sure if it's related to this, or not.



--Jeff

________________________________
/dev/jeff_weeks.x2936
Sandvine Incorporated

________________________________
From: dev <dev-bounces@dpdk.org> on behalf of Mike DeVico <mdevico@xcom-labs.com>
Sent: Thursday, September 12, 2019 1:06 PM
To: Thomas Monjalon
Cc: dev@dpdk.org; Beilei Xing; Qi Zhang; Bruce Richardson; Konstantin Ananyev; ferruh.yigit@intel.com
Subject: Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC

[EXTERNAL]

Still no hits...

--Mike

On 9/9/19, 1:39 PM, "Thomas Monjalon" <thomas@monjalon.net> wrote:

    [EXTERNAL SENDER]

    Adding i40e maintainers and few more.

    07/09/2019 01:11, Mike DeVico:
    > Hello,
    >
    > I am having an issue getting the DCB feature to work with an Intel
    > X710 Quad SFP+ NIC.
    >
    > Here’s my setup:
    >
    > 1.      DPDK 18.08 built with the following I40E configs:
    >
    > CONFIG_RTE_LIBRTE_I40E_PMD=y
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
    > CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
    > CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
    > CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8
    >
    > 2.      /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    >
    >        Network devices using kernel driver
    >        ===================================
    >        0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    >        0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    >
    >        Other Network devices
    >        =====================
    >        <none>
    >
    > 3.      We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
    > a packet tagged with VLAN 1 and PCP 2.
    >
    > 4.      I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
    > as follows:
    >        sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    >
    >
    > The apps starts up fine and successfully probes the card as shown below:
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 0 MAC: e8 ea 6a 27 b5 4d
    > Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
    > Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
    > Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
    > Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
    > Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
    > Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
    > Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
    > Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
    > Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
    > Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
    > Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
    > Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
    > Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
    > Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
    > Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
    > Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 1 MAC: e8 ea 6a 27 b5 4e
    > Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
    > Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
    > Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
    > Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
    > Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
    > Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
    > Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
    > Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
    > Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
    > Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
    > Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
    > Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
    > Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
    > Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
    > Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
    > Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f
    >
    > Skipping disabled port 2
    >
    > Skipping disabled port 3
    > Core 0(lcore 1) reading queues 64-191
    >
    > However, when I issue the SIGHUP I see that the packets
    > are being put into the first queue of Pool 1 as follows:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 10 0 0 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > Since the packets are being tagged with PCP 2 they should be getting
    > mapped to 3rd queue of Pool 1, right?
    >
    > As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
    > the packets show up in the expected queue. (Note, to get it to work I had
    > to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)
    >
    > Here’s that setup:
    >
    > /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    > 0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    >
    > Network devices using kernel driver
    > ===================================
    > 0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    > 0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio
    >
    > Other Network devices
    > =====================
    > <none>
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:af:00.0 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > EAL: PCI device 0000:af:00.1 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > vmdq queue base: 0 pool base 0
    > Port 0 MAC: 00 1b 21 bf 71 24
    > Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    > vmdq queue base: 0 pool base 0
    > Port 1 MAC: 00 1b 21 bf 71 26
    > Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    >
    > Now when I send the SIGHUP, I see the packets being routed to
    > the expected queue:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 0 0 58 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > What am I missing?
    >
    > Thankyou in advance,
    > --Mike
    >
    >







^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
  2019-09-12 17:06   ` Mike DeVico
@ 2019-09-12 17:46     ` Jeff Weeks
  2019-09-12 18:10       ` Mike DeVico
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff Weeks @ 2019-09-12 17:46 UTC (permalink / raw)
  To: Mike DeVico, Thomas Monjalon
  Cc: dev, Beilei Xing, Qi Zhang, Bruce Richardson, Konstantin Ananyev,
	ferruh.yigit

I don't have much else to add, except that I also see dcb fail on the same NIC:


  i40e_dcb_init_configure(): default dcb config fails. err = -53, aq_err = 3.


My card doesn't receive any packets, though; not sure if it's related to this, or not.


--Jeff

________________________________
/dev/jeff_weeks.x2936
Sandvine Incorporated


________________________________
From: dev <dev-bounces@dpdk.org> on behalf of Mike DeVico <mdevico@xcom-labs.com>
Sent: Thursday, September 12, 2019 1:06 PM
To: Thomas Monjalon
Cc: dev@dpdk.org; Beilei Xing; Qi Zhang; Bruce Richardson; Konstantin Ananyev; ferruh.yigit@intel.com
Subject: Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC

[EXTERNAL]

Still no hits...

--Mike

On 9/9/19, 1:39 PM, "Thomas Monjalon" <thomas@monjalon.net> wrote:

    [EXTERNAL SENDER]

    Adding i40e maintainers and few more.

    07/09/2019 01:11, Mike DeVico:
    > Hello,
    >
    > I am having an issue getting the DCB feature to work with an Intel
    > X710 Quad SFP+ NIC.
    >
    > Here’s my setup:
    >
    > 1.      DPDK 18.08 built with the following I40E configs:
    >
    > CONFIG_RTE_LIBRTE_I40E_PMD=y
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
    > CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
    > CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
    > CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8
    >
    > 2.      /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    >
    >        Network devices using kernel driver
    >        ===================================
    >        0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    >        0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    >
    >        Other Network devices
    >        =====================
    >        <none>
    >
    > 3.      We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
    > a packet tagged with VLAN 1 and PCP 2.
    >
    > 4.      I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
    > as follows:
    >        sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    >
    >
    > The apps starts up fine and successfully probes the card as shown below:
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 0 MAC: e8 ea 6a 27 b5 4d
    > Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
    > Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
    > Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
    > Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
    > Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
    > Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
    > Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
    > Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
    > Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
    > Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
    > Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
    > Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
    > Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
    > Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
    > Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
    > Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 1 MAC: e8 ea 6a 27 b5 4e
    > Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
    > Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
    > Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
    > Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
    > Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
    > Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
    > Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
    > Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
    > Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
    > Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
    > Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
    > Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
    > Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
    > Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
    > Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
    > Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f
    >
    > Skipping disabled port 2
    >
    > Skipping disabled port 3
    > Core 0(lcore 1) reading queues 64-191
    >
    > However, when I issue the SIGHUP I see that the packets
    > are being put into the first queue of Pool 1 as follows:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 10 0 0 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > Since the packets are being tagged with PCP 2 they should be getting
    > mapped to 3rd queue of Pool 1, right?
    >
    > As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
    > the packets show up in the expected queue. (Note, to get it to work I had
    > to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)
    >
    > Here’s that setup:
    >
    > /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    > 0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    >
    > Network devices using kernel driver
    > ===================================
    > 0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    > 0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio
    >
    > Other Network devices
    > =====================
    > <none>
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:af:00.0 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > EAL: PCI device 0000:af:00.1 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > vmdq queue base: 0 pool base 0
    > Port 0 MAC: 00 1b 21 bf 71 24
    > Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    > vmdq queue base: 0 pool base 0
    > Port 1 MAC: 00 1b 21 bf 71 26
    > Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    >
    > Now when I send the SIGHUP, I see the packets being routed to
    > the expected queue:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 0 0 58 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > What am I missing?
    >
    > Thankyou in advance,
    > --Mike
    >
    >








^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
  2019-09-09 20:39 ` Thomas Monjalon
@ 2019-09-12 17:06   ` Mike DeVico
  2019-09-12 17:46     ` Jeff Weeks
  0 siblings, 1 reply; 6+ messages in thread
From: Mike DeVico @ 2019-09-12 17:06 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Beilei Xing, Qi Zhang, Bruce Richardson, Konstantin Ananyev,
	ferruh.yigit

Still no hits...

--Mike

On 9/9/19, 1:39 PM, "Thomas Monjalon" <thomas@monjalon.net> wrote:

    [EXTERNAL SENDER]
    
    Adding i40e maintainers and few more.
    
    07/09/2019 01:11, Mike DeVico:
    > Hello,
    >
    > I am having an issue getting the DCB feature to work with an Intel
    > X710 Quad SFP+ NIC.
    >
    > Here’s my setup:
    >
    > 1.      DPDK 18.08 built with the following I40E configs:
    >
    > CONFIG_RTE_LIBRTE_I40E_PMD=y
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
    > CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
    > CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
    > CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
    > CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
    > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8
    >
    > 2.      /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
    >
    >        Network devices using kernel driver
    >        ===================================
    >        0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    >        0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    >
    >        Other Network devices
    >        =====================
    >        <none>
    >
    > 3.      We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
    > a packet tagged with VLAN 1 and PCP 2.
    >
    > 4.      I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
    > as follows:
    >        sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    >
    >
    > The apps starts up fine and successfully probes the card as shown below:
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 0 MAC: e8 ea 6a 27 b5 4d
    > Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
    > Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
    > Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
    > Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
    > Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
    > Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
    > Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
    > Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
    > Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
    > Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
    > Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
    > Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
    > Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
    > Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
    > Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
    > Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
    > vmdq queue base: 64 pool base 1
    > Configured vmdq pool num: 16, each vmdq pool has 8 queues
    > Port 1 MAC: e8 ea 6a 27 b5 4e
    > Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
    > Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
    > Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
    > Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
    > Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
    > Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
    > Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
    > Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
    > Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
    > Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
    > Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
    > Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
    > Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
    > Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
    > Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
    > Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f
    >
    > Skipping disabled port 2
    >
    > Skipping disabled port 3
    > Core 0(lcore 1) reading queues 64-191
    >
    > However, when I issue the SIGHUP I see that the packets
    > are being put into the first queue of Pool 1 as follows:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 10 0 0 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > Since the packets are being tagged with PCP 2 they should be getting
    > mapped to 3rd queue of Pool 1, right?
    >
    > As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
    > the packets show up in the expected queue. (Note, to get it to work I had
    > to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)
    >
    > Here’s that setup:
    >
    > /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
    >
    > Network devices using DPDK-compatible driver
    > ============================================
    > 0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    > 0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
    >
    > Network devices using kernel driver
    > ===================================
    > 0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
    > 0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
    > 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
    > 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
    > 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
    > 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio
    >
    > Other Network devices
    > =====================
    > <none>
    >
    > sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
    > EAL: Detected 80 lcore(s)
    > EAL: Detected 2 NUMA nodes
    > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    > EAL: Probing VFIO support...
    > EAL: PCI device 0000:02:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:02:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1521 net_e1000_igb
    > EAL: PCI device 0000:3b:00.0 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.1 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.2 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:3b:00.3 on NUMA socket 0
    > EAL:   probe driver: 8086:1572 net_i40e
    > EAL: PCI device 0000:af:00.0 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > EAL: PCI device 0000:af:00.1 on NUMA socket 1
    > EAL:   probe driver: 8086:10fb net_ixgbe
    > vmdq queue base: 0 pool base 0
    > Port 0 MAC: 00 1b 21 bf 71 24
    > Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    > vmdq queue base: 0 pool base 0
    > Port 1 MAC: 00 1b 21 bf 71 26
    > Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
    > Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
    >
    > Now when I send the SIGHUP, I see the packets being routed to
    > the expected queue:
    >
    > Pool 0: 0 0 0 0 0 0 0 0
    > Pool 1: 0 0 58 0 0 0 0 0
    > Pool 2: 0 0 0 0 0 0 0 0
    > Pool 3: 0 0 0 0 0 0 0 0
    > Pool 4: 0 0 0 0 0 0 0 0
    > Pool 5: 0 0 0 0 0 0 0 0
    > Pool 6: 0 0 0 0 0 0 0 0
    > Pool 7: 0 0 0 0 0 0 0 0
    > Pool 8: 0 0 0 0 0 0 0 0
    > Pool 9: 0 0 0 0 0 0 0 0
    > Pool 10: 0 0 0 0 0 0 0 0
    > Pool 11: 0 0 0 0 0 0 0 0
    > Pool 12: 0 0 0 0 0 0 0 0
    > Pool 13: 0 0 0 0 0 0 0 0
    > Pool 14: 0 0 0 0 0 0 0 0
    > Pool 15: 0 0 0 0 0 0 0 0
    > Finished handling signal 1
    >
    > What am I missing?
    >
    > Thankyou in advance,
    > --Mike
    >
    >
    
    
    
    
    
    


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
  2019-09-06 23:11 Mike DeVico
@ 2019-09-09 20:39 ` Thomas Monjalon
  2019-09-12 17:06   ` Mike DeVico
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Monjalon @ 2019-09-09 20:39 UTC (permalink / raw)
  To: Mike DeVico
  Cc: dev, Beilei Xing, Qi Zhang, Bruce Richardson, Konstantin Ananyev,
	ferruh.yigit

Adding i40e maintainers and few more.

07/09/2019 01:11, Mike DeVico:
> Hello,
> 
> I am having an issue getting the DCB feature to work with an Intel
> X710 Quad SFP+ NIC.
> 
> Here’s my setup:
> 
> 1.      DPDK 18.08 built with the following I40E configs:
> 
> CONFIG_RTE_LIBRTE_I40E_PMD=y
> CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
> CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
> CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
> CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
> CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
> CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
> CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
> CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8
> 
> 2.      /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
> 
> Network devices using DPDK-compatible driver
> ============================================
> 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
> 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
> 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
> 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
> 
>        Network devices using kernel driver
>        ===================================
>        0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
>        0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
> 
>        Other Network devices
>        =====================
>        <none>
> 
> 3.      We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
> a packet tagged with VLAN 1 and PCP 2.
> 
> 4.      I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
> as follows:
>        sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
> 
> 
> The apps starts up fine and successfully probes the card as shown below:
> 
> sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
> EAL: Detected 80 lcore(s)
> EAL: Detected 2 NUMA nodes
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> EAL: Probing VFIO support...
> EAL: PCI device 0000:02:00.0 on NUMA socket 0
> EAL:   probe driver: 8086:1521 net_e1000_igb
> EAL: PCI device 0000:02:00.1 on NUMA socket 0
> EAL:   probe driver: 8086:1521 net_e1000_igb
> EAL: PCI device 0000:3b:00.0 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.1 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.2 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.3 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> vmdq queue base: 64 pool base 1
> Configured vmdq pool num: 16, each vmdq pool has 8 queues
> Port 0 MAC: e8 ea 6a 27 b5 4d
> Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
> Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
> Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
> Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
> Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
> Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
> Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
> Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
> Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
> Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
> Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
> Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
> Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
> Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
> Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
> Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
> vmdq queue base: 64 pool base 1
> Configured vmdq pool num: 16, each vmdq pool has 8 queues
> Port 1 MAC: e8 ea 6a 27 b5 4e
> Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
> Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
> Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
> Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
> Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
> Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
> Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
> Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
> Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
> Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
> Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
> Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
> Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
> Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
> Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
> Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f
> 
> Skipping disabled port 2
> 
> Skipping disabled port 3
> Core 0(lcore 1) reading queues 64-191
> 
> However, when I issue the SIGHUP I see that the packets
> are being put into the first queue of Pool 1 as follows:
> 
> Pool 0: 0 0 0 0 0 0 0 0
> Pool 1: 10 0 0 0 0 0 0 0
> Pool 2: 0 0 0 0 0 0 0 0
> Pool 3: 0 0 0 0 0 0 0 0
> Pool 4: 0 0 0 0 0 0 0 0
> Pool 5: 0 0 0 0 0 0 0 0
> Pool 6: 0 0 0 0 0 0 0 0
> Pool 7: 0 0 0 0 0 0 0 0
> Pool 8: 0 0 0 0 0 0 0 0
> Pool 9: 0 0 0 0 0 0 0 0
> Pool 10: 0 0 0 0 0 0 0 0
> Pool 11: 0 0 0 0 0 0 0 0
> Pool 12: 0 0 0 0 0 0 0 0
> Pool 13: 0 0 0 0 0 0 0 0
> Pool 14: 0 0 0 0 0 0 0 0
> Pool 15: 0 0 0 0 0 0 0 0
> Finished handling signal 1
> 
> Since the packets are being tagged with PCP 2 they should be getting
> mapped to 3rd queue of Pool 1, right?
> 
> As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
> the packets show up in the expected queue. (Note, to get it to work I had
> to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)
> 
> Here’s that setup:
> 
> /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net
> 
> Network devices using DPDK-compatible driver
> ============================================
> 0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
> 0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
> 
> Network devices using kernel driver
> ===================================
> 0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
> 0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
> 0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
> 0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
> 0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
> 0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio
> 
> Other Network devices
> =====================
> <none>
> 
> sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
> EAL: Detected 80 lcore(s)
> EAL: Detected 2 NUMA nodes
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> EAL: Probing VFIO support...
> EAL: PCI device 0000:02:00.0 on NUMA socket 0
> EAL:   probe driver: 8086:1521 net_e1000_igb
> EAL: PCI device 0000:02:00.1 on NUMA socket 0
> EAL:   probe driver: 8086:1521 net_e1000_igb
> EAL: PCI device 0000:3b:00.0 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.1 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.2 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:3b:00.3 on NUMA socket 0
> EAL:   probe driver: 8086:1572 net_i40e
> EAL: PCI device 0000:af:00.0 on NUMA socket 1
> EAL:   probe driver: 8086:10fb net_ixgbe
> EAL: PCI device 0000:af:00.1 on NUMA socket 1
> EAL:   probe driver: 8086:10fb net_ixgbe
> vmdq queue base: 0 pool base 0
> Port 0 MAC: 00 1b 21 bf 71 24
> Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
> Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
> vmdq queue base: 0 pool base 0
> Port 1 MAC: 00 1b 21 bf 71 26
> Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
> Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
> 
> Now when I send the SIGHUP, I see the packets being routed to
> the expected queue:
> 
> Pool 0: 0 0 0 0 0 0 0 0
> Pool 1: 0 0 58 0 0 0 0 0
> Pool 2: 0 0 0 0 0 0 0 0
> Pool 3: 0 0 0 0 0 0 0 0
> Pool 4: 0 0 0 0 0 0 0 0
> Pool 5: 0 0 0 0 0 0 0 0
> Pool 6: 0 0 0 0 0 0 0 0
> Pool 7: 0 0 0 0 0 0 0 0
> Pool 8: 0 0 0 0 0 0 0 0
> Pool 9: 0 0 0 0 0 0 0 0
> Pool 10: 0 0 0 0 0 0 0 0
> Pool 11: 0 0 0 0 0 0 0 0
> Pool 12: 0 0 0 0 0 0 0 0
> Pool 13: 0 0 0 0 0 0 0 0
> Pool 14: 0 0 0 0 0 0 0 0
> Pool 15: 0 0 0 0 0 0 0 0
> Finished handling signal 1
> 
> What am I missing?
> 
> Thankyou in advance,
> --Mike
> 
> 






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC
@ 2019-09-06 23:11 Mike DeVico
  2019-09-09 20:39 ` Thomas Monjalon
  0 siblings, 1 reply; 6+ messages in thread
From: Mike DeVico @ 2019-09-06 23:11 UTC (permalink / raw)
  To: dev

Hello,

I am having an issue getting the DCB feature to work with an Intel
X710 Quad SFP+ NIC.

Here’s my setup:

1.      DPDK 18.08 built with the following I40E configs:

CONFIG_RTE_LIBRTE_I40E_PMD=y
CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=8

2.      /opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net

Network devices using DPDK-compatible driver
============================================
0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e
0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=igb_uio unused=i40e

       Network devices using kernel driver
       ===================================
       0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
       0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*

       Other Network devices
       =====================
       <none>

3.      We have a custom FPGA board connected to port 1 of the X710 NIC that’s broadcasting
a packet tagged with VLAN 1 and PCP 2.

4.      I use the vmdq_dcb example app and configure the card with 16 pools/8 queue each
as follows:
       sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3


The apps starts up fine and successfully probes the card as shown below:

sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
EAL: Detected 80 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:02:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:02:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:3b:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.2 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.3 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
vmdq queue base: 64 pool base 1
Configured vmdq pool num: 16, each vmdq pool has 8 queues
Port 0 MAC: e8 ea 6a 27 b5 4d
Port 0 vmdq pool 0 set mac 52:54:00:12:00:00
Port 0 vmdq pool 1 set mac 52:54:00:12:00:01
Port 0 vmdq pool 2 set mac 52:54:00:12:00:02
Port 0 vmdq pool 3 set mac 52:54:00:12:00:03
Port 0 vmdq pool 4 set mac 52:54:00:12:00:04
Port 0 vmdq pool 5 set mac 52:54:00:12:00:05
Port 0 vmdq pool 6 set mac 52:54:00:12:00:06
Port 0 vmdq pool 7 set mac 52:54:00:12:00:07
Port 0 vmdq pool 8 set mac 52:54:00:12:00:08
Port 0 vmdq pool 9 set mac 52:54:00:12:00:09
Port 0 vmdq pool 10 set mac 52:54:00:12:00:0a
Port 0 vmdq pool 11 set mac 52:54:00:12:00:0b
Port 0 vmdq pool 12 set mac 52:54:00:12:00:0c
Port 0 vmdq pool 13 set mac 52:54:00:12:00:0d
Port 0 vmdq pool 14 set mac 52:54:00:12:00:0e
Port 0 vmdq pool 15 set mac 52:54:00:12:00:0f
vmdq queue base: 64 pool base 1
Configured vmdq pool num: 16, each vmdq pool has 8 queues
Port 1 MAC: e8 ea 6a 27 b5 4e
Port 1 vmdq pool 0 set mac 52:54:00:12:01:00
Port 1 vmdq pool 1 set mac 52:54:00:12:01:01
Port 1 vmdq pool 2 set mac 52:54:00:12:01:02
Port 1 vmdq pool 3 set mac 52:54:00:12:01:03
Port 1 vmdq pool 4 set mac 52:54:00:12:01:04
Port 1 vmdq pool 5 set mac 52:54:00:12:01:05
Port 1 vmdq pool 6 set mac 52:54:00:12:01:06
Port 1 vmdq pool 7 set mac 52:54:00:12:01:07
Port 1 vmdq pool 8 set mac 52:54:00:12:01:08
Port 1 vmdq pool 9 set mac 52:54:00:12:01:09
Port 1 vmdq pool 10 set mac 52:54:00:12:01:0a
Port 1 vmdq pool 11 set mac 52:54:00:12:01:0b
Port 1 vmdq pool 12 set mac 52:54:00:12:01:0c
Port 1 vmdq pool 13 set mac 52:54:00:12:01:0d
Port 1 vmdq pool 14 set mac 52:54:00:12:01:0e
Port 1 vmdq pool 15 set mac 52:54:00:12:01:0f

Skipping disabled port 2

Skipping disabled port 3
Core 0(lcore 1) reading queues 64-191

However, when I issue the SIGHUP I see that the packets
are being put into the first queue of Pool 1 as follows:

Pool 0: 0 0 0 0 0 0 0 0
Pool 1: 10 0 0 0 0 0 0 0
Pool 2: 0 0 0 0 0 0 0 0
Pool 3: 0 0 0 0 0 0 0 0
Pool 4: 0 0 0 0 0 0 0 0
Pool 5: 0 0 0 0 0 0 0 0
Pool 6: 0 0 0 0 0 0 0 0
Pool 7: 0 0 0 0 0 0 0 0
Pool 8: 0 0 0 0 0 0 0 0
Pool 9: 0 0 0 0 0 0 0 0
Pool 10: 0 0 0 0 0 0 0 0
Pool 11: 0 0 0 0 0 0 0 0
Pool 12: 0 0 0 0 0 0 0 0
Pool 13: 0 0 0 0 0 0 0 0
Pool 14: 0 0 0 0 0 0 0 0
Pool 15: 0 0 0 0 0 0 0 0
Finished handling signal 1

Since the packets are being tagged with PCP 2 they should be getting
mapped to 3rd queue of Pool 1, right?

As a sanity check, I tried the same test using an 82599ES 2 port 10GB NIC and
the packets show up in the expected queue. (Note, to get it to work I had
to modify the vmdq_dcb app to set the vmdq pool MACs to all FF’s)

Here’s that setup:

/opt/dpdk-18.08/usertools/dpdk-devbind.py --status-dev net

Network devices using DPDK-compatible driver
============================================
0000:af:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe
0000:af:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=ixgbe

Network devices using kernel driver
===================================
0000:02:00.0 'I350 Gigabit Network Connection 1521' if=enp2s0f0 drv=igb unused=igb_uio *Active*
0000:02:00.1 'I350 Gigabit Network Connection 1521' if=enp2s0f1 drv=igb unused=igb_uio *Active*
0000:3b:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f0 drv=i40e unused=igb_uio
0000:3b:00.1 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f1 drv=i40e unused=igb_uio
0000:3b:00.2 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f2 drv=i40e unused=igb_uio
0000:3b:00.3 'Ethernet Controller X710 for 10GbE SFP+ 1572' if=enp59s0f3 drv=i40e unused=igb_uio

Other Network devices
=====================
<none>

sudo ./vmdq_dcb_app -l 1 -- -p3 --nb-pools 16 --nb-tcs 8 -p 3
EAL: Detected 80 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:02:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:02:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:3b:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.2 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:3b:00.3 on NUMA socket 0
EAL:   probe driver: 8086:1572 net_i40e
EAL: PCI device 0000:af:00.0 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:af:00.1 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
vmdq queue base: 0 pool base 0
Port 0 MAC: 00 1b 21 bf 71 24
Port 0 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
Port 0 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff
vmdq queue base: 0 pool base 0
Port 1 MAC: 00 1b 21 bf 71 26
Port 1 vmdq pool 0 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 1 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 2 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 3 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 4 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 5 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 6 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 7 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 8 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 9 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 10 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 11 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 12 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 13 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 14 set mac ff:ff:ff:ff:ff:ff
Port 1 vmdq pool 15 set mac ff:ff:ff:ff:ff:ff

Now when I send the SIGHUP, I see the packets being routed to
the expected queue:

Pool 0: 0 0 0 0 0 0 0 0
Pool 1: 0 0 58 0 0 0 0 0
Pool 2: 0 0 0 0 0 0 0 0
Pool 3: 0 0 0 0 0 0 0 0
Pool 4: 0 0 0 0 0 0 0 0
Pool 5: 0 0 0 0 0 0 0 0
Pool 6: 0 0 0 0 0 0 0 0
Pool 7: 0 0 0 0 0 0 0 0
Pool 8: 0 0 0 0 0 0 0 0
Pool 9: 0 0 0 0 0 0 0 0
Pool 10: 0 0 0 0 0 0 0 0
Pool 11: 0 0 0 0 0 0 0 0
Pool 12: 0 0 0 0 0 0 0 0
Pool 13: 0 0 0 0 0 0 0 0
Pool 14: 0 0 0 0 0 0 0 0
Pool 15: 0 0 0 0 0 0 0 0
Finished handling signal 1

What am I missing?

Thankyou in advance,
--Mike


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-14 17:53 [dpdk-dev] Issue with DCB with X710 Quad 10Gb NIC Mike DeVico
2019-09-06 23:11 Mike DeVico
2019-09-09 20:39 ` Thomas Monjalon
2019-09-12 17:06   ` Mike DeVico
2019-09-12 17:46     ` Jeff Weeks
2019-09-12 18:10       ` Mike DeVico

DPDK-dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \
		dev@dpdk.org dpdk-dev@archiver.kernel.org
	public-inbox-index dpdk-dev


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/ public-inbox