diff options
Diffstat (limited to 'share/man/man4/ng_pptpgre.4')
-rw-r--r-- | share/man/man4/ng_pptpgre.4 | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/share/man/man4/ng_pptpgre.4 b/share/man/man4/ng_pptpgre.4 new file mode 100644 index 0000000..3e26f9c --- /dev/null +++ b/share/man/man4/ng_pptpgre.4 @@ -0,0 +1,177 @@ +.\" 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 November 13, 2012 +.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: +.Bl -tag -width ".Va session_hhhh" +.It Va session_hhhh +Session 0xhhhh data packets to the upper protocol layers +.It Va upper +Same as session_hhhh, but for single session with configurable cid (legacy) +.It Va 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 foo +.It Dv NGM_PPTPGRE_SET_CONFIG Pq Ic setconfig +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 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) */ +}; +.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 Pq Ic getconfig +Takes two byte argument as cid and returns the current configuration as a +.Vt "struct ng_pptpgre_conf" . +.It Dv NGM_PPTPGRE_GET_STATS Pq Ic getstats +This command returns a +.Vt "struct ng_pptpgre_stats" +containing various node statistics. +.It Dv NGM_PPTPGRE_CLR_STATS Pq Ic clrstats +This command resets the node statistics. +.It Dv NGM_PPTPGRE_GETCLR_STATS Pq Ic getclrstats +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. |