blob: 9ed49f1b7ee4b89e354549931e621a9792dbd206 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __IF_TUN_H
13#define __IF_TUN_H
Ben Cheng4b29af02012-03-07 16:14:53 -080014
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080015#include <linux/types.h>
16#include <linux/if_ether.h>
17#include <linux/filter.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080018
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080019#define TUN_READQ_SIZE 500
Ben Cheng4b29af02012-03-07 16:14:53 -080020
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021#define TUN_TUN_DEV 0x0001
22#define TUN_TAP_DEV 0x0002
23#define TUN_TYPE_MASK 0x000f
Ben Cheng4b29af02012-03-07 16:14:53 -080024
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080025#define TUN_FASYNC 0x0010
26#define TUN_NOCHECKSUM 0x0020
27#define TUN_NO_PI 0x0040
28#define TUN_ONE_QUEUE 0x0080
29#define TUN_PERSIST 0x0100
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080030#define TUN_VNET_HDR 0x0200
Ben Cheng4b29af02012-03-07 16:14:53 -080031
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080032#define TUNSETNOCSUM _IOW('T', 200, int)
33#define TUNSETDEBUG _IOW('T', 201, int)
34#define TUNSETIFF _IOW('T', 202, int)
35#define TUNSETPERSIST _IOW('T', 203, int)
36#define TUNSETOWNER _IOW('T', 204, int)
37#define TUNSETLINK _IOW('T', 205, int)
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080038#define TUNSETGROUP _IOW('T', 206, int)
39#define TUNGETFEATURES _IOR('T', 207, unsigned int)
40#define TUNSETOFFLOAD _IOW('T', 208, unsigned int)
41#define TUNSETTXFILTER _IOW('T', 209, unsigned int)
42#define TUNGETIFF _IOR('T', 210, unsigned int)
43#define TUNGETSNDBUF _IOR('T', 211, int)
44#define TUNSETSNDBUF _IOW('T', 212, int)
45#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog)
46#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
47#define TUNGETVNETHDRSZ _IOR('T', 215, int)
48#define TUNSETVNETHDRSZ _IOW('T', 216, int)
Ben Cheng4b29af02012-03-07 16:14:53 -080049
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080050#define IFF_TUN 0x0001
51#define IFF_TAP 0x0002
52#define IFF_NO_PI 0x1000
53#define IFF_ONE_QUEUE 0x2000
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080054#define IFF_VNET_HDR 0x4000
55#define IFF_TUN_EXCL 0x8000
Ben Cheng4b29af02012-03-07 16:14:53 -080056
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080057#define TUN_F_CSUM 0x01
58#define TUN_F_TSO4 0x02
59#define TUN_F_TSO6 0x04
60#define TUN_F_TSO_ECN 0x08
61#define TUN_F_UFO 0x10
Ben Cheng4b29af02012-03-07 16:14:53 -080062
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080063#define TUN_PKT_STRIP 0x0001
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080064struct tun_pi {
65 __u16 flags;
66 __be16 proto;
67};
Ben Cheng4b29af02012-03-07 16:14:53 -080068
Dmitry Shmidtce69c5e2011-01-06 15:30:35 -080069#define TUN_FLT_ALLMULTI 0x0001
70struct tun_filter {
71 __u16 flags;
72 __u16 count;
73 __u8 addr[0][ETH_ALEN];
74};
Ben Cheng4b29af02012-03-07 16:14:53 -080075
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080076#endif
Ben Cheng4b29af02012-03-07 16:14:53 -080077