summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ng_pred1.4 3.html
blob: 97cf08748146b38de9aaa94cb69c6768037caea5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<table class="head">
  <tr>
    <td class="head-ltitle">NG_PRED1(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">NG_PRED1(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_pred1</code> &#x2014;
    <span class="Nd">Predictor-1 PPP compression (RFC 1978) 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_pred1.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">pred1</code> node type implements the
    Predictor-1 sub-protocols of the Compression Control Protocol (CCP).</p>
<p class="Pp">The node has two hooks, <var class="Va">comp</var> for compression
    and <var class="Va">decomp</var> for decompression. Only one of them can be
    connected at the same time, specifying node's operation mode. Typically that
    hooks would be connected to the <a class="Xr">ng_ppp(4)</a> node type hook
    of the same name.</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>
<p class="Pp"></p>
<dl class="Bl-tag Bl-compact">
  <dt id="comp"><var class="Va">comp</var></dt>
  <dd>Connection to <a class="Xr">ng_ppp(4)</a> <var class="Va">compress</var>
      hook. Incoming frames are compressed 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> <var class="Va">decompress</var>
      hook. Incoming frames are decompressed and sent back out the same
    hook.</dd>
</dl>
<p class="Pp">Only one hook can be connected at the same time, specifying node's
    operation mode.</p>
</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_PRED1_CONFIG"><a class="permalink" href="#NGM_PRED1_CONFIG"><code class="Dv">NGM_PRED1_CONFIG</code></a>
    (<code class="Ic">config</code>)</dt>
  <dd>This command resets and configures the node for a session (i.e., for
      compression or decompression). This command takes a <var class="Vt">struct
      ng_pred1_config</var> as an argument:
    <div class="Bd Pp Bd-indent Li">
    <pre>struct ng_pred1_config {
	u_char		enable;			/* node enabled */
};</pre>
    </div>
    The <var class="Ft">enable</var> field enables traffic flow through the
      node.</dd>
  <dt id="NGM_PRED1_RESETREQ"><a class="permalink" href="#NGM_PRED1_RESETREQ"><code class="Dv">NGM_PRED1_RESETREQ</code></a>
    (<code class="Ic">resetreq</code>)</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_PRED1_CONFIG</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 or Reset-Ack is received by the local PPP entity. The node
        will respond by flushing its compression state so the sides can
        resynchronize.</p>
  </dd>
  <dt id="NGM_PRED1_GET_STATS"><a class="permalink" href="#NGM_PRED1_GET_STATS"><code class="Dv">NGM_PRED1_GET_STATS</code></a>
    (<code class="Ic">getstats</code>)</dt>
  <dd>This control message obtains statistics for a given hook. The statistics
      are returned in <var class="Vt">struct ng_pred1_stats</var>:
    <div class="Bd Pp Li">
    <pre>struct ng_pred1_stats {
	uint64_t	FramesPlain;
	uint64_t	FramesComp;
	uint64_t	FramesUncomp;
	uint64_t	InOctets;
	uint64_t	OutOctets;
	uint64_t	Errors;
};</pre>
    </div>
  </dd>
  <dt id="NGM_PRED1_CLR_STATS"><a class="permalink" href="#NGM_PRED1_CLR_STATS"><code class="Dv">NGM_PRED1_CLR_STATS</code></a>
    (<code class="Ic">clrstats</code>)</dt>
  <dd>This control message clears statistics for a given hook.</dd>
  <dt id="NGM_PRED1_GETCLR_STATS"><a class="permalink" href="#NGM_PRED1_GETCLR_STATS"><code class="Dv">NGM_PRED1_GETCLR_STATS</code></a>
    (<code class="Ic">getclrstats</code>)</dt>
  <dd>This control message obtains and clears statistics for a given hook.</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 hook 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_ppp(4)</a>,
    <a class="Xr">ngctl(8)</a></p>
<p class="Pp"><cite class="Rs"><span class="RsA">D. Rand</span>,
    <span class="RsT">PPP Predictor Compression Protocol</span>,
    <span class="RsO">RFC 1978</span>.</cite></p>
<p class="Pp"><cite class="Rs"><span class="RsA">W. Simpson</span>,
    <span class="RsT">The Point-to-Point Protocol (PPP)</span>,
    <span class="RsO">RFC 1661</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">Alexander Motin</span>
    &lt;<a class="Mt" href="mailto:mav@alkar.net">mav@alkar.net</a>&gt;</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp">Due to nature of netgraph PPP implementation there are possible
    race conditions between data packet and ResetAck CCP packet in case of
    packet loss. As result, packet loss can produce bigger performance
    degradation than supposed by protocol.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 24, 2006</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>