?? zl5011x.h
字號:
/* store the previous PW status byte values for each PKC classifier entry */
Uint32T pkcPrevPwValue[ZL5011X_PKC_NUM_CLASSIFY_ENTRIES];
} zl5011xPacketRxS;
typedef struct
{
Uint32T constat;
zl5011xInterruptValueE interruptValue;
/* DEBUG Uint32T interruptMask[ZL5011X_NUMBER_INTERRUPT_DEST];*/
/* CPQ module */
Uint32T queue;
Uint32T overrunThreshold[ZL5011X_CPQ_QUEUES];
zl5011xBooleanE enablePacketDrop[ZL5011X_CPQ_QUEUES];
Uint32T maxGranUsage[ZL5011X_CPQ_QUEUES];
Uint32T queueStatus[ZL5011X_CPQ_QUEUES];
Uint32T maxNumberOfGranules;
} zl5011xCpuIfS;
/******************************************************************************
* enumerations + structures used for controlling the MM block
******************************************************************************/
/* Total size of the external memory in bytes. */
typedef enum
{
ZL5011X_EXT_MEM_SIZE_512KB = 0,
ZL5011X_EXT_MEM_SIZE_1MB = 1,
ZL5011X_EXT_MEM_SIZE_2MB = 2,
ZL5011X_EXT_MEM_SIZE_4MB = 3,
ZL5011X_EXT_MEM_SIZE_8MB = 4,
ZL5011X_EXT_MEM_SIZE_0MB = 8
} zl5011xExtMemChipSizeE;
typedef enum
{
ZL5011X_MM_DISABLED = 0,
ZL5011X_MM_SLEEP = 2,
ZL5011X_MM_ENABLED = 1
} zl5011xExtMemReadinessE;
typedef enum
{
ZL5011X_MM_PARITY_NONE = 0,
ZL5011X_MM_PARITY_ODD = 1,
ZL5011X_MM_PARITY_EVEN = 3
} zl5011xExtMemParityE;
/******************************************************************************
* structure used for the packet memory interface (external + internal)
******************************************************************************/
/* structure used for the memory allocation functions */
typedef struct
{
Uint32T pBlockStart;
Uint32T pBlockEnd;
Uint32T iNextBlock;
Uint32T iPrevBlock;
} zl5011xAllocTableS;
typedef struct
{
/* granule manager settings */
Uint32T granuleHeadIndex;
Uint32T granuleTailIndex;
Uint32T granuleThreshold;
Uint32T granuleCount;
/* memory manager settings */
Uint32T granBaseAddr;
Uint32T granDescBaseAddr;
zl5011xBooleanE extMemParityFailed;
zl5011xExtMemChipSizeE extMemChipSize;
zl5011xExtMemParityE extMemParity;
zl5011xExtMemReadinessE extMemReadiness;
Uint8T extMemParityCount;
Uint32T extMemBurstLength;
Uint32T extMemParityTripPoint;
Uint32T extMemSizeBytes;
/* variables used for the memory allocation function */
zl5011xAllocTableS allocTable[ZL5011X_MEMORY_NUM_HEAP_ALLOCS];
Uint32T heapStartAddress;
Uint32T heapEndAddress;
} zl5011xPacketMemoryS;
/******************************************************************************
* structure used for the Task Manager interface
******************************************************************************/
#define ZL5011X_CHECK_TM_DEST_PORT(X) \
((X < ZL5011X_TM_DEST_PORT_CPU) || (X > ZL5011X_TM_DEST_PORT_PKQ)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_TM_DEST_PORT_CPU = 0,
ZL5011X_TM_DEST_PORT_TFQ = 1,
ZL5011X_TM_DEST_PORT_RTP = 2,
ZL5011X_TM_DEST_PORT_UNUSED = 3,
ZL5011X_TM_DEST_PORT_PKQ = 4
} zl5011xTmDestPortE;
/**********************/
#define ZL5011X_CHECK_TM_SRC_PORT(X) \
((X < ZL5011X_TM_SRC_PORT_CPU) || (X > ZL5011X_TM_SRC_PORT_PKC)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_TM_SRC_PORT_CPU = 0,
ZL5011X_TM_SRC_PORT_PLA = 1,
ZL5011X_TM_SRC_PORT_RTP = 2,
ZL5011X_TM_SRC_PORT_PKC = 3
} zl5011xTmSrcPortE;
/**********************/
#define ZL5011X_CHECK_TM_PORT_SIZE(X) \
((X < ZL5011X_TM_PORT_MIN_QUEUE_SIZE) || (X > ZL5011X_TM_PORT_MAX_QUEUE_SIZE)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
/******************************************************************************
* Structure and enums used to represent PKQ module
******************************************************************************/
/* Queue priority mode */
#define ZL5011X_CHECK_WFQ(X) \
((X < ZL5011X_WFQ_NONE) || (X > ZL5011X_WFQ_ALL)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_WFQ_NONE = 0,
ZL5011X_WFQ_1_TO_0 = 1,
ZL5011X_WFQ_2_TO_0 = 2,
ZL5011X_WFQ_ALL = 3
} zl5011xPacketQueuePriorityModeE;
typedef struct
{
Uint32T granuleThreshold[ZL5011X_MAX_NUM_LAN_PORTS][ZL5011X_PKQ_NUM_QUEUES];
zl5011xPacketQueuePriorityModeE priorityMode[ZL5011X_MAX_NUM_LAN_PORTS];
Uint32T queueWeight[ZL5011X_MAX_NUM_LAN_PORTS][ZL5011X_PKQ_NUM_QUEUES];
zl5011xBooleanE thresholdMode[ZL5011X_MAX_NUM_LAN_PORTS][ZL5011X_PKQ_NUM_QUEUES];
Uint32T totalGranuleThreshold;
zl5011xBooleanE totalThresholdMode;
/* context port and queue mappings */
Uint8T wanRxPortNum[ZL5011X_PKT_TX_NUM_CONTEXT_HEADERS + ZL5011X_PKT_TX_NUM_HOST_HEADERS];
Uint8T wanRxQueueNum[ZL5011X_PKT_TX_NUM_CONTEXT_HEADERS + ZL5011X_PKT_TX_NUM_HOST_HEADERS];
} zl5011xPkqS;
/******************************************************************************
* structure used for the PKC pre-classifier
******************************************************************************/
#define ZL5011X_CHECK_PKC_MAC_ADDRESS_FILTER(X) \
((X < ZL5011X_PKC_MAC_ADDRESS_FILTER_0) || (X > ZL5011X_PKC_MAC_ADDRESS_FILTER_7)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_PKC_MAC_ADDRESS_FILTER_0 = 0,
ZL5011X_PKC_MAC_ADDRESS_FILTER_1 = 1,
ZL5011X_PKC_MAC_ADDRESS_FILTER_2 = 2,
ZL5011X_PKC_MAC_ADDRESS_FILTER_3 = 3,
ZL5011X_PKC_MAC_ADDRESS_FILTER_4 = 4,
ZL5011X_PKC_MAC_ADDRESS_FILTER_5 = 5,
ZL5011X_PKC_MAC_ADDRESS_FILTER_6 = 6,
ZL5011X_PKC_MAC_ADDRESS_FILTER_7 = 7
}zl5011xPKC_MacAddressFilterE;
#define ZL5011X_CHECK_PKC_ETHER_FILTER(X) \
((X < ZL5011X_PKC_ETHER_FILTER_0) || (X > ZL5011X_PKC_ETHER_FILTER_7)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_PKC_ETHER_FILTER_0 = 0,
ZL5011X_PKC_ETHER_FILTER_1 = 1,
ZL5011X_PKC_ETHER_FILTER_2 = 2,
ZL5011X_PKC_ETHER_FILTER_3 = 3,
ZL5011X_PKC_ETHER_FILTER_4 = 4,
ZL5011X_PKC_ETHER_FILTER_5 = 5,
ZL5011X_PKC_ETHER_FILTER_6 = 6,
ZL5011X_PKC_ETHER_FILTER_7 = 7
} zl5011xPKC_EtherFilterE;
/******************************************************************************
* structure used for the Task Manager interface
******************************************************************************/
typedef struct
{
Uint16T mpid;
Uint16T pktLen;
Uint8T flowType;
Uint8T headerOffset;
Uint8T sourceBlock;
Uint8T granuleNum;
Uint32T headGranule;
Uint32T tailGranule;
Uint16T timestamp;
/* the next field is used to hold bits 23 to 31 of word 3 of the TM msg */
Uint16T miscField1;
/* the next field is used to hold word 4 of the TM msg */
Uint32T miscField2;
} zl5011xTmTraceMessageS;
/**********************/
#define ZL5011X_CHECK_TM_TRACE_MODE(X) \
((X < ZL5011X_TM_TRACE_FULL) || (X > ZL5011X_TM_TRACE_SHORT_SOURCE)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_TM_TRACE_FULL = 0x0,
ZL5011X_TM_TRACE_PARTIAL = 0x1,
ZL5011X_TM_TRACE_SHORT_TIME = 0x2,
ZL5011X_TM_TRACE_SHORT_SOURCE = 0x3
} zl5011xTmTraceModeE;
typedef struct
{
Uint32T portSizes[ZL5011X_TM_NUM_SRC_PORTS][ZL5011X_TM_NUM_DEST_PORTS];
zl5011xTmTraceModeE tmTraceMode;
zl5011xBooleanE tmDefaultTimer;
Uint32T tmBufferSize;
Uint32T tmNumBuffers;
} zl5011xTaskManagerS;
/******************************************************************************
* Structures and enums used for the PKI module
******************************************************************************/
#define ZL5011X_CHECK_MAC_TYPE(X) \
((X < ZL5011X_MAC_TYPE_DISABLED) || (X > ZL5011X_MAC_TYPE_PCS)) ? \
ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
ZL5011X_MAC_TYPE_DISABLED,
ZL5011X_MAC_TYPE_MII,
ZL5011X_MAC_TYPE_GMII,
ZL5011X_MAC_TYPE_PCS
} zl5011xMacTypeE;
typedef struct
{
zl5011xBooleanE testSpeedUp;
zl5011xBooleanE disableResetPcs;
zl5011xBooleanE powerSaveEnable;
zl5011xBooleanE internalLoopBack;
zl5011xBooleanE filterBroadcast;
zl5011xBooleanE filterMulticast;
zl5011xBooleanE filterWrongUnicast;
zl5011xBooleanE longPkt;
zl5011xMacTypeE macType;
zl5011xBooleanE vlanAware;
zl5011xBooleanE fullDuplex;
zl5011xBooleanE linkDown;
} zl5011xMacControlS;
typedef struct
{
Uint64S collision; /* Early Collisions frames - collision before
the 64 byte Late Event Threshold */
Uint64S lateCollision; /* Late Collisions frames - collision after the
64 byte Late Event Threshold */
Uint64S filter; /* Number of packets filtered */
Uint64S dropEvent; /* Dropped frames */
Uint64S shortEvent; /* Number of frames with size less than the
length of a Short Event */
Uint64S crc; /* Number of frames with CRC errors */
Uint64S alignmentError; /* Number of valid frames with bad alignment */
Uint64S jabber; /* Number of frames received with size larger
than the Jabber Lockup Protection Timer - TW3 */
Uint64S fragment; /* Number of frames below 64 bytes with bad FCS */
Uint64S undersize; /* Undersize frames (below 64 bytes) */
Uint64S pkts64Octets; /* Frames with length of 64 bytes */
Uint64S pkts65To127Octets; /* Frames with length in range 65 -127 */
Uint64S pkts128To255Octets; /* 128 - 255 */
Uint64S pkts256To511Octets; /* 256 - 511 */
Uint64S pkts512To1023Octets; /* 512 - 1023 */
Uint64S pkts1024To1518Octets;/* 1024 - 1518 */
Uint64S oversize; /* Oversize frames (above 1518 bytes) */
Uint64S broadcastPktsReceived;
/* Broadcast frames received */
Uint64S multicastPktsReceived;
/* Multicast frames received */
Uint64S flowControlReceived; /* Flow control frames received */
Uint64S goodPktsReceived; /* Good frames received */
Uint64S goodOctetsReceived; /* Good bytes received */
Uint64S totalPktsReceived; /* Total frames received */
Uint64S totalOctetsReceived;
/* Total bytes received */
Uint64S nUcastPktsSent; /* Total non-Unicast frames sent */
Uint64S ucastPktsSent; /* Total Unicast frames sent */
Uint64S flowControlSent; /* Flow control frames sent */
Uint64S pktSentFail; /* Number of sent packets that failed */
Uint64S totalOctetsSent; /* Total bytes sent */
} zl5011xMacStatsS;
/* Interface Statistics Structure */
typedef struct
{
Uint32T ifIndex;
Sint8T ifDescr[ZL5011X_STRING_SIZE];
Uint8T ifType;
Uint32T ifMtu;
Uint32T ifSpeed;
Uint8T ifPhysAddress[ZL5011X_MAC_SIZE];
Uint8T ifAdminStatus;
Uint8T ifOperStatus;
Uint32T ifLastChange;
Uint64S ifInOctets; /* Total bytes received */
Uint64S ifInUcastPkts; /* Total frames received excluding Broadcast and
Multicast frames */
Uint64S ifInNUcastPkts; /* Total Broadcast & Multicast frames received*/
Uint64S ifInDiscards; /* Frames dropped */
Uint64S ifInErrors; /* Frames with CRC errors,fragments,or jabbers*/
Uint64S ifInUnknownProtos; /* Maintained by protocol stack */
Uint64S ifOutOctets; /* Total bytes sent */
Uint64S ifOutUcastPkts; /* Total frames sent */
Uint64S ifOutNUcastPkts; /* Total frame sent excluding Broadcast and
Multicast frames */
Uint32T ifOutDiscards; /* Maintained by protocol stack */
Uint64S ifOutErrors; /* Number of packets send that failed */
Uint32T ifOutQLen;
Sint8T ifSpecific[ZL5011X_STRING_SIZE];
Uint64S ifInOctetsHi; /* High 32 bits of Total bytes received */
Uint64S ifOutOctetsHi; /* High 32 bits of Total bytes sent */
} zl5011xIfStatsS;
/* Ethernet Statistics Structure */
typedef struct
{
Uint32T etherStatsIndex;
Sint8T etherStatsDataSource[ZL5011X_STRING_SIZE];
Uint64S etherStatsDropEvents;/* Drop */
Uint64S etherStatsOctets; /* Bytes received (Good and Bad) */
Uint64S etherStatsPkts; /* Frames Received (Good and Bad) */
Uint64S etherStatsBroadcastPkts;
/* Broadcast frames received */
Uint64S etherStatsMulticastPkts;
/* Multicast frames received */
Uint64S etherStatsCRCAlignErrors;
/* Alignment errors */
Uint64S etherStatsUndersizePkts;
/* Undersize frames */
Uint64S etherStatsOversizePkts;
/* Oversize frames */
Uint64S etherStatsF
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -