opnsense-src/sys
Alexander V. Chernikov c541bd368f lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries.
Currently we use pre-calculated headers inside LLE entries as prepend data
 for `if_output` functions. Using these headers allows saving some
 CPU cycles/memory accesses on the fast path.

However, this approach makes adding L2 header for IPv4 traffic with IPv6
 nexthops more complex, as it is not possible to store multiple
 pre-calculated headers inside lle. Additionally, the solution space is
 limited by the fact that PCB caching saves LLEs in addition to the nexthop.

Thus, add support for creating special "child" LLEs for the purpose of holding
 custom family encaps and store mbufs pending resolution. To simplify handling
 of those LLEs, store them in a linked-list inside a "parent" (e.g. normal) LLE.
 Such LLEs are not visible when iterating LLE table. Their lifecycle is bound
 to the "parent" LLE - it is not possible to delete "child" when parent is alive.
 Furthermore, "child" LLEs are static (RTF_STATIC), avoding complex state
 machine used by the standard LLEs.

nd6_lookup() and nd6_resolve() now accepts an additional argument, family,
 allowing to return such child LLEs. This change uses `LLE_SF()` macro which
 packs family and flags in a single int field. This is done to simplify merging
 back to stable/. Once this code lands, most of the cases will be converted to
 use a dedicated `family` parameter.

Differential Revision: https://reviews.freebsd.org/D31379
MFC after:	2 weeks
2021-08-21 17:34:35 +00:00
..
amd64 vmm: Add credential to cdev object 2021-08-18 13:41:33 -04:00
arm arm: hide busdma statistics behind ifdef ARM_BUSDMA_MAPLOAD_STATS 2021-08-18 17:24:53 +02:00
arm64 Enable arm64 SError exceptions in the kernel 2021-08-12 08:53:06 +00:00
bsm Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
cam targ(4): Remove D_NEEDGIANT. 2021-08-21 11:20:54 -04:00
cddl sys/cddl: remove extraneous semicolons 2021-08-16 10:29:44 -04:00
compat linux(4): Improve comment. 2021-08-13 11:36:42 +03:00
conf Microsoft Azure Network Adapter(MANA) VF support 2021-08-20 10:44:57 +00:00
contrib routing: Fix crashes with dpdk_lpm[46] algo. 2021-08-17 20:46:22 +00:00
crypto Use arm64 sha256 intrinsics in libmd 2021-08-11 10:20:48 +00:00
ddb fix style nit: space after if 2021-05-05 15:26:09 -06:00
dev ixl(4): Fix reporting of unqualified transceivers 2021-08-20 14:44:32 -07:00
dts Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
fs nfsd: Fix sanity check for NFSv4.2 Allocate operations 2021-08-12 16:48:28 -07:00
gdb gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
geom geom_disk: Add KMSAN checks 2021-08-11 16:33:41 -04:00
gnu
i386 kvm_clock: KVM paravirtual clock support 2021-08-14 15:57:54 +03:00
isa newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
kern Use interruptible wait for blocking recursive unmounts 2021-08-20 13:21:56 -07:00
kgssapi
libkern arc4random: Avoid KMSAN false positives from pre-seeding results 2021-08-13 09:58:42 -04:00
mips Fix a common typo in source code comments 2021-08-14 14:08:46 +02:00
modules Microsoft Azure Network Adapter(MANA) VF support 2021-08-20 10:44:57 +00:00
net lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries. 2021-08-21 17:34:35 +00:00
net80211 Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
netgraph Fix a few typos in source code comments 2021-08-14 09:39:17 +02:00
netinet lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries. 2021-08-21 17:34:35 +00:00
netinet6 lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries. 2021-08-21 17:34:35 +00:00
netipsec ipsec: fix race condition in key.c 2021-08-13 12:52:38 +02:00
netpfil ipfw: use unsigned int for dummynet bandwidth 2021-08-19 10:48:53 +02:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-05-26 10:45:40 -04:00
nfs Fix panic when using BOOTP to resolve root path. 2021-03-28 14:02:40 -05:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries. 2021-08-21 17:34:35 +00:00
opencrypto Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
powerpc powerpc/pseries: Allow radix pmap in pseries for ISA 3.0 2021-08-11 19:07:04 -05:00
riscv riscv: Fix pmap_alloc_l2 when it should allocate a new L1 entry 2021-08-09 20:28:37 +01:00
rpc rpc: Make function tables const 2021-08-14 11:26:12 -04:00
security Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
sys VFS: add retry limit and delay for failed recursive unmounts 2021-08-20 13:20:50 -07:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
ufs ufs_dirhash: Correct a typo in a comment 2021-08-20 09:59:18 +02:00
vm Fix a few typos in source code comments 2021-08-14 09:06:09 +02:00
x86 pvclock: Add vDSO support 2021-08-14 15:57:54 +03:00
xdr
xen xen: introduce xen_pv_disks_disabled() 2021-07-28 17:27:04 +02:00
Makefile