165 lines
5.6 KiB
Groff
165 lines
5.6 KiB
Groff
|
.\" 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>
|