From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from stargate3.asicdesigners.com (stargate.chelsio.com [12.32.117.8]) by dpdk.org (Postfix) with ESMTP id 0635E56B7 for ; Mon, 22 Feb 2016 11:40:09 +0100 (CET) Received: from localhost (scalar.blr.asicdesigners.com [10.193.185.94]) by stargate3.asicdesigners.com (8.13.8/8.13.8) with ESMTP id u1MAe6r6015628; Mon, 22 Feb 2016 02:40:07 -0800 Date: Mon, 22 Feb 2016 16:09:51 +0530 From: Rahul Lakkireddy To: dev@dpdk.org Message-ID: <20160222103949.GA15637@chelsio.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Cc: Kumar Sanghvi , Nirranjan Kirubaharan Subject: Re: [dpdk-dev] [PATCH 00/10] cxgbe: Add flow director support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Feb 2016 10:40:10 -0000 Hi All, On Wednesday, February 02/03/16, 2016 at 14:02:21 +0530, Rahul Lakkireddy wrote: > This series of patches extend the flow director filter and add support > for Chelsio T5 hardware filtering capabilities. > > Chelsio T5 supports carrying out filtering in hardware which supports 3 > actions to carry out on a packet which hit a filter viz. > > 1. Action Pass - Packets hitting a filter rule can be directed to a > particular RXQ. > > 2. Action Drop - Packets hitting a filter rule are dropped in h/w. > > 3. Action Switch - Packets hitting a filter rule can be switched in h/w > from one port to another, without involvement of host. Also, the > action Switch also supports rewrite of src-mac/dst-mac headers as > well as rewrite of vlan headers. It also supports rewrite of IP > headers and thereby, supports NAT (Network Address Translation) > in h/w. > > Also, each filter rule can optionally support specifying a mask value > i.e. it's possible to create a filter rule for an entire subnet of IP > addresses or a range of tcp/udp ports, etc. > > Patch 1 does the following: > - Adds a new flow RTE_ETH_FLOW_RAW_PKT to allow specifying a generic > flow. > - Adds an additional generic array to rte_eth_fdir_flow to allow > specifying generic flow input. > - Adds an additional mask for the flow input to allow range of values > to be matched in the flow input. > - Adds a new behavior 'switch'. > - Adds a generic array to hold behavior arguments that can be passed > when a particular behavior is taken. For ex: in case of action > 'switch', pass additional 4-tuple to allow rewriting src/dst ip and > port addresses to support NAT'ing. > > RFC series of patches and discussion involving these enhancements to the > flow director are available at [1]. > > Patch 2 adds command line example app to test cxgbe flow director. Also > add documentation for the example app. > > Patch 3 updates the cxgbe base to add support for packet filtering. > > Patch 4 adds control txq for communicating filter info to the firmware. > > Patches 5-7 add compressed local ip (CLIP) table, layer 2 table (L2T), > and source mac table (SMT) definitions required for holding info > for matching and executing various operations on matched filters. > > Patch 8 adds the LE-TCAM (maskfull) filter support. > > Patch 9 adds the HASH (maskless) filter support. > > Patch 10 adds and implements the flow director filter operations. Also > add the documentation. > > > [1] http://comments.gmane.org/gmane.comp.networking.dpdk.devel/29986 > > Rahul Lakkireddy (10): > ethdev: add a generic flow and new behavior switch to fdir > examples/test-cxgbe-filters: add example to test cxgbe fdir support > cxgbe: add skeleton to add support for T5 hardware filtering > cxgbe: add control txq for communicating filtering info > cxgbe: add compressed local IP table for matching IPv6 addresses > cxgbe: add layer 2 table for switch action filter > cxgbe: add source mac table for switch action filter > cxgbe: add LE-TCAM filtering support > cxgbe: add HASH filtering support > cxgbe: add flow director support and update documentation > > MAINTAINERS | 2 + > doc/guides/nics/cxgbe.rst | 166 ++ > doc/guides/rel_notes/release_2_3.rst | 10 + > doc/guides/sample_app_ug/index.rst | 1 + > doc/guides/sample_app_ug/test_cxgbe_filters.rst | 694 +++++++++ > drivers/net/cxgbe/Makefile | 6 + > drivers/net/cxgbe/base/adapter.h | 110 ++ > drivers/net/cxgbe/base/common.h | 11 + > drivers/net/cxgbe/base/t4_hw.c | 28 + > drivers/net/cxgbe/base/t4_msg.h | 324 ++++ > drivers/net/cxgbe/base/t4_regs.h | 9 + > drivers/net/cxgbe/base/t4_regs_values.h | 25 + > drivers/net/cxgbe/base/t4_tcb.h | 95 ++ > drivers/net/cxgbe/base/t4fw_interface.h | 272 ++++ > drivers/net/cxgbe/clip_tbl.c | 220 +++ > drivers/net/cxgbe/clip_tbl.h | 59 + > drivers/net/cxgbe/cxgbe.h | 4 + > drivers/net/cxgbe/cxgbe_compat.h | 12 + > drivers/net/cxgbe/cxgbe_ethdev.c | 21 + > drivers/net/cxgbe/cxgbe_fdir.c | 715 +++++++++ > drivers/net/cxgbe/cxgbe_fdir.h | 108 ++ > drivers/net/cxgbe/cxgbe_filter.c | 1614 ++++++++++++++++++++ > drivers/net/cxgbe/cxgbe_filter.h | 260 ++++ > drivers/net/cxgbe/cxgbe_main.c | 395 ++++- > drivers/net/cxgbe/cxgbe_ofld.h | 126 ++ > drivers/net/cxgbe/l2t.c | 261 ++++ > drivers/net/cxgbe/l2t.h | 87 ++ > drivers/net/cxgbe/sge.c | 202 ++- > drivers/net/cxgbe/smt.c | 275 ++++ > drivers/net/cxgbe/smt.h | 76 + > examples/Makefile | 1 + > examples/test-cxgbe-filters/Makefile | 63 + > examples/test-cxgbe-filters/commands.c | 429 ++++++ > examples/test-cxgbe-filters/commands.h | 40 + > examples/test-cxgbe-filters/config.c | 79 + > examples/test-cxgbe-filters/cxgbe/cxgbe_commands.c | 554 +++++++ > examples/test-cxgbe-filters/cxgbe/cxgbe_fdir.h | 79 + > examples/test-cxgbe-filters/init.c | 201 +++ > examples/test-cxgbe-filters/main.c | 79 + > examples/test-cxgbe-filters/main.h | 77 + > examples/test-cxgbe-filters/runtime.c | 74 + > lib/librte_ether/rte_eth_ctrl.h | 15 +- > 42 files changed, 7874 insertions(+), 5 deletions(-) > create mode 100644 doc/guides/sample_app_ug/test_cxgbe_filters.rst > create mode 100644 drivers/net/cxgbe/base/t4_tcb.h > create mode 100644 drivers/net/cxgbe/clip_tbl.c > create mode 100644 drivers/net/cxgbe/clip_tbl.h > create mode 100644 drivers/net/cxgbe/cxgbe_fdir.c > create mode 100644 drivers/net/cxgbe/cxgbe_fdir.h > 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_ofld.h > create mode 100644 drivers/net/cxgbe/l2t.c > create mode 100644 drivers/net/cxgbe/l2t.h > create mode 100644 drivers/net/cxgbe/smt.c > create mode 100644 drivers/net/cxgbe/smt.h > create mode 100644 examples/test-cxgbe-filters/Makefile > create mode 100644 examples/test-cxgbe-filters/commands.c > create mode 100644 examples/test-cxgbe-filters/commands.h > create mode 100644 examples/test-cxgbe-filters/config.c > create mode 100644 examples/test-cxgbe-filters/cxgbe/cxgbe_commands.c > create mode 100644 examples/test-cxgbe-filters/cxgbe/cxgbe_fdir.h > create mode 100644 examples/test-cxgbe-filters/init.c > create mode 100644 examples/test-cxgbe-filters/main.c > create mode 100644 examples/test-cxgbe-filters/main.h > create mode 100644 examples/test-cxgbe-filters/runtime.c > > -- > 2.5.3 > Just a gentle reminder if there is any review comment on this series? Thanks, Rahul