Provided by: freebsd-manpages_12.2-1_all bug


     ng_gif — generic tunnel interface netgraph node type


     #include <netgraph/ng_gif.h>


     The ng_gif netgraph node type allows gif(4) interfaces to interact with the netgraph(4)
     networking subsystem.  Once the ng_gif module is loaded in the kernel, a node is
     automatically created for each gif(4) interface in the system.  Each node will attempt to
     name itself with the same name as the associated interface.  All ng_gif nodes are persistent
     for as long as the interface itself exists.

     Two hooks are supported: lower and orphans.  The hook name divert may be used as an alias
     for lower, and is provided for compatibility with ng_ether(4).  In reality the two names
     represent the same hook.

     The lower hook is a connection to the raw gif(4) device.  When connected, all incoming
     packets are diverted out this hook.  Writing to this hook results in a raw encapsulated
     packet being transmitted by the device.  Normal outgoing packets are not affected by lower
     being connected.

     The orphans hook is equivalent to lower, except that only unrecognized packets (that would
     otherwise be discarded) are written to the hook, and normal incoming traffic is unaffected.
     At most one of orphans and lower may be connected at any time.

     In all cases, frames are raw packets with the address family of the packet attached to the

     When no hooks are connected, packets flow normally upwards and downwards.


     This node type supports the following hooks:

     lower    Connection to the lower device link layer.

     orphans  Like lower, but only receives unrecognized packets.


     This node type supports only the generic control messages.


     This command dumps all unrecognized packets received by the gif0 interface to standard
     output decoded in hex and ASCII:

           nghook -a gif0: orphans


     gif(4), netgraph(4), netintro(4), ifconfig(8), ngctl(8), nghook(8)


     Brooks Davis <>