亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zl5011x.h

?? Zalink50114----TDMoIP芯片驅動源碼
?? H
?? 第 1 頁 / 共 5 頁
字號:
   ZL5011X_CD,
   ZL5011X_PW,
   ZL5011X_IP_CD,
   ZL5011X_IP_UDP,
   ZL5011X_IP_UDP_PW,
   ZL5011X_IP_UDP_CD,
   ZL5011X_IP_UDP_RTP,
   ZL5011X_IP_UDP_RTP_PW,
   ZL5011X_IP_UDP_RTP_PW_ALT,
   ZL5011X_IP_UDP_L2TPV2_PW,
   ZL5011X_IP_L2TPV3_PW,
   ZL5011X_IP_L2TPV3_RTP_PW,
   ZL5011X_IP_PW_TS,
   ZL5011X_MPLS,
   ZL5011X_MPLS_PW,
   ZL5011X_ECID_PW        = ZL5011X_MPLS_PW,
   ZL5011X_MPLS_MPLS_PW,
   ZL5011X_MPLS_PW_RTP,
   ZL5011X_ECID_PW_RTP    = ZL5011X_MPLS_PW_RTP,

   /* customised protocols, using proprietary 8 byte header for routing */
   ZL5011X_CUSTOM8_PW,
   ZL5011X_CUSTOM8_RTP_PW,
   ZL5011X_CUSTOM8_PW_RTP,

/* Control Protocol Stacks */
   ZL5011X_IP_UDP_RTCP_CTRL,
   ZL5011X_IP_UDP_L2TPV2_CTRL,
   ZL5011X_IP_L2TPV3_CTRL,
   ZL5011X_IP_L2TPV3_RTCP_CTRL,
   ZL5011X_MPLS_RTCP_CTRL,

/* Generic Ethernet Protocol */
   ZL5011X_ETHERNET,

/* Illegal - this should remain the last entry in the
   enumeration for range checking purposes in the implementation. */
   ZL5011X_INVALID_PROTOCOL
} zl5011xProtocolTypeE;

/******************************************************************************
 * enumerations + structures used for controlling the packet Tx
 ******************************************************************************/

/* The Tx Header structures for RTP block */
typedef struct
{
   /* length of the header in bytes - must be a multiple of 2 bytes  */
   Uint8T txHighLength;
   Uint8T txHighData[ZL5011X_RTP_HIGH_HEADER_MAX_LEN];

   /* controls whether the timestamp and sequence numbers are taken from the
      shadow header or this header during a context switch. When updating a context,
      this should be set to false */
   zl5011xBooleanE firstHighHeader;

   /* enable and position of the length field */
   zl5011xBooleanE layer4LengthEnable;
   Uint8T layer4LengthPos;

   /* enable and position of the checksum field */
   zl5011xBooleanE layer4ChecksumEnable;
   zl5011xBooleanE layer4ChecksumPresent;
   Uint8T layer4ChecksumPos;

   /* enable and position of the sequence number. Also control to set the
      length to either 16 or 8 bits */
   zl5011xBooleanE layer5SequenceNumEnable;
   zl5011xBooleanE layer5SequenceNum16bit;
   Uint8T layer5SequenceNumPos;

   /* enable and position of the timestamp. Also control to set the
      length to either 32 or 16 bits, and the timestamp increment to be
      used for each packet */
   zl5011xBooleanE layer5TimestampEnable;
   zl5011xBooleanE layer5Timestamp32bit;
   Uint8T layer5TimestampPos;
   Uint16T layer5TimestampIncrement;
   /* control to allow the RTP timestamp to be derived from the WAN interface
      as opposed to the header itself (the default) */
   zl5011xBooleanE layer5TimestampFromWan;

   /* structure entries for internal use */

   /* value for CTRL  - 2 bit field */
   Uint8T highSilenceCtrl;

   /* outgoing context ID */
   Uint32T highContextOut;
} zl5011xPacketTxHighHeaderS;

/*******************************************************************************/

