DPDK patches and discussions
 help / color / mirror / Atom feed
From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
To: dev@dpdk.org
Cc: Kumar Sanghvi <kumaras@chelsio.com>,
	Nirranjan Kirubaharan <nirranjan@chelsio.com>
Subject: [dpdk-dev] [PATCH 00/10] cxgbe: Add flow director support
Date: Wed,  3 Feb 2016 14:02:21 +0530	[thread overview]
Message-ID: <cover.1454408702.git.rahul.lakkireddy@chelsio.com> (raw)

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

             reply	other threads:[~2016-02-03  8:32 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03  8:32 Rahul Lakkireddy [this message]
2016-02-03  8:32 ` [dpdk-dev] [PATCH 01/10] ethdev: add a generic flow and new behavior switch to fdir Rahul Lakkireddy
2016-02-24 14:43   ` Bruce Richardson
2016-02-24 15:02     ` Thomas Monjalon
2016-02-24 18:40       ` Rahul Lakkireddy
2016-02-24 22:17         ` Thomas Monjalon
2016-02-25  9:33           ` Rahul Lakkireddy
2016-02-25 18:24             ` Thomas Monjalon
2016-02-26  1:17               ` Wu, Jingjing
2016-03-03 15:03                 ` Olga Shern
2016-07-20 10:45                 ` Thomas Monjalon
2016-02-25  3:26   ` Wu, Jingjing
2016-02-25  9:11     ` Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 02/10] examples/test-cxgbe-filters: add example to test cxgbe fdir support Rahul Lakkireddy
2016-02-24 14:40   ` Bruce Richardson
2016-02-24 18:35     ` Rahul Lakkireddy
2016-02-25 13:48       ` Bruce Richardson
2016-02-03  8:32 ` [dpdk-dev] [PATCH 03/10] cxgbe: add skeleton to add support for T5 hardware filtering Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 04/10] cxgbe: add control txq for communicating filtering info Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 05/10] cxgbe: add compressed local IP table for matching IPv6 addresses Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 06/10] cxgbe: add layer 2 table for switch action filter Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 07/10] cxgbe: add source mac " Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 08/10] cxgbe: add LE-TCAM filtering support Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 09/10] cxgbe: add HASH " Rahul Lakkireddy
2016-02-03  8:32 ` [dpdk-dev] [PATCH 10/10] cxgbe: add flow director support and update documentation Rahul Lakkireddy
2016-02-22 10:39 ` [dpdk-dev] [PATCH 00/10] cxgbe: Add flow director support Rahul Lakkireddy
2016-03-22 13:43 ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1454408702.git.rahul.lakkireddy@chelsio.com \
    --to=rahul.lakkireddy@chelsio.com \
    --cc=dev@dpdk.org \
    --cc=kumaras@chelsio.com \
    --cc=nirranjan@chelsio.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).