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

FreeBSD Manual Pages


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

     ng_iface -- interface netgraph node type

     #include <netgraph/ng_iface.h>

     An	iface node is both a netgraph node and a system	networking interface.
     When an iface node	is created, a new interface appears which is accessi-
     ble via ifconfig(8).  Iface node interfaces are named ng0,	ng1, etc.
     When a node is shutdown, the corresponding	interface is removed and the
     interface name becomes available for reuse	by future iface	nodes; new
     nodes always take the first unused	interface.  The	node itself is as-
     signed the	same name as its interface, unless the name already exists, in
     which case	the node remains unnamed.

     An	iface node has a single	hook corresponding to each supported protocol.
     Packets transmitted via the interface flow	out the	corresponding proto-
     col-specific hook.	 Similarly, packets received on	a hook appear on the
     interface as packets received into	the corresponding protocol stack.  The
     currently supported protocols are IP and IPv6.

     An	iface node can be configured as	a point-to-point interface or a	broad-
     cast interface.  The configuration	can only be changed when the interface
     is	down.  The default mode	is point-to-point.

     Iface nodes support the Berkeley Packet Filter (BPF).

     This node type supports the following hooks:

     inet   Transmission and reception of IP packets.

     inet6  Transmission and reception of IPv6 packets.

     This node type supports the generic control messages, plus	the following:

     NGM_IFACE_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.

     NGM_IFACE_GET_IFINDEX (getifindex)
	  Returns the global index of the associated interface as a 32 bit in-

     NGM_IFACE_POINT2POINT (point2point)
	  Set the interface to point-to-point mode.  The interface must	not
	  currently be up.

     NGM_IFACE_BROADCAST (broadcast)
	  Set the interface to broadcast mode.	The interface must not cur-
	  rently be up.

     This node shuts down upon receipt of a NGM_SHUTDOWN control message.  The
     associated	interface is removed and becomes available for use by future
     iface nodes.

     Unlike most other node types, an iface node does not go away when all
     hooks have	been disconnected; rather, and explicit	NGM_SHUTDOWN control
     message is	required.

ALTQ Support
     The ng_iface interface supports ALTQ bandwidth management feature.	 How-
     ever, ng_iface is a special case, since it	is not a physical interface
     with limited bandwidth.  One should not turn ALTQ on ng_iface if the lat-
     ter corresponds to	some tunneled connection, e.g. PPPoE or	PPTP.  In this
     case, ALTQ	should be configured on	the interface that is used to transmit
     the encapsulated packets.	In case	when your graph	ends up	with some kind
     of	serial line, either synchronous	or modem, the ng_iface is the right
     place to turn ALTQ	on.

     ng_iface supports nesting,	a configuration	when traffic of	one ng_iface
     interface flows through the other.	 The default maximum allowed nesting
     level is 2.  It can be changed at runtime setting sysctl(8) variable
     net.graph.iface.max_nesting to the	desired	level of nesting.

     altq(4), bpf(4), netgraph(4), ng_cisco(4),	ifconfig(8), ngctl(8) sysctl

     The iface node type was implemented in FreeBSD 4.0.

     Archie Cobbs <>

FreeBSD	13.0			 July 31, 2020			  FreeBSD 13.0


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

home | help