1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-03 09:00:21 +00:00
freebsd/sys/conf
Hans Petter Selasky 7272f9cd77 Implement hardware TLS via send tags for mlx5en(4), which is supported by
ConnectX-6 DX.

Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4
and v6) is supported.

A per PCI device UMA zone is used to manage the memory of the send
tags.  To optimize performance some crypto contexts may be cached by
the UMA zone, until the UMA zone finishes the memory of the given send
tag.

An asynchronous task is used manage setup of the send tags towards the
firmware. Most importantly setting the AES 128/256 bit pre-shared keys
for the crypto context.

Updating the state of the AES crypto engine and encrypting data, is
all done in the fast path. Each send tag tracks the TCP sequence
number in order to detect non-contiguous blocks of data, which may
require a dump of prior unencrypted data, to restore the crypto state
prior to wire transmission.

Statistics counters have been added to count the amount of TLS data
transmitted in total, and the amount of TLS data which has been dumped
prior to transmission. When non-contiguous TCP sequence numbers are
detected, the software needs to dump the beginning of the current TLS
record up until the point of retransmission. All TLS counters utilize
the counter(9) API.

In order to enable hardware TLS offload the following sysctls must be set:
kern.ipc.mb_use_ext_pgs=1
kern.ipc.tls.ifnet.permitted=1
kern.ipc.tls.enable=1

Sponsored by:	Mellanox Technologies
2019-12-06 15:36:32 +00:00
..
config.mk Add comments about KERN_OPT here. 2019-07-19 17:48:29 +00:00
dtb.build.mk Introduce bsd.sysdir.mk to consolidate looking for the kernel. 2019-11-21 15:59:33 +00:00
dtb.mk Allow kernel config to specify DTS/DTSO to build, and out-of-tree support 2019-03-26 02:45:23 +00:00
files Implement hardware TLS via send tags for mlx5en(4), which is supported by 2019-12-06 15:36:32 +00:00
files.amd64 Remove sio(4). 2019-11-21 01:24:49 +00:00
files.arm Compile in arm/unwind.c if options STACK is in effect; the new arm stack(9) 2019-11-14 17:04:19 +00:00
files.arm64 Add the SPI driver for the Marvell Armada 37x0 SoC. 2019-12-06 12:55:39 +00:00
files.i386 Remove sio(4). 2019-11-21 01:24:49 +00:00
files.mips Add support for BERI statcounters. 2019-09-18 16:13:50 +00:00
files.powerpc [PPC64] Enable phyp vty use as a GDB DBGPORT 2019-11-25 16:30:38 +00:00
files.riscv RISC-V: add support for SBI spec v0.2 2019-11-15 03:34:27 +00:00
files.sparc64 emulate illumos membar_producer with atomic_thread_fence_rel 2019-10-10 07:39:41 +00:00
files.x86 Move all the sys/dev/[a-j]* that are common to files.x86 2019-10-30 19:53:46 +00:00
kern.mk Add a new "riscv-relaxations" linker feature. 2019-12-05 19:37:30 +00:00
kern.opts.mk Disable REPRODUCIBLE_BUILD for kernel builds. 2019-09-28 14:14:42 +00:00
kern.post.mk Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
kern.pre.mk Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
kmod_syms_prefix.awk
kmod_syms.awk
kmod.mk Add a kmod.opts.mk. 2019-11-21 18:14:26 +00:00
kmod.opts.mk Add a kmod.opts.mk. 2019-11-21 18:14:26 +00:00
ldscript.amd64 Tighten mapping protections on preloaded files on amd64. 2019-10-18 14:05:13 +00:00
ldscript.arm Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.arm64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.i386 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.kmod.amd64 Add an ldscript for amd64 kernel modules. 2019-10-17 21:39:23 +00:00
ldscript.kmod.i386 Formalize the use of linker scripts for kernel modules. 2019-10-16 22:19:56 +00:00
ldscript.mips Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.cfe Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.mips64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.octeon1 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.powerpc powerpc: Kernel fixes for ppc32 and powerpcspe w/ lld 2019-11-14 04:34:17 +00:00
ldscript.powerpc64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.powerpcspe powerpc: Kernel fixes for ppc32 and powerpcspe w/ lld 2019-11-14 04:34:17 +00:00
ldscript.riscv riscv: Ensure that BSS is 8-byte aligned 2019-09-09 15:57:24 +00:00
ldscript.sparc64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
Makefile.amd64 Retire CLANG_NO_IAS34 2018-11-01 23:11:47 +00:00
Makefile.arm Remove support for kernel.tramp and kernel.tramp.gz 2019-07-27 17:24:19 +00:00
Makefile.arm64 revert r354714 "Boot arm64 kernel using booti command from U-boot." 2019-12-02 15:07:06 +00:00
Makefile.i386 Retire CLANG_NO_IAS34 2018-11-01 23:11:47 +00:00
Makefile.mips Update MIPS kernel builds to work with mips-gcc. 2019-10-15 17:11:42 +00:00
Makefile.powerpc Add support for building Book-E kernels with clang/lld. 2019-11-02 21:15:56 +00:00
Makefile.riscv Revert r336353 completely based on protest; compatibility shims incoming 2018-07-17 14:11:30 +00:00
Makefile.sparc64 Revert r336353 completely based on protest; compatibility shims incoming 2018-07-17 14:11:30 +00:00
makeLINT.mk stop building arm LINT-V5 kernel 2019-11-26 20:46:20 +00:00
makeLINT.sed
newvers.sh newvers: append commit count to uname version string 2019-08-01 14:13:04 +00:00
NOTES Remove the trm(4) driver 2019-11-28 02:32:17 +00:00
options Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
options.amd64 Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
options.arm Remove now the cow unused CPU_ARM9 and CPU_FA526 options. These are for 2018-07-28 11:00:45 +00:00
options.arm64 revert r354714 "Boot arm64 kernel using booti command from U-boot." 2019-12-02 15:07:06 +00:00
options.i386 i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
options.mips
options.powerpc powerpc: Add AmigaOne platform, a subclass of MPC85xx 2019-10-16 00:38:50 +00:00
options.riscv o Add driver for PLIC (Platform-Level Interrupt Controller) device. 2018-06-12 17:45:15 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE Remove adv(4) and adw(4) 2018-10-22 02:34:47 +00:00