1 .\" $FreeBSD: src/share/man/man4/tap.4,v 1.1.2.7 2002/04/16 23:59:28 trhodes Exp $
2 .\" $DragonFly: src/share/man/man4/tap.4,v 1.6 2006/10/14 23:46:23 swildner Exp $
10 .Nd Ethernet tunnel software network interface
16 interface is a software loopback mechanism that can be loosely
17 described as the network interface analog of the
21 does for network interfaces what the
23 driver does for terminals.
29 driver, provides two interfaces: an interface like the usual facility
31 (an Ethernet network interface in the case of
35 and a character-special device
39 The network interfaces are named
42 etc, and each one supports the usual Ethernet network-interface
48 and thus can be used with
50 like any other Ethernet interface. When the system chooses to transmit
51 an Ethernet frame on the network interface, the frame can be read from
56 writing an Ethernet frame to the control device generates an input frame on
57 the network interface, as if the
59 hardware had just received it.
61 The Ethernet tunnel device, normally
62 .Pa /dev/tap Ns Sy N ,
64 (it cannot be opened if it is already open)
65 and is restricted to the super-user.
68 call will return an error
70 if the interface is not
72 Once the interface is ready,
74 will return an Ethernet frame if one is available; if not, it will
75 either block until one is or return
77 depending on whether non-blocking I/O has been enabled. If the frame
78 is longer than is allowed for in the buffer passed to
80 the extra data will be silently dropped.
84 call passes an Ethernet frame in to be
86 on the pseudo-interface. Each
88 call supplies exactly one frame; the frame length is taken from the
89 amount of data provided to
91 Writes will not block; if the frame cannot be accepted
92 for a transient reason
93 (e.g., no buffer space available),
94 it is silently dropped; if the reason is not transient
95 (e.g., frame too large),
101 .In net/tap/if_tap.h ) :
102 .Bl -tag -width ".Dv VMIO_SIOCSETMACADDR"
104 The argument should be a pointer to an
106 this sets the internal debugging variable to that value. What, if
107 anything, this variable controls is not documented here; see the source
110 The argument should be a pointer to an
112 this stores the internal debugging variable's value into it.
114 Turn non-blocking I/O for reads off or on, according as the argument
116 value is or isn't zero
117 (Writes are always nonblocking).
119 Turn asynchronous I/O for reads
122 when data is available to be read)
123 off or on, according as the argument
125 value is or isn't zero.
127 If any frames are queued to be read, store the size of the first one into the argument
129 otherwise, store zero.
131 Set the process group to receive
133 signals, when asynchronous I/O is enabled, to the argument
137 Retrieve the process group value for
139 signals into the argument
143 Retrieve the Media Access Control
147 side. This command is used by the VMware port and expected to be executed on
148 descriptor, associated with control device
150 .Pa /dev/vmnet Ns Sy N
152 .Pa /dev/tap Ns Sy N ) .
155 which is passed as the argument, is expected to have enough space to store
158 address. At the open time both
163 addresses are the same, so this command could be used to retrieve the
168 Set the Media Access Control
172 side. This command is used by VMware port and expected to be executed on
173 a descriptor, associated with control device
175 .Pa /dev/vmnet Ns Sy N ) .
178 The control device also supports
180 for read; selecting for write is pointless, and always succeeds, since
181 writes are always non-blocking.
183 On the last close of the data device, the interface is
186 .Dq ifconfig tap Ns Sy N No down )
187 unless the devices is a
190 All queued frames are thrown away. If the interface is up when the data
191 device is not open, output frames are thrown away rather than
192 letting them pile up.
196 device is also can be used with the
198 port as a replacement
201 device driver. The driver uses the minor number
208 minor numbers begin at
216 unit number. In this case control device is expected to be
217 .Pa /dev/vmnet Ns Sy N ,
218 and network interface will be
224 themselves down when the
225 control device is closed. Everything else is the same.
227 In addition to the above mentioned,
229 calls, there is one additional one for the VMware port.
230 .Bl -tag -width ".Dv VMIO_SIOCSETMACADDR"
231 .It Dv VMIO_SIOCSIFFLAGS