Files
@ bd21c8aa7237
Branch filter:
Location: vmkdrivers/vmkdrivers/src_9/drivers/net/vmxnet3/upt1_defs.h
bd21c8aa7237
3.0 KiB
text/x-chdr
ESXi-6.0.0b
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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | /*
* Copyright(c) 2007-2012 VMware, Inc. All rights reserved.
*
* This file is part of vmxnet3 VMKdriver program.
*
* 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 version 2 and no 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, GOOD TITLE or
* NON INFRINGEMENT. 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; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
/* upt1_defs.h
*
* Definitions for UPTv1
*
* Some of the defs are duplicated in vmkapi_net_upt.h, because
* vmkapi_net_upt.h cannot distribute with OSS yet and vmkapi headers can
* only include vmkapi headers. Make sure they are kept in sync!
*/
#ifndef _UPT1_DEFS_H
#define _UPT1_DEFS_H
#define UPT1_MAX_TX_QUEUES 64
#define UPT1_MAX_RX_QUEUES 64
#define UPT1_MAX_INTRS (UPT1_MAX_TX_QUEUES + UPT1_MAX_RX_QUEUES)
typedef
struct UPT1_TxStats {
uint64 TSOPktsTxOK; /* TSO pkts post-segmentation */
uint64 TSOBytesTxOK;
uint64 ucastPktsTxOK;
uint64 ucastBytesTxOK;
uint64 mcastPktsTxOK;
uint64 mcastBytesTxOK;
uint64 bcastPktsTxOK;
uint64 bcastBytesTxOK;
uint64 pktsTxError;
uint64 pktsTxDiscard;
}
UPT1_TxStats;
typedef
struct UPT1_RxStats {
uint64 LROPktsRxOK; /* LRO pkts */
uint64 LROBytesRxOK; /* bytes from LRO pkts */
/* the following counters are for pkts from the wire, i.e., pre-LRO */
uint64 ucastPktsRxOK;
uint64 ucastBytesRxOK;
uint64 mcastPktsRxOK;
uint64 mcastBytesRxOK;
uint64 bcastPktsRxOK;
uint64 bcastBytesRxOK;
uint64 pktsRxOutOfBuf;
uint64 pktsRxError;
}
UPT1_RxStats;
/* interrupt moderation level */
#define UPT1_IML_NONE 0 /* no interrupt moderation */
#define UPT1_IML_HIGHEST 7 /* least intr generated */
#define UPT1_IML_ADAPTIVE 8 /* adpative intr moderation */
/* values for UPT1_RSSConf.hashFunc */
#define UPT1_RSS_HASH_TYPE_NONE 0x0
#define UPT1_RSS_HASH_TYPE_IPV4 0x01
#define UPT1_RSS_HASH_TYPE_TCP_IPV4 0x02
#define UPT1_RSS_HASH_TYPE_IPV6 0x04
#define UPT1_RSS_HASH_TYPE_TCP_IPV6 0x08
#define UPT1_RSS_HASH_FUNC_NONE 0x0
#define UPT1_RSS_HASH_FUNC_TOEPLITZ 0x01
#define UPT1_RSS_MAX_KEY_SIZE 40
#define UPT1_RSS_MAX_IND_TABLE_SIZE 128
typedef
struct UPT1_RSSConf {
uint16 hashType;
uint16 hashFunc;
uint16 hashKeySize;
uint16 indTableSize;
uint8 hashKey[UPT1_RSS_MAX_KEY_SIZE];
uint8 indTable[UPT1_RSS_MAX_IND_TABLE_SIZE];
}
UPT1_RSSConf;
/* features */
#define UPT1_F_RXCSUM 0x0001 /* rx csum verification */
#define UPT1_F_RSS 0x0002
#define UPT1_F_RXVLAN 0x0004 /* VLAN tag stripping */
#define UPT1_F_LRO 0x0008
#endif
|