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

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

?? zl5011xpacket.h

?? Zalink50114----TDMoIP芯片驅動源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
   zl5011xBooleanE rtpForceSeqNumber;

   /* Position of the Context Descriptor field in the header - this defaults to
      the last two bytes in the header */
   Uint32T contextDescriptorOffset;
   Uint8T contextDescriptorNumber;
   zl5011xBooleanE contextDescriptorTeardown;

   zl5011xBooleanE osExclusionEnable;
} zl5011xPacketTxSetHeaderS;

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

/* the following enumeration provides various options for how the packet
   length is used. */
typedef enum
{
   /* check length field in the packet using the specified payload length */
   ZL5011X_PACKET_LENGTH_CHECK,

   /* use the length field from the protocol header to determine payload length */
   ZL5011X_PACKET_LENGTH_FROM_FIELD,

   /* use the packet length to derive the payload length - note that packets MUST
      not contain any padding bytes */
   ZL5011X_PACKET_LENGTH_FROM_PKT,

   /* use to pass the complete packet - the header is not removed as
      for previous option */
   ZL5011X_PACKET_LENGTH_OF_PKT,

   /* ignore the length field and specify the payload explicitly */
   ZL5011X_PACKET_LENGTH_SPECIFIED
} zl5011xPacketRxLengthUsageE;

typedef struct
{
   Uint32T context;
   zl5011xProtocolTypeE   protocolType;

   /* Ethernet Control Structure members: */
   zl5011xBooleanE enableVlan;
   zl5011xBooleanE enableSnap;

   /* IP version - ZL5011X_TRUE for IPv4 and ZL5011X_FALSE for IPv6 */
   zl5011xBooleanE ipVer4;

   /* UDP Control Structure members: */
   zl5011xBooleanE discardUdpCheckFails;

   /* L2TP Control Structure Members */
   zl5011xBooleanE enableL2TPCookie;

   /* Position of the Context Descriptor field in the header */
   Uint32T contextDescriptorOffset;
   Uint8T contextDescriptorNumber;

   Uint8T *header;
   Uint8T headerLength;

   /* match destination MAC address during the Protocol matching stage */
   zl5011xBooleanE matchDestMacAddress;

   /* match destination IPv4 address during the Protocol matching stage */
   zl5011xBooleanE matchDestIpv4Address;

   /* match source IP address during the classification stage */
   zl5011xBooleanE matchSrcIpv4Address;

   /* the following masks can be used to mask in / out the src and dest UDP
      ports during the classification phase. This primarily allows the
      reception of control packets using a single classification rule */
   Uint16T srcUdpPortMask;
   Uint16T destUdpPortMask;

   /* once packet classification has been completed, additional checks are generally
      performed, but can be enabled/disabled using the following variable */
   zl5011xBooleanE enableClassificationChecks;

   /* If the protocol header contains no length field but it is desired to classify on length then
      the payload length to match against must be specified here. */
   Uint16T payloadLength;
   zl5011xPacketRxLengthUsageE lengthUsage;

   /* mask to apply to the Pseudo Wire Status byte
      - changes in the status are ignored if mask bit is set to 1 */
   Uint32T statusByteMask;

   /* in the presence of both RTP and PW headers, this can be used to control
      which of the two sequence numbers gets used */
   zl5011xBooleanE rtpForceSeqNumber;

   zl5011xBooleanE forceOneByteSeq;
   zl5011xBooleanE disableTimestamp;

   /* Control flows require a cpu queue number */
   zl5011xQueueE cpuQueue;

   /* Protocol match number */
   Uint32T protocolMatchNumber;
   /* classify match number */
   Uint32T classifyMatchNumber;

   /* Normally TRUE for packet data from LAN to TDM but may be FALSE if packet
      encapsulation is required, e.g. for tunnelling */
   zl5011xBooleanE removeHeader;

   /* MPID can be explicitly specified rather than derived from the context number */
   Uint32T classifyMpid;

   zl5011xBooleanE osExclusionEnable;

   /* use of the checkLengthValue parameter is deprecated and lengthUsage parameter should
      be used instead */
   zl5011xBooleanE checkLengthValue;
} zl5011xPacketRxSetHeaderS;

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

