Home
last modified time | relevance | path

Searched hist:bf454ca88bdf4acfa873386e876ff5e772e6a830 (Results 1 – 1 of 1) sorted by relevance

/freebsd/sys/dev/wg/
H A Dif_wg.cdiff bf454ca88bdf4acfa873386e876ff5e772e6a830 Sat Apr 20 18:01:28 CEST 2024 Mark Johnston <markj@FreeBSD.org> 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