Skip to content

libtrace might drop packets when filtering a NIC bound to DPDK #213

@Crazycuo

Description

@Crazycuo

Hi,

we are testing libtrace performance compared to dpdk and non-dpdk.

Here are our steps:

  1. we use tcpreplay to replay a pcap in which all pakcets' src or dst port is 8119 on one computer(called A);
  2. on another computer(called B), we write a c++ program which use libtrace to receive and filter "vlan and port 8119" pakcets. we print how many packets we received;
  3. meanwhile, we use dpdk rte_eth_stats_get() to check if dpdk drop packets;
  4. the two computers are directed connected. The two nics' name are p2p2;
  5. we replay 83433 packets on computer A at the rate 100Mbps

so, on B computer, we test how many pakcets we recevie by bounding the p2p2 nic to dpdk or non-dpdk.
here are the result:
p2p2 on non-dpdk mode : receives 83433(no drop).
p2p2 on dpdk mode: only receives 80779. no matter how many times i re-test, i alway get 80779.

meanwhile, i use dpdk rte_eth_stats_get(), i got below:
Port 0 statistics:
RX packets: 383433
TX packets: 0
RX bytes: 32618600
TX bytes: 0
RX missed: 0
RX errors: 0
TX errors: 0
RX no buffer: 0

It looks like dpdk doesn't drop packets. (Rx missed and Rx no buffer is 0). so, it looks like libtrace is dropping pakcets?

Any ideas are appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions