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
downstream
Now 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⟩.