typedef struct
{
   Uint8T txLowLength;
   Uint8T txLowData[ZL5011X_PTX_LOW_HEADER_MAX_LEN];

   /* fields to control the insertion of the layer 2 length.
      The position of the field is stored in bytes. The header entry,
      is the value that should be used in the length field for a payload
      of 0 bytes */
   zl5011xBooleanE layer2LengthEnable;
   Uint8T layer2LengthPos;
   Uint16T layer2LengthValue;

   /* fields to control the insertion of the layer 3 length.
      The position of the field is stored in bytes. The header entry,
      is the value that should be used in the length field for a payload
      of 0 bytes */
   zl5011xBooleanE layer3LengthEnable;
   Uint8T layer3LengthPos;
   Uint16T layer3LengthValue;

   /* fields to control the insertion of the layer 3 checksum (IPv4).
      The position of the field is stored in bytes. */
   zl5011xBooleanE layer3ChecksumEnable;
   Uint8T layer3ChecksumPos;

   /* the following boolean, determines whether the ethernet source address
      taken from the packet or from the ethernet MAC */
   zl5011xBooleanE ethernetSrcAddressFromMac;
} zl5011xPacketTxLowHeaderS;

/******************/

typedef struct
{
   zl5011xProtocolTypeE protocolType;

   /* position of the pseudo wire status byte */
   Uint8T pwStatusPos;

   zl5011xContextHeaderSwitchE currentHeader;
   zl5011xContextHeaderSwitchE shadowHeader;
   zl5011xPacketTxHighHeaderS  highHeader[2];
   zl5011xPacketTxLowHeaderS   lowHeader;
} zl5011xPacketTxHeaderS;

/******************************************************************************
 * enums and structure used for the CPU interface
 ******************************************************************************/
/* Interrupts */
#define ZL5011X_CHECK_INTERRUPT_VALUE(X) \
            ((X < ZL5011X_INTERRUPT_ZERO) || (X > ZL5011X_INTERRUPT_FROZEN)) ? \
               ZL5011X_PARAMETER_INVALID : ZL5011X_OK

/* ZL5011X_NUMBER_INTERRUPT_DEST - This is defined as the number
   of entries in the zl5011xInterruptValueE enum definition */
#define ZL5011X_NUMBER_INTERRUPT_DEST 3

typedef enum
{
    ZL5011X_INTERRUPT_ZERO   = 0,
    ZL5011X_INTERRUPT_ONE    = 1,
    ZL5011X_INTERRUPT_FROZEN = 2
} zl5011xInterruptValueE;


/* Interrupt enable values */
#define ZL5011X_CHECK_ENABLE_INTERRUPT(X) \
            ((X < ZL5011X_ENABLE_INT_0) || (X > ZL5011X_ENABLE_INT_0_1)) ? \
               ZL5011X_PARAMETER_INVALID : ZL5011X_OK
typedef enum
{
   ZL5011X_ENABLE_INT_0   = 0x00000001,
   ZL5011X_ENABLE_INT_1   = 0x00000002,
   ZL5011X_ENABLE_INT_0_1 = 0x00000003
} zl5011xEnableInterruptE;

typedef struct
{
   zl5011xPacketTxHeaderS txHeader[ZL5011X_PKT_TX_NUM_CONTEXT_HEADERS + ZL5011X_PKT_TX_NUM_HOST_HEADERS];
} zl5011xPacketTxS;

/******************************************************************************
 * enumerations + structures used for controlling the packet Rx
 ******************************************************************************/

typedef struct
{
   zl5011xBooleanE ethertypeFilterEnable;
   zl5011xQueueE ethertypeCpuQueue;
   Uint16T ethertype;

   zl5011xBooleanE macAddressFilterEnable;
   zl5011xQueueE macAddressCpuQueue;
   Uint8T macAddress[ZL5011X_MAC_SIZE];
   Uint8T macAddressNumMaskBits;
} zl5011xPacketFilterMatchS;

typedef struct
{
   zl5011xBooleanE filterReserved;
   zl5011xBooleanE filterInUse;

   /* pre processor setup information */
   zl5011xPacketFilterMatchS filterMatch;
} zl5011xPkcFilterS;


/******************/

