mdoc(7) police: fixed markup and spelling.
This commit is contained in:
parent
aee3c7d3da
commit
8a1452eb0a
@ -19,27 +19,27 @@ described as the network interface analog of the
|
||||
that is,
|
||||
.Nm
|
||||
does for network interfaces what the
|
||||
.Nm pty
|
||||
.Xr pty 4
|
||||
driver does for terminals.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver, like the
|
||||
.Nm pty
|
||||
.Xr pty 4
|
||||
driver, provides two interfaces: an interface like the usual facility
|
||||
it is simulating
|
||||
(a network interface in the case of
|
||||
.Nm ,
|
||||
or a terminal for
|
||||
.Nm pty ) ,
|
||||
.Xr pty 4 ) ,
|
||||
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, one for each control device that has been opened.
|
||||
.Dq Li tun0 ,
|
||||
.Dq Li tun1 ,
|
||||
etc., one for each control device that has been opened.
|
||||
These network interfaces persist until the
|
||||
.Pa if_tun.ko
|
||||
module is unloaded (if
|
||||
@ -57,8 +57,10 @@ device is usually obtained by attempting to open
|
||||
.Pa /dev/tun0 ,
|
||||
and if that fails
|
||||
.Pa /dev/tun1
|
||||
etc, until an errno of
|
||||
.Dv EBUSY
|
||||
etc., until an
|
||||
.Va errno
|
||||
of
|
||||
.Er EBUSY
|
||||
is not received).
|
||||
.Pp
|
||||
On systems with
|
||||
@ -97,16 +99,15 @@ network interface, the packet can be read from the control device
|
||||
.Dq input
|
||||
there);
|
||||
writing a packet to the control device generates an input
|
||||
packet on the network interface, as if the
|
||||
.Pq non-existent
|
||||
packet on the network interface, as if the (non\-existent)
|
||||
hardware had just received it.
|
||||
.Pp
|
||||
The tunnel device
|
||||
.Pq Pa /dev/tun Ns Sy N
|
||||
.Pq Pa /dev/tun Ns Ar N
|
||||
is exclusive-open
|
||||
(it cannot be opened if it is already open).
|
||||
A
|
||||
.Fn read
|
||||
.Xr read 2
|
||||
call will return an error
|
||||
.Pq Er EHOSTDOWN
|
||||
if the interface is not
|
||||
@ -121,20 +122,20 @@ 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 ,
|
||||
.Xr read 2 ,
|
||||
the extra data will be silently dropped.
|
||||
.Pp
|
||||
If the
|
||||
.Dv TUNSLMODE
|
||||
ioctl has been set, packets read from the control device will be prepended
|
||||
with the destination address as presented to the network interface output
|
||||
routine
|
||||
.Pq Sq Li tunoutput .
|
||||
routine,
|
||||
.Fn tunoutput .
|
||||
The destination address is in
|
||||
.Sq Li struct sockaddr
|
||||
.Vt struct sockaddr
|
||||
format.
|
||||
The actual length of the prepended address is in the member
|
||||
.Sq Li sa_len .
|
||||
.Va sa_len .
|
||||
If the
|
||||
.Dv TUNSIFHEAD
|
||||
ioctl has been set, packets will be prepended with a four byte address
|
||||
@ -156,57 +157,58 @@ ioctl has been set, the address family must be prepended, otherwise the
|
||||
packet is assumed to be of type
|
||||
.Dv AF_INET .
|
||||
Each
|
||||
.Fn write
|
||||
.Xr write 2
|
||||
call supplies exactly one packet; the packet length is taken from the
|
||||
amount of data provided to
|
||||
.Fn write
|
||||
.Pq minus any supplied address family .
|
||||
.Xr write 2
|
||||
(minus any supplied address family).
|
||||
Writes will not block; if the packet cannot be accepted for a
|
||||
transient reason
|
||||
.Pq e.g., no buffer space available ,
|
||||
(e.g., no buffer space available),
|
||||
it is silently dropped; if the reason is not transient
|
||||
.Pq e.g., packet too large ,
|
||||
(e.g., packet too large),
|
||||
an error is returned.
|
||||
.Pp
|
||||
The following
|
||||
.Xr ioctl 2
|
||||
calls are supported
|
||||
.Pq defined in Aq Pa net/if_tun.h Ns :
|
||||
.Bl -tag -width TUNSIFMODE
|
||||
(defined in
|
||||
.Aq Pa net/if_tun.h ) :
|
||||
.Bl -tag -xwidth ".Dv TUNSIFMODE"
|
||||
.It Dv TUNSDEBUG
|
||||
The argument should be a pointer to an
|
||||
.Va int ;
|
||||
.Vt 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 ;
|
||||
.Vt int ;
|
||||
this stores the internal debugging variable's value into it.
|
||||
.It Dv TUNSIFINFO
|
||||
The argument should be a pointer to an
|
||||
.Va struct tuninfo
|
||||
.Vt struct tuninfo
|
||||
and allows setting the MTU, the type, and the baudrate of the tunnel
|
||||
device.
|
||||
The
|
||||
.Va struct tuninfo
|
||||
.Vt struct tuninfo
|
||||
is declared in
|
||||
.Aq Pa net/if_tun.h .
|
||||
.Pp
|
||||
The use of this ioctl is restricted to the super-user.
|
||||
.It Dv TUNGIFINFO
|
||||
The argument should be a pointer to an
|
||||
.Va struct tuninfo ,
|
||||
.Vt struct tuninfo ,
|
||||
where the current MTU, type, and baudrate will be stored.
|
||||
.It Dv TUNSIFMODE
|
||||
The argument should be a pointer to an
|
||||
.Va int ;
|
||||
.Vt int ;
|
||||
its value must be either
|
||||
.Dv IFF_POINTOPOINT
|
||||
or
|
||||
.Dv IFF_BROADCAST .
|
||||
The type of the corresponding
|
||||
.Em tun Ns Sy n
|
||||
.Dq Li tun Ns Ar N
|
||||
interface is set to the supplied type.
|
||||
If the value is anything else, an
|
||||
.Er EINVAL
|
||||
@ -216,7 +218,7 @@ The interface must be down at the time; if it is up, an
|
||||
error occurs.
|
||||
.It Dv TUNSLMODE
|
||||
The argument should be a pointer to an
|
||||
.Va int ;
|
||||
.Vt int ;
|
||||
a non-zero value turns off
|
||||
.Dq multi-af
|
||||
mode and turns on
|
||||
@ -227,7 +229,7 @@ the network destination address (see above).
|
||||
Will set the pid owning the tunnel device to the current process's pid.
|
||||
.It Dv TUNSIFHEAD
|
||||
The argument should be a pointer to an
|
||||
.Va int ;
|
||||
.Vt int ;
|
||||
a non-zero value turns off
|
||||
.Dq link-layer
|
||||
mode, and enables
|
||||
@ -235,39 +237,39 @@ mode, and enables
|
||||
mode, where every packet is preceded with a four byte address family.
|
||||
.It Dv TUNGIFHEAD
|
||||
The argument should be a pointer to an
|
||||
.Va int ;
|
||||
.Vt int ;
|
||||
the ioctl sets the value to one if the device is in
|
||||
.Dq multi-af
|
||||
mode, and zero otherwise.
|
||||
.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 .
|
||||
.Vt int Ns 's
|
||||
value is or isn't zero.
|
||||
(Writes are always non-blocking.)
|
||||
.It Dv FIOASYNC
|
||||
Turn asynchronous I/O for reads
|
||||
(i.e., generation of
|
||||
.Dv SIGIO
|
||||
when data is available to be read)
|
||||
off or on, according as the argument
|
||||
.Va int Ns 's
|
||||
.Vt 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 ;
|
||||
.Vt 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
|
||||
.Vt int
|
||||
value.
|
||||
.It Dv TIOCGPGRP
|
||||
Retrieve the process group value for
|
||||
.Dv SIGIO
|
||||
signals into the argument
|
||||
.Va int
|
||||
.Vt int
|
||||
value.
|
||||
.El
|
||||
.Pp
|
||||
@ -279,7 +281,7 @@ writes are always non-blocking.
|
||||
On the last close of the data device, by default, the interface is
|
||||
brought down
|
||||
(as if with
|
||||
.Dq ifconfig tun Ns Sy N No down ) .
|
||||
.Nm ifconfig Ar tunN Cm down ) .
|
||||
All queued packets are thrown away.
|
||||
If the interface is up when the data device is not open
|
||||
output packets are always thrown away rather than letting
|
||||
@ -294,8 +296,8 @@ them pile up.
|
||||
.Xr intro 4 ,
|
||||
.Xr pty 4 ,
|
||||
.Xr devfs 5 ,
|
||||
.Xr MAKEDEV 8 ,
|
||||
.Xr ifconfig 8
|
||||
.Xr ifconfig 8 ,
|
||||
.Xr MAKEDEV 8
|
||||
.Sh AUTHORS
|
||||
This manual page was originally obtained from
|
||||
.Bx Net .
|
||||
.Nx .
|
||||
|
Loading…
Reference in New Issue
Block a user