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

Bill Bonaparte programme110 at gmail.com
Tue Jul 12 14:00:39 CEST 2016


Hi, Jay:
      My apologies for taking me to get back to you.
      I tried the sample apps on my environment follow your advice, and I
found it works well.
      so I started to compare  the code related to the api between my app
and the sample app, I didn't find any significative difference. I am very
confused.
      .....
      finnaly, with the help of my colleague, I tracked down the problem.
It's a confused character of my platform that make the packets miss  the
interface which I monitored.
      so I can access the IP of the interface, but the flow don't pass
through the interface.
      after ajusting the topology, the api works well.

     anyhow, thanks to your advice, I tracked down the problem.
     so again, I appreciate your time in talking with me about this api.

On Thu, Jul 7, 2016 at 8:19 PM, Jay Rolette <rolette at infinite.io> wrote:

>
> 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