typedef struct
{
   Uint8T protocolMaskBytes[ZL5011X_PKC_PROTOCOL_NUM_MATCH_FIELDS];

   Uint8T extractClassifyBytes[ZL5011X_PKC_CLASSIFY_NUM_MATCH_FIELDS];
   Uint8T classifyMaskBytes[ZL5011X_PKC_CLASSIFY_NUM_MATCH_FIELDS];
   Uint8T vlanClassifyPos[2];
   Uint8T cdClassifyPos[2];

   Uint8T extractCheckBytes[ZL5011X_PKC_CLASSIFY_NUM_CHECK_FIELDS];
   Uint8T checkMask[ZL5011X_PKC_CLASSIFY_NUM_CHECK_FIELDS];
   Uint8T vlanCheckPos[2];
   Uint8T l2tpCookieCheckPos[ZL5011X_PKT_L2TPV3_COOKIE_LEN];

   Uint8T extractPwByte;
   Uint8T extractSequenceBytes[ZL5011X_PKC_PROTOCOL_MAX_SEQ_BYTES];
   Uint8T extractTimestampBytes[ZL5011X_PKC_PROTOCOL_MAX_TIMESTAMP_BYTES];
   Uint8T extractLengthBytes[ZL5011X_PKC_PROTOCOL_MAX_LENGTH_BYTES];

   Uint8T timestampShift;
   zl5011xBooleanE protocolSeqLength16Bits;
   Uint16T classifyLengthModifier;
   zl5011xBooleanE classifyLengthNoCalc;
   zl5011xBooleanE classifyTwoByteLength;
} zl5011xPacketRxTemplateS;

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

typedef struct
{
   zl5011xProtocolTypeE protocol;
   zl5011xBooleanE ipVer4;
   zl5011xBooleanE enableVlan;
   zl5011xBooleanE enableL2TPCookie;
   zl5011xBooleanE rtpForceSeqNumber;
   Uint16T contextDescriptorOffset;
} zl5011xPacketPkcProtocolEntryS;

typedef struct
{
   /* 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. If the protocol stack
      is not in use then the match number will be set to something higher than the
      maximum number of protocol stacks available.
      For example, a protocol stack is set up and has VLAN on, and the IP version
      in use is version 6. Therefore VLAN = ZL5011X_TRUE and IPv4 == ZL5011X_FALSE.
      This is setup in protocol match number 3 (in this example). Therefore:
      protocolMatchNumber[ZL5011X_TRUE][ZL5011X_FALSE] = 3.
      One of these 2-dimensional arrays exists for each supported protocol stack.
      Using this technique, the helper function is able to keep track of which
      protocol stacks have been set up and which haven't. Also which protocol match
      number corresponds with the protocol stacks that have been set up is recorded. */
   Uint32T matchNum[2][2];
} zl5011xPacketProtocolStackS;

typedef struct
{
   /* the parameter structure pointer is used to index the the device currently in use */
   zl5011xParamsS *paramStructPointer;
   zl5011xPacketProtocolStackS protocol[ZL5011X_PKT_NUM_PROTOCOL_STACKS];
   zl5011xPacketPkcProtocolEntryS entry[ZL5011X_PKC_NUM_PROTOCOL_ENTRIES];
} zl5011xProtocolTableS;

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

typedef struct
{
   Uint32T context;
   Uint8T statusByte;
   zl5011xBooleanE osExclusionEnable;
} zl5011xPacketTxUpdateStatusByteS;

zlStatusE zl5011xPacketTxUpdateStatusByteStructInit(zl5011xParamsS *zl5011xParams, zl5011xPacketTxUpdateStatusByteS *par);
zlStatusE zl5011xPacketTxUpdateStatusByte(zl5011xParamsS *zl5011xParams, zl5011xPacketTxUpdateStatusByteS *par);

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

typedef struct
{
   zl5011xBooleanE osExclusionEnable;
} zl5011xPacketRxFreeDeviceS;

zlStatusE zl5011xPacketRxFreeDeviceStructInit(zl5011xParamsS * zl5011xParams, zl5011xPacketRxFreeDeviceS *par);
zlStatusE zl5011xPacketRxFreeDevice(zl5011xParamsS * zl5011xParams, zl5011xPacketRxFreeDeviceS *par);

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

/* Functions to delete specific protocol matches by number */
typedef struct
{
   Uint8T protocolMatchNum;
   zl5011xBooleanE osExclusionEnable;
} zl5011xPacketRxDeleteProtocolMatchNumS;

zlStatusE zl5011xPacketRxDeleteProtocolMatchNumStructInit(zl5011xParamsS *zl5011xParams,
      zl5011xPacketRxDeleteProtocolMatchNumS *par);
zlStatusE zl5011xPacketRxDeleteProtocolMatchNum(zl5011xParamsS *zl5011xParams,
      zl5011xPacketRxDeleteProtocolMatchNumS *par);


/*****************   FUNCTION PROTOTYPES   ***********************************/
zlStatusE zl5011xPacketTxSetHeaderStructInit(zl5011xParamsS *zl5011xParams,
      zl5011xPacketTxSetHeaderS *par);
zlStatusE zl5011xPacketTxSetHeader(zl5011xParamsS *zl5011xParams,
      zl5011xPacketTxSetHeaderS *par);
zlStatusE zl5011xPacketRxSetHeaderStructInit(zl5011xParamsS *zl5011xParams,
      zl5011xPacketRxSetHeaderS *par);
