History log of /haiku/headers/posix/net/if_tun.h
Revision Date Author Comments
# b6c24e6b 24-Nov-2023 Augustin Cavalier <waddlesplash@gmail.com>

network: Overhaul TUN/TAP subsystem.

* Rename the "tun" network device to "tunnel". FreeBSD calls theirs
"tuntap" but speaks of both TUN and TAP devices as interfaces for
tunnels. The other BSDs seem to do likewise.

* Fold the "tun" driver into the "tunnel" network device. The
network device now publishes entries in devfs when interfaces
are created, and unpublishes them when interfaces are destroyed.

This removes the need for the driver and device to communicate
through a file descriptor, and thus allows the receive queue
to be totally eliminated, massively simplifying that logic.

* Use standard net-stack FIFOs instead of TCP BufferQueue, which is
specialized to TCP's needs in far too many ways. Thanks to the
previous commit adding support for interrupting semaphore waits,
we can use the FIFO wait mechanisms, too.

* Restructure the TAP logic, and generate MAC addresses more like
Linux does.

* Actually set type = IFT_TUN, and use the "loopback" frame handler
instead of the "ethernet" frame handler. This allows significant
cleanup of the header handling logic.

* In TUN mode, reject packets that don't look like IP packets.

* Delete "tunconfig"; it was mostly stubs and is now unnecessary.

TUN mode tested and confirmed as working by kallisti5 with OpenVPN.
TAP mode partially tested, but not yet confirmed as working.

Fixes #18673.

Change-Id: Ibd803139474e8db556a4f567901da15ee4083621
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7143
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# b110fce1 03-Apr-2019 François Revol <revol@free.fr>

Add sources for my original BeOS BONE tun/tap config driver

as a starting point.

Change-Id: I9c3b1027a7fda4ab1eaced486eb2455a19571fee