Add support for dedicated DPDK firmware variant which has equal stride super-buffer Rx mode. The Rx mode uses bucket mempool manager which supports allocation of contiguos block of mbufs.
It allows to achieve higher packet rate on Rx than traditional single packet Rx mode. Also the Rx mode supports rte_flow MARK and FLAG actions. It should be applied on top of [1], [2], [3], [4], [5]. [1] https://dpdk.org/ml/archives/dev/2018-April/098035.html [2] https://dpdk.org/ml/archives/dev/2018-April/098047.html [3] https://dpdk.org/ml/archives/dev/2018-April/095872.html [4] https://dpdk.org/ml/archives/dev/2018-April/097354.html [5] https://dpdk.org/ml/archives/dev/2018-April/097365.html There are a number of known checkpatches.sh warnings in base driver due to coding style difference and in the PMD itself due to postive errno used inside the driver. Andrew Rybchenko (18): net/sfc/base: update autogenerated MCDI and TLV headers net/sfc/base: make RxQ type data an union net/sfc/base: detect equal stride super-buffer support net/sfc/base: support equal stride super-buffer Rx mode net/sfc/base: add equal stride super-buffer prefix layout net/sfc: factor out function to push Rx doorbell net/sfc: prepare EF10 Rx event parser to be reused net/sfc: move EF10 Rx event parser to shared header net/sfc: conditionally compile support for tunnel packets net/sfc: allow one Rx queue entry carry many packet buffers net/sfc: allow to take mbuf pool into account when sizing net/sfc: support equal stride super-buffer Rx mode net/sfc: support callback to check if mempool is supported net/sfc: check mempool when equal stride super-buffer used net/sfc: support DPDK firmware variant net/sfc: add Rx descriptor wait timeout net/sfc: support flow marks in equal stride super-buffer Rx doc: advertise equal stride super-buffer Rx mode support in net/sfc Roman Zhukov (5): net/sfc/base: get actions MARK and FLAG support net/sfc/base: support MARK and FLAG actions in filters net/sfc/base: get max supported value for action MARK net/sfc: make processing of flow rule actions more uniform net/sfc: support MARK and FLAG actions in flow API doc/guides/nics/sfc_efx.rst | 42 ++- doc/guides/rel_notes/release_18_05.rst | 2 + drivers/net/sfc/Makefile | 1 + drivers/net/sfc/base/ef10_ev.c | 30 +- drivers/net/sfc/base/ef10_filter.c | 31 +- drivers/net/sfc/base/ef10_impl.h | 14 +- drivers/net/sfc/base/ef10_nic.c | 27 +- drivers/net/sfc/base/ef10_rx.c | 84 ++++- drivers/net/sfc/base/ef10_tlv_layout.h | 22 ++ drivers/net/sfc/base/efx.h | 44 ++- drivers/net/sfc/base/efx_check.h | 7 + drivers/net/sfc/base/efx_filter.c | 21 ++ drivers/net/sfc/base/efx_impl.h | 25 +- drivers/net/sfc/base/efx_regs_ef10.h | 15 + drivers/net/sfc/base/efx_regs_mcdi.h | 646 +++++++++++++++++++++++++++++++- drivers/net/sfc/base/efx_rx.c | 70 +++- drivers/net/sfc/base/siena_nic.c | 5 + drivers/net/sfc/efsys.h | 2 + drivers/net/sfc/meson.build | 1 + drivers/net/sfc/sfc.c | 35 ++ drivers/net/sfc/sfc.h | 2 + drivers/net/sfc/sfc_dp.h | 3 +- drivers/net/sfc/sfc_dp_rx.h | 27 +- drivers/net/sfc/sfc_ef10.h | 34 ++ drivers/net/sfc/sfc_ef10_essb_rx.c | 666 +++++++++++++++++++++++++++++++++ drivers/net/sfc/sfc_ef10_rx.c | 185 +-------- drivers/net/sfc/sfc_ef10_rx_ev.h | 169 +++++++++ drivers/net/sfc/sfc_ethdev.c | 23 ++ drivers/net/sfc/sfc_ev.c | 34 ++ drivers/net/sfc/sfc_flow.c | 119 +++++- drivers/net/sfc/sfc_kvargs.c | 1 + drivers/net/sfc/sfc_kvargs.h | 10 +- drivers/net/sfc/sfc_rx.c | 51 ++- drivers/net/sfc/sfc_rx.h | 1 + drivers/net/sfc/sfc_tweak.h | 8 + 35 files changed, 2204 insertions(+), 253 deletions(-) create mode 100644 drivers/net/sfc/sfc_ef10_essb_rx.c create mode 100644 drivers/net/sfc/sfc_ef10_rx_ev.h -- 2.7.4