zlStatusE zl5011xPacketRxSetHeader(zl5011xParamsS * zl5011xParams,
      zl5011xPacketRxSetHeaderS *par);
zlStatusE zl5011xPacketRxSetProtocol(zl5011xParamsS * zl5011xParams,
      zl5011xPacketRxSetHeaderS *par);
zlStatusE zl5011xPacketRxSetControlHeader(zl5011xParamsS * zl5011xParams,
      zl5011xPacketRxSetHeaderS *par);
zlStatusE zl5011xPacketRxDeleteHeader(zl5011xParamsS *zl5011xParams,
      zl5011xPacketRxSetHeaderS *par);

/* Statics called by zl5011xPacketTxSetHeader */
zlStatusE zl5011xAddEthernetHeader(zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header,
      zl5011xPacketTxSetHeaderS * par);
zlStatusE zl5011xAddMPLSHeader(zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header,
      zl5011xPacketTxSetHeaderS * par);
zlStatusE zl5011xAddIPHeader(zl5011xLanTxSetLayer2and3HeaderS *
      layer2and3Header,zl5011xPacketTxSetHeaderS * par);
zlStatusE zl5011xAddUDPHeader(zl5011xLanTxSetLayer4and5HeaderS *
      layer4and5Header,zl5011xPacketTxSetHeaderS * par);
zlStatusE zl5011xAddCDHeader(zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header,
      zl5011xLanTxSetLayer4and5HeaderS *layer4and5Header, zl5011xPacketTxSetHeaderS * par,
      Uint8T *cdPos);

zlStatusE zl5011xUpdateIPChecksum(zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header,
      zl5011xLanTxSetLayer4and5HeaderS *layer4and5Header,
      zl5011xPacketTxSetHeaderS * par);
zlStatusE zl5011xUpdateUDPChecksum(zl5011xLanTxSetLayer4and5HeaderS *layer4and5Header,
      zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header, zl5011xPacketTxSetHeaderS *par);

zlStatusE zl5011xCopyHeaders(zl5011xLanTxSetLayer2and3HeaderS *layer2and3Header,
      zl5011xLanTxSetLayer4and5HeaderS *layer4and5Header,
      zl5011xPacketTxSetHeaderS *par);

zlStatusE zl5011xPacketGetWanRxCDHeader(zl5011xParamsS *zl5011xParams,
      zl5011xPacketTxSetHeaderS *par, Uint16T *cdHeader, Uint8T cdPos);

/* Statics called by zl5011xPacketRxSetHeader */
Uint32T zl5011xGetHeaderLength(zl5011xPacketRxSetHeaderS * par);

