linux-bk/include/linux/if_tun.h
<<
>>
Prefs
   1/*
   2 *  Universal TUN/TAP device driver.
   3 *  Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com>
   4 *
   5 *  This program is free software; you can redistribute it and/or modify
   6 *  it under the terms of the GNU General Public License as published by
   7 *  the Free Software Foundation; either version 2 of the License, or
   8 *  (at your option) any later version.
   9 *
  10 *  This program is distributed in the hope that it will be useful,
  11 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13 *  GNU General Public License for more details.
  14 *
  15 *  $Id: if_tun.h,v 1.2 2001/06/01 18:39:47 davem Exp $
  16 */
  17
  18#ifndef __IF_TUN_H
  19#define __IF_TUN_H
  20
  21/* Uncomment to enable debugging */
  22/* #define TUN_DEBUG 1 */
  23
  24#ifdef __KERNEL__
  25
  26#ifdef TUN_DEBUG
  27#define DBG  if(tun->debug)printk
  28#define DBG1 if(debug==2)printk
  29#else
  30#define DBG( a... )
  31#define DBG1( a... )
  32#endif
  33
  34struct tun_struct {
  35        struct list_head        list;
  36        unsigned long           flags;
  37        int                     attached;
  38        uid_t                   owner;
  39
  40        wait_queue_head_t       read_wait;
  41        struct sk_buff_head     readq;
  42
  43        struct net_device       *dev;
  44        struct net_device_stats stats;
  45
  46        struct fasync_struct    *fasync;
  47
  48        unsigned long if_flags;
  49        u8 dev_addr[ETH_ALEN];
  50        u32 chr_filter[2];
  51        u32 net_filter[2];
  52
  53#ifdef TUN_DEBUG        
  54        int debug;
  55#endif  
  56};
  57
  58#endif /* __KERNEL__ */
  59
  60/* Read queue size */
  61#define TUN_READQ_SIZE  500
  62
  63/* TUN device flags */
  64#define TUN_TUN_DEV     0x0001  
  65#define TUN_TAP_DEV     0x0002
  66#define TUN_TYPE_MASK   0x000f
  67
  68#define TUN_FASYNC      0x0010
  69#define TUN_NOCHECKSUM  0x0020
  70#define TUN_NO_PI       0x0040
  71#define TUN_ONE_QUEUE   0x0080
  72#define TUN_PERSIST     0x0100  
  73
  74/* Ioctl defines */
  75#define TUNSETNOCSUM  _IOW('T', 200, int) 
  76#define TUNSETDEBUG   _IOW('T', 201, int) 
  77#define TUNSETIFF     _IOW('T', 202, int) 
  78#define TUNSETPERSIST _IOW('T', 203, int) 
  79#define TUNSETOWNER   _IOW('T', 204, int)
  80
  81/* TUNSETIFF ifr flags */
  82#define IFF_TUN         0x0001
  83#define IFF_TAP         0x0002
  84#define IFF_NO_PI       0x1000
  85#define IFF_ONE_QUEUE   0x2000
  86
  87struct tun_pi {
  88        unsigned short flags;
  89        unsigned short proto;
  90};
  91#define TUN_PKT_STRIP   0x0001
  92
  93#endif /* __IF_TUN_H */
  94
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.