freebsd-nq/sys/dev/cxgbe
Navdeep Parhar 89f651e704 cxgbe(4): Add support for hash filters.
These filters reside in the card's memory instead of its TCAM and can be
configured via a new "hashfilter" subcommand in cxgbetool.  Hash and
normal TCAM filters can be used together.  The hardware does an
exact-match of packet fields for hash filters, unlike the masked match
performed for TCAM filters.  Any T5/T6 card with memory can support at
least half a million hash filters.  The sample config file with the
driver configures 512K of these, it is possible to double this to 1
million+ in some cases.

The chip does an exact-match of fields of incoming datagrams with hash
filters and performs the action configured for the filter if it matches.
The fields to match are specified in a "filter mask" in the firmware
config file.  The filter mask always includes the 5-tuple (sip, dip,
sport, dport, ipproto).  It can, optionally, also include any subset of
the filter mode (see filterMode and filterMask in the firmware config
file).

For example:
filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe
filterMask = protocol, port, vlan

Exact values of the 5-tuple, the physical port, and VLAN tag would have
to be provided while setting up a hash filter with the chip
configuration above.

Hash filters support all actions supported by TCAM filters.  A packet
that hits a hash filter can be dropped, let through (with optional
steering to a specific queue or RSS region), switched out of another
port (with optional L2 rewrite of DMAC, SMAC, VLAN tag), or get NAT'ed.
(Support for some of these will show up in the driver in a follow-up
commit very shortly).

Sponsored by:	Chelsio Communications
2018-05-09 04:09:49 +00:00
..
common cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
crypto Don't overflow the ipad[] array when clearing the remainder. 2018-02-26 22:17:27 +00:00
cudbg cxgbe(4): Fix unsafe mailbox access in cudbg. 2017-11-21 01:18:58 +00:00
cxgbei Use the offload transmit queue to set flags on TLS connections. 2018-03-27 20:54:57 +00:00
firmware cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
iw_cxgbe Optimize ibcore RoCE address handle creation from user-space. 2018-03-05 14:34:52 +00:00
tom cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
adapter.h cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
if_cc.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_ccv.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_cxl.c
if_cxlv.c Chelsio T4/T5 VF driver. 2016-09-07 18:13:57 +00:00
offload.h cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
osdep.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_filter.c cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
t4_if.m Use the port device name for the iov device for Chelsio T4/T5 cards. 2016-08-03 17:11:08 +00:00
t4_ioctl.h cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
t4_iov.c cxgbe(4): Update the VF device ids too. This should have been part 2017-05-05 16:52:25 +00:00
t4_l2t.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_l2t.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_main.c cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
t4_mp_ring.c sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
t4_mp_ring.h
t4_netmap.c netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
t4_sched.c cxgbe(4): Avoid a NULL dereference that would occur during module unload 2017-08-06 19:45:59 +00:00
t4_sge.c cxgbe(4): Add support for hash filters. 2018-05-09 04:09:49 +00:00
t4_tracer.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_vf.c cxgbe(4): Do not forward interrupts to queues with freelists. This 2017-12-22 19:10:19 +00:00