opnsense-src/sys
Warner Losh 3be59adbb5 vtnet: Adjust for ethernet alignment.
If the header that we add to the packet's size is 0 % 4 and we're
strictly aligning, then we need to adjust where we store the header so
the packet that follows will have it's struct ip header properly
aligned.  We do this on allocation (and when we check the length of the
mbufs in the lro_nomrg case). We can't just adjust the clustersz in the
softc, because it's also used to allocate the mbufs and it needs to be
the proper size for that. Since we otherwise use the size of the mbuf
(or sometimes the smaller size of the received packet) to compute how
much we can buffer, this ensures no overflows. The 2 byte adjustment
also does not affect how many packets we can receive in the lro_nomrg
case.

PR:			271288
Sponsored by:		Netflix
Reviewed by:		bryanv
Differential Revision:	https://reviews.freebsd.org/D43224
2024-01-28 22:08:55 -07:00
..
amd64 arm64: Remove pmap_san_bootstrap() and call kasan_init_early() directly 2024-01-26 10:42:34 -05:00
arm intrng: Allow alternative IPI PICs to be registered and used 2024-01-24 23:49:54 +00:00
arm64 rk_i2s: remove unused definition 2024-01-28 13:37:25 +02:00
bsm timerfd: Move implementation from linux compat to sys/kern 2023-08-24 14:28:56 -06:00
cam targ: Handle errors from suword() 2024-01-04 08:39:53 -05:00
cddl dtrace: make 'ring' and 'fill' policies imply 'noswitch' flag 2024-01-28 15:15:17 +02:00
compat regen 2024-01-24 07:11:27 +02:00
conf ldscript.powerpc*: Only put .dynamic in PT_DYNAMIC 2024-01-26 00:19:02 +00:00
contrib zfs: merge openzfs/zfs@a4bf6baae 2024-01-24 12:41:51 +01:00
crypto ossl: Remove a stray __FBSDID("$FreeBSD$") 2023-12-04 12:29:30 -05:00
ddb ddb: Fix typo (triple S) 2023-12-27 20:24:31 -07:00
dev vtnet: Adjust for ethernet alignment. 2024-01-28 22:08:55 -07:00
dts add allwinner overlays for enabling additional USB ports 2024-01-28 13:12:39 +02:00
fs kcmp(2): implement for devfs files 2024-01-24 07:11:26 +02:00
gdb sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
geom gjournal(8): Fix a typo in a sysctl description 2024-01-20 20:58:08 +01:00
gnu sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
i386 x86: Adjust base addr for PCI MCFG regions 2023-12-27 13:14:47 -08:00
isa sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern subr_bus: report DEVICE_SUSPEND failures 2024-01-28 15:21:09 +02:00
kgssapi sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
libkern sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
modules add allwinner overlays for enabling additional USB ports 2024-01-28 13:12:39 +02:00
net pflow: show socket status in verbose mode 2024-01-25 17:37:51 +01:00
net80211 net80211: Fix a typo in a source code comment 2024-01-22 21:54:36 +01:00
netgraph netgraph: Fix two typos in source code comments 2024-01-20 17:22:28 +01:00
netinet netinet: Remove stale references to Giant from comments 2024-01-27 13:51:13 -05:00
netinet6 netinet: Remove stale references to Giant from comments 2024-01-27 13:51:13 -05:00
netipsec netipsec: fix LINT-NOINET build 2024-01-20 22:22:21 +01:00
netlink netlink(4): Fix a typo in a source code comment 2024-01-22 21:52:16 +01:00
netpfil pflow: show socket status in verbose mode 2024-01-25 17:37:51 +01:00
netsmb sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
nfs sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
nfsclient sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
nfsserver sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
nlm sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
ofed sockets: provide correct pr_shutdown for keysock and SDP 2024-01-16 12:02:59 -08:00
opencrypto sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
powerpc powerpc: Add RF_LITTLEENDIAN resource flag 2024-01-23 09:38:36 -08:00
riscv riscv: Convert local interrupt controller to a newbus PIC 2024-01-24 23:49:54 +00:00
rpc sockets: don't malloc/free sockaddr memory on getpeername/getsockname 2023-11-30 08:31:10 -08:00
security sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
sys SCHEDULER_STOPPED(): Rely on a global variable 2024-01-26 22:09:38 +01:00
teken teken: fix style in teken_wcwidth.h 2023-10-13 08:14:57 +03:00
tests callout: retire callout_async_drain() 2024-01-24 09:33:27 -08:00
tools makesyscalls: add COMPAT14 support 2023-12-01 20:00:39 +00:00
ufs Add vnode_pager_clean_{a,}sync(9) 2024-01-11 18:44:53 +02:00
vm sysctl vm.objects/vm.swap_objects: do not fill vnode info if jailed 2024-01-16 22:15:39 +02:00
x86 x86: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources 2024-01-23 09:35:47 -08:00
xdr sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
xen xen: add atomic #defines to accomodate differing xen_ulong_t sizes 2023-12-15 14:59:26 +01:00
Makefile sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
README.md sys/README.md: Add a section for documentation 2023-08-03 11:07:41 -03:00

FreeBSD Kernel Source:

This directory contains the source files and build glue that make up the FreeBSD kernel and its modules, including both original and contributed software.

Kernel configuration files are located in the conf/ subdirectory of each architecture. GENERIC is the configuration used in release builds. NOTES contains documentation of all possible entries. LINT is a compile-only configuration used to maximize build coverage and detect regressions.

Documentation:

Source code documentation is maintained in a set of man pages, under section 9. These pages are located in share/man/man9, from the top-level of the src tree. Consult intro(9) for an overview of existing pages.

Some additional high-level documentation of the kernel is maintained in the Architecture Handbook.

Source Roadmap:

Directory Description
amd64 AMD64 (64-bit x86) architecture support
arm 32-bit ARM architecture support
arm64 64-bit ARM (AArch64) architecture support
cam Common Access Method storage subsystem - cam(4) and ctl(4)
cddl CDDL-licensed optional sources such as DTrace
conf kernel build glue
compat Linux compatibility layer, FreeBSD 32-bit compatibility
contrib 3rd-party imported software such as OpenZFS
crypto crypto drivers
ddb interactive kernel debugger - ddb(4)
fs most filesystems, excluding UFS, NFS, and ZFS
dev device drivers and other arch independent code
gdb kernel remote GDB stub - gdb(4)
geom GEOM framework - geom(4)
i386 i386 (32-bit x86) architecture support
kern main part of the kernel
libkern libc-like and other support functions for kernel use
modules kernel module infrastructure
net core networking code
net80211 wireless networking (IEEE 802.11) - net80211(4)
netgraph graph-based networking subsystem - netgraph(4)
netinet IPv4 protocol implementation - inet(4)
netinet6 IPv6 protocol implementation - inet6(4)
netipsec IPsec protocol implementation - ipsec(4)
netpfil packet filters - ipfw(4), pf(4), and ipfilter(4)
opencrypto OpenCrypto framework - crypto(7)
powerpc PowerPC/POWER (32 and 64-bit) architecture support
riscv 64-bit RISC-V architecture support
security security facilities - audit(4) and mac(4)
sys kernel headers
tests kernel unit tests
ufs Unix File System - ffs(7)
vm virtual memory system
x86 code shared by AMD64 and i386 architectures