Dear Kyle Larose and Sy Jong Choi. Thank you very much for your precious advices. I found the ierror counting function. It is ixgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) in ~/dpdk/lib/librte_pmd_ixgbe/ixgbe_ethdev.c. The rx-errors are due to IXGBE_MPC errors at registers in PCIe NIC. IXGBE_MPC register is Missed Packets Count[0-7]. This counter counts the number of missed packets per packet buffer. Packets are missed when the receive FIFO has insufficient space to store the incoming packet. This could be caused because of too few buffers allocated, or because there is insufficient bandwidth on the IO bus. I don't know why this happens even though very low traffic load such as 5%. Thank you very much. Sincerely Yours, Ick-Sung Choi. -----Original Message----- From: "Choi, Sy Jong"<sy.jong.choi@intel.com> To: "최익성"<pnk003@naver.com>; "Kyle Larose"<eomereadig@gmail.com>; Cc: "dev@dpdk.org"<dev@dpdk.org>; Sent: 2015-10-21 (수) 11:07:17 Subject: RE: [dpdk-dev] When I run test-pmd, most of received packets(loop-backed packet) have RX-error. Hi Ick-Sung, You will need to use igb_uio for DPDK. That is the Poll mode driver. ixgbe is for the kernel, and do not support DPDK. Regards, Choi, Sy Jong Platform Application Engineer -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of ??? Sent: Wednesday, October 21, 2015 10:04 AM To: Kyle Larose Cc: dev@dpdk.org Subject: Re: [dpdk-dev] When I run test-pmd, most of received packets(loop-backed packet) have RX-error. 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"<eomereadig@gmail.com> To: "최익성"<pnk003@naver.com>; Cc: <dev@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@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. &槅bbץryӜmu8m5jrjybX\d^qyik^"ץrx{^&ݹ睵זvd_"13t>;?yWׯvdyݵ9v^u86@I4^qyghM)zW(]6}ۦ~k&tץrDHSm5N㍴MKur+s