From patchwork Fri Jun 8 17:58:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rahul Lakkireddy X-Patchwork-Id: 40925 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 745771CDFA; Fri, 8 Jun 2018 19:59:09 +0200 (CEST) Received: from stargate.chelsio.com (stargate.chelsio.com [12.32.117.8]) by dpdk.org (Postfix) with ESMTP id A47B91CDF3 for ; Fri, 8 Jun 2018 19:59:08 +0200 (CEST) Received: from localhost (scalar.blr.asicdesigners.com [10.193.185.94]) by stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w58Hx3vB017285; Fri, 8 Jun 2018 10:59:05 -0700 From: Rahul Lakkireddy To: dev@dpdk.org Cc: shaguna@chelsio.com, kumaras@chelsio.com, indranil@chelsio.com, nirranjan@chelsio.com Date: Fri, 8 Jun 2018 23:28:10 +0530 Message-Id: X-Mailer: git-send-email 2.5.3 Subject: [dpdk-dev] [PATCH 0/7] cxgbe: add support to offload flows via rte_flow X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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: : IPv4, IPv6, TCP, and UDP. : 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