diff options
Diffstat (limited to 'static/freebsd/man4/ng_pptpgre.4 3.html')
| -rw-r--r-- | static/freebsd/man4/ng_pptpgre.4 3.html | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/static/freebsd/man4/ng_pptpgre.4 3.html b/static/freebsd/man4/ng_pptpgre.4 3.html new file mode 100644 index 00000000..486ce1a0 --- /dev/null +++ b/static/freebsd/man4/ng_pptpgre.4 3.html @@ -0,0 +1,179 @@ +<table class="head"> + <tr> + <td class="head-ltitle">NG_PPTPGRE(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">NG_PPTPGRE(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_pptpgre</code> — <span class="Nd">PPTP + GRE protocol 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 + <<a class="In">sys/types.h</a>></code> + <br/> + <code class="In">#include + <<a class="In">netgraph/ng_pptpgre.h</a>></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">pptpgre</code> node type performs Generic + Routing Encapsulation (GRE) over IP for the PPTP protocol as specified by + RFC 2637. This involves packet encapsulation, sequencing, acknowledgement, + and an adaptive timeout sliding window mechanism. This node type does not + handle any of the TCP control protocol or call negotiation defined by + PPTP.</p> +<p class="Pp">This node type expects to receive complete IP packets, including + the IP header, on the “<code class="Li">lower</code>” hook, + but it transmits outgoing frames without any IP header. The typical use for + this node type would be to connect the + “<code class="Li">upper</code>” hook to one of the link hooks + of a <a class="Xr">ng_ppp(4)</a> node, and the + “<code class="Li">lower</code>” hook to the + “<code class="Li">inet/raw/gre</code>” hook of a + <a class="Xr">ng_ksocket(4)</a> node.</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="session_hhhh"><var class="Va">session_hhhh</var></dt> + <dd>Session 0xhhhh data packets to the upper protocol layers</dd> + <dt id="upper"><var class="Va">upper</var></dt> + <dd>Same as session_hhhh, but for single session with configurable cid + (legacy)</dd> + <dt id="lower"><var class="Va">lower</var></dt> + <dd>Connection to the lower protocol layers</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_PPTPGRE_SET_CONFIG"><a class="permalink" href="#NGM_PPTPGRE_SET_CONFIG"><code class="Dv">NGM_PPTPGRE_SET_CONFIG</code></a> + (<code class="Ic">setconfig</code>)</dt> + <dd>This command resets and configures hook for a session. If corresponding + session_hhhh hook is not connected, upper hook will be configured. This + command takes a <var class="Vt">struct ng_pptpgre_conf</var> as an + argument: + <div class="Bd Pp Li"> + <pre>/* Configuration for a session */ +struct ng_pptpgre_conf { + u_char enabled; /* enables traffic flow */ + u_char enableDelayedAck; /* enables delayed acks */ + u_char enableAlwaysAck; /* always include ack with data */ + u_char enableWindowing; /* enable windowing algorithm */ + uint16_t cid; /* my call id */ + uint16_t peerCid; /* peer call id */ + uint16_t recvWin; /* peer recv window size */ + uint16_t peerPpd; /* peer packet processing delay + (in 1/10 of a second) */ +};</pre> + </div> + <p class="Pp">The <var class="Va">enabled</var> field enables traffic flow + through the node. The <var class="Va">enableDelayedAck</var> field + enables delayed acknowledgement (maximum 250 milliseconds), which is a + useful optimization and should generally be turned on. + <var class="Va">enableAlwaysAck</var> field enables sending + acknowledgements with every data packet, which is probably helpful as + well.</p> + <p class="Pp"><var class="Va">enableWindowing</var> enables the PPTP packet + windowing mechanism specified by the protocol. Disabling this will cause + the node to violate the protocol, possibly confusing other PPTP peers, + but often results in better performance. The windowing mechanism is a + design error in the PPTP protocol; L2TP, the successor to PPTP, removes + it.</p> + <p class="Pp">The remaining fields are as supplied by the PPTP virtual call + setup process.</p> + </dd> + <dt id="NGM_PPTPGRE_GET_CONFIG"><a class="permalink" href="#NGM_PPTPGRE_GET_CONFIG"><code class="Dv">NGM_PPTPGRE_GET_CONFIG</code></a> + (<code class="Ic">getconfig</code>)</dt> + <dd>Takes two byte argument as cid and returns the current configuration as a + <var class="Vt">struct ng_pptpgre_conf</var>.</dd> + <dt id="NGM_PPTPGRE_GET_STATS"><a class="permalink" href="#NGM_PPTPGRE_GET_STATS"><code class="Dv">NGM_PPTPGRE_GET_STATS</code></a> + (<code class="Ic">getstats</code>)</dt> + <dd>This command returns a <var class="Vt">struct ng_pptpgre_stats</var> + containing various node statistics.</dd> + <dt id="NGM_PPTPGRE_CLR_STATS"><a class="permalink" href="#NGM_PPTPGRE_CLR_STATS"><code class="Dv">NGM_PPTPGRE_CLR_STATS</code></a> + (<code class="Ic">clrstats</code>)</dt> + <dd>This command resets the node statistics.</dd> + <dt id="NGM_PPTPGRE_GETCLR_STATS"><a class="permalink" href="#NGM_PPTPGRE_GETCLR_STATS"><code class="Dv">NGM_PPTPGRE_GETCLR_STATS</code></a> + (<code class="Ic">getclrstats</code>)</dt> + <dd>This command atomically gets and resets the node statistics, returning a + <var class="Vt">struct ng_pptpgre_stats</var>.</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="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL + VARIABLES</a></h1> +<p class="Pp">A set of <a class="Xr">sysctl(8)</a> variables controls ability of + this node to deal with some amount of packet reorder that sometimes happens + in transit. Packet reorder results in packet drops (unless the order is + restored) as PPP protocol can not deliver reordered data. These variables + are shown below together with their default value and meaning:</p> +<dl class="Bl-tag"> + <dt id="net.graph.pptpgre.reorder_max:"><var class="Va">net.graph.pptpgre.reorder_max: + 1</var></dt> + <dd>Defines maximum length of node's private reorder queue used to keep data + waiting for late packets. Zero value disables reordering. Default value + allows the node to restore the order for two packets swapped in transit. + Greater values allow the node to deliver packets being late after more + packets in sequence at cost of increased kernel memory usage.</dd> + <dt id="net.graph.pptpgre.reorder_timeout:"><var class="Va">net.graph.pptpgre.reorder_timeout: + 1</var></dt> + <dd>Defines time value in milliseconds used to wait for late packets.</dd> +</dl> +</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_ksocket(4)</a>, + <a class="Xr">ng_ppp(4)</a>, <a class="Xr">ngctl(8)</a>, + <a class="Xr">sysctl(8)</a></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> +<p class="Pp"><cite class="Rs"><span class="RsA">S. Hanks</span>, + <span class="RsA">T. Li</span>, <span class="RsA">D. Farinacci</span>, and + <span class="RsA">P. Traina</span>, <span class="RsT">Generic Routing + Encapsulation over IPv4 networks</span>, <span class="RsO">RFC + 1702</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_pptpgre</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> + <<a class="Mt" href="mailto:archie@FreeBSD.org">archie@FreeBSD.org</a>></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> +<p class="Pp">The node should not expect incoming GRE packets to have an IP + header. This behavior is inherited from the (converse) behavior of raw IP + sockets. An intermediate node that strips IP headers in one direction should + be used instead.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">November 4, 2018</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
