⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zl5011x.h

📁 Zalink50114----TDMoIP芯片驱动源码
💻 H
📖 第 1 页 / 共 5 页
字号:
   /* 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 + -