summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ng_vjc.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ng_vjc.4 3.html')
-rw-r--r--static/freebsd/man4/ng_vjc.4 3.html179
1 files changed, 0 insertions, 179 deletions
diff --git a/static/freebsd/man4/ng_vjc.4 3.html b/static/freebsd/man4/ng_vjc.4 3.html
deleted file mode 100644
index b5fe1671..00000000
--- a/static/freebsd/man4/ng_vjc.4 3.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">NG_VJC(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">NG_VJC(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_vjc</code> &#x2014; <span class="Nd">Van
- Jacobson compression netgraph 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">sys/types.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">netinet/in.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">netinet/in_systm.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">netinet/ip.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">net/slcompress.h</a>&gt;</code>
- <br/>
- <code class="In">#include
- &lt;<a class="In">netgraph/ng_vjc.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">vjc</code> node type performs Van Jacobson
- compression, which is used over PPP, SLIP, and other point-to-point IP
- connections to compress TCP packet headers. The <code class="Dv">ip</code>
- hook represents the uncompressed side of the node, while the
- <code class="Dv">vjcomp</code>, <code class="Dv">vjuncomp</code>, and
- <code class="Dv">vjip</code> hooks represent the compressed side of the
- node. Packets received on the <code class="Dv">ip</code> will be compressed
- or passed through as appropriate. Packets received on the other three hooks
- will be uncompressed as appropriate. This node also supports &#x201C;always
- pass through&#x201D; mode in either direction.</p>
-<p class="Pp">Van Jacobson compression only applies to TCP packets. Only
- &#x201C;normal&#x201D; (i.e., common case) TCP packets are actually
- compressed. These are output on the <code class="Dv">vjcomp</code> hook.
- Other TCP packets are run through the state machine but not compressed;
- these appear on the <code class="Dv">vjuncomp</code> hook. Other non-TCP IP
- packets are forwarded unchanged to <code class="Dv">vjip</code>.</p>
-<p class="Pp">When connecting to a <a class="Xr">ng_ppp(4)</a> node, the
- <code class="Dv">ip</code>, <code class="Dv">vjuncomp</code>,
- <code class="Dv">vjcomp</code>, and <code class="Dv">vjip</code> hooks
- should be connected to the <a class="Xr">ng_ppp(4)</a> node's
- <code class="Dv">vjc_ip</code>, <code class="Dv">vjc_vjcomp</code>,
- <code class="Dv">vjc_vjuncomp</code>, and <code class="Dv">vjc_ip</code>
- hooks, respectively.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HOOKS"><a class="permalink" href="#HOOKS">HOOKS</a></h1>
-<p class="Pp">This node type supports the following hooks:</p>
-<dl class="Bl-tag">
- <dt id="ip"><var class="Va">ip</var></dt>
- <dd>Upstream (uncompressed) IP packets.</dd>
- <dt id="vjcomp"><var class="Va">vjcomp</var></dt>
- <dd>Downstream compressed TCP packets.</dd>
- <dt id="vjuncomp"><var class="Va">vjuncomp</var></dt>
- <dd>Downstream uncompressed TCP packets.</dd>
- <dt id="vjip"><var class="Va">vjip</var></dt>
- <dd>Downstream uncompressed IP packets.</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_VJC_SET_CONFIG"><a class="permalink" href="#NGM_VJC_SET_CONFIG"><code class="Dv">NGM_VJC_SET_CONFIG</code></a>
- (<code class="Ic">setconfig</code>)</dt>
- <dd>This command resets the compression state and configures it according to
- the supplied <code class="Dv">struct ngm_vjc_config</code> argument. This
- structure contains the following fields:
- <div class="Bd Pp Bd-indent Li">
- <pre>struct ngm_vjc_config {
- u_char enableComp; /* Enable compression */
- u_char enableDecomp; /* Enable decompression */
- u_char maxChannel; /* Number of outgoing channels - 1 */
- u_char compressCID; /* OK to compress outgoing CID's */
-};</pre>
- </div>
- <p class="Pp">When <code class="Dv">enableComp</code> is set to zero, all
- packets received on the <code class="Dv">ip</code> hook are forwarded
- unchanged out the <code class="Dv">vjip</code> hook. Similarly, when
- <code class="Dv">enableDecomp</code> is set to zero, all packets
- received on the <code class="Dv">vjip</code> hook are forwarded
- unchanged out the <code class="Dv">ip</code> hook, and packets are not
- accepted on the <code class="Dv">vjcomp</code> and
- <code class="Dv">vjuncomp</code> hooks. When a node is first created,
- both compression and decompression are disabled and the node is
- therefore operating in bi-directional &#x201C;pass through&#x201D;
- mode.</p>
- <p class="Pp">When enabling compression, <code class="Dv">maxChannel</code>
- should be set to the number of outgoing compression channels minus one,
- and is a value between 3 and 15, inclusive. The
- <code class="Dv">compressCID</code> field indicates whether it is OK to
- compress the CID header field for outgoing compressed TCP packets. This
- value should be zero unless either (a) it is not possible for an
- outgoing frame to be lost, or (b) lost frames can be reliably detected
- and immediately reported to the peer's decompression engine (see
- <code class="Dv">NGM_VJC_RECV_ERROR</code> below).</p>
- </dd>
- <dt id="NGM_VJC_GET_STATE"><a class="permalink" href="#NGM_VJC_GET_STATE"><code class="Dv">NGM_VJC_GET_STATE</code></a>
- (<code class="Ic">getstate</code>)</dt>
- <dd>This command returns the node's current state described by the
- <code class="Dv">struct slcompress</code> structure, which is defined in
- <code class="In">&lt;<a class="In">net/slcompress.h</a>&gt;</code>.</dd>
- <dt id="NGM_VJC_CLR_STATS"><a class="permalink" href="#NGM_VJC_CLR_STATS"><code class="Dv">NGM_VJC_CLR_STATS</code></a>
- (<code class="Ic">clrstats</code>)</dt>
- <dd>Clears the node statistics counters. Statistics are also cleared whenever
- the <code class="Dv">enableComp</code> or
- <code class="Dv">enableDecomp</code> fields are changed from zero to one
- by a <code class="Dv">NGM_VJC_SET_CONFIG</code> control message.</dd>
- <dt id="NGM_VJC_RECV_ERROR"><a class="permalink" href="#NGM_VJC_RECV_ERROR"><code class="Dv">NGM_VJC_RECV_ERROR</code></a>
- (<code class="Ic">recverror</code>)</dt>
- <dd>When the peer has CID header field compression enabled, this message must
- be sent to the local <code class="Nm">vjc</code> node immediately after
- detecting that a received frame has been lost, due to a bad checksum or
- for any other reason. Failing to do this can result in corrupted TCP
- stream data.</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="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_iface(4)</a>,
- <a class="Xr">ng_ppp(4)</a>, <a class="Xr">ngctl(8)</a></p>
-<p class="Pp"><cite class="Rs"><span class="RsA">V. Jacobson</span>,
- <span class="RsT">Compressing TCP/IP Headers</span>, <span class="RsO">RFC
- 1144</span>.</cite></p>
-<p class="Pp"><cite class="Rs"><span class="RsA">G. McGregor</span>,
- <span class="RsT">The PPP Internet Control Protocol (IPCP)</span>,
- <span class="RsO">RFC 1332</span>.</cite></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_vjc</code> node type was implemented in
- <span class="Ux">FreeBSD 4.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">Archie Cobbs</span>
- &lt;<a class="Mt" href="mailto:archie@FreeBSD.org">archie@FreeBSD.org</a>&gt;</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-<p class="Pp">As the initialization routine in the kernel implementation of Van
- Jacobson compression initializes both compression and decompression at once,
- this node does not allow compression and decompression to be enabled in
- separate operations. In order to enable one when the other is already
- enabled, first both must be disabled, then both enabled. This of course
- resets the node state. This restriction may be lifted in a later
- version.</p>
-<p class="Pp">When built as a loadable kernel module, this module includes the
- file <span class="Pa">net/slcompress.c</span>. Although loading the module
- should fail if <span class="Pa">net/slcompress.c</span> already exists in
- the kernel, currently it does not, and the duplicate copies of the file do
- not interfere. However, this may change in the future.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">January 19, 1999</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>