/share/man/man4/ng_pptpgre.4
https://bitbucket.org/freebsd/freebsd-head/ · Forth · 178 lines · 178 code · 0 blank · 0 comment · 5 complexity · 7ed14476255ae91969f40c9688ace9d3 MD5 · raw file
- .\" Copyright (c) 1996-1999 Whistle Communications, Inc.
- .\" All rights reserved.
- .\"
- .\" Subject to the following obligations and disclaimer of warranty, use and
- .\" redistribution of this software, in source or object code forms, with or
- .\" without modifications are expressly permitted by Whistle Communications;
- .\" provided, however, that:
- .\" 1. Any and all reproductions of the source or object code must include the
- .\" copyright notice above and the following disclaimer of warranties; and
- .\" 2. No rights are granted, in any manner or form, to use Whistle
- .\" Communications, Inc. trademarks, including the mark "WHISTLE
- .\" COMMUNICATIONS" on advertising, endorsements, or otherwise except as
- .\" such appears in the above copyright notice or in the software.
- .\"
- .\" THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND
- .\" TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO
- .\" REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,
- .\" INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF
- .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- .\" WHISTLE COMMUNICATIONS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY
- .\" REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS
- .\" SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.
- .\" IN NO EVENT SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES
- .\" RESULTING FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING
- .\" WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- .\" PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR
- .\" SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY
- .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- .\" THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY
- .\" OF SUCH DAMAGE.
- .\"
- .\" Author: Archie Cobbs <archie@FreeBSD.org>
- .\"
- .\" $FreeBSD$
- .\" $Whistle: ng_pptpgre.8,v 1.2 1999/12/08 00:20:53 archie Exp $
- .\"
- .Dd March 29, 2008
- .Dt NG_PPTPGRE 4
- .Os
- .Sh NAME
- .Nm ng_pptpgre
- .Nd PPTP GRE protocol netgraph node type
- .Sh SYNOPSIS
- .In sys/types.h
- .In netgraph/ng_pptpgre.h
- .Sh DESCRIPTION
- The
- .Nm pptpgre
- 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.
- .Pp
- This node type expects to receive complete IP packets,
- including the IP header, on the
- .Dq Li lower
- hook, but it transmits outgoing frames without any IP header.
- The typical use for this node type would be to connect the
- .Dq Li upper
- hook to one of the link hooks of a
- .Xr ng_ppp 4
- node, and the
- .Dq Li lower
- hook to the
- .Dq Li "inet/raw/gre"
- hook of a
- .Xr ng_ksocket 4
- node.
- .Sh HOOKS
- This node type supports the following hooks:
- .Pp
- .Bl -tag -compact -width ".Li session_hhhh"
- .It Li session_hhhh
- Session 0xhhhh data packets to the upper protocol layers
- .It Li upper
- Same as session_hhhh, but for single session with configurable cid (legacy)
- .It Li lower
- Connection to the lower protocol layers
- .El
- .Sh CONTROL MESSAGES
- This node type supports the generic control messages, plus the following:
- .Bl -tag -width indent
- .It Dv NGM_PPTPGRE_SET_CONFIG
- 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
- .Vt "struct ng_pptpgre_conf"
- as an argument:
- .Bd -literal
- /* Configuration for a session */
- struct ng_pptpgre_conf {
- u_char enabled; /* enables traffic flow */
- u_char enableDelayedAck; /* enables delayed acks */
- u_char enableAlwaysAck; /* always send 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) */
- };
- .Ed
- .Pp
- The
- .Va enabled
- field enables traffic flow through the node.
- The
- .Va enableDelayedAck
- field enables delayed acknowledgement (maximum 250 milliseconds), which
- is a useful optimization and should generally be turned on.
- .Va enableAlwaysAck
- field enables sending acknowledgements with every data packet, which
- is probably helpful as well.
- .Pp
- .Va enableWindowing
- 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.
- .Pp
- The remaining fields are as supplied by the PPTP virtual call setup process.
- .It Dv NGM_PPTPGRE_GET_CONFIG
- Takes two byte argument as cid and returns the current configuration as a
- .Vt "struct ng_pptpgre_conf" .
- .It Dv NGM_PPTPGRE_GET_STATS
- This command returns a
- .Vt "struct ng_pptpgre_stats"
- containing various node statistics.
- .It Dv NGM_PPTPGRE_CLR_STATS
- This command resets the node statistics.
- .It Dv NGM_PPTPGRE_GETCLR_STATS
- This command atomically gets and resets the node statistics, returning a
- .Vt "struct ng_pptpgre_stats" .
- .El
- .Sh SHUTDOWN
- This node shuts down upon receipt of a
- .Dv NGM_SHUTDOWN
- control message, or when both hooks have been disconnected.
- .Sh SEE ALSO
- .Xr netgraph 4 ,
- .Xr ng_ksocket 4 ,
- .Xr ng_ppp 4 ,
- .Xr ngctl 8
- .Rs
- .%A K. Hamzeh
- .%A G. Pall
- .%A W. Verthein
- .%A J. Taarud
- .%A W. Little
- .%A G. Zorn
- .%T "Point-to-Point Tunneling Protocol (PPTP)"
- .%O RFC 2637
- .Re
- .Rs
- .%A S. Hanks
- .%A T. \&Li
- .%A D. Farinacci
- .%A P. Traina
- .%T "Generic Routing Encapsulation over IPv4 networks"
- .%O RFC 1702
- .Re
- .Sh HISTORY
- The
- .Nm
- node type was implemented in
- .Fx 4.0 .
- .Sh AUTHORS
- .An Archie Cobbs Aq archie@FreeBSD.org
- .Sh BUGS
- 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.