opnsense-src/share
Mark Johnston 3b856fd43f wg: Add netmap support
When in netmap (emulated) mode, wireguard interfaces prepend or strip a
dummy ethernet header when interfacing with netmap.  The netmap
application thus sees unencrypted, de-encapsulated frames with a fixed
header.

In this mode, netmap hooks the if_input and if_transmit routines of the
ifnet.  Packets from the host TX ring are handled by wg_if_input(),
which simply hands them to the netisr layer; packets which would
otherwise be tunneled are intercepted in wg_output() and placed in the
host RX ring.

The "physical" TX ring is processed by wg_transmit(), which behaves
identically to wg_output() when netmap is not enabled, and packets
appear in the "physical" RX ring by hooking wg_deliver_in().

Reviewed by:	vmaffione
MFC after:	1 month
Sponsored by:	Klara, Inc.
Sponsored by:	Zenarmor
Differential Revision:	https://reviews.freebsd.org/D43460
2024-06-03 11:06:55 +02:00
..
colldef Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
colldef_unicode Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
ctypedef Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
dict Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
doc Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
dtrace Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
examples vmrun.sh: allow device name arguments in pci-passthru option 2024-01-09 18:45:05 +02:00
i18n Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
keys Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
man wg: Add netmap support 2024-06-03 11:06:55 +02:00
misc organization.dot: Fix typos 2024-04-24 13:40:13 +02:00
mk share/mk/bsd.cpu.mk: add F16C feature for i386 and amd64 architectures 2024-04-21 20:44:21 +02:00
monetdef Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
monetdef_unicode Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
msgdef msgdef: fix NO and SI locales 2023-11-28 14:12:11 +07:00
msgdef_unicode Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
numericdef Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
numericdef_unicode Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
security Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
sendmail Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
skel etc: OPNsense customisations 2024-06-03 11:06:53 +02:00
snmp Remove $FreeBSD$: two-line lua tag 2023-08-16 11:55:30 -06:00
syscons Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
tabset Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
termcap Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
tests Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
timedef Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
vt Trim various $FreeBSD$ 2023-10-24 11:22:23 -07:00
zoneinfo Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Makefile Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Makefile.inc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00