summaryrefslogtreecommitdiff
path: root/share/man/man4/tun.4
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man4/tun.4')
-rw-r--r--share/man/man4/tun.4216
1 files changed, 0 insertions, 216 deletions
diff --git a/share/man/man4/tun.4 b/share/man/man4/tun.4
deleted file mode 100644
index 2f813d823f962..0000000000000
--- a/share/man/man4/tun.4
+++ /dev/null
@@ -1,216 +0,0 @@
-.\" $NetBSD: tun.4,v 1.1 1996/06/25 22:17:37 pk Exp $
-.\" Based on PR#2411
-.\"
-.Dd March 10, 1996
-.Dt TUN 4
-.Os NetBSD 1.1
-.Sh NAME
-.Nm tun
-.Nd tunnel software network interface
-.Sh SYNOPSIS
-.Cd pseudo-device tun Op Ar count
-.Sh DESCRIPTION
-The
-.Nm tun
-interface is a software loopback mechanism that can be loosely
-described as the network interface analog of the
-.Xr pty 4 ,
-that is,
-.Nm tun
-does for network interfaces what the
-.Nm pty
-driver does for terminals.
-.Pp
-The
-.Nm tun
-driver, like the
-.Nm pty
-driver, provides two interfaces: an interface like the usual facility
-it is simulating
-.Po
-a network interface in the case of
-.Nm tun ,
-or a terminal for
-.Nm pty Pc ,
-and a character-special device
-.Dq control
-interface.
-.Pp
-The network interfaces are named
-.Sy tun Ns Ar 0 ,
-.Sy tun Ns Ar 1 ,
-etc, as many in all as the
-.Ar count
-figure given on the
-.Sy pseudo-device
-line. Each one supports the usual network-interface
-.Xr ioctl 2 Ns s ,
-such as
-.Dv SIOCSIFADDR
-and
-.Dv SIOCSIFNETMASK ,
-and thus can be used with
-.Xr ifconfig 8
-like any other interface. At boot time, they are
-.Dv POINTOPOINT
-interfaces, but this can be changed; see the description of the control
-device, below. When the system chooses to transmit a packet on the
-network interface, the packet can be read from the control device
-.Po
-it appears as
-.Dq input
-there
-.Pc ;
-writing a packet to the control device generates an input
-packet on the network interface, as if the
-.Pq non-existent
-hardware had just received it.
-.Pp
-The tunnel device, normally
-.Pa /dev/tun Ns Sy N ,
-is exclusive-open
-.Po
-it cannot be opened if it is already open
-.Pc
-and is restricted to the super-user. A
-.Fn read
-call will return an error
-.Pq Er EHOSTDOWN
-if the interface is not
-.Dq ready
-.Po
-which means that the control device is open and the interface's
-address has been set
-.Pc .
-Once the interface is ready,
-.Fn read
-will return a packet if one is available; if not, it will either block
-until one is or return
-.Er EWOULDBLOCK ,
-depending on whether non-blocking I/O has been enabled. If the packet
-is longer than is allowed for in the buffer passed to
-.Fn read ,
-the extra data will be silently dropped.
-.Pp
-Packets can be optionally prepended with the destination address as presented
-to the network interface output routine
-.Pq Sq Li tunoutput .
-The destination address is in
-.Sq Li struct sockaddr
-format. The actual length of the prepended address is in the member
-.Sq Li sa_len .
-The packet data follows immediately.
-A
-.Xr write 2
-call passes a packet in to be
-.Dq received
-on the pseudo-interface. Each
-.Fn write
-call supplies exactly one packet; the packet length is taken from the
-amount of data provided to
-.Fn write .
-Writes will not block; if the packet cannot be accepted for a
-transient reason
-.Pq e.g., no buffer space available ,
-it is silently dropped; if the reason is not transient
-.Pq e.g., packet too large ,
-an error is returned.
-If
-.Dq link-layer mode
-is on
-.Pq see Dv TUNSLMODE No below ,
-the actual packet data must be preceded by a
-.Sq Li struct sockaddr .
-The driver currently only inspects the
-.Sq Li sa_family
-field.
-The following
-.Xr ioctl 2
-calls are supported
-.Pq defined in Aq Pa net/if_tun.h Ns :
-.Bl -tag -width TUNSIFMODE
-.It Dv TUNSDEBUG
-The argument should be a pointer to an
-.Va int ;
-this sets the internal debugging variable to that value. What, if
-anything, this variable controls is not documented here; see the source
-code.
-.It Dv TUNGDEBUG
-The argument should be a pointer to an
-.Va int ;
-this stores the internal debugging variable's value into it.
-.It Dv TUNSIFMODE
-The argument should be a pointer to an
-.Va int ;
-its value must be
-.Dv IFF_POINTOPOINT
-or
-.Dv IFF_BROADCAST .
-The type of the corresponding
-.Em tun Ns Sy n
-interface is set to the supplied type. If the value is anything else,
-an
-.Er EINVAL
-error occurs. The interface must be down at the time; if it is up, an
-.Er EBUSY
-error occurs.
-.It Dv TUNSLMODE
-The argument should be a pointer to an
-.Va int ;
-a non-zero value turns on
-.Dq link-layer
-mode, causing packets read from the tunnel device to be prepended with
-network destination address.
-.It Dv FIONBIO
-Turn non-blocking I/O for reads off or on, according as the argument
-.Va int Ns 's
-value is or isn't zero
-.Pq Writes are always nonblocking .
-.It Dv FIOASYNC
-Turn asynchronous I/O for reads
-.Po
-i.e., generation of
-.Dv SIGIO
-when data is available to be read
-.Pc off or on, according as the argument
-.Va int Ns 's
-value is or isn't zero.
-.It Dv FIONREAD
-If any packets are queued to be read, store the size of the first one
-into the argument
-.Va int ;
-otherwise, store zero.
-.It Dv TIOCSPGRP
-Set the process group to receive
-.Dv SIGIO
-signals, when asynchronous I/O is enabled, to the argument
-.Va int
-value.
-.It Dv TIOCGPGRP
-Retrieve the process group value for
-.Dv SIGIO
-signals into the argument
-.Va int
-value.
-.El
-.Pp
-The control device also supports
-.Xr select 2
-for read; selecting for write is pointless, and always succeeds, since
-writes are always non-blocking.
-.Pp
-On the last close of the data device, by default, the interface is
-brought down
-.Po as if with
-.Dq ifconfig tun Ns Sy n No down
-.Pc .
-All queued packets are thrown away.
-.Po If the interface is up when the data device is not open
-output packets are always
-thrown away rather than letting them pile up
-.Pc .
-.Sh SEE ALSO
-.Xr intro 4 ,
-.Xr inet 4
-.Sh BUGS
-Currently is IP-only.