#ifdef __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产馆精品极品| 色婷婷久久久综合中文字幕| 日韩av电影天堂| 亚洲午夜久久久久久久久电影网| 亚洲视频小说图片| 中文字幕精品综合| 欧美国产激情二区三区| 国产日韩视频一区二区三区| 久久亚洲私人国产精品va媚药| 欧美一区二区三区小说| 91精品国产91热久久久做人人| 欧美久久久影院| 欧美一二三区在线观看| 精品国产制服丝袜高跟| 欧美电影免费观看高清完整版在| 欧美成人一区二区三区片免费| 日韩欧美国产wwwww| 精品国产一区二区精华| 久久久久9999亚洲精品| 国产精品毛片无遮挡高清| 综合久久久久久| 亚洲自拍偷拍欧美| 日韩av电影天堂| 国产一区欧美一区| www.66久久| 欧美日韩在线三区| 欧美电影免费观看高清完整版在 | 欧美高清在线视频| **欧美大码日韩| 一区二区三区日韩欧美| 亚洲高清不卡在线观看| 麻豆一区二区三| 国产九九视频一区二区三区| av福利精品导航| 欧洲色大大久久| 日韩亚洲国产中文字幕欧美| 国产三级欧美三级日产三级99| 国产精品国产a级| 亚洲丶国产丶欧美一区二区三区| 日本成人超碰在线观看| 懂色av中文字幕一区二区三区 | 中文字幕一区二区三区蜜月 | 色婷婷精品久久二区二区蜜臀av| 欧美揉bbbbb揉bbbbb| 精品国产自在久精品国产| 中文乱码免费一区二区| 一区二区三区av电影| 午夜天堂影视香蕉久久| 美女网站视频久久| eeuss影院一区二区三区| 欧美精品在线观看一区二区| 久久精子c满五个校花| 夜夜精品浪潮av一区二区三区| 三级一区在线视频先锋| 成人激情免费视频| av一区二区久久| 这里是久久伊人| 国产精品嫩草久久久久| 日韩影院在线观看| 高清国产午夜精品久久久久久| 欧美在线观看你懂的| 欧美一级日韩不卡播放免费| 亚洲欧美成人一区二区三区| 国精产品一区一区三区mba桃花 | 久久久精品中文字幕麻豆发布| 亚洲一区影音先锋| 成人教育av在线| 日韩三级视频在线看| 一区二区三区四区蜜桃| 国产a级毛片一区| 日韩美一区二区三区| 一区二区三区四区av| 国产一区二区成人久久免费影院| 欧美色窝79yyyycom| 国产精品看片你懂得| 国产一区二区三区在线观看免费| 欧美三电影在线| 亚洲精品免费一二三区| 国产91在线观看| 欧美精品一区二区不卡| 日日摸夜夜添夜夜添精品视频| 91看片淫黄大片一级在线观看| 久久精品一区二区三区不卡牛牛| 日韩成人一区二区三区在线观看| 99国产精品国产精品毛片| 久久久www免费人成精品| 日产精品久久久久久久性色| 色88888久久久久久影院按摩 | 国产成人在线视频网址| 精品福利一区二区三区| 日韩综合小视频| 欧美三级一区二区| 亚洲男人都懂的| bt7086福利一区国产| 日本一区二区免费在线| 国产一区二三区| 久久综合九色综合97婷婷 | 欧美最猛性xxxxx直播| 亚洲日本丝袜连裤袜办公室| eeuss鲁片一区二区三区在线观看| 国产午夜精品一区二区三区视频| 九九久久精品视频| 日韩欧美亚洲国产另类| 免费观看在线色综合| 91精品国产综合久久香蕉的特点| 午夜伊人狠狠久久| 91精品国产手机| 精品在线免费视频| 久久综合久色欧美综合狠狠| 国产中文字幕一区| 国产午夜精品理论片a级大结局 | 精品国产免费一区二区三区四区| 蜜桃视频一区二区三区在线观看| 日韩一区二区三区在线观看| 青青青爽久久午夜综合久久午夜| 3d成人h动漫网站入口| 美腿丝袜亚洲一区| 亚洲精品一线二线三线| 国产乱码字幕精品高清av | 国产精品99久| 国产精品久久久久久久久久久免费看 | 国产一区二三区| 欧美极品aⅴ影院| 成人ar影院免费观看视频| 中文字幕亚洲精品在线观看| 色噜噜狠狠成人中文综合| 香蕉久久夜色精品国产使用方法 | 中文字幕字幕中文在线中不卡视频| 一本一道综合狠狠老| 亚洲超碰精品一区二区| 日韩欧美国产精品| 成人午夜免费视频| 亚洲激情在线激情| 日韩亚洲欧美中文三级| 国产精品一区二区在线看| 中文字幕在线观看一区| 在线观看91精品国产入口| 人人超碰91尤物精品国产| 久久女同性恋中文字幕| 93久久精品日日躁夜夜躁欧美| 亚洲va欧美va人人爽午夜| 精品毛片乱码1区2区3区| 99久久综合国产精品| 午夜精品免费在线| 久久久久久久久久电影| 色999日韩国产欧美一区二区| 日本欧美在线看| 中文字幕一区二区三区蜜月| 91精品国产品国语在线不卡| 国产mv日韩mv欧美| 亚洲国产欧美日韩另类综合| 久久久久青草大香线综合精品| 91麻豆免费观看| 激情欧美日韩一区二区| 夜夜爽夜夜爽精品视频| 久久久www成人免费毛片麻豆| 日本丰满少妇一区二区三区| 久久99精品国产麻豆不卡| 亚洲男同1069视频| 337p粉嫩大胆噜噜噜噜噜91av| 欧洲av在线精品| 国产suv精品一区二区三区| 日韩经典中文字幕一区| 亚洲男人电影天堂| 国产日韩欧美在线一区| 欧美日本一区二区| eeuss国产一区二区三区| 国模套图日韩精品一区二区| 亚洲高清免费在线| 国产精品久久久久桃色tv| 欧美不卡一区二区| 欧美三级视频在线观看| 99re免费视频精品全部| 久久99九九99精品| 性感美女久久精品| 一区二区三区在线播| 国产精品久久久久久久久免费桃花| 精品国产乱子伦一区| 欧美精品三级日韩久久| 91免费精品国自产拍在线不卡| 国产高清在线精品| 久久99精品久久久久婷婷| 日韩电影在线观看一区| 一区二区三区丝袜| 亚洲欧洲日韩在线| 亚洲国产精品黑人久久久| 久久看人人爽人人| 日韩欧美中文字幕制服| 67194成人在线观看| 欧美中文字幕一二三区视频| 成人av免费在线播放| 国产黄色成人av| 国产精品中文字幕一区二区三区| 美女被吸乳得到大胸91| 日本vs亚洲vs韩国一区三区 | 韩国在线一区二区| 美女视频黄免费的久久 | 在线观看av一区二区| 色偷偷成人一区二区三区91 | 久久综合久久综合久久综合|