NAME
ng_sppp —
sppp netgraph node type
SYNOPSIS
#include
<netgraph/ng_sppp.h>
DESCRIPTION
An sppp node is a
netgraph(4) interface to the original
sppp(4) network module for synchronous lines. Currently,
sppp(4) supports PPP and Cisco HDLC protocols. An
sppp node could be considered as an alternative
kernel mode PPP implementation to net/mpd port +
ng_ppp(4), and as an alternative to
ng_cisco(4) node. While having less features than
net/mpd +
ng_ppp(4), it is significantly easier to use in the majority of
simple configurations, and allows the administrator to not install the
net/mpd port. With sppp you
do not need any other nodes, not even an
ng_iface(4) node. When an sppp node is
created, a new interface appears which is accessible via
ifconfig(8). Network interfaces corresponding to
sppp nodes are named sppp0,
sppp1, etc. When a node is shut down, the
corresponding interface is removed, and the interface name becomes available
for reuse by future sppp nodes. New nodes always
take the first unused interface. The node itself is assigned the same name
as its interface, unless the name already exists, in which case the node
remains unnamed. The sppp node allows drivers
written to the old
sppp(4) interface to be rewritten using the newer more powerful
netgraph(4) interface, and still behave in a compatible manner
without supporting both network modules.
An sppp node has a single hook named
downstream. Usually it is connected directly to a
device driver hook.
The sppp nodes support the Berkeley Packet
Filter, bpf(4).
HOOKS
This node type supports the following hooks:
- downstream
- The connection to the synchronous line.
CONTROL MESSAGES
This node type supports the generic control messages, plus the following:
NGM_SPPP_GET_IFNAME(getifname)- Returns the name of the associated interface as a
NUL-terminated ASCII string. Normally this is the same as the name of the node.
SHUTDOWN
This node shuts down upon receipt of a
NGM_SHUTDOWN control message. The associated
interface is removed and becomes available for use by future
sppp nodes.
Unlike most other node types and like
ng_iface(4) does, an sppp node does
not go away when all
hooks have been disconnected; rather, an explicit
NGM_SHUTDOWN control message is required.
EXAMPLES
For example, if you have the cx(4) device, you could run PPP over it with just one command:
ngctl mkpeer cx0: sppp rawdata
downstreamNow you have the sppp0 interface (if this
was the first sppp node) which can be accessed via
ifconfig(8) as a normal network interface, or via
spppcontrol(8) as an
sppp(4) interface.
SEE ALSO
bpf(4), cx(4), netgraph(4), ng_cisco(4), ng_iface(4), ng_ppp(4), sppp(4), ifconfig(8), ngctl(8), spppcontrol(8)
For complex networking topologies you may want to look at net/mpd port.
HISTORY
The sppp node type was implemented for
FreeBSD 5.0. It was included to the system since
FreeBSD 5.3.
AUTHORS
Copyright (C) 2003-2004 Roman Kurakin <rik@cronyx.ru>