1999-10-21 09:06:11 +00:00
|
|
|
.\" Copyright (c) 1996-1999 Whistle Communications, Inc.
|
|
|
|
.\" All rights reserved.
|
2001-07-14 19:41:16 +00:00
|
|
|
.\"
|
1999-10-21 09:06:11 +00:00
|
|
|
.\" 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.
|
2001-07-14 19:41:16 +00:00
|
|
|
.\"
|
1999-10-21 09:06:11 +00:00
|
|
|
.\" 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.
|
2001-07-14 19:41:16 +00:00
|
|
|
.\"
|
2000-10-26 15:30:44 +00:00
|
|
|
.\" Author: Archie Cobbs <archie@FreeBSD.org>
|
1999-10-21 09:06:11 +00:00
|
|
|
.\"
|
|
|
|
.\" $FreeBSD$
|
|
|
|
.\" $Whistle: ng_async.8,v 1.6 1999/01/25 23:46:25 archie Exp $
|
|
|
|
.\"
|
|
|
|
.Dd January 19, 1999
|
2000-05-04 17:54:37 +00:00
|
|
|
.Dt NG_ASYNC 4
|
2001-07-10 15:31:11 +00:00
|
|
|
.Os
|
1999-10-21 09:06:11 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm ng_async
|
|
|
|
.Nd asynchronous framing netgraph node type
|
|
|
|
.Sh SYNOPSIS
|
2005-02-05 11:31:31 +00:00
|
|
|
.In sys/types.h
|
2001-10-01 16:09:29 +00:00
|
|
|
.In netgraph/ng_async.h
|
1999-10-21 09:06:11 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm async
|
|
|
|
node type performs conversion between synchronous frames and
|
|
|
|
asynchronous frames, as defined for the PPP protocol in RFC 1662.
|
|
|
|
Asynchronous framing uses flag bytes and octet-stuffing
|
|
|
|
to simulate a frame oriented connection over an octet-oriented
|
1999-11-08 03:14:58 +00:00
|
|
|
asynchronous serial line.
|
1999-10-21 09:06:11 +00:00
|
|
|
.Pp
|
1999-10-30 20:30:19 +00:00
|
|
|
The node transmits and receives asynchronous data on the
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv async
|
2004-07-03 18:29:24 +00:00
|
|
|
hook.
|
|
|
|
Mbuf boundaries of incoming data are ignored.
|
1999-11-08 03:14:58 +00:00
|
|
|
Once a complete packet has been received, it is decoded and
|
|
|
|
stripped of all framing bytes, and transmitted out the
|
|
|
|
.Dv sync
|
1999-11-19 04:30:26 +00:00
|
|
|
hook as a single frame.
|
1999-10-21 09:06:11 +00:00
|
|
|
.Pp
|
1999-11-08 03:14:58 +00:00
|
|
|
Synchronous frames are transmitted and received on the
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv sync
|
1999-11-08 03:14:58 +00:00
|
|
|
hook.
|
|
|
|
Packets received on this hook are encoded as asynchronous frames
|
1999-10-21 09:06:11 +00:00
|
|
|
and sent out on
|
|
|
|
.Dv async .
|
1999-11-19 04:30:26 +00:00
|
|
|
Received packets should start with the address and control fields,
|
|
|
|
or the PPP protocol field if address and control field compression
|
2004-07-03 18:29:24 +00:00
|
|
|
is employed, and contain no checksum field.
|
|
|
|
If the first four bytes are
|
1999-11-19 04:30:26 +00:00
|
|
|
.Dv "0xff 0x03 0xc0 0x21"
|
|
|
|
(an LCP protocol frame) then complete control character escaping
|
|
|
|
is enabled for that frame (in PPP, LCP packets are always sent with
|
|
|
|
no address and control field compression and all control characters
|
|
|
|
escaped).
|
1999-10-21 09:06:11 +00:00
|
|
|
.Pp
|
1999-12-21 01:25:21 +00:00
|
|
|
This node supports
|
|
|
|
.Dq flag sharing
|
|
|
|
for packets transmitted on
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv async .
|
|
|
|
This is an optimization where the trailing flag byte
|
|
|
|
of one frame is shared with the opening flag byte of the next.
|
|
|
|
Flag sharing between frames is disabled after one second of transmit
|
|
|
|
idle time.
|
|
|
|
.Sh HOOKS
|
|
|
|
This node type supports the following hooks:
|
|
|
|
.Bl -tag -width foobar
|
|
|
|
.It Dv async
|
|
|
|
Asynchronous connection.
|
|
|
|
Typically this hook would be connected to a
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_tty 4
|
1999-10-21 09:06:11 +00:00
|
|
|
node, which handles transmission of serial data over a tty device.
|
|
|
|
.It Dv sync
|
2004-07-03 18:29:24 +00:00
|
|
|
Synchronous connection.
|
|
|
|
This hook sends and receives synchronous frames.
|
1999-11-19 04:30:26 +00:00
|
|
|
For PPP, these frames should contain address, control, and protocol fields,
|
|
|
|
but no checksum field.
|
|
|
|
Typically this hook would be connected to an individual link hook of a
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_ppp 4
|
1999-10-21 09:06:11 +00:00
|
|
|
type node.
|
|
|
|
.El
|
|
|
|
.Sh CONTROL MESSAGES
|
|
|
|
This node type supports the generic control messages, plus the following:
|
|
|
|
.Bl -tag -width foo
|
|
|
|
.It Dv NGM_ASYNC_CMD_GET_STATS
|
|
|
|
This command returns a
|
|
|
|
.Dv "struct ng_async_stat"
|
|
|
|
containing node statistics for packet, octet, and error counts.
|
|
|
|
.It Dv NGM_ASYNC_CMD_CLR_STATS
|
|
|
|
Clears the node statistics.
|
|
|
|
.It Dv NGM_ASYNC_CMD_SET_CONFIG
|
|
|
|
Sets the node configuration, which is described by a
|
|
|
|
.Dv "struct ng_async_cfg" :
|
|
|
|
.Bd -literal -offset 4n
|
|
|
|
struct ng_async_cfg {
|
|
|
|
u_char enabled; /* Turn encoding on/off */
|
2012-02-12 18:29:56 +00:00
|
|
|
uint16_t amru; /* Max receive async frame len */
|
|
|
|
uint16_t smru; /* Max receive sync frame len */
|
|
|
|
uint32_t accm; /* ACCM encoding */
|
1999-10-21 09:06:11 +00:00
|
|
|
};
|
|
|
|
.Ed
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Dv enabled
|
|
|
|
field enables or disables all encoding/decoding functions (default disabled).
|
1999-12-21 01:25:21 +00:00
|
|
|
When disabled, the node operates in simple
|
|
|
|
.Dq pass through
|
|
|
|
mode.
|
1999-11-19 04:30:26 +00:00
|
|
|
The
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv amru
|
|
|
|
and
|
|
|
|
.Dv smru
|
1999-11-19 04:30:26 +00:00
|
|
|
fields are the asynchronous and synchronous MRU (maximum receive unit) values,
|
2004-07-03 18:29:24 +00:00
|
|
|
respectively.
|
|
|
|
These both default to 1600; note that the async MRU
|
1999-10-21 09:06:11 +00:00
|
|
|
applies to the incoming frame length after asynchronous decoding.
|
1999-11-19 04:30:26 +00:00
|
|
|
The
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv accm
|
1999-11-19 04:30:26 +00:00
|
|
|
field is the asynchronous character control map, which controls the escaping
|
1999-10-21 09:06:11 +00:00
|
|
|
of characters 0x00 thorough 0x1f (default 0xffffffff).
|
|
|
|
.It Dv NGM_ASYNC_CMD_GET_CONFIG
|
|
|
|
This command returns the current configuration structure.
|
|
|
|
.El
|
|
|
|
.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 ,
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_ppp 4 ,
|
|
|
|
.Xr ng_tty 4 ,
|
|
|
|
.Xr ngctl 8
|
1999-10-21 09:06:11 +00:00
|
|
|
.Rs
|
|
|
|
.%A W. Simpson
|
|
|
|
.%T "PPP in HDLC-link Framing"
|
|
|
|
.%O RFC 1662
|
|
|
|
.Re
|
1999-11-19 04:30:26 +00:00
|
|
|
.Rs
|
|
|
|
.%A W. Simpson
|
|
|
|
.%T "The Point-to-Point Protocol (PPP)"
|
|
|
|
.%O RFC 1661
|
|
|
|
.Re
|
1999-12-21 01:25:21 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
node type was implemented in
|
|
|
|
.Fx 4.0 .
|
|
|
|
.Sh AUTHORS
|
2000-10-26 15:30:44 +00:00
|
|
|
.An Archie Cobbs Aq archie@FreeBSD.org
|