V2:
- Check the number of mbuf segments in mbuf_to_pkt() (Zoltan Kiss)
- Copy DPDK RSS hash to ODP packet header in mbuf_to_pkt() (Zoltan Kiss)
- Compare packet length to MTU value in pkt_to_mbuf() and drop too long packets

This patch set implements new DPDK pktio type, which operates in the same manner
as the existing ODP interface types. DPDK mbuf packets are copied during
receive/send to maintain compatibility with the linux-generic pktio.

The current unoptimized DPDK pktio implementation achieves forwarding rates
(odp_l2fwd), which are comparable to netmap pktio and scale better with larger
thread counts. Some initial benchmark results below
(odp_l2fwd  4 x 10 Gbps - 64B, Intel Xeon E5-2697v3).

                                Threads
        1       2       4       6       8       10      12
DPDK    6.7     12      25.3    37.2    47.6    47.3    46.8    MPPS
Netmap  6.1     12.6    25.8    32.4    38.9    38.6    38.4


From 8 threads and onwards the throughput is limited by the NICs (Intel 82599).

Build and usage information can be found from DEPENDENCIES. The DPDK
initialization code is copied from the odp-dpdk branch.

Matias Elo (11):
  linux-generic: pktio: add DPDK pktio build support
  linux-generic: pktio: initial DPDK pktio implementation
  linux-generic: dpdk: add get/set functions for mtu, promisc mode, and
    capability
  linux-generic: dpdk: add rx/tx locking
  linux-generic: dpdk: add odp_pktio_link_status()
  linux-generic: dpdk: add dpdk_setup_port()
  linux-generic: dpdk: add functions for fetching packet input/output
    queues
  linux-generic: dpdk: add odp_pktio_input_queues_config()
  linux-generic: dpdk: add odp_pktio_output_queues_config()
  linux-generic: dpdk: handle ixgbe_pmd minimum burst size
  linux-generic: dpdk: close resources in odp_pktio_close()

 DEPENDENCIES                                       |  54 ++
 platform/linux-generic/Makefile.am                 |   2 +
 platform/linux-generic/include/odp_internal.h      |   5 +
 platform/linux-generic/include/odp_packet_dpdk.h   |  69 ++
 .../linux-generic/include/odp_packet_io_internal.h |   3 +
 platform/linux-generic/m4/configure.m4             |   1 +
 platform/linux-generic/m4/odp_dpdk.m4              |  43 ++
 platform/linux-generic/odp_init.c                  |  12 +
 platform/linux-generic/pktio/dpdk.c                | 855 +++++++++++++++++++++
 platform/linux-generic/pktio/io_ops.c              |   3 +
 10 files changed, 1047 insertions(+)
 create mode 100644 platform/linux-generic/include/odp_packet_dpdk.h
 create mode 100644 platform/linux-generic/m4/odp_dpdk.m4
 create mode 100644 platform/linux-generic/pktio/dpdk.c

-- 
1.9.1

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to