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