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   |  68 ++
 .../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                | 826 +++++++++++++++++++++
 platform/linux-generic/pktio/io_ops.c              |   3 +
 10 files changed, 1017 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