The code has not been moved to master branch as the updated  MQ pktio API is
still under development. 

V4:
- Renamed define ODP_DPDK to ODP_PKTIO_DPDK (Maxim Uvarov)
- Separated pktio init() into init_global() and init_local() and used them
  for DPDK initialization (Maxim Uvarov)
- Reduced the amount of DPDK debug messages
- Rebased ODP API changes
- Fixed ODP IPC name clash with DPDK

V3:
- Fixed MTU check to include ethernet header size
- Rebased pktio API changes

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 (13):
  linux-generic: pktio: add separate functions for global and local init
  linux-generic: ipc: fix name clash with dpdk
  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_packet_dpdk.h   |  69 ++
 .../linux-generic/include/odp_packet_io_internal.h |   6 +-
 .../include/odp_packet_io_ring_internal.h          |   4 +-
 platform/linux-generic/m4/configure.m4             |   1 +
 platform/linux-generic/m4/odp_dpdk.m4              |  43 +
 platform/linux-generic/odp_packet_io.c             |  17 +-
 platform/linux-generic/pktio/dpdk.c                | 870 +++++++++++++++++++++
 platform/linux-generic/pktio/io_ops.c              |   3 +
 platform/linux-generic/pktio/ipc.c                 |   3 +-
 platform/linux-generic/pktio/loop.c                |   3 +-
 platform/linux-generic/pktio/netmap.c              |   3 +-
 platform/linux-generic/pktio/pcap.c                |   2 +
 platform/linux-generic/pktio/socket.c              |   3 +-
 platform/linux-generic/pktio/socket_mmap.c         |   3 +-
 platform/linux-generic/pktio/tap.c                 |   3 +-
 17 files changed, 1078 insertions(+), 11 deletions(-)
 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
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to