summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/xnb.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/xnb.4 3.html')
-rw-r--r--static/freebsd/man4/xnb.4 3.html111
1 files changed, 111 insertions, 0 deletions
diff --git a/static/freebsd/man4/xnb.4 3.html b/static/freebsd/man4/xnb.4 3.html
new file mode 100644
index 00000000..0b35e750
--- /dev/null
+++ b/static/freebsd/man4/xnb.4 3.html
@@ -0,0 +1,111 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">XNB(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">XNB(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">xnb</code> &#x2014; <span class="Nd">Xen
+ Paravirtualized Backend Ethernet Driver</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp">To compile this driver into the kernel, place the following lines
+ in your kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">options XENHVM</code>
+<br/>
+<code class="Cd">device xenpci</code></div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">xnb</code> driver provides the back half of a
+ paravirtualized <a class="Xr">xen(4)</a> network connection. The netback and
+ netfront drivers appear to their respective operating systems as Ethernet
+ devices linked by a crossover cable. Typically, <code class="Nm">xnb</code>
+ will run on Domain 0 and the netfront driver will run on a guest domain.
+ However, it is also possible to run <code class="Nm">xnb</code> on a guest
+ domain. It may be bridged or routed to provide the netfront domain access to
+ other guest domains or to a physical network.</p>
+<p class="Pp">In most respects, the <code class="Nm">xnb</code> device appears
+ to the OS as any other Ethernet device. It can be configured at runtime
+ entirely with <a class="Xr">ifconfig(8)</a>. In particular, it supports MAC
+ changing, arbitrary MTU sizes, checksum offload for IP, UDP, and TCP for
+ both receive and transmit, and TSO. However, see
+ <a class="Sx" href="#CAVEATS">CAVEATS</a> before enabling txcsum, rxcsum, or
+ tso.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
+ VARIABLES</a></h1>
+<p class="Pp">The following read-only variables are available via
+ <a class="Xr">sysctl(8)</a>:</p>
+<dl class="Bl-tag">
+ <dt id="dev.xnb._d.dump_rings"><var class="Va">dev.xnb.%d.dump_rings</var></dt>
+ <dd>Displays information about the ring buffers used to pass requests between
+ the netfront and netback. Mostly useful for debugging, but can also be
+ used to get traffic statistics.</dd>
+ <dt id="dev.xnb._d.unit_test_results"><var class="Va">dev.xnb.%d.unit_test_results</var></dt>
+ <dd>Runs a builtin suite of unit tests and displays the results. Does not
+ affect the operation of the driver in any way. Note that the test suite
+ simulates error conditions; this will result in error messages being
+ printed to the system log.</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">arp(4)</a>, <a class="Xr">netintro(4)</a>,
+ <a class="Xr">ng_ether(4)</a>, <a class="Xr">xen(4)</a>,
+ <a class="Xr">ifconfig(8)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">xnb</code> device driver first appeared in
+ <span class="Ux">FreeBSD 10.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp">The <code class="Nm">xnb</code> driver was written by
+ <span class="An">Alan Somers</span>
+ &lt;<a class="Mt" href="mailto:asomers@FreeBSD.org">asomers@FreeBSD.org</a>&gt;
+ and John Suykerbuyk.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="CAVEATS"><a class="permalink" href="#CAVEATS">CAVEATS</a></h1>
+<p class="Pp">Packets sent through Xennet pass over shared memory, so the
+ protocol includes no form of link-layer checksum or CRC. Furthermore, Xennet
+ drivers always report to their hosts that they support receive and transmit
+ checksum offloading. They &quot;offload&quot; the checksum calculation by
+ simply skipping it. That works fine for packets that are exchanged between
+ two domains on the same machine. However, when a Xennet interface is bridged
+ to a physical interface, a correct checksum must be attached to any packets
+ bound for that physical interface. Currently,
+ <span class="Ux">FreeBSD</span> lacks any mechanism for an Ethernet device
+ to inform the OS that newly received packets are valid even though their
+ checksums are not. So if the netfront driver is configured to offload
+ checksum calculations, it will pass non-checksumed packets to
+ <code class="Nm">xnb</code>, which must then calculate the checksum in
+ software before passing the packet to the OS.</p>
+<p class="Pp">For this reason, it is recommended that if
+ <code class="Nm">xnb</code> is bridged to a physical interface, then
+ transmit checksum offloading should be disabled on the netfront. The Xennet
+ protocol does not have any mechanism for the netback to request the netfront
+ to do this; the operator must do it manually.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
+<p class="Pp">The <code class="Nm">xnb</code> driver does not properly checksum
+ UDP datagrams that span more than one Ethernet frame. Nor does it correctly
+ checksum IPv6 packets. To workaround that bug, disable transmit checksum
+ offloading on the netfront driver.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">June 6, 2014</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>