summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/epair.4 3.html
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
commitac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch)
tree9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man4/epair.4 3.html
parent253e67c8b3a72b3a4757fdbc5845297628db0a4a (diff)
docs: Added All FreeBSD Manuals
Diffstat (limited to 'static/freebsd/man4/epair.4 3.html')
-rw-r--r--static/freebsd/man4/epair.4 3.html109
1 files changed, 109 insertions, 0 deletions
diff --git a/static/freebsd/man4/epair.4 3.html b/static/freebsd/man4/epair.4 3.html
new file mode 100644
index 00000000..c79e723a
--- /dev/null
+++ b/static/freebsd/man4/epair.4 3.html
@@ -0,0 +1,109 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">EPAIR(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">EPAIR(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">epair</code> &#x2014; <span class="Nd">A pair of
+ virtual back-to-back connected Ethernet interfaces</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 line
+ in your kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">device epair</code></div>
+<p class="Pp">Alternatively, to load the driver as a module at boot time, place
+ the following line in <a class="Xr">loader.conf(5)</a>:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>if_epair_load=&quot;YES&quot;</pre>
+</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">epair</code> is a pair of Ethernet-like
+ software interfaces, which are connected back-to-back with a virtual
+ cross-over cable.</p>
+<p class="Pp">Each <code class="Nm">epair</code> interface pair is created at
+ runtime using interface cloning. This is most easily done with the
+ <a class="Xr">ifconfig(8)</a> <code class="Cm">create</code> command or
+ using the <var class="Va">cloned_interfaces</var> variable in
+ <a class="Xr">rc.conf(5)</a>. While for cloning you only give either
+ <span class="Pa">epair</span> or <span class="Pa">epair&lt;n&gt;</span> the
+ <code class="Nm">epair</code> pair will be named like
+ <span class="Pa">epair&lt;n&gt;[ab]</span>. This means the names of the
+ first <code class="Nm">epair</code> interfaces will be
+ <span class="Pa">epair0a</span> and <span class="Pa">epair0b</span>.</p>
+<p class="Pp">Like any other Ethernet interface, an
+ <code class="Nm">epair</code> needs to have a network address. If the
+ tunable <var class="Va">net.link.epair.ether_gen_addr</var>=0, each
+ <code class="Nm">epair</code> will be assigned a random locally administered
+ address, that is only guaranteed to be unique within one network stack. The
+ tunable <var class="Va">net.link.epair.ether_gen_addr</var>=1 will generate
+ a stable MAC address with <span class="Ux">FreeBSD</span> OUI using
+ <a class="Xr">ether_gen_addr(9)</a>. This tunable defaults to 1 in
+ <span class="Ux">FreeBSD 15.0</span> and might be removed in
+ <span class="Ux">FreeBSD 16.0</span>. To change the default addresses one
+ may use the SIOCSIFADDR <a class="Xr">ioctl(2)</a> or
+ <a class="Xr">ifconfig(8)</a> utility.</p>
+<p class="Pp">The basic intent is to provide connectivity between two virtual
+ network stack instances. When connected to an
+ <a class="Xr">if_bridge(4)</a>, one end of the interface pair can also be
+ part of another (virtual) LAN. As with any other Ethernet interface,
+ <code class="Nm">epair</code> can have a <a class="Xr">vlan(4)</a>
+ configured on top of it.</p>
+<p class="Pp">The <code class="Nm">epair</code> has RXCSUM and RXCSUM6 enabled
+ because it may receive a packet where the checksum has already been
+ validated by a physical interface.</p>
+<p class="Pp">The <code class="Nm">epair</code> supports TXCSUM and TXCSUM6 for
+ TCP and UDP, but only by forwarding the order to compute the checksum. Thus,
+ when using an <code class="Nm">epair</code> interface, a TCP or UDP sender
+ can offload checksum computation to a physical interface. Note that, in case
+ the packet does not leave the host, the checksum is unnecessary and will be
+ ignored if offloaded. Such packets contain an incorrect checksum, since it
+ is not computed yet. TXCSUM and TXCSUM6 are synchronized between the
+ <code class="Nm">epair</code> interface pair (i.e., enabling/disabling the
+ capability on one end enables/disables it on the other end). In case one end
+ is in a bridge and the bridge disabled TXCSUM or TXCSUM6, this avoids a
+ sender to send packets with checksum offloading into the bridge by using the
+ other end.</p>
+<p class="Pp">The <code class="Nm">epair</code> supports VLAN_HWTAGGING without
+ actually adding a VLAN tag. The sending <code class="Nm">epair</code> end
+ just forwards the offloading information to the other end. The receiving
+ <code class="Nm">epair</code> end leaves the offloading information set to
+ pretend that there was a VLAN tag in the Ethernet header, which has been
+ removed already. To avoid a situation where the receiving
+ <code class="Nm">epair</code> end has VLAN_HWTAGGING disabled, this
+ capability is synchronized between the <code class="Nm">epair</code>
+ interface pair (i.e., enabling/disabling the capability on one end
+ enables/disables it on the other end).</p>
+</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">ioctl(2)</a>, <a class="Xr">altq(4)</a>,
+ <a class="Xr">bpf(4)</a>, <a class="Xr">if_bridge(4)</a>,
+ <a class="Xr">vlan(4)</a>, <a class="Xr">loader.conf(5)</a>,
+ <a class="Xr">rc.conf(5)</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">epair</code> interface first appeared in
+ <span class="Ux">FreeBSD 8.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">epair</code> interface was written by
+ <span class="An">Bjoern A. Zeeb, CK Software GmbH,</span> under sponsorship
+ from the FreeBSD Foundation.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">January 30, 2026</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>