1999-10-21 09:06:11 +00:00
|
|
|
.\" 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_cisco.8,v 1.5 1999/01/25 23:46:26 archie Exp $
|
|
|
|
.\"
|
|
|
|
.Dd January 19, 1999
|
2000-05-04 17:54:37 +00:00
|
|
|
.Dt NG_CISCO 4
|
1999-12-21 01:25:21 +00:00
|
|
|
.Os FreeBSD
|
1999-10-21 09:06:11 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm ng_cisco
|
|
|
|
.Nd Cisco HDLC protocol netgraph node type
|
|
|
|
.Sh SYNOPSIS
|
1999-11-30 02:45:32 +00:00
|
|
|
.Fd #include <netinet/in.h>
|
1999-10-21 09:06:11 +00:00
|
|
|
.Fd #include <netgraph/ng_cisco.h>
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm cisco
|
|
|
|
node type performs encapsulation and de-encapsulation of packets
|
|
|
|
using the Cisco HDLC protocol. This is a fairly simple
|
|
|
|
protocol for the transmission of packets across
|
|
|
|
high speed synchronous lines. Each packet is prepended with
|
|
|
|
an Ethertype, indicating the protocol. There is also a
|
1999-12-21 01:25:21 +00:00
|
|
|
.Dq keep alive
|
|
|
|
and an
|
|
|
|
.Dq inquire
|
|
|
|
capability.
|
1999-10-21 09:06:11 +00:00
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Dv downstream
|
|
|
|
hook should connect to the synchronous line. On the other side
|
|
|
|
of the node are the
|
|
|
|
.Dv inet ,
|
2000-05-10 16:54:40 +00:00
|
|
|
.Dv inet6 ,
|
1999-10-21 09:06:11 +00:00
|
|
|
.Dv atalk ,
|
|
|
|
and
|
|
|
|
.Dv ipx
|
2000-05-10 16:54:40 +00:00
|
|
|
hooks, which transmit and receive raw IP, IPv6, AppleTalk, and IPX packets,
|
1999-10-21 09:06:11 +00:00
|
|
|
respectively. Typically these hooks would connect to the corresponding
|
|
|
|
hooks on an
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_iface 4
|
1999-10-21 09:06:11 +00:00
|
|
|
type node.
|
|
|
|
.Sh IP Configuration
|
|
|
|
In order to function properly for IP traffic, the node must be informed
|
|
|
|
of the local IP address and netmask setting. This is because the protocol
|
1999-12-21 01:25:21 +00:00
|
|
|
includes an
|
|
|
|
.Dq inquire
|
|
|
|
packet which we must be prepared to answer.
|
1999-10-30 20:30:19 +00:00
|
|
|
There are two ways to accomplish this, manually and automatically.
|
1999-10-21 09:06:11 +00:00
|
|
|
.Pp
|
|
|
|
Whenever such an inquire packet is received, the node sends a
|
|
|
|
.Dv NGM_CISCO_GET_IPADDR
|
|
|
|
control message to the peer node connected to the
|
|
|
|
.Dv inet
|
|
|
|
hook (if any).
|
|
|
|
If the peer responds, then that response is used. This is the automatic method.
|
|
|
|
.Pp
|
|
|
|
If the peer does not respond, the node falls back on its cached value
|
|
|
|
for the IP address and netmask. This cached value can be set at any time
|
|
|
|
with a
|
|
|
|
.Dv NGM_CISCO_SET_IPADDR
|
|
|
|
message, and this is the manual method.
|
|
|
|
.Pp
|
|
|
|
If the
|
|
|
|
.Dv inet
|
|
|
|
hook is connected to the
|
|
|
|
.Dv inet
|
|
|
|
hook of an
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_iface 4
|
1999-10-21 09:06:11 +00:00
|
|
|
node, as is usually the case, then configuration is automatic as the
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_iface 4
|
1999-10-21 09:06:11 +00:00
|
|
|
understands the
|
|
|
|
.Dv NGM_CISCO_GET_IPADDR
|
|
|
|
message.
|
|
|
|
.Sh HOOKS
|
|
|
|
This node type supports the following hooks:
|
|
|
|
.Pp
|
|
|
|
.Bl -tag -width foobarbazio
|
|
|
|
.It Dv downstream
|
|
|
|
The connection to the synchronous line.
|
|
|
|
.It Dv inet
|
|
|
|
IP hook.
|
2000-05-10 16:54:40 +00:00
|
|
|
.It Dv inet6
|
|
|
|
IPv6 hook.
|
1999-10-21 09:06:11 +00:00
|
|
|
.It Dv atalk
|
|
|
|
AppleTalk hook.
|
|
|
|
.It Dv ipx
|
|
|
|
IPX hook
|
|
|
|
.El
|
|
|
|
.Sh CONTROL MESSAGES
|
|
|
|
This node type supports the generic control messages, plus the following:
|
|
|
|
.Bl -tag -width foo
|
|
|
|
.It Dv NGM_CISCO_SET_IPADDR
|
|
|
|
This command takes an array of two
|
|
|
|
.Dv "struct in_addr"
|
|
|
|
arguments. The first is the IP address of the corresponding interface
|
|
|
|
and the second is the netmask.
|
|
|
|
.It Dv NGM_CISCO_GET_IPADDR
|
|
|
|
This command returns the IP configuration in the same format used by
|
|
|
|
.Dv NGM_CISCO_SET_IPADDR .
|
|
|
|
This command is also
|
|
|
|
.Em sent
|
|
|
|
by this node type to the
|
|
|
|
.Dv inet
|
|
|
|
peer whenever an IP address inquiry packet is received.
|
|
|
|
.It Dv NGM_CISCO_GET_STATUS
|
|
|
|
Returns a
|
|
|
|
.Dv "struct ngciscostat" :
|
|
|
|
.Bd -literal -offset 4n
|
|
|
|
struct ngciscostat {
|
|
|
|
u_int32_t seq_retries; /* # unack'd retries */
|
|
|
|
u_int32_t keepalive_period; /* in seconds */
|
|
|
|
};
|
|
|
|
.Ed
|
|
|
|
.El
|
|
|
|
.Sh SHUTDOWN
|
|
|
|
This node shuts down upon receipt of a
|
|
|
|
.Dv NGM_SHUTDOWN
|
|
|
|
control message, or when all hooks have been disconnected.
|
|
|
|
.Sh BUGS
|
|
|
|
Not all of the functionality has been implemented. For example,
|
|
|
|
the node does not support querying the remote end for its IP address
|
|
|
|
and netmask.
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr netgraph 4 ,
|
2000-05-04 17:54:37 +00:00
|
|
|
.Xr ng_iface 4 ,
|
|
|
|
.Xr ngctl 8
|
1999-10-21 09:06:11 +00:00
|
|
|
.Rs
|
|
|
|
.%A D. Perkins
|
|
|
|
.%T "Requirements for an Internet Standard Point-to-Point Protocol"
|
|
|
|
.%O RFC 1547
|
|
|
|
.Re
|
|
|
|
.Sh LEGAL
|
1999-12-21 01:25:21 +00:00
|
|
|
.Tn Cisco
|
|
|
|
is a trademark of Cisco Systems, Inc.
|
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
node type was implemented in
|
|
|
|
.Fx 4.0 .
|
1999-10-21 09:06:11 +00:00
|
|
|
.Sh AUTHORS
|
1999-12-21 01:25:21 +00:00
|
|
|
.An Julian Elischer Aq julian@whistle.com ,
|
|
|
|
.An Archie Cobbs Aq archie@whistle.com
|