freebsd-dev/sys/modules/netgraph/ppp/ng_ppp.8

165 lines
5.6 KiB
Groff
Raw Normal View History

.\" 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@whistle.com>
.\"
.\" $FreeBSD$
.\" $Whistle: ng_ppp.8,v 1.3 1999/01/25 23:46:27 archie Exp $
.\"
.Dd January 19, 1999
.Dt NG_PPP 8
.Os FreeBSD 3
.Sh NAME
.Nm ng_ppp
.Nd PPP protocol multiplexor negraph node type
.Sh SYNOPSIS
.Fd #include <netgraph/ng_ppp.h>
.Sh DESCRIPTION
The
.Nm ppp
node type performs multiplexing for the PPP protocol. On the
.Dv downstream
hook it transmits and receives full PPP frames, which include the
protocol field, but no address, control or checksum fields.
On outgoing frames, when protocol compression has been enabled and
the protocol number is suitable for compression, the protocol field will
be compressed (i.e., sent as one byte instead of two).
Either compressed or uncompressed protocol fields are accepted
on incoming frames.
.Pp
For each 16-bit PPP procotol number there is a corresponding ``upstream'' hook.
Packets on these hooks contain no PPP protocol header.
The node simply multiplexes between the
.Dv downstream
hook and all of the upstream hooks by adding or subtracting the
PPP protocol field, depending on the direction of flow.
.Pp
When a frame is received on
.Dv downstream ,
if the corresponding protocol hook is
not connected, the packet is forwarded to a special upstream hook called
.Dv bypass .
This hook is a catch-all for any incoming frames not destined
for another already connected hook. Packets sent out on the
.Dv bypass
hook always have the PPP protcol header prepended as the first
two bytes (even if the
original incoming frame was protocol compressed to one byte).
.Pp
Any frames received on the
.Dv bypass
hook are forwarded to
.Dv downstream
without modification.
.Sh HOOKS
This node type supports the following hooks:
.Pp
.Bl -tag -width foobarbazi
.It Dv downstream
Connection to the PPP link layer.
.It Dv bypass
Frames that do not correspond to a connected protocol hook;
the PPP protocol header is included.
.It Dv 0xNNNN
Conection to the PPP protocol with 16-bit hex value
.Dv NNNN .
No PPP protocol header is included.
.El
.Pp
For convenience, the
.Nm
node type defines several hook name aliases for common PPP protocols:
.Pp
.Bl -tag -width abcdefgh -compact -offset 4n
.It Dv lcp
LCP protocol data (0xc021)
.It Dv ipcp
IPCP protocol data (0x8021)
.It Dv atcp
ATCP protocol data (0x8029)
.It Dv ccp
CCP protocol data (0x80fd)
.It Dv ecp
ECP protocol data (0x8053)
.It Dv ip
IP protocol data (0x0021)
.It Dv vjcomp
Van Jacobsen compressed TCP data (0x002d)
.It Dv vjuncomp
Van Jacobsen uncompressed TCP data (0x002f)
.It Dv mp
Multi-link protocol data (0x003d)
.It Dv compd
Compressed protocol data (0x00fd)
.It Dv cryptd
Encrypted protocol data (0x0053)
.It Dv pap
PAP authentication protocol data (0xc023)
.It Dv chap
CHAP authentication protocol data (0xc223)
.It Dv lqr
LQR protocol data (0xc025)
.El
.Sh CONTROL MESSAGES
This node type supports the generic control messages, plus the following:
.Bl -tag -width foo
.It Dv NGM_PPP_SET_PROTOCOMP
This command takes a single integer as argument and enables or disables
protocol field compression as the value is zero or non-zero.
Note that only protocols with high order byte equal to
.Dv 0x00
are compressible.
.It Dv NGM_PPP_GET_STATS
This command returns a
.Dv "struct ng_ppp_stat"
containing various node statistics.
.It Dv NGM_PPP_CLR_STATS
Clears the node statistics. Statistics are also cleared whenever the
.Dv downstream
hook is reconnected.
.Sh SHUTDOWN
This node shuts down upon receipt of a
.Dv NGM_SHUTDOWN
control message, or when all hooks have been disconnected.
.Sh SEE ALSO
.Xr netgraph 4 ,
.Xr ng_async 8 ,
.Xr ng_vjc 8 ,
.Xr ngctl 8 .
.Rs
.%A W. Simpson
.%T "The Point-to-Point Protocol (PPP)"
.%O RFC 1661
.Re
.Sh AUTHOR
Archie Cobbs <archie@whistle.com>