Searched hist:bf454ca88bdf4acfa873386e876ff5e772e6a830 (Results 1 – 1 of 1) sorted by relevance
/freebsd/sys/dev/wg/ |
H A D | if_wg.c | diff 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
|