Blame view
include/linux/if_tun.h
3.41 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/* * Universal TUN/TAP device driver. * Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. |
1da177e4c Linux-2.6.12-rc2 |
14 15 16 17 |
*/ #ifndef __IF_TUN_H #define __IF_TUN_H |
a3edb0831 annotate tun |
18 |
#include <linux/types.h> |
f271b2cc7 tun: Fix/rewrite ... |
19 |
#include <linux/if_ether.h> |
994051625 tun: socket filte... |
20 |
#include <linux/filter.h> |
a3edb0831 annotate tun |
21 |
|
1da177e4c Linux-2.6.12-rc2 |
22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* Read queue size */ #define TUN_READQ_SIZE 500 /* TUN device flags */ #define TUN_TUN_DEV 0x0001 #define TUN_TAP_DEV 0x0002 #define TUN_TYPE_MASK 0x000f #define TUN_FASYNC 0x0010 #define TUN_NOCHECKSUM 0x0020 #define TUN_NO_PI 0x0040 #define TUN_ONE_QUEUE 0x0080 #define TUN_PERSIST 0x0100 |
f43798c27 tun: Allow GSO us... |
35 |
#define TUN_VNET_HDR 0x0200 |
1da177e4c Linux-2.6.12-rc2 |
36 37 38 39 40 41 42 |
/* Ioctl defines */ #define TUNSETNOCSUM _IOW('T', 200, int) #define TUNSETDEBUG _IOW('T', 201, int) #define TUNSETIFF _IOW('T', 202, int) #define TUNSETPERSIST _IOW('T', 203, int) #define TUNSETOWNER _IOW('T', 204, int) |
ff4cc3ac9 [TUNTAP]: Allow s... |
43 |
#define TUNSETLINK _IOW('T', 205, int) |
8c644623f [NET]: Allow grou... |
44 |
#define TUNSETGROUP _IOW('T', 206, int) |
07240fd09 tun: Interface to... |
45 |
#define TUNGETFEATURES _IOR('T', 207, unsigned int) |
f271b2cc7 tun: Fix/rewrite ... |
46 47 |
#define TUNSETOFFLOAD _IOW('T', 208, unsigned int) #define TUNSETTXFILTER _IOW('T', 209, unsigned int) |
e3b995569 tun: TUNGETIFF in... |
48 |
#define TUNGETIFF _IOR('T', 210, unsigned int) |
33dccbb05 tun: Limit amount... |
49 50 |
#define TUNGETSNDBUF _IOR('T', 211, int) #define TUNSETSNDBUF _IOW('T', 212, int) |
994051625 tun: socket filte... |
51 52 |
#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog) #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) |
d9d52b517 tun: add ioctl to... |
53 54 |
#define TUNGETVNETHDRSZ _IOR('T', 215, int) #define TUNSETVNETHDRSZ _IOW('T', 216, int) |
1da177e4c Linux-2.6.12-rc2 |
55 56 57 58 59 60 |
/* TUNSETIFF ifr flags */ #define IFF_TUN 0x0001 #define IFF_TAP 0x0002 #define IFF_NO_PI 0x1000 #define IFF_ONE_QUEUE 0x2000 |
f43798c27 tun: Allow GSO us... |
61 |
#define IFF_VNET_HDR 0x4000 |
f85ba7806 tun: add IFF_TUN_... |
62 |
#define IFF_TUN_EXCL 0x8000 |
1da177e4c Linux-2.6.12-rc2 |
63 |
|
5228ddc98 tun: TUNSETFEATUR... |
64 65 66 67 68 |
/* Features for GSO (TUNSETOFFLOAD). */ #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */ #define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */ #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */ |
e36aa25a5 tun: Allow tap de... |
69 |
#define TUN_F_UFO 0x10 /* I can handle UFO packets */ |
5228ddc98 tun: TUNSETFEATUR... |
70 |
|
f271b2cc7 tun: Fix/rewrite ... |
71 72 |
/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ #define TUN_PKT_STRIP 0x0001 |
1da177e4c Linux-2.6.12-rc2 |
73 |
struct tun_pi { |
f271b2cc7 tun: Fix/rewrite ... |
74 |
__u16 flags; |
a3edb0831 annotate tun |
75 |
__be16 proto; |
1da177e4c Linux-2.6.12-rc2 |
76 |
}; |
f271b2cc7 tun: Fix/rewrite ... |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
/* * Filter spec (used for SETXXFILTER ioctls) * This stuff is applicable only to the TAP (Ethernet) devices. * If the count is zero the filter is disabled and the driver accepts * all packets (promisc mode). * If the filter is enabled in order to accept broadcast packets * broadcast addr must be explicitly included in the addr list. */ #define TUN_FLT_ALLMULTI 0x0001 /* Accept all multicast packets */ struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ __u8 addr[0][ETH_ALEN]; }; |
1da177e4c Linux-2.6.12-rc2 |
92 |
|
05c2828c7 tun: export under... |
93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#ifdef __KERNEL__ #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) struct socket *tun_get_socket(struct file *); #else #include <linux/err.h> #include <linux/errno.h> struct file; struct socket; static inline struct socket *tun_get_socket(struct file *f) { return ERR_PTR(-EINVAL); } #endif /* CONFIG_TUN */ #endif /* __KERNEL__ */ |
1da177e4c Linux-2.6.12-rc2 |
107 |
#endif /* __IF_TUN_H */ |