From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <rahul.lakkireddy@chelsio.com>
Received: from stargate3.asicdesigners.com (stargate.chelsio.com [12.32.117.8])
 by dpdk.org (Postfix) with ESMTP id 0635E56B7
 for <dev@dpdk.org>; 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 <rahul.lakkireddy@chelsio.com>
To: dev@dpdk.org
Message-ID: <20160222103949.GA15637@chelsio.com>
References: <cover.1454408702.git.rahul.lakkireddy@chelsio.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <cover.1454408702.git.rahul.lakkireddy@chelsio.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Cc: Kumar Sanghvi <kumaras@chelsio.com>,
 Nirranjan Kirubaharan <nirranjan@chelsio.com>
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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