Dear Kyle Larose.
Thank you very much for your precious advice and answer.
I will try your suggestions.
I have a question. Can I use igb_uio driver in DPDK?
When I stalled the network device driver in DPDK.
I used the following commands and I see that the 10GbE devices have igb_uio
device driver.
sudo /sbin/modprobe uio
sudo /sbin/insmod $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko
Network devices using DPDK-compatible driver
============================================
0000:02:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio
unused=
0000:02:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio
unused=
Network devices using kernel driver
===================================
0000:00:19.0 'Ethernet Connection I217-V' if=eth0 drv=e1000e unused=igb_uio
*Active*
0000:04:00.0 '82572EI Gigabit Ethernet Controller (Copper)' if=eth3 drv=e1000e
unused=igb_uio
The network device driver seems to be igb_uio.
If I bind the network device to ixgbe using the following commands, the network
device seems to be connected to kernel, not the DPDK.
sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b ixgbe 0000:02:00.0 &&
echo "OK"
sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b ixgbe 0000:02:00.1 &&
echo "OK"
Can I use ixgbe driver for DPDK?
If I can, would you tell me how can I specify it?
Thank you very much for your precious advices.
Sincerely Yours,
Ick-Sung Choi.
-----Original Message-----
From: "Kyle Larose"<[email protected]>
To: "???"<pnk003 at naver.com>;
Cc: <dev at dpdk.org>;
Sent: 2015-10-20 (?) 22:50:43
Subject: Re: [dpdk-dev] When I run test-pmd, most of received
packets(loop-backed packet) have RX-error.
On Tue, Oct 20, 2015 at 2:12 AM, ??? <pnk003 at naver.com> wrote:
> Dear DPDK experts.
>
> Thank you very much for your best great efforts and precious answers.
>
>
> When I run test-pmd, most of received packets are RX-error.
>
> The computer has two 10GbE ports Intel NIC and the two ports are
loop-backed each other.
>
> The result shows that the loop-backed packets have rx-error occured from
ethernet device port.
>
> The rx-error ( ierrors) seems to be counted by rte_eth_stats_get(uint8_t
port_id, struct rte_eth_stats *stats) function in
~/dpdk/lib/librte_ether/rte_ethdev.c
>
> Then this rte_eth_stats_get() function calls
(*dev->dev_ops->stats_get)(dev, stats);
>
> However, I can't find and trace the function
(*dev->dev_ops->stats_get)().
>
> Would you tell me how can I find the function?
>
> Would you tell me why this receive errors occurs for what reasons?
>
>
> I tested it in two xeon computers with different OS.
>
> Fedora 22 (linux kernel version 4.2.3-200.fc22.x86_64, DPDK 2.1.0).
> Ubuntu 14.04.1 LTS(linux kernel version : 3.13.0-34-generic, DPDK
2.1.0).
>
> Both experiments show the same result with rx-errors.
>
> I will really appreciate if I can be given any advice and answers.
>
> Thank you very much.
>
> Sincerely Yours,
>
> Ick-Sung Choi.
>
Hello,
I don't know the reason for your errors, but I can probably help with
the function.
I usually do this in two ways. One way is to identify the driver, and
then look for instances of "struct eth_dev_ops" in it. For example, if
you have an ixgbe/82599/etc, the driver is the ixgbe. Searching in the
directory for it, you find this:
http://dpdk.org/browse/dpdk/tree/drivers/net/ixgbe/ixgbe_ethdev.c#n389
Another alternative is to attach to your running process with gdb, and
print the dev struct. gdb will typically map the pointers contained
therein to their symbolic names.