Blame view

include/linux/if_tun.h 2.13 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  /*
   *  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.
   *
   *  $Id: if_tun.h,v 1.2 2001/06/01 18:39:47 davem Exp $
   */
  
  #ifndef __IF_TUN_H
  #define __IF_TUN_H
  
  /* Uncomment to enable debugging */
  /* #define TUN_DEBUG 1 */
  
  #ifdef __KERNEL__
  
  #ifdef TUN_DEBUG
  #define DBG  if(tun->debug)printk
  #define DBG1 if(debug==2)printk
  #else
  #define DBG( a... )
  #define DBG1( a... )
  #endif
  
  struct tun_struct {
  	struct list_head        list;
  	unsigned long 		flags;
  	int			attached;
  	uid_t			owner;
  
  	wait_queue_head_t	read_wait;
  	struct sk_buff_head	readq;
  
  	struct net_device	*dev;
  	struct net_device_stats	stats;
  
  	struct fasync_struct    *fasync;
  
  	unsigned long if_flags;
  	u8 dev_addr[ETH_ALEN];
  	u32 chr_filter[2];
  	u32 net_filter[2];
  
  #ifdef TUN_DEBUG	
  	int debug;
  #endif  
  };
  
  #endif /* __KERNEL__ */
  
  /* 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	
  
  /* 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   Mike Kershaw   [TUNTAP]: Allow s...
80
  #define TUNSETLINK    _IOW('T', 205, int)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
81
82
83
84
85
86
87
88
89
90
91
92
93
94
  
  /* TUNSETIFF ifr flags */
  #define IFF_TUN		0x0001
  #define IFF_TAP		0x0002
  #define IFF_NO_PI	0x1000
  #define IFF_ONE_QUEUE	0x2000
  
  struct tun_pi {
  	unsigned short flags;
  	unsigned short proto;
  };
  #define TUN_PKT_STRIP	0x0001
  
  #endif /* __IF_TUN_H */