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

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

?? zl5011xpktpassthru.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*******************************************************************************
*
*  File name:              zl5011xPktPassthru.c
*
*  Version:                2
*
*  Author:                 APL
*
*  Date created:           18/02/2005
*
*  Copyright 2002, 2003, 2004, 2005, Zarlink Semiconductor Limited.
*  All rights reserved.
*
*  Module Description:
*
*  This file contains the high level functions to assist with setting up
*  data passthrough from one packet port to another.
*  Either an individual flow can be set up or a group of flows
*  consisting of two mirrored bi-directional flows and a third flow to allow
*  broadcast traffic.
*
*  Revision History:
*
*  Rev:  Date:       Author:  Comments:
*  1     18/02/2005  APL      First version
*  2     07/03/2005  APL      Improved parameter error checking
*
*******************************************************************************/

/*****************   INCLUDE FILES                *****************************/

#include "zl5011xApi.h"
#include "zl5011xLan.h"
#include "zl5011xLanLanLink.h"
#include "zl5011xPacket.h"
#include "zl5011xPktPassthru.h"


/*****************  DEFINES ***************************************************/

/*****************  EXTERNAL GLOBAL VARIABLES  ********************************/

/*****************   STATIC GLOBAL VARIABLES   ********************************/

/*****************   EXPORTED FUNCTION DEFINTIONS   ***************************/

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

 Function:
    zl5011xCreatePktToPktPassthruStructInit

 Description:
   Initialises structure used by functions zl5011xCreatePktToPktPassthru

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   par            Pointer to the structure for configuration items.
                  See main function

 Returns:
   zlStatusE

 Remarks:

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

zlStatusE zl5011xCreatePktToPktPassthruStructInit(zl5011xParamsS *zl5011xParams,
      zl5011xPktToPktPassthruS * par)
{
   zlStatusE status = ZL5011X_OK;
   Sint32T i;

   ZL5011X_TRACE(ZL5011X_PACKET_FN_ID,"zl5011xCreatePktToPktPassthruStructInit:",0, 0, 0, 0, 0, 0);

   /* do some parameter checking */
   status = ZL5011X_CHECK_POINTERS(zl5011xParams, par);

   if (status == ZL5011X_OK)
   {
      par->upLinkPort = 0;       /* Use port 0, queue 0 for uplink by default */
      par->upLinkQueueNum = 0;

      par->downLinkPort = 1;     /* Use port 1, queue 0 for downlink by default */
      par->downLinkQueueNum = 0;

      par->protocolMatchNum = (Uint32T)ZL5011X_INVALID; /* Choose protocol match automatically */
      for (i=0; i<ZL5011X_NUM_PKT_PKT_FLOWS; i++)
      {
         par->context[i] = (Uint32T)ZL5011X_INVALID_CONTEXT;  /* Choose context automatically */
         par->classifyMatchNum[i] = (Uint32T)ZL5011X_INVALID; /* Choose classify match number automatically */
      }

      par->osExclusionEnable = ZL5011X_TRUE;   /* Default to using OS exclusion when accessing the
                                                device from this function */
   }

   return(status);
}

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

 Function:
    zl5011xCreatePktToPktPassthru

 Description:
   Creates two Packet-to-Packet flows which together provide data passthrough
   capability.

         +-----------+              +------------+
         |   Host    |              |   ZLxxxxx  |
         |           |              |            |
         |      Mac1 |<------------>| Mac2  Mac1 |<-----------> To network
         |           | (downlink)   |            |              (uplink)
         |           |              |            |
         +-----------+              +------------+

   The flows created in the ZL5011X_ device are as follows:
   1. A flow handling host to network packets which have ethernet source
      MAC address = Mac1. These are forwarded to the uplink port
   2. A flow handling packets which do not match flow 1 (or any other application
      defined flow). These are forwarded to the downlink port.

   Flow 2, by its very nature supports both unicast and multicast packets but will
   also forward any other packets to the host. A future enhancement would be possible
   to separate flow 2 into a unicast flow and a multicast flow so that stray
   packets will then not be forwarded.

   Packets are transmitted unchanged on the appropriate Packet output port in each
   case.
   It is required that the network port on the ZL5011X_ device is programmed with the
   same MAC address as the host ethernet port.

 Structure inputs:
   upLinkPort           The port number of the device used for the uplink
                        Default = port 0
   upLinkQueueNum       The output queue to use on the uplink transmit port
                        Range 0-3.  In the default priority mode, queue 3 has
                                    the highest priority.
                        Default = 0.
   downLinkPort         The port number of the device used for the downlink
                        Default = port 1
   downLinkQueueNum     The output queue to use on the uplink transmit port
                        Range 0-3.  In the default priority mode, queue 3 has
                                    the highest priority.
                        Default = 0.

   protocolMatchNumber  can be set to specify which protocol match to use if the
                        protocol is not already defined, in which case the current
                        number is returned. If a number is not specified then
                        the highest available match number will be used.
                        Range = 0-3
                        Default = automatically choose protocol match
   context[2]           Can optionally be set to specify which contexts to use.
                        Otherwise they will automatically be selected by finding
                        the highest available unused context numbers.
                        Range = 0-maximum number of contexts (device dependent)
                        Default = choose contexts automatically
   classifyMatchNumber[2]  can be set to specify which classification match to use
                        for each flow. If a number is not specified then one will
                        automatically be chosen.
                        Range = 0-271
                        Default = automatically choose classification match

   osExclusionEnable    ZL5011X_TRUE to enable OS exclusion in this function
                        Default = ZL5011X_TRUE

 Structure outputs:
   protocolMatchNumber  returns the protocol match number used.
   classifyMatchNumber[3]  returns the classification match numbers used for these contexts
   context[3]           returns the context numbers used for this group of
                        pass through flows

 Returns:
    status            Any valid error code

 Remarks:

*******************************************************************************/
zlStatusE zl5011xCreatePktToPktPassthru(zl5011xParamsS *zl5011xParams, zl5011xPktToPktPassthruS *par)

{
   zlStatusE status = ZL5011X_OK;
   zl5011xBooleanE gotDevice = ZL5011X_FALSE;
   Sint32T i;

   ZL5011X_TRACE(ZL5011X_PACKET_FN_ID,"zl5011xCreatePktToPktPassthru:",0, 0, 0, 0, 0, 0);

   /* do some parameter checking */
   status = ZL5011X_CHECK_POINTERS(zl5011xParams, par);

   /* check that both uplink and downlink ports are valid and different */
   if (par->upLinkPort >= zl5011xParams->devLimits.lanNumLanPorts)
   {
      status = ZL5011X_INVALID_PORT;
   }
   else if (par->downLinkPort >= zl5011xParams->devLimits.lanNumLanPorts)
   {
      status = ZL5011X_INVALID_PORT;
   }
   else if (par->downLinkPort == par->upLinkPort)
   {
      status = ZL5011X_INVALID_PORT_CONFIG;
   }
   else if (par->upLinkQueueNum >= ZL5011X_PKQ_NUM_QUEUES)
   {
      status = ZL5011X_INVALID_PORT_CONFIG;
   }
   else if (par->downLinkQueueNum >= ZL5011X_PKQ_NUM_QUEUES)
   {
      status = ZL5011X_INVALID_PORT_CONFIG;
   }

   if ((status == ZL5011X_OK) && (par->osExclusionEnable == ZL5011X_TRUE))
   {
      /* get access to the device */
      status = zl5011xGetDevice(zl5011xParams, ZL5011X_GET_DEVICE_TIMEOUT_MODE);

      if (status == ZL5011X_OK)
      {
         gotDevice = ZL5011X_TRUE;
      }
   }

   if (status == ZL5011X_OK)
   {
      /* Find the highest available protocol match number (=lowest priority)
         if none specified directly */
      if (par->protocolMatchNum == (Uint32T)ZL5011X_INVALID)
      {
         Sint32T loop;

         for (loop = ZL5011X_PKC_NUM_PROTOCOL_ENTRIES-1; loop >= 0; loop--)
         {
            if (zl5011xParams->packetIf.packetRx.pkcProtocol[loop].protocolReserved == ZL5011X_FALSE)
            {
               /* Found an unused protocol match */
               par->protocolMatchNum = loop;
               break;
            }
         }

         if (loop < 0)
         {  /* No spare protocol match could be found */
            status = ZL5011X_NO_AVAIL_PROTOCOL_MATCH;
         }
      }
   }

   /* Find empty contexts if any are not specified directly */
   {
      Uint32T startSearch;

      /* Start searching at the highest available context */
      startSearch = zl5011xParams->devLimits.numContexts-1;
      for (i = 0; (status == ZL5011X_OK) && (i < ZL5011X_NUM_PKT_PKT_FLOWS); i++)
      {
         if (par->context[i] == (Uint32T)ZL5011X_INVALID_CONTEXT)
         {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三片在线视频观看| 亚洲天堂福利av| 亚洲国产成人午夜在线一区| 亚洲福利电影网| 91在线视频网址| 久久久久97国产精华液好用吗| 亚洲美女电影在线| 国产成人在线电影| 日韩欧美一区二区免费| 亚洲综合色噜噜狠狠| 成人免费va视频| 久久五月婷婷丁香社区| 日韩黄色小视频| 91在线观看视频| 中文字幕免费观看一区| 国产综合成人久久大片91| 欧美精品日韩一本| 亚洲国产日产av| 97精品视频在线观看自产线路二 | 青娱乐精品在线视频| 91丨九色丨蝌蚪富婆spa| 国产视频一区二区在线观看| 麻豆免费看一区二区三区| 欧美二区三区的天堂| 亚洲猫色日本管| 色综合视频在线观看| 国产精品国产成人国产三级 | 日韩欧美你懂的| 天天色天天操综合| 欧美日韩高清一区二区不卡 | 国产精品国产三级国产a| 国产精品亚洲а∨天堂免在线| 精品免费一区二区三区| 久久国产欧美日韩精品| 日韩欧美视频在线| 国产综合久久久久久久久久久久| 精品国产sm最大网站| 九九九精品视频| 久久在线观看免费| 国产999精品久久久久久绿帽| 国产亚洲制服色| 成人黄页在线观看| 亚洲精品水蜜桃| 91久久精品日日躁夜夜躁欧美| 亚洲欧美日本韩国| 欧美久久久久久久久| 久久国产尿小便嘘嘘| 欧美国产成人在线| 色婷婷综合久久久久中文| 亚洲资源中文字幕| 91精品欧美福利在线观看| 国内精品免费在线观看| 亚洲国产高清在线观看视频| 91豆麻精品91久久久久久| 视频一区视频二区中文字幕| 精品国产乱码久久久久久图片 | 欧美三区在线观看| 蜜桃久久精品一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 成人久久视频在线观看| 洋洋av久久久久久久一区| 日韩欧美一区二区免费| 不卡视频免费播放| 午夜精品久久久久| 国产色一区二区| 欧美熟乱第一页| 国产精品资源在线看| 一区二区三区不卡在线观看 | 精品一区二区免费视频| 国产精品麻豆视频| 欧美日韩国产首页| 成人黄色小视频| 男女男精品网站| 中文字幕一区二区三区视频| 日韩一级片网站| 日本精品视频一区二区| 国产麻豆日韩欧美久久| 午夜精品aaa| 国产精品视频一二三区| 日韩一级在线观看| 欧美日韩一区二区三区在线看| 国产在线播放一区| 天天影视涩香欲综合网| 国产精品免费久久| 欧美mv和日韩mv的网站| 欧美日韩在线三级| av中文字幕亚洲| 国产一区二区三区最好精华液| 亚洲成av人在线观看| 亚洲欧洲日本在线| 久久伊人蜜桃av一区二区| 欧美久久免费观看| 欧美视频日韩视频在线观看| 成人免费av资源| 国产高清精品在线| 捆绑调教一区二区三区| 视频一区二区三区中文字幕| 一区二区三区在线观看网站| 国产欧美一区二区精品性色| 日韩免费电影一区| 欧美精品免费视频| 欧美日韩国产乱码电影| 欧美性色黄大片| 91黄色在线观看| 色呦呦日韩精品| 91小视频在线| 色婷婷久久久久swag精品 | 蜜桃av一区二区在线观看| 亚洲成a人v欧美综合天堂| 亚洲一区二区精品久久av| 亚洲综合免费观看高清完整版 | 欧洲人成人精品| 91福利国产精品| 欧美在线啊v一区| 欧美中文字幕久久| 欧美日韩国产一级片| 欧美精品日韩精品| 欧美一区二区不卡视频| 日韩一区二区三区电影在线观看| 日韩欧美久久久| 久久久亚洲精品石原莉奈 | 一区二区欧美在线观看| 一区二区三区四区高清精品免费观看 | 欧美一级高清片| 精品噜噜噜噜久久久久久久久试看| 欧美成人一级视频| 久久久91精品国产一区二区三区| 国产欧美日韩在线观看| 中文字幕亚洲一区二区av在线| 日韩码欧中文字| 亚洲午夜一区二区| 蜜桃久久久久久| 国产不卡在线视频| 日本福利一区二区| 欧美久久久久久蜜桃| wwww国产精品欧美| 亚洲欧洲国产专区| 日韩精品午夜视频| 国产乱妇无码大片在线观看| www.日韩精品| 欧美一区二区国产| 中文字幕一区日韩精品欧美| 亚洲综合区在线| 国产精品一区二区黑丝| 日本韩国一区二区三区视频| 日韩欧美国产1| 亚洲男女一区二区三区| 日本三级韩国三级欧美三级| 成人性生交大片免费看视频在线| 91九色最新地址| 久久久久国产一区二区三区四区| 亚洲欧美日韩一区二区三区在线观看 | 国产麻豆9l精品三级站| 色婷婷激情综合| 欧美成人vr18sexvr| 亚洲视频一区二区免费在线观看 | 欧美日韩一区二区三区在线看| 日韩你懂的在线播放| 中文字幕中文字幕一区| 日韩va欧美va亚洲va久久| av在线综合网| 欧美zozozo| 五月婷婷久久丁香| jlzzjlzz亚洲日本少妇| 精品国产一区a| 亚洲mv在线观看| 91在线视频网址| 久久久精品国产免费观看同学| 亚洲国产精品尤物yw在线观看| 懂色av中文字幕一区二区三区| 这里只有精品视频在线观看| 18欧美亚洲精品| 国产91色综合久久免费分享| 欧美一区二区三区四区视频| 亚洲欧美日韩人成在线播放| 国产精品1024久久| 日韩欧美成人激情| 亚洲成人午夜电影| 一本久久a久久免费精品不卡| 久久精品日韩一区二区三区| 男女视频一区二区| 欧美区一区二区三区| 一区二区三区四区不卡在线 | 自拍视频在线观看一区二区| 国内精品久久久久影院一蜜桃| 欧美日韩高清影院| 午夜激情一区二区三区| 欧美色网一区二区| 亚洲最新在线观看| 91亚洲国产成人精品一区二区三| 国产精品蜜臀在线观看| 国产v日产∨综合v精品视频| 精品美女被调教视频大全网站| 人禽交欧美网站| 日韩午夜三级在线| 美女mm1313爽爽久久久蜜臀| 日韩一级成人av| 免费在线观看一区| 精品国产精品网麻豆系列| 精品亚洲欧美一区|