typedef struct
{
   Uint8T extractClassifyBytes[ZL5011X_PKC_CLASSIFY_NUM_MATCH_FIELDS];
   Uint8T extractCheckBytes[ZL5011X_PKC_CLASSIFY_NUM_CHECK_FIELDS];
   Uint8T checkMask[ZL5011X_PKC_CLASSIFY_NUM_CHECK_FIELDS];
   Uint8T extractPwByte;

   /* the highest order bytes of the following fields, should have the highest
      index number */
   Uint8T extractSequenceBytes[ZL5011X_PKC_PROTOCOL_MAX_SEQ_BYTES];
   Uint8T extractTimestampBytes[ZL5011X_PKC_PROTOCOL_MAX_TIMESTAMP_BYTES];
   Uint8T extractLengthBytes[ZL5011X_PKC_PROTOCOL_MAX_LENGTH_BYTES];

   zl5011xBooleanE discardUdpCheckFails;
   zl5011xBooleanE protocolIpv4;
   zl5011xBooleanE protocolVlan;
   zl5011xBooleanE protocolTwoByteSeq;
   Uint8T timestampShift;
} zl5011xPacketProtocolOutputS;

typedef struct
{
   Uint8T protocolMatchBytes[ZL5011X_PKC_PROTOCOL_NUM_MATCH_FIELDS];
   Uint8T protocolMaskBytes[ZL5011X_PKC_PROTOCOL_NUM_MATCH_FIELDS];
} zl5011xPacketProtocolMatchS;

typedef struct
{
   zl5011xProtocolTypeE protocolType;

   zl5011xBooleanE protocolReserved;
   zl5011xBooleanE protocolInUse;

   /* pre classifier setup information */
   zl5011xPacketProtocolMatchS protocolMatch;
   zl5011xPacketProtocolOutputS protocolOutput;
} zl5011xPkcProtocolS;

/******************/

typedef struct
{
   Uint32T classifyMpid;
   Uint8T classifyHeaderOffset;
   Uint16T classifyLengthModifier;
   zl5011xBooleanE classifyLengthNoCalc;
   zl5011xBooleanE classifyTwoByteLength;

   /* the following setting allows the length of the payload to be set to the
      length of the received packet - header offset. When set to TRUE, the
      length is derived by this means in preference to any calculation using the
      length field from the packet */
   zl5011xBooleanE classifyLengthFromPacket;

   /* structure entries for internal use */
   zl5011xFlowTypeE classifyFlow;
} zl5011xPacketClassifyOutputS;

typedef struct
{
   Uint8T protocolMatchNum;
   Uint8T classifyMatchBytes[ZL5011X_PKC_CLASSIFY_NUM_MATCH_FIELDS];
   Uint8T classifyMaskBytes[ZL5011X_PKC_CLASSIFY_NUM_MATCH_FIELDS];
   Uint8T classifyCheckBytes[ZL5011X_PKC_CLASSIFY_NUM_CHECK_FIELDS];
} zl5011xPacketClassifyMatchS;

typedef struct
{
   zl5011xProtocolTypeE protocolType;

   zl5011xBooleanE classifyReserved;
   zl5011xBooleanE classifyInUse;
   Uint32T classifyContext;

   /* classifier setup information */
   zl5011xPacketClassifyMatchS classifyMatch;
   zl5011xPacketClassifyOutputS classifyOutput;

   Uint32T context;
   Uint32T pwInterruptMask;
} zl5011xPkcClassifyS;

/******************/

typedef enum
{
   ZL5011X_PKC_STATE_MATCH_NOT_ALLOCATED,
   ZL5011X_PKC_STATE_MATCH_UNUSED,
   ZL5011X_PKC_STATE_MATCH_NEW_UPDATING,
   ZL5011X_PKC_STATE_MATCH_OLD_UPDATING,
   ZL5011X_PKC_STATE_MATCH_ACTIVE
} zl5011xContextRxPacketMatchStateE;

/* define the bit positions for the L and R bits in the PW status byte */
#define ZL5011X_PKT_PW_L_BIT_MASK     0x08
#define ZL5011X_PKT_PW_R_BIT_MASK     0x04

/* structure to maintain statistics for the L and R bits in the PW status byte */
typedef struct
{
   Uint32T value;

   Uint32T lCount;
   Uint32T lTime;
   Uint32T lTimePrev;

   Uint32T rCount;
   Uint32T rTime;
   Uint32T rTimePrev;
} zl5011xPacketRxStatusByteS;

