freebsd-dev/share/man/man4/ng_sppp.4
2004-05-16 14:41:20 +00:00

152 lines
3.8 KiB
Groff

.\" Copyright (C) 2003-2004 Cronyx Engineering.
.\" Copyright (C) 2003-2004 Roman Kurakin <rik@cronyx.ru>
.\"
.\" This software is distributed with NO WARRANTIES, not even the implied
.\" warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.\"
.\" Authors grant any other persons or organisations a permission to use,
.\" modify and redistribute this software in source and binary forms,
.\" as long as this message is kept with the software, all derivative
.\" works or modified versions.
.\"
.\" Cronyx Id: ng_sppp.4,v 1.1.2.3 2004/03/30 14:28:34 rik Exp $
.\" $FreeBSD$
.\"
.Dd March 29, 2004
.Dt NG_SPPP 4
.Os
.Sh NAME
.Nm ng_sppp
.Nd sppp netgraph node type
.Sh SYNOPSIS
.In netgraph/ng_sppp.h
.Sh DESCRIPTION
An
.Nm ng_sppp
node is a
.Xr netgraph 4
interface to the original
.Xr sppp 4
network module for synchronous lines. Currently
.Xr sppp 4
supports PPP and Cisco HDLC protocol.
An
.Nm ng_sppp
node could be considered as an alternative kernel mode ppp
implementation to
.Xr mpd ports +
.Xr ng_ppp 4
and as an alternative to
.Xr ng_cisco 4
node.
While having less features than mpd +
.Xr ng_ppp 4 ,
it is significantly easier to use in the majority of simple configurations
and allows the administrator to not install the mpd port.
With
.Nm ng_sppp
you don't need any other nodes, not even an
.Xr ng_iface 4
node.
When an
.Nm ng_sppp
node is created, a new interface appears which is accessible via
.Xr ifconfig 8 .
.Nm ng_sppp
node interfaces are named
.Dv sppp0 ,
.Dv sppp1 ,
etc.
When a node is shutdown, the corresponding interface is removed
and the interface name becomes available for reuse by future
.Nm ng_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
.Nm ng_sppp
node allows drivers written to the old sppp interface to be rewritten using the
newer more powerful
.Xr netgraph 4
interface and still behave in a compatible manner without supporting both
network modules.
.Pp
An
.Nm ng_sppp
node has a single hook named downstream. Usually it is connected directly to
a device driver hook.
.Pp
.Nm ng_sppp
nodes support the Berkeley Packet Filter (BPF).
.Sh HOOKS
This node type supports the following hooks:
.Pp
.Bl -tag -width abcdefghijklmnop
.It Dv downstream
The connection to the synchronous line.
.El
.Sh CONTROL MESSAGES
This node type supports the generic control messages, plus the following:
.Bl -tag -width foo
.It Dv NGM_IFACE_GET_IFNAME
Returns the name of the interface corresponding to this node in a
.Dv "struct ng_iface_ifname" :
.Bd -literal -offset 4n
struct ng_iface_ifname {
char ngif_name[NG_SPPP_IFACE_NAME_MAX + 1];
};
.Ed
.El
.Sh SHUTDOWN
This node shuts down upon receipt of a
.Dv NGM_SHUTDOWN
control message. The associated interface is removed and becomes available
for use by future
.Nm ng_sppp
nodes.
.Pp
Unlike most other node types and like
.Xr ng_iface 4
does, an
.Nm ng_sppp
node does
.Em not
go away when all hooks have been disconnected; rather, and explicit
.Dv NGM_SHUTDOWN
control message is required.
.Sh EXAMPLES
For example, if you have
.Xr cx 4 device, you could run PPP over it with just one command:
.Pp
ngctl mkpeer cx0: sppp rawdata downstream
.Pp
Now you have sppp0 interface (if this is a first sppp node) which can be
managed via
.Xr ifconfig 4 as a usual network interface,
or via
.Xr spppcontrol 8 as a sppp interface.
.Sh SEE ALSO
.Xr cx 4 ,
.Xr bpf 4 ,
.Xr sppp 4 ,
.Xr netgraph 4 ,
.Xr ng_cisco 4 ,
.Xr ng_iface 4 ,
.Xr ng_ppp 4 ,
.Xr ifconfig 8 ,
.Xr ngctl 8,
.Xr spppcontrol 8
.Pp
For complex networking topologies you may want to look at
.Xr mpd ports .
.Sh HISTORY
The
.Nm ng_sppp
node type was implemented for
.Fx 5.0 .
It was included to the system since
.Fx 5.3 .
.Sh AUTHOR
.An Copyright (C) 2003-2004 Roman Kurakin Aq rik@cronyx.ru