tap-win32/constants.h
6fbf66fa
 /*
6a6a068e
  *  TAP-Win32/TAP-Win64 -- A kernel driver to provide virtual tap
  *                         device functionality on Windows.
6fbf66fa
  *
6a6a068e
  *  This code was inspired by the CIPE-Win32 driver by Damion K. Wilson.
6fbf66fa
  *
d7fa38f2
  *  This source code is Copyright (C) 2002-2009 OpenVPN Technologies, Inc.,
6a6a068e
  *  and is released under the GPL version 2 (see below), however due
  *  to the extra costs of supporting Windows Vista, OpenVPN Solutions
  *  LLC reserves the right to change the terms of the TAP-Win32/TAP-Win64
  *  license for versions 9.1 and higher prior to the official release of
  *  OpenVPN 2.1.
6fbf66fa
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2
  *  as published by the Free Software Foundation.
  *
  *  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.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program (see the file COPYING included with this
  *  distribution); if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
 //====================================================================
 //                        Product and Version public settings
 //====================================================================
 
657ecf14
 #define PRODUCT_STRING PRODUCT_TAP_DEVICE_DESCRIPTION
6fbf66fa
 
 #define TAP_NDIS_MAJOR_VERSION 5
 #define TAP_NDIS_MINOR_VERSION 0
 
 //===========================================================
 // Driver constants
 //===========================================================
 
 #define ETHERNET_HEADER_SIZE     (sizeof (ETH_HEADER))
 #define ETHERNET_MTU             1500
 #define ETHERNET_PACKET_SIZE     (ETHERNET_MTU + ETHERNET_HEADER_SIZE)
 #define DEFAULT_PACKET_LOOKAHEAD (ETHERNET_PACKET_SIZE)
 
 #define NIC_MAX_MCAST_LIST 32  // Max length of multicast address list
 
 #define MINIMUM_MTU 576        // USE TCP Minimum MTU
 #define MAXIMUM_MTU 65536      // IP maximum MTU
 
 #define PACKET_QUEUE_SIZE   64 // tap -> userspace queue size
 #define IRP_QUEUE_SIZE      16 // max number of simultaneous i/o operations from userspace
7ea82610
 #define INJECT_QUEUE_SIZE   16 // DHCP/ARP -> tap injection queue
6fbf66fa
 
 #define TAP_LITTLE_ENDIAN      // affects ntohs, htonl, etc. functions