freebsd-skq/sys
np 6dc197ac5d 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 sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
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 db_script_exec: use a saved script name when reporting commands executed 2018-03-04 13:27:21 +00:00
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 amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
geom Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
gnu bwn(4): txpid2g/txpid5g[lh] are not defined after sromrev 7; the default 2018-02-13 17:43:54 +00:00
i386 i386 4/4G split. 2018-04-13 20:30:49 +00:00
isa Revert r330780, it was improperly tested and results in taking a spin 2018-03-11 20:13:15 +00:00
kern i386 4/4G split. 2018-04-13 20:30:49 +00:00
kgssapi kgssapi: Remove trivial deadcode 2018-02-14 00:12:03 +00:00
libkern iconv uses strlen directly on user supplied memory 2018-02-26 18:23:36 +00:00
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 Correct pseudo misspelling in sys/ comments 2018-02-23 18:15:50 +00:00
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 Set the proper vnet in IPsec callback functions. 2018-03-20 17:05:23 +00:00
netpfil To avoid possible deadlock do not acquire JQUEUE_LOCK before callout_drain. 2018-04-13 10:03:30 +00:00
netsmb Unsign some values related to allocation. 2018-01-22 02:08:10 +00:00
nfs Remove support for FDDI networks. 2018-04-11 17:28:24 +00:00
nfsclient style: Remove remaining deprecated MALLOC/FREE macros 2018-01-25 22:25:13 +00:00
nfsserver sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nlm Use syscall_helper_register() to register syscalls and initialize though 2018-02-10 01:09:22 +00:00
ofed Improve copy-and-pasted versions of SIOCGIFADDR. 2018-03-27 20:51:49 +00:00
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 Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
rpc Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
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 Add dtb overlays support 2018-03-24 21:30:24 +00:00
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 sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
xen sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
Makefile Move sys/boot to stand. Fix all references to new location 2017-11-14 23:02:19 +00:00