diff options
Diffstat (limited to 'static/freebsd/man4/tap.4 3.html')
| -rw-r--r-- | static/freebsd/man4/tap.4 3.html | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/static/freebsd/man4/tap.4 3.html b/static/freebsd/man4/tap.4 3.html deleted file mode 100644 index a3a4b9f2..00000000 --- a/static/freebsd/man4/tap.4 3.html +++ /dev/null @@ -1,201 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">TAP(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">TAP(4)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">tap</code>, <code class="Nm">vmnet</code> - — <span class="Nd">Ethernet tunnel software network - interface</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="Cd">device tuntap</code></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Nm">tap</code> interface is a software loopback - mechanism that can be loosely described as the network interface analog of - the <a class="Xr">pty(4)</a>, that is, <code class="Nm">tap</code> does for - network interfaces what the <a class="Xr">pty(4)</a> driver does for - terminals.</p> -<p class="Pp">The <code class="Nm">tap</code> driver, like the - <a class="Xr">pty(4)</a> driver, provides two interfaces: an interface like - the usual facility it is simulating (an Ethernet network interface in the - case of <code class="Nm">tap</code>, or a terminal for - <a class="Xr">pty(4)</a>), and a character-special device - “control” interface. A client program transfers Ethernet - frames to or from the <code class="Nm">tap</code> “control” - interface. The <a class="Xr">tun(4)</a> interface provides similar - functionality at the network layer: a client will transfer IP (by default) - packets to or from a <a class="Xr">tun(4)</a> “control” - interface.</p> -<p class="Pp">The network interfaces are named - “<code class="Li">tap0</code>”, - “<code class="Li">tap1</code>”, etc., one for each control - device that has been opened. These Ethernet network interfaces persist until - <span class="Pa">if_tuntap.ko</span> module is unloaded, or until removed - with "ifconfig destroy" (see below).</p> -<p class="Pp"><code class="Nm">tap</code> devices are created using interface - cloning. This is done using the “ifconfig tap<b class="Sy">N</b> - <span class="No">create</span>” command. This is the preferred method - of creating <code class="Nm">tap</code> devices. The same method allows - removal of interfaces. For this, use the “ifconfig - tap<b class="Sy">N</b> <span class="No">destroy</span>” command.</p> -<p class="Pp">If the <a class="Xr">sysctl(8)</a> variable - <var class="Va">net.link.tap.devfs_cloning</var> is non-zero, the - <code class="Nm">tap</code> interface permits opens on the special control - device <span class="Pa">/dev/tap</span>. When this device is opened, - <code class="Nm">tap</code> will return a handle for the lowest unused - <code class="Nm">tap</code> device (use <a class="Xr">devname(3)</a> to - determine which).</p> -<p class="Pp"></p> -<div class="Bf Em">Disabling the legacy devfs cloning functionality may break - existing applications which use <code class="Nm">tap</code>, such as VMware - and <a class="Xr">ssh(1)</a>. It therefore defaults to being enabled until - further notice.</div> -<p class="Pp">Control devices (once successfully opened) persist until - <span class="Pa">if_tuntap.ko</span> is unloaded or the interface is - destroyed.</p> -<p class="Pp">Each interface supports the usual Ethernet network interface - <a class="Xr">ioctl(2)</a>s and thus can be used with - <a class="Xr">ifconfig(8)</a> like any other Ethernet interface. When the - system chooses to transmit an Ethernet frame on the network interface, the - frame can be read from the control device (it appears as - “input” there); writing an Ethernet frame to the control - device generates an input frame on the network interface, as if the - (non-existent) hardware had just received it.</p> -<p class="Pp" id="read">The Ethernet tunnel device, normally - <span class="Pa">/dev/tap</span><b class="Sy">N</b>, is exclusive-open (it - cannot be opened if it is already open) and is restricted to the super-user, - unless the <a class="Xr">sysctl(8)</a> variable - <var class="Va">net.link.tap.user_open</var> is non-zero. If the - <a class="Xr">sysctl(8)</a> variable - <var class="Va">net.link.tap.up_on_open</var> is non-zero, the tunnel device - will be marked “up” when the control device is opened. A - <a class="permalink" href="#read"><code class="Fn">read</code></a>() call - will return an error (<code class="Er">EHOSTDOWN</code>) if the interface is - not “ready”. Once the interface is ready, - <code class="Fn">read</code>() will return an Ethernet frame if one is - available; if not, it will either block until one is or return - <code class="Er">EWOULDBLOCK</code>, depending on whether non-blocking I/O - has been enabled. If the frame is longer than is allowed for in the buffer - passed to <code class="Fn">read</code>(), the extra data will be silently - dropped.</p> -<p class="Pp" id="write">A <a class="Xr">write(2)</a> call passes an Ethernet - frame in to be “received” on the pseudo-interface. Each - <a class="permalink" href="#write"><code class="Fn">write</code></a>() call - supplies exactly one frame; the frame length is taken from the amount of - data provided to <code class="Fn">write</code>(). Writes will not block; if - the frame cannot be accepted for a transient reason (e.g., no buffer space - available), it is silently dropped; if the reason is not transient (e.g., - frame too large), an error is returned. The following - <a class="Xr">ioctl(2)</a> calls are supported (defined in - <code class="In"><<a class="In">net/if_tap.h</a>></code>):</p> -<dl class="Bl-tag"> - <dt id="TAPSIFINFO"><a class="permalink" href="#TAPSIFINFO"><code class="Dv">TAPSIFINFO</code></a></dt> - <dd>Set network interface information (line speed and MTU). The type must be - the same as returned by <code class="Dv">TAPGIFINFO</code> or set to - <code class="Dv">IFT_ETHER</code> else the <a class="Xr">ioctl(2)</a> call - will fail. The argument should be a pointer to a <var class="Va">struct - tapinfo</var>.</dd> - <dt id="TAPGIFINFO"><a class="permalink" href="#TAPGIFINFO"><code class="Dv">TAPGIFINFO</code></a></dt> - <dd>Retrieve network interface information (line speed, MTU and type). The - argument should be a pointer to a <var class="Va">struct - tapinfo</var>.</dd> - <dt id="TAPSDEBUG"><a class="permalink" href="#TAPSDEBUG"><code class="Dv">TAPSDEBUG</code></a></dt> - <dd>The argument should be a pointer to an <var class="Va">int</var>; this - sets the internal debugging variable to that value. What, if anything, - this variable controls is not documented here; see the source code.</dd> - <dt id="TAPGDEBUG"><a class="permalink" href="#TAPGDEBUG"><code class="Dv">TAPGDEBUG</code></a></dt> - <dd>The argument should be a pointer to an <var class="Va">int</var>; this - stores the internal debugging variable's value into it.</dd> - <dt id="TAPGIFNAME"><a class="permalink" href="#TAPGIFNAME"><code class="Dv">TAPGIFNAME</code></a></dt> - <dd>Retrieve network interface name. The argument should be a pointer to a - <var class="Va">struct ifreq</var>. The interface name will be returned in - the <var class="Va">ifr_name</var> field.</dd> - <dt id="TAPSTRANSIENT"><a class="permalink" href="#TAPSTRANSIENT"><code class="Dv">TAPSTRANSIENT</code></a></dt> - <dd>The argument should be a pointer to an <var class="Va">int</var>; this - sets the transient flag on the <code class="Nm">tap</code> device. A - transient <code class="Nm">tap</code> will be destroyed upon last - close.</dd> - <dt id="TAPGTRANSIENT"><a class="permalink" href="#TAPGTRANSIENT"><code class="Dv">TAPGTRANSIENT</code></a></dt> - <dd>The argument should be a pointer to an <var class="Va">int</var>; this - stores the current state (enabled or disabled) of the transient flag into - it.</dd> - <dt id="FIONBIO"><a class="permalink" href="#FIONBIO"><code class="Dv">FIONBIO</code></a></dt> - <dd>Turn non-blocking I/O for reads off or on, according as the argument - <var class="Va">int</var>'s value is or is not zero (Writes are always - nonblocking).</dd> - <dt id="FIOASYNC"><a class="permalink" href="#FIOASYNC"><code class="Dv">FIOASYNC</code></a></dt> - <dd>Turn asynchronous I/O for reads (i.e., generation of - <code class="Dv">SIGIO</code> when data is available to be read) off or - on, according as the argument <var class="Va">int</var>'s value is or is - not zero.</dd> - <dt id="FIONREAD"><a class="permalink" href="#FIONREAD"><code class="Dv">FIONREAD</code></a></dt> - <dd>If any frames are queued to be read, store the size of the first one into - the argument <var class="Va">int</var>; otherwise, store zero.</dd> - <dt id="TIOCSPGRP"><a class="permalink" href="#TIOCSPGRP"><code class="Dv">TIOCSPGRP</code></a></dt> - <dd>Set the process group to receive <code class="Dv">SIGIO</code> signals, - when asynchronous I/O is enabled, to the argument - <var class="Va">int</var> value.</dd> - <dt id="TIOCGPGRP"><a class="permalink" href="#TIOCGPGRP"><code class="Dv">TIOCGPGRP</code></a></dt> - <dd>Retrieve the process group value for <code class="Dv">SIGIO</code> signals - into the argument <var class="Va">int</var> value.</dd> - <dt id="SIOCGIFADDR"><a class="permalink" href="#SIOCGIFADDR"><code class="Dv">SIOCGIFADDR</code></a></dt> - <dd>Retrieve the Media Access Control (<code class="Dv">MAC</code>) address of - the “remote” side. This command is used by the VMware port - and expected to be executed on descriptor, associated with control device - (usually <span class="Pa">/dev/vmnet</span><b class="Sy">N</b> or - <span class="Pa">/dev/tap</span><b class="Sy">N</b>). The - <var class="Va">buffer</var>, which is passed as the argument, is expected - to have enough space to store the <code class="Dv">MAC</code> address. At - the open time both “local” and “remote” - <code class="Dv">MAC</code> addresses are the same, so this command could - be used to retrieve the “local” <code class="Dv">MAC</code> - address.</dd> - <dt id="SIOCSIFADDR"><a class="permalink" href="#SIOCSIFADDR"><code class="Dv">SIOCSIFADDR</code></a></dt> - <dd>Set the Media Access Control (<code class="Dv">MAC</code>) address of the - “remote” side. This command is used by VMware port and - expected to be executed on a descriptor, associated with control device - (usually <span class="Pa">/dev/vmnet</span><b class="Sy">N</b>).</dd> -</dl> -<p class="Pp">The control device also supports <a class="Xr">select(2)</a> for - read; selecting for write is pointless, and always succeeds, since writes - are always non-blocking.</p> -<p class="Pp">On the last close of the data device, the interface is brought - down (as if with “ifconfig tap<b class="Sy">N</b> - <span class="No">down</span>”) and has all of its configured - addresses deleted unless the device is a <i class="Em">VMnet</i> device, or - has <code class="Dv">IFF_LINK0</code> flag set. All queued frames are thrown - away. If the interface is up when the data device is not open, output frames - are thrown away rather than letting them pile up.</p> -<p class="Pp">The <code class="Nm">tap</code> device can also be used with the - VMware port as a replacement for the old <i class="Em">VMnet</i> device - driver. <i class="Em">VMnet</i> devices do not <a class="Xr">ifconfig(8)</a> - themselves down when the control device is closed. Everything else is the - same.</p> -<p class="Pp">In addition to the above mentioned <a class="Xr">ioctl(2)</a> - calls, there is an additional one for the VMware port.</p> -<dl class="Bl-tag"> - <dt id="VMIO_SIOCSIFFLAGS"><a class="permalink" href="#VMIO_SIOCSIFFLAGS"><code class="Dv">VMIO_SIOCSIFFLAGS</code></a></dt> - <dd>VMware <code class="Dv">SIOCSIFFLAGS</code>.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">inet(4)</a>, <a class="Xr">intro(4)</a>, - <a class="Xr">tun(4)</a></p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">January 13, 2020</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
