diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:43 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:43 -0400 |
| commit | ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch) | |
| tree | 9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man4/epair.4 3.html | |
| parent | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (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.html | 109 |
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> — <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="YES"</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<n></span> the + <code class="Nm">epair</code> pair will be named like + <span class="Pa">epair<n>[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> |
