Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
NG_SPPP(4)	       FreeBSD Kernel Interfaces Manual		    NG_SPPP(4)

     ng_sppp --	sppp netgraph node type

     #include <netgraph/ng_sppp.h>

     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 ker-
     nel mode PPP implementation to net/mpd port + ng_ppp(4), and as an	alter-
     native 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 ac-
     cessible 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).

     This node type supports the following hooks:

     downstream	 The connection	to the synchronous line.

     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.

     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.

     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.

     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.

     The sppp node type	was implemented	for FreeBSD 5.0.  It was included to
     the system	since FreeBSD 5.3.

     Copyright (C) 2003-2004 Roman Kurakin <>

FreeBSD	13.0		       February	3, 2005			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help