1.\" Copyright 2000 The Aerospace Corporation. All rights reserved. 2.\" 3.\" Redistribution and use in source and binary forms, with or without 4.\" modification, are permitted provided that the following conditions 5.\" are met: 6.\" 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions, and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions, and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. The name of The Aerospace Corporation may not be used to endorse or 13.\" promote products derived from this software. 14.\" 15.\" THIS SOFTWARE IS PROVIDED BY THE AEROSPACE CORPORATION "AS IS" AND 16.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AEROSPACE CORPORATION BE LIABLE FOR 19.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25.\" SUCH DAMAGE. 26.\" 27.\" Author: Brooks Davis <brooks@FreeBSD.org> 28.\" 29.\" $FreeBSD$ 30.\" 31.Dd September 18, 2001 32.Dt NG_GIF 4 33.Os 34.Sh NAME 35.Nm ng_gif 36.Nd generic tunnel interface netgraph node type 37.Sh SYNOPSIS 38.In netgraph/ng_gif.h 39.Sh DESCRIPTION 40The 41.Nm 42netgraph node type allows 43.Xr gif 4 44interfaces to interact with 45the 46.Xr netgraph 4 47networking subsystem. 48Once the 49.Nm 50module is loaded in the kernel, a node is automatically created 51for each 52.Xr gif 4 53interface in the system. 54Each node will attempt to name itself with the same name 55as the associated interface. 56All 57.Nm 58nodes are persistent for as long as the interface itself exists. 59.Pp 60Two hooks are supported: 61.Dv lower 62and 63.Dv orphans . 64The hook name 65.Dv divert 66may be used as an alias for 67.Dv lower , 68and is provided for compatibility with 69.Xr ng_ether 4 . 70In reality the two names represent the same hook. 71.Pp 72The 73.Dv lower 74hook is a connection to the raw 75.Xr gif 4 76device. 77When connected, all incoming packets are diverted out this hook. 78Writing to this hook results in a raw encapsulated packet being transmitted 79by the device. 80Normal outgoing packets are not affected by 81.Dv lower 82being connected. 83.Pp 84The 85.Dv orphans 86hook is equivalent to 87.Dv lower , 88except that only unrecognized packets (that would otherwise be discarded) 89are written to the hook, and normal incoming traffic is unaffected. 90At most one of 91.Dv orphans 92and 93.Dv lower 94may be connected at any time. 95.Pp 96In all cases, frames are raw packets with the address family of the 97packet attached to the front. 98.Pp 99When no hooks are connected, packets flow normally upwards and downwards. 100.Sh HOOKS 101This node type supports the following hooks: 102.Pp 103.Bl -tag -width ".Dv orphans" 104.It Dv lower 105Connection to the lower device link layer. 106.It Dv orphans 107Like 108.Dv lower , 109but only receives unrecognized packets. 110.El 111.Sh CONTROL MESSAGES 112This node type supports only the generic control messages. 113.Sh EXAMPLES 114This command dumps all unrecognized packets received by the 115.Li gif0 116interface to standard output decoded in hex and ASCII: 117.Pp 118.Dl "nghook -a gif0: orphans" 119.Sh SEE ALSO 120.Xr gif 4 , 121.Xr netgraph 4 , 122.Xr netintro 4 , 123.Xr ifconfig 8 , 124.Xr ngctl 8 , 125.Xr nghook 8 126.Sh AUTHORS 127.An Brooks Davis Aq brooks@FreeBSD.org 128