typedef struct
{
   /* There can be up to 2 packet match definitions associated with each context.
      One of these is associated with each of the states of the context switch bit in the
      TFM. i.e. TFM context switch bit = 0 matches the first entry in the
      following arrays etc. */
   Uint32T pkcClassifyMatchNum[2];
   zl5011xContextRxPacketMatchStateE contextMatchState[2];

   zl5011xPacketRxStatusByteS statusByte;
} zl5011xContextRxPacketMatchS;

/******************/


typedef struct zl5011xProtocolStackS
{
  /* protocolMatchNumber contains a valid number when the protocol has been set up
     in the pre classifier. The first dimension of the array is for the presence
     or absence of VLAN and the second is for IPv4 or IPv6. */
  Uint8T protocolMatchNumber[2][2];
} zl5011xProtocolStackS;


typedef struct
{
   /* filter matching information for the PKC pre-processor */
   zl5011xPkcFilterS pkcFilter[ZL5011X_PKC_NUM_FILTER_ENTRIES];

   /* protocol matching information for the PKC pre-classifier */
   zl5011xBooleanE pkcProtocolDiscard;
   zl5011xQueueE pkcProtocolCpuQueue;
   zl5011xPkcProtocolS pkcProtocol[ZL5011X_PKC_NUM_PROTOCOL_ENTRIES];

   /* context matching information for the PKC classifier */
   zl5011xBooleanE pkcClassifyDiscard;
   zl5011xQueueE pkcClassifyCpuQueue;
   zl5011xBooleanE pkcVerifyDiscard;
   zl5011xQueueE pkcVerifyCpuQueue;
   zl5011xPkcClassifyS pkcClassify[ZL5011X_PKC_NUM_CLASSIFY_ENTRIES];

   /* PKC match for Rx contexts */
   zl5011xContextRxPacketMatchS contextRxPacketMatch[ZL5011X_MAX_NUMBER_CONTEXTS];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97se亚洲国产综合自在线观| 国产日产欧美一区| 午夜精品在线视频一区| 欧美午夜免费电影| 亚洲午夜久久久久久久久电影网| 欧美色窝79yyyycom| 日韩高清一区在线| 久久综合成人精品亚洲另类欧美 | 国产色产综合色产在线视频| 国产黑丝在线一区二区三区| 国产精品久久777777| 在线观看免费一区| 日韩av网站在线观看| 久久综合九色综合欧美亚洲| 成人黄色av网站在线| 亚洲激情欧美激情| 日韩欧美国产午夜精品| 国产成人综合亚洲91猫咪| 亚洲人成亚洲人成在线观看图片| 欧美亚洲国产一区二区三区va| 免费看日韩精品| 国产精品美女一区二区三区| 欧美性一级生活| 久久精品国产精品亚洲精品| 久久久久久一级片| 欧美日韩在线综合| 国产精品资源在线看| 亚洲综合清纯丝袜自拍| 久久亚洲综合av| 在线观看三级视频欧美| 国内精品视频666| 亚洲综合999| 国产欧美在线观看一区| 欧美丝袜丝交足nylons图片| 国产一区二区久久| 亚洲最色的网站| 国产亚洲欧洲一区高清在线观看| 精品婷婷伊人一区三区三| 国产在线一区观看| 性欧美疯狂xxxxbbbb| 国产精品久久久久久亚洲毛片 | 又紧又大又爽精品一区二区| 91精品国产麻豆| 在线视频综合导航| 国产精品1024| 美女在线观看视频一区二区| 亚洲精品免费一二三区| 久久久www成人免费无遮挡大片| 欧美又粗又大又爽| 国产91丝袜在线18| 蜜臀久久久久久久| 亚洲成人精品影院| 亚洲女人的天堂| 欧美精彩视频一区二区三区| 成人a级免费电影| 久久精品男人的天堂| eeuss鲁片一区二区三区| 男女男精品视频网| 91视视频在线直接观看在线看网页在线看| 亚洲国产精品影院| 亚洲婷婷国产精品电影人久久| 日韩精品专区在线影院重磅| 91精品国模一区二区三区| 色88888久久久久久影院按摩| 国产成人精品一区二| 国产一区二区成人久久免费影院 | 亚洲第一成人在线| 亚洲精品五月天| 日韩一区中文字幕| 国产女同互慰高潮91漫画| 亚洲精品一区二区三区在线观看 | 国产成人免费网站| 狠狠色狠狠色合久久伊人| 青青草国产成人av片免费| 视频一区欧美精品| 亚瑟在线精品视频| 日韩av高清在线观看| 日韩中文字幕不卡| 奇米影视在线99精品| 青青草原综合久久大伊人精品| 亚洲r级在线视频| 午夜视频一区二区三区| 午夜精品久久久久久久久久久| 午夜国产精品一区| 丝袜美腿成人在线| 青青草国产精品亚洲专区无| 美国三级日本三级久久99| 久久精品理论片| 狠狠色伊人亚洲综合成人| 国产高清精品网站| 99视频精品在线| 欧美这里有精品| 69久久夜色精品国产69蝌蚪网| 欧美一区二区三区在线电影| 欧美精品一区二区三区在线| 亚洲国产高清aⅴ视频| 亚洲品质自拍视频网站| 亚洲午夜日本在线观看| 老司机精品视频在线| 国产69精品久久777的优势| eeuss鲁片一区二区三区| 欧美性猛交一区二区三区精品| 欧美乱妇20p| 欧美r级在线观看| 中文字幕一区二区5566日韩| 亚洲综合色噜噜狠狠| 加勒比av一区二区| 91热门视频在线观看| 在线不卡一区二区| 久久久99精品久久| 亚洲欧美精品午睡沙发| 青青青爽久久午夜综合久久午夜| 国产一区视频在线看| 91美女蜜桃在线| 日韩一级大片在线| 中文字幕在线观看不卡视频| 亚洲影院免费观看| 激情综合色丁香一区二区| 91婷婷韩国欧美一区二区| 精品一区二区国语对白| 国产91精品入口| 欧美午夜理伦三级在线观看| 久久在线免费观看| 亚洲午夜久久久久久久久电影院 | 一级精品视频在线观看宜春院| 五月综合激情日本mⅴ| 欧美一级淫片007| 日本一区二区综合亚洲| 亚洲国产精品久久一线不卡| 国产成人自拍在线| 3d成人动漫网站| 亚洲日本乱码在线观看| 国产中文字幕一区| 91黄视频在线| 国产午夜精品一区二区三区视频| 一区二区三区高清在线| 成人永久免费视频| 日韩欧美激情四射| 一区二区三区四区高清精品免费观看| 国产一区二区女| 欧美一区二区三区免费| 亚洲视频中文字幕| 国产成人鲁色资源国产91色综| 91精品欧美久久久久久动漫| 亚洲三级电影网站| 成人午夜激情影院| 日韩三级视频在线观看| 亚洲国产成人91porn| 成人a免费在线看| 国产日韩欧美在线一区| 免费视频最近日韩| 欧美日韩mp4| 亚洲成人精品影院| 欧美亚洲动漫精品| 亚洲国产精品久久久久秋霞影院| 成人免费高清视频在线观看| 久久综合色婷婷| 另类的小说在线视频另类成人小视频在线| 欧美中文字幕一区二区三区| 国产精品白丝在线| 成人免费高清视频| 国产精品午夜免费| 国产成人在线免费| 久久久久97国产精华液好用吗| 奇米777欧美一区二区| 51久久夜色精品国产麻豆| 视频在线观看国产精品| 欧美日韩激情一区二区三区| 亚洲综合另类小说| 欧美午夜一区二区三区免费大片| 一区二区三区视频在线看| 色88888久久久久久影院按摩 | 国产精品自在在线| 久久久电影一区二区三区| 大胆欧美人体老妇| 中文字幕在线观看不卡视频| 99riav久久精品riav| 一区二区三区鲁丝不卡| 欧美日韩精品一区二区三区蜜桃| 五月天网站亚洲| 亚洲午夜精品网| 欧美精品乱人伦久久久久久| 日韩av一二三| 国产亚洲欧美一区在线观看| 成人福利电影精品一区二区在线观看 | 国产精品久久久久久久久果冻传媒| 国产另类ts人妖一区二区| 国产午夜久久久久| 97超碰欧美中文字幕| 亚洲一二三四在线观看| 欧美性高清videossexo| 蜜臀av一级做a爰片久久| 久久婷婷综合激情| 99久久免费精品| 亚洲成人av福利| 日韩免费观看高清完整版| 国产91丝袜在线播放| 怡红院av一区二区三区| 日韩限制级电影在线观看| 丁香激情综合五月|