summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ng_checksum.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ng_checksum.4 3.html')
-rw-r--r--static/freebsd/man4/ng_checksum.4 3.html138
1 files changed, 138 insertions, 0 deletions
diff --git a/static/freebsd/man4/ng_checksum.4 3.html b/static/freebsd/man4/ng_checksum.4 3.html
new file mode 100644
index 00000000..4507013c
--- /dev/null
+++ b/static/freebsd/man4/ng_checksum.4 3.html
@@ -0,0 +1,138 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">NG_CHECKSUM(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">NG_CHECKSUM(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">ng_checksum</code> &#x2014;
+ <span class="Nd">reconstructing IP checksums node type</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="In">#include
+ &lt;<a class="In">netgraph/ng_checksum.h</a>&gt;</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">checksum</code> node can calculate, or
+ prepare for calculation in hardware, IPv4 header, TCP and UDP checksums.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HOOKS"><a class="permalink" href="#HOOKS">HOOKS</a></h1>
+<p class="Pp">This node type has two hooks:</p>
+<dl class="Bl-tag">
+ <dt id="in"><var class="Va">in</var></dt>
+ <dd>Packets received on this hook are processed according to settings
+ specified in config and then forwarded to the <var class="Ar">out</var>
+ hook, if it exists and is connected. Otherwise they are reflected back to
+ the <var class="Ar">in</var> hook.</dd>
+ <dt id="out"><var class="Va">out</var></dt>
+ <dd>Packets received on this hook are forwarded to the
+ <var class="Ar">in</var> hook without any changes.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="CONTROL_MESSAGES"><a class="permalink" href="#CONTROL_MESSAGES">CONTROL
+ MESSAGES</a></h1>
+<p class="Pp">This node type supports the generic control messages, plus the
+ following:</p>
+<dl class="Bl-tag">
+ <dt id="NGM_CHECKSUM_SETDLT"><a class="permalink" href="#NGM_CHECKSUM_SETDLT"><code class="Dv">NGM_CHECKSUM_SETDLT</code></a>
+ (<code class="Ic">setdlt</code>)</dt>
+ <dd>Sets the data link type on the <var class="Va">in</var> hook. Currently,
+ supported types are <code class="Cm">DLT_RAW</code> (raw IP datagrams) and
+ <code class="Cm">DLT_EN10MB</code> (Ethernet). DLT_ definitions can be
+ found in the <code class="In">&lt;<a class="In">net/bpf.h</a>&gt;</code>
+ header. Currently used values are <code class="Cm">DLT_EN10MB</code> = 1
+ and <code class="Cm">DLT_RAW</code> = 12.</dd>
+ <dt id="NGM_CHECKSUM_GETDLT"><a class="permalink" href="#NGM_CHECKSUM_GETDLT"><code class="Dv">NGM_CHECKSUM_GETDLT</code></a>
+ (<code class="Ic">getdlt</code>)</dt>
+ <dd>This control message obtains the data link type on the
+ <var class="Va">in</var> hook.</dd>
+ <dt id="NGM_CHECKSUM_SETCONFIG"><a class="permalink" href="#NGM_CHECKSUM_SETCONFIG"><code class="Dv">NGM_CHECKSUM_SETCONFIG</code></a>
+ (<code class="Ic">setconfig</code>)</dt>
+ <dd>Sets the node configuration. The following <var class="Vt">struct
+ ng_checksum_config</var> must be supplied as an argument:
+ <div class="Bd Pp Bd-indent Li">
+ <pre>struct ng_checksum_config {
+ uint64_t csum_flags;
+ uint64_t csum_offload;
+};</pre>
+ </div>
+ <p class="Pp">The <var class="Va">csum_flags</var> can be set to any
+ combination of CSUM_IP, CSUM_TCP, CSUM_UDP, CSUM_TCP_IPV6 and
+ CSUM_UDP_IPV6 (other values are ignored) for instructing the node to
+ calculate the corresponding checksum.</p>
+ <p class="Pp">The <var class="Va">csum_offload</var> value can be set to any
+ combination of CSUM_IP, CSUM_TCP, CSUM_UDP, CSUM_TCP_IPV6 and
+ CSUM_UDP_IPV6 (other values are ignored) for instructing the node what
+ checksums should be requested from the hardware.</p>
+ <p class="Pp">The node also takes into account any combination of CSUM_IP,
+ CSUM_TCP, CSUM_UDP, CSUM_TCP_IPV6 and CSUM_UDP_IPV6 already flagged on
+ the mbuf.</p>
+ </dd>
+ <dt id="NGM_CHECKSUM_GETCONFIG"><a class="permalink" href="#NGM_CHECKSUM_GETCONFIG"><code class="Dv">NGM_CHECKSUM_GETCONFIG</code></a>
+ (<code class="Ic">getconfig</code>)</dt>
+ <dd>This control message obtains the current node configuration returned as a
+ <var class="Vt">struct ng_checksum_config</var>.</dd>
+ <dt id="NGM_CHECKSUM_GET_STATS"><a class="permalink" href="#NGM_CHECKSUM_GET_STATS"><code class="Dv">NGM_CHECKSUM_GET_STATS</code></a>
+ (<code class="Ic">getstats</code>)</dt>
+ <dd>Returns node statistics as a <var class="Vt">struct
+ ng_checksum_stats</var>.</dd>
+ <dt id="NGM_CHECKSUM_CLR_STATS"><a class="permalink" href="#NGM_CHECKSUM_CLR_STATS"><code class="Dv">NGM_CHECKSUM_CLR_STATS</code></a>
+ (<code class="Ic">clrstats</code>)</dt>
+ <dd>Clear the node statistics.</dd>
+ <dt id="NGM_CHECKSUM_GETCLR_STATS"><a class="permalink" href="#NGM_CHECKSUM_GETCLR_STATS"><code class="Dv">NGM_CHECKSUM_GETCLR_STATS</code></a>
+ (<code class="Ic">getclrstats</code>)</dt>
+ <dd>This command is identical to
+ <code class="Dv">NGM_CHECKSUM_GET_STATS</code>, except that the statistics
+ are also atomically cleared.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SHUTDOWN"><a class="permalink" href="#SHUTDOWN">SHUTDOWN</a></h1>
+<p class="Pp">This node shuts down upon receipt of a
+ <code class="Dv">NGM_SHUTDOWN</code> control message, or when all hooks have
+ been disconnected.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp"><a class="Xr">ngctl(8)</a> script:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>/usr/sbin/ngctl -f- &lt;&lt;-SEQ
+ msg checksum-1: setdlt 1
+ msg checksum-1: setconfig { csum_flags=0 csum_offload=6 }
+SEQ</pre>
+</div>
+<p class="Pp">Set the data link type to <code class="Cm">DLT_EN10MB</code>
+ (Ethernet), do not set additional checksum flags and request that the
+ hardware calculate CSUM_IP_UDP|CSUM_IP_TCP.</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">netgraph(4)</a>, <a class="Xr">ng_patch(4)</a>,
+ <a class="Xr">ngctl(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">ng_checksum</code> node type was implemented
+ in <span class="Ux">FreeBSD 10.2</span> and first submitted in
+ <span class="Ux">FreeBSD 12.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp"><span class="An">Dmitry Vagin</span>
+ &#x27E8;daemon.hammer@ya.ru&#x27E9;.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">October 29, 2015</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>