[dpdk-dev] [PATCH 0/7] cxgbe: add support to offload flows via rte_flow

Rahul Lakkireddy rahul.lakkireddy at chelsio.com
Fri Jun 8 19:58:10 CEST 2018


This series add basic support to offload flows to Chelsio T5/T6 NICs
via rte_flow API. Chelsio NICs can support wildcard (maskfull) filters
and exact (maskless) filters. Filters can be created in two regions
available on Chelsio NICs. The smaller LE-TCAM region can support both
maskfull and maskless filters; whereas, the larger HASH region can
support only maskless filters. This series adds support for LE-TCAM
region. Support for HASH region will be added in subsequent series.

This series adds support for:
<match item>: IPv4, IPv6, TCP, and UDP.
<action>: Drop, Queue, and Count.

Support for more match items and actions will be added in subsequent
series.

Patch 1 queries firmware for available filtering resources in the
underlying device and adds table to manage these resources.

Patch 2 introduces rte_flow skeleton and implementes validate
operation.

Patch 3 exports control queue needed for communicating filter
create/delete requests with firmware.

Patch 4 adds firmware API to create filter work requests for
creating/deleting filters and implements flow create operation.

Patch 5 adds flow destroy operation.

Patch 6 adds flow query operation to get filter hit and byte counts.

Patch 7 adds flow flush operation to delete all filters under specified
port.

Thanks,
Rahul


Shagun Agrawal (7):
  net/cxgbe: query firmware for filter resources
  net/cxgbe: parse and validate flows
  net/cxgbe: add control queue to communicate filter requests
  net/cxgbe: implement flow create operation
  net/cxgbe: implement flow destroy operation
  net/cxgbe: implement flow query operation
  net/cxgbe: implement flow flush operation

 doc/guides/nics/cxgbe.rst               |   1 +
 doc/guides/nics/features/cxgbe.ini      |   1 +
 doc/guides/rel_notes/release_18_08.rst  |   5 +
 drivers/net/cxgbe/Makefile              |   2 +
 drivers/net/cxgbe/base/adapter.h        |  63 +++
 drivers/net/cxgbe/base/common.h         |  17 +
 drivers/net/cxgbe/base/t4_hw.c          | 234 +++++++++++
 drivers/net/cxgbe/base/t4_hw.h          |   4 +
 drivers/net/cxgbe/base/t4_msg.h         |  22 +
 drivers/net/cxgbe/base/t4_regs.h        |  16 +
 drivers/net/cxgbe/base/t4fw_interface.h | 221 ++++++++++
 drivers/net/cxgbe/cxgbe.h               |   3 +
 drivers/net/cxgbe/cxgbe_ethdev.c        |   5 +
 drivers/net/cxgbe/cxgbe_filter.c        | 609 +++++++++++++++++++++++++++
 drivers/net/cxgbe/cxgbe_filter.h        | 226 ++++++++++
 drivers/net/cxgbe/cxgbe_flow.c          | 702 ++++++++++++++++++++++++++++++++
 drivers/net/cxgbe/cxgbe_flow.h          |  42 ++
 drivers/net/cxgbe/cxgbe_main.c          | 184 +++++++++
 drivers/net/cxgbe/cxgbe_ofld.h          |  27 ++
 drivers/net/cxgbe/sge.c                 | 197 ++++++++-
 20 files changed, 2580 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/cxgbe/cxgbe_filter.c
 create mode 100644 drivers/net/cxgbe/cxgbe_filter.h
 create mode 100644 drivers/net/cxgbe/cxgbe_flow.c
 create mode 100644 drivers/net/cxgbe/cxgbe_flow.h
 create mode 100644 drivers/net/cxgbe/cxgbe_ofld.h

-- 
2.14.1



More information about the dev mailing list