ng_cisco(4)
NAME
ng_cisco - Cisco HDLC protocol netgraph node type
SYNOPSIS
#include <sys/types.h> #include <netinet/in.h> #include <netgraph/ng_cisco.h>
DESCRIPTION
- The cisco node type performs encapsulation and de-encapsula
- tion 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 proto
- col. There is also a ``keep alive'' and an ``inquire'' capability.
- The downstream hook should connect to the synchronous line.
- On the other side of the node are the inet, inet6, atalk, and ipx hooks,
- which transmit and receive raw IP, IPv6, AppleTalk, and IPX packets,
- respectively. Typically these hooks would connect to the corresponding
- hooks on an ng_iface(4) type node.
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 be
- cause the protocol includes an ``inquire'' packet which we must be prepared
- to answer. There are two ways to accomplish this, manually and automat
- ically.
- Whenever such an inquire packet is received, the node sends
- a NGM_CISCO_GET_IPADDR control message to the peer node con
- nected to the inet hook (if any). If the peer responds, then that re
- sponse is used. This is the automatic method.
- 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 NGM_CISCO_SET_IPADDR message, and this is the manual
- method.
- If the inet hook is connected to the inet hook of an
- ng_iface(4) node, as is usually the case, then configuration is automatic as the
- ng_iface(4) understands the NGM_CISCO_GET_IPADDR message.
HOOKS
This node type supports the following hooks:
downstream The connection to the synchronous line.
inet IP hook.
inet6 IPv6 hook.
atalk AppleTalk hook.
ipx IPX hook
CONTROL MESSAGES
- This node type supports the generic control messages, plus
- the following:
- NGM_CISCO_SET_IPADDR
- This command takes an array of two struct in_addr argu
- ments. The first is the IP address of the corresponding interface
- and the second is the netmask.
- NGM_CISCO_GET_IPADDR
- This command returns the IP configuration in the same
- format used by NGM_CISCO_SET_IPADDR. This command is also sent by
- this node type to the inet peer whenever an IP address inquiry packet
- is received.
- NGM_CISCO_GET_STATUS
- Returns a struct ngciscostat:
struct ngciscostat {u_int32_t seq_retries; /* # unack'd retries */ u_int32_t keepalive_period; /* in seconds */};
SHUTDOWN
- This node shuts down upon receipt of a NGM_SHUTDOWN control
- message, or when all hooks have been disconnected.
SEE ALSO
netgraph(4), ng_iface(4), ngctl(8)
- D. Perkins, Requirements for an Internet Standard
- Point-to-Point Protocol, RFC 1547.
LEGAL
Cisco is a trademark of Cisco Systems, Inc.
HISTORY
The ng_cisco node type was implemented in FreeBSD 4.0.
AUTHORS
Julian Elischer <julian@FreeBSD.org>,
Archie Cobbs <archie@FreeBSD.org>BUGS
- Not all of the functionality has been implemented. For ex
- ample, the node does not support querying the remote end for its IP address
- and netmask.
- BSD January 19, 1999