xref: /openbsd/sys/net/if_tun.h (revision 4e428664)
1*4e428664Snate /*	$OpenBSD: if_tun.h,v 1.11 2002/12/06 15:58:49 nate Exp $	*/
2df930be7Sderaadt 
3df930be7Sderaadt /*
4*4e428664Snate  * Copyright (c) 1988, Julian Onions <Julian.Onions@nexor.co.uk>
5df930be7Sderaadt  * Nottingham University 1987.
6*4e428664Snate  * All rights reserved.
7df930be7Sderaadt  *
8*4e428664Snate  * Redistribution and use in source and binary forms, with or without
9*4e428664Snate  * modification, are permitted provided that the following conditions
10*4e428664Snate  * are met:
11*4e428664Snate  * 1. Redistributions of source code must retain the above copyright
12*4e428664Snate  *    notice, this list of conditions and the following disclaimer.
13*4e428664Snate  * 2. Redistributions in binary form must reproduce the above copyright
14*4e428664Snate  *    notice, this list of conditions and the following disclaimer in the
15*4e428664Snate  *    documentation and/or other materials provided with the distribution.
16df930be7Sderaadt  *
17*4e428664Snate  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18*4e428664Snate  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19*4e428664Snate  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20*4e428664Snate  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21*4e428664Snate  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22*4e428664Snate  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23*4e428664Snate  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24*4e428664Snate  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25*4e428664Snate  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26*4e428664Snate  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27*4e428664Snate  */
28*4e428664Snate 
29*4e428664Snate /*
30df930be7Sderaadt  * This driver takes packets off the IP i/f and hands them up to a
31df930be7Sderaadt  * user process to have it's wicked way with. This driver has it's
32df930be7Sderaadt  * roots in a similar driver written by Phil Cockcroft (formerly) at
33df930be7Sderaadt  * UCL. This driver is based much more on read/write/select mode of
34df930be7Sderaadt  * operation though.
35df930be7Sderaadt  */
36df930be7Sderaadt 
37df930be7Sderaadt #ifndef _NET_IF_TUN_H_
38df930be7Sderaadt #define _NET_IF_TUN_H_
39df930be7Sderaadt 
404a9bdd9fSmickey #include <sys/ioccom.h>
414a9bdd9fSmickey 
42df930be7Sderaadt #define	TUN_OPEN	0x0001
43df930be7Sderaadt #define	TUN_INITED	0x0002
44df930be7Sderaadt #define	TUN_RCOLL	0x0004
45df930be7Sderaadt #define	TUN_IASET	0x0008
46df930be7Sderaadt #define	TUN_DSTADDR	0x0010
47df930be7Sderaadt #define	TUN_RWAIT	0x0040
48df930be7Sderaadt #define	TUN_ASYNC	0x0080
49df930be7Sderaadt #define	TUN_NBIO	0x0100
504a9bdd9fSmickey #define TUN_BRDADDR	0x0200
514a9bdd9fSmickey #define TUN_STAYUP	0x0400
52df930be7Sderaadt 
53df930be7Sderaadt #define	TUN_READY	(TUN_OPEN | TUN_INITED | TUN_IASET)
54df930be7Sderaadt 
55df930be7Sderaadt /* Maximum packet size */
567221e718Smickey #define	TUNMTU		3000
57df930be7Sderaadt 
58d44abe74Sbrian /* Maximum receive packet size (hard limit) */
59d44abe74Sbrian #define TUNMRU          16384
60d44abe74Sbrian 
61df930be7Sderaadt /* ioctl's for get/set debug */
627221e718Smickey #define	TUNSDEBUG	_IOW('t', 89, int)
637221e718Smickey #define	TUNGDEBUG	_IOR('t', 90, int)
647221e718Smickey 
657221e718Smickey /* iface info */
660c29d253Sderaadt struct tuninfo {
677221e718Smickey 	u_int	mtu;
687221e718Smickey 	u_short	type;
694a9bdd9fSmickey 	u_short	flags;
707221e718Smickey 	u_int	baudrate;
717221e718Smickey };
727221e718Smickey #define TUNSIFINFO	_IOW('t', 91, struct tuninfo)
737221e718Smickey #define TUNGIFINFO	_IOR('t', 92, struct tuninfo)
74df930be7Sderaadt 
754be1f690Sangelos /* ioctl for changing the broadcast/point-to-point status */
764be1f690Sangelos #define TUNSIFMODE      _IOW('t', 93, int)
77e04c8cc2Sangelos #endif /* _NET_IF_TUN_H_ */
78