#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)
#pragma pack(1)
typedef struct UPT1_TxStats {
uint64_t TSOPktsTxOK;
uint64_t TSOBytesTxOK;
uint64_t ucastPktsTxOK;
uint64_t ucastBytesTxOK;
uint64_t mcastPktsTxOK;
uint64_t mcastBytesTxOK;
uint64_t bcastPktsTxOK;
uint64_t bcastBytesTxOK;
uint64_t pktsTxError;
uint64_t pktsTxDiscard;
} UPT1_TxStats;
#pragma pack()
#pragma pack(1)
typedef struct UPT1_RxStats {
uint64_t LROPktsRxOK;
uint64_t LROBytesRxOK;
uint64_t ucastPktsRxOK;
uint64_t ucastBytesRxOK;
uint64_t mcastPktsRxOK;
uint64_t mcastBytesRxOK;
uint64_t bcastPktsRxOK;
uint64_t bcastBytesRxOK;
uint64_t pktsRxOutOfBuf;
uint64_t pktsRxError;
} UPT1_RxStats;
#pragma pack()
#define UPT1_IML_NONE 0
#define UPT1_IML_HIGHEST 7
#define UPT1_IML_ADAPTIVE 8
#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
#pragma pack(1)
typedef struct UPT1_RSSConf {
uint16_t hashType;
uint16_t hashFunc;
uint16_t hashKeySize;
uint16_t indTableSize;
uint8_t hashKey[UPT1_RSS_MAX_KEY_SIZE];
uint8_t indTable[UPT1_RSS_MAX_IND_TABLE_SIZE];
} UPT1_RSSConf;
#pragma pack()
#define UPT1_F_RXCSUM 0x0001
#define UPT1_F_RSS 0x0002
#define UPT1_F_RXVLAN 0x0004
#define UPT1_F_LRO 0x0008
#endif