[dpdk-dev] [PATCH 00/10] cxgbe: Add flow director support
Rahul Lakkireddy
rahul.lakkireddy at chelsio.com
Mon Feb 22 11:39:51 CET 2016
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
More information about the dev
mailing list