freebsd-dev/sys
Navdeep Parhar 1131c927c4 cxgbe(4): Add support for Connection Offload Policy (aka COP).
COP allows fine-grained control on whether to offload a TCP connection
using t4_tom, and what settings to apply to a connection selected for
offload.  t4_tom must still be loaded and IFCAP_TOE must still be
enabled for full TCP offload to take place on an interface.  The
difference is that IFCAP_TOE used to be the only knob and would enable
TOE for all new connections on the inteface, but now the driver will
also consult the COP, if any, before offloading to the hardware TOE.

A policy is a plain text file with any number of rules, one per line.
Each rule has a "match" part consisting of a socket-type (L = listen,
A = active open, P = passive open, D = don't care) and a pcap-filter(7)
expression, and a "settings" part that specifies whether to offload the
connection or not and the parameters to use if so.  The general format
of a rule is: [socket-type] expr => settings

Example.  See cxgbetool(8) for more information.
[L] ip && port http => offload
[L] port 443 => !offload
[L] port ssh => offload
[P] src net 192.168/16 && dst port ssh => offload !nagle !timestamp cong newreno
[P] dst port ssh => offload !nagle ecn cong tahoe
[P] dst port http => offload
[A] dst port 443 => offload tls
[A] dst net 192.168/16 => offload !timestamp cong highspeed

The driver processes the rules for each new listen, active open, or
passive open and stops at the first match.  There is an implicit rule at
the end of every policy that prohibits offload when no rule in the
policy matches:
[D] all => !offload

This is a reworked and expanded version of a patch submitted by
Krishnamraju Eraparaju @ Chelsio.

Sponsored by:	Chelsio Communications
2018-04-14 19:07:56 +00:00
..
amd64 Set PG_G global mapping bit on the trampoline ptes. 2018-04-14 17:33:16 +00:00
arm [pi] Do not attach bcm2835_pwm if DTB node is not enabled 2018-04-10 20:31:25 +00:00
arm64 Enable Qualcomm Debug Subsystem (QDSS) block on MSM8916 SoC. 2018-04-10 12:53:48 +00:00
bsm
cam Just assert that the lock is held here, rather than taking it out and 2018-04-13 16:45:35 +00:00
cddl allow ZFS pool to have temporary name for duration of current import 2018-04-12 10:37:26 +00:00
compat linuxulator: deduplicate linux_exec_imgact_try 2018-04-09 17:24:01 +00:00
conf sys: remove 'cm' from notes 2018-04-14 08:05:42 +00:00
contrib Import CK as of commit b19ed4c6a56ec93215ab567ba18ba61bf1cfbac8 2018-04-02 23:40:50 +00:00
crypto opencrypto: Integrate Chacha20 algorithm into OCF 2018-03-29 04:02:50 +00:00
ddb
dev cxgbe(4): Add support for Connection Offload Policy (aka COP). 2018-04-14 19:07:56 +00:00
dts Convert atse(4) driver for Altera Triple-Speed Ethernet MegaCore to use 2018-04-13 15:59:24 +00:00
fs Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
gdb
geom Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
gnu
i386 i386 4/4G split. 2018-04-13 20:30:49 +00:00
isa
kern i386 4/4G split. 2018-04-13 20:30:49 +00:00
kgssapi
libkern
mips Convert atse(4) driver for Altera Triple-Speed Ethernet MegaCore to use 2018-04-13 15:59:24 +00:00
modules Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
net Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
net80211 Use an accessor function to access ifr_data. 2018-03-30 18:50:13 +00:00
netgraph
netinet Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
netinet6 Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
netipsec
netpfil To avoid possible deadlock do not acquire JQUEUE_LOCK before callout_drain. 2018-04-13 10:03:30 +00:00
netsmb
nfs Remove support for FDDI networks. 2018-04-11 17:28:24 +00:00
nfsclient
nfsserver
nlm
ofed
opencrypto Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
powerpc Reenter KDB on fault on powerpc, instead of panicking 2018-04-10 21:14:54 +00:00
riscv
rpc
security Use an accessor function to access ifr_data. 2018-03-30 18:50:13 +00:00
sparc64 Clean up OF_getprop_alloc API 2018-04-08 22:59:34 +00:00
sys Fix a typo. 2018-04-12 14:57:48 +00:00
teken Pedantic polishing of code to please FlexeLint. 2018-04-08 19:23:50 +00:00
tests
tools
ufs Renumber soft-update types starting at 1 instead of 0 to avoid confusion 2018-04-05 00:32:01 +00:00
vm Handle Skylake-X errata SKZ63. 2018-04-07 17:06:13 +00:00
x86 cpufreq: Remove error-prone table terminators in favor of automatic sizing 2018-04-14 03:15:05 +00:00
xdr
xen
Makefile