152 lines
3.9 KiB
Groff
152 lines
3.9 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
|