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
next 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).