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

Message ID cover.1528469677.git.rahul.lakkireddy@chelsio.com (mailing list archive)
Headers
Series cxgbe: add support to offload flows via rte_flow |

Message

Rahul Lakkireddy June 8, 2018, 5:58 p.m. UTC
  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
  

Comments

Ferruh Yigit June 13, 2018, 4:42 p.m. UTC | #1
On 6/8/2018 6:58 PM, Rahul Lakkireddy wrote:
> 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

Series applied to dpdk-next-net/master, thanks.

(I have asked a question about copyright start year, based on answer an update
may require, which can be squashed into this set.)