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