[dpdk-dev] Help: How to read packet statistics from device registers via dpdk PMD?

Jay Rolette rolette at infinite.io
Thu Jul 7 14:19:31 CEST 2016


On Thu, Jul 7, 2016 at 12:52 AM, Bill Bonaparte <programme110 at gmail.com>
wrote:

> I am so happy to get your reply.
> My dpdk version is 2.1,and the OS is centOS 7。
> the following is the output from "dpdk_nic_bind.py --status":
>
> [root at APV35 ~]# dpdk_nic_bind.py --status
>
> Network devices using DPDK-compatible driver
> ============================================
> 0000:04:00.0 'VMXNET3 Ethernet Controller' drv=igb_uio unused=
> 0000:0b:00.0 'VMXNET3 Ethernet Controller' drv=igb_uio unused=
> 0000:13:00.0 'VMXNET3 Ethernet Controller' drv=igb_uio unused=
> 0000:1b:00.0 'VMXNET3 Ethernet Controller' drv=igb_uio unused=
>
> Network devices using kernel driver
> ===================================
> 0000:03:00.0 'VMXNET3 Ethernet Controller' if=ens160 drv=vmxnet3
> unused=igb_uio *Active*
>
> Other network devices
> =====================
> <none>
>

That's a different virtual NIC than what I'm running in my VMs, but given
your app isn't working directly on the hardware, I doubt that's the issue.
In case it helps along the way, here's what I see in my VM:

$ dpdk_nic_bind.py --status

Network devices using DPDK-compatible driver
============================================
0000:02:02.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio
unused=
0000:02:03.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio
unused=
0000:02:04.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio
unused=
0000:02:05.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio
unused=

Network devices using kernel driver
===================================
0000:02:01.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth0
drv=e1000 unused=igb_uio *Active*

Other network devices
=====================
<none>


> I tried it on the physical mathine, it still does not work. the OS is
> centOS 7, too.
> [root at AN ~]# dpdk_nic_bind.py --status
>
> Network devices using DPDK-compatible driver
> ============================================
> 0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio
> unused=
> 0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio
> unused=
> 0000:03:00.0 'I350 Gigabit Backplane Connection' drv=igb_uio unused=
> 0000:03:00.1 'I350 Gigabit Backplane Connection' drv=igb_uio unused=
> 0000:03:00.2 'I350 Gigabit Backplane Connection' drv=igb_uio unused=
> 0000:03:00.3 'I350 Gigabit Backplane Connection' drv=igb_uio unused=
> 0000:07:00.0 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:07:00.1 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:07:00.2 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:07:00.3 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:09:00.0 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:09:00.1 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:09:00.2 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:09:00.3 'I350 Gigabit Network Connection' drv=igb_uio unused=
> 0000:0c:00.0 'Device 0011' drv=igb_uio unused=
> 0000:0f:00.1 'I350 Gigabit Network Connection' drv=igb_uio unused=
>
> Network devices using kernel driver
> ===================================
> 0000:0f:00.0 'I350 Gigabit Network Connection' if=enp15s0f0 drv=igb
> unused=igb_uio *Active*
>
> Other network devices
> =====================
> <none>
>

With it not working on hardware and you having devices successfully bound
to DPDK, maybe it's a problem in your app. Have you tried running any of
the sample apps that use rte_eth_stats_get() and see if it works there?

Jay


> On Tue, Jul 5, 2016 at 8:03 PM, Jay Rolette <rolette at infinite.io> wrote:
>
>>
>> On Tue, Jul 5, 2016 at 2:35 AM, Bill Bonaparte <programme110 at gmail.com>
>> wrote:
>>
>>> Hi:
>>> I am a new fish, I have tried my best to find answer about my question on
>>> web, but I failed. so
>>> I come here to ask for your help. the below is my question:
>>>
>>> I found that dpdk provides a api rte_eth_stats_get to read packet
>>> statistics about the interface, includes total input/output
>>> unicast/multicast/brodcast packets/bytes. but the api does not work on
>>> VMxnet interface (which is a virtual interface in VMware machine).
>>>
>>
>> Probably something in your app or environment rather than in the API
>> itself. We run rte_eth_stats_get() against interfaces in VMware Fusion,
>> VirtualBox and real hardware and they all work generally.
>>
>> Need some info before anyone can help you much:
>>
>> * What version of DPDK are you running?
>> * What OS are you running on?
>> * Output from "dpdk_nic_bind.py --status"?
>>
>> Jay
>>
>
>


More information about the dev mailing list