summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ng_mppc.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ng_mppc.4 3.html')
-rw-r--r--static/freebsd/man4/ng_mppc.4 3.html155
1 files changed, 155 insertions, 0 deletions
diff --git a/static/freebsd/man4/ng_mppc.4 3.html b/static/freebsd/man4/ng_mppc.4 3.html
new file mode 100644
index 00000000..eb35d3cd
--- /dev/null
+++ b/static/freebsd/man4/ng_mppc.4 3.html
@@ -0,0 +1,155 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">NG_MPPC(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">NG_MPPC(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_mppc</code> &#x2014;
+ <span class="Nd">Microsoft MPPC/MPPE compression and encryption 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">netgraph/ng_mppc.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">mppc</code> node type implements the
+ Microsoft Point-to-Point Compression (MPPC) and Microsoft Point-to-Point
+ Encryption (MPPE) sub-protocols of the PPP protocol. These protocols are
+ often used in conjunction with the Point-to-Point Tunneling Protocol
+ (PPTP).</p>
+<p class="Pp">The node has two hooks, <code class="Dv">comp</code> for
+ compression and <code class="Dv">decomp</code> for decompression. Typically
+ one or both of these hooks would be connected to the
+ <a class="Xr">ng_ppp(4)</a> node type hook of the same name. Each direction
+ of traffic flow is independent of the other.</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="comp"><var class="Va">comp</var></dt>
+ <dd>Connection to <a class="Xr">ng_ppp(4)</a> <code class="Dv">comp</code>
+ hook. Incoming frames are compressed and/or encrypted, and sent back out
+ the same hook.</dd>
+ <dt id="decomp"><var class="Va">decomp</var></dt>
+ <dd>Connection to <a class="Xr">ng_ppp(4)</a> <code class="Dv">decomp</code>
+ hook. Incoming frames are decompressed and/or decrypted, and sent back out
+ the same hook.</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_MPPC_CONFIG_COMP"><a class="permalink" href="#NGM_MPPC_CONFIG_COMP"><code class="Dv">NGM_MPPC_CONFIG_COMP</code></a></dt>
+ <dd>This command resets and configures the node for a session in the outgoing
+ traffic direction (i.e., for compression and/or encryption). This command
+ takes a <code class="Dv">struct ng_mppc_config</code> as an argument:
+ <div class="Bd Pp Bd-indent Li">
+ <pre>/* Length of MPPE key */
+#define MPPE_KEY_LEN 16
+
+/* MPPC/MPPE PPP negotiation bits */
+#define MPPC_BIT 0x00000001 /* mppc compression bits */
+#define MPPE_40 0x00000020 /* use 40 bit key */
+#define MPPE_56 0x00000080 /* use 56 bit key */
+#define MPPE_128 0x00000040 /* use 128 bit key */
+#define MPPE_BITS 0x000000e0 /* mppe encryption bits */
+#define MPPE_STATELESS 0x01000000 /* use stateless mode */
+#define MPPC_VALID_BITS 0x010000e1 /* possibly valid bits */
+
+/* Configuration for a session */
+struct ng_mppc_config {
+ u_char enable; /* enable */
+ uint32_t bits; /* config bits */
+ u_char startkey[MPPE_KEY_LEN]; /* start key */
+};
+
+ </pre>
+ </div>
+ The <code class="Dv">enabled</code> field enables traffic flow through the
+ node. The <code class="Dv">bits</code> field contains the bits as
+ negotiated by the Compression Control Protocol (CCP) in PPP. The
+ <code class="Dv">startkey</code> is only necessary if MPPE was negotiated,
+ and must be equal to the session start key as defined for MPPE. This key
+ is based on the MS-CHAP credentials used at link authentication time.</dd>
+ <dt id="NGM_MPPC_CONFIG_DECOMP"><a class="permalink" href="#NGM_MPPC_CONFIG_DECOMP"><code class="Dv">NGM_MPPC_CONFIG_DECOMP</code></a></dt>
+ <dd>This command resets and configures the node for a session in the incoming
+ traffic direction (i.e., for decompression and/or decryption). This
+ command takes a <code class="Dv">struct ng_mppc_config</code> as an
+ argument.</dd>
+ <dt id="NGM_MPPC_RESETREQ"><a class="permalink" href="#NGM_MPPC_RESETREQ"><code class="Dv">NGM_MPPC_RESETREQ</code></a></dt>
+ <dd>This message contains no arguments, and is bi-directional. If an error is
+ detected during decompression, this message is sent by the node to the
+ originator of the <code class="Dv">NGM_MPPC_CONFIG_DECOMP</code> message
+ that initiated the session. The receiver should respond by sending a PPP
+ CCP Reset-Request to the peer.
+ <p class="Pp">This message may also be received by this node type when a CCP
+ Reset-Request is received by the local PPP entity. The node will respond
+ by flushing its outgoing compression and encryption state so the remote
+ side can resynchronize.</p>
+ </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 both hooks
+ have been disconnected.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="COMPILATION"><a class="permalink" href="#COMPILATION">COMPILATION</a></h1>
+<p class="Pp">The kernel options
+ <code class="Dv">NETGRAPH_MPPC_COMPRESSION</code> and
+ <code class="Dv">NETGRAPH_MPPC_ENCRYPTION</code> are supplied to selectively
+ compile in either or both capabilities. At least one of these must be
+ defined, or else this node type is useless.</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_ppp(4)</a>,
+ <a class="Xr">ngctl(8)</a></p>
+<p class="Pp"><cite class="Rs"><span class="RsA">G. Pall</span>,
+ <span class="RsT">Microsoft Point-To-Point Compression (MPPC)
+ Protocol</span>, <span class="RsO">RFC 2118</span>.</cite></p>
+<p class="Pp"><cite class="Rs"><span class="RsA">G. S. Pall</span> and
+ <span class="RsA">G. Zorn</span>, <span class="RsT">Microsoft Point-To-Point
+ Encryption (MPPE) Protocol</span>,
+ <span class="RsO">draft-ietf-pppext-mppe-04.txt</span>.</cite></p>
+<p class="Pp"><cite class="Rs"><span class="RsA">K. Hamzeh</span>,
+ <span class="RsA">G. Pall</span>, <span class="RsA">W. Verthein</span>,
+ <span class="RsA">J. Taarud</span>, <span class="RsA">W. Little</span>, and
+ <span class="RsA">G. Zorn</span>, <span class="RsT">Point-to-Point Tunneling
+ Protocol (PPTP)</span>, <span class="RsO">RFC 2637</span>.</cite></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">In PPP, encryption should be handled by the Encryption Control
+ Protocol (ECP) rather than CCP. However, Microsoft combined both compression
+ and encryption into their ``compression'' algorithm, which is confusing.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">June 7, 2016</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>