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

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

?? ospf_mib_helper.c

?? vxworks下ospf協議棧
?? C
?? 第 1 頁 / 共 5 頁
字號:
/***************************************************************************************** ospfMapiVirtNbrCompare - compare two virtual neighbor instances** This routine is invoked by AVL to compares two neighbor instances index values.* Node is a node on the given AVL tree. Key is the search criteria provided by the* mib api when invoking the avl routines.** RETURNS: An integer greater than, equal to, or less than 0, according*          to whether <s1> is lexicographically greater than, equal to,*          or less than <s2>, respectively.** ERRNO: N/A** NOMANUAL*/LOCAL int ospfMapiVirtNbrCompare( void * node, GENERIC_ARGUMENT key ){    mApiOspfVirtNbr_t  *pVirtNbr;    ulong_t            mibIndex[OSPF_VIRT_NBR_INSTANCE_LEN];    int                oidLength;    pVirtNbr = (mApiOspfVirtNbr_t *)node;    oidLength = OSPF_VIRT_NBR_INSTANCE_LEN;    /* reconstruct the index values for ospfNbrTable. ospfNbrTable is indexed by     * ospfNbrIpAddr and ospfNbrAddressLessIndex     */    memset( mibIndex, 0, sizeof(mibIndex) );    ospf_mApi_ipAddr2IpIndex( pVirtNbr->ospfVirtNbrArea, &mibIndex[0] );    ospf_mApi_ipAddr2IpIndex( pVirtNbr->ospfVirtNbrRtrId, &mibIndex[4] );    return ospfMapiOidCompare( oidLength, (ulong_t *)key.p, mibIndex );}/***************************************************************************************** ospfMapiExtLsdbCompare - compare two external lsdb instances** This routine is invoked by AVL to compares two lsdb instances index values.* Node is a node on the given AVL tree. Key is the search criteria provided by the* mib api when invoking the avl routines.** RETURNS: An integer greater than, equal to, or less than 0, according*          to whether <s1> is lexicographically greater than, equal to,*          or less than <s2>, respectively.** ERRNO: N/A** NOMANUAL*/LOCAL int ospfMapiExtLsdbCompare( void * node, GENERIC_ARGUMENT key ){    mApiOspfExtLsdb_t *pExtLsdb;    ulong_t           mibIndex[OSPF_EXT_LSDB_INSTANCE_LEN];    int               oidLength;    pExtLsdb = (mApiOspfExtLsdb_t *)node;    oidLength = OSPF_EXT_LSDB_INSTANCE_LEN;    /* reconstruct the index values for ospfExtLsdbTable. ospfExtLsdbTable is indexed     * by ospfExtLsdbType, ospfExtLsdbLsid and ospfExtLsdbRouterId     */    memset( mibIndex, 0, sizeof(mibIndex) );    mibIndex[0] = pExtLsdb->ospfExtLsdbType;    ospf_mApi_ipAddr2IpIndex( pExtLsdb->ospfExtLsdbLsid, &mibIndex[1] );    ospf_mApi_ipAddr2IpIndex( pExtLsdb->ospfExtLsdbRouterId, &mibIndex[5] );    return ospfMapiOidCompare( oidLength, (ulong_t *)key.p, mibIndex );}/***************************************************************************************** ospfMapiAreaAggregateCompare - compare two Area Aggregate instances** This routine is invoked by AVL to compares two Area Aggregate instances index values.* Node is a node on the given AVL tree. Key is the search criteria provided by the* mib api when invoking the avl routines.** RETURNS: An integer greater than, equal to, or less than 0, according*          to whether <s1> is lexicographically greater than, equal to,*          or less than <s2>, respectively.** ERRNO: N/A** NOMANUAL*/LOCAL int ospfMapiAreaAggregateCompare( void * node, GENERIC_ARGUMENT key ){    mApiOspfAreaAggregate_t  *pAreaAg;    ulong_t                  mibIndex[OSPF_AREA_AGGREGATE_INSTANCE_LEN];    int               oidLength;    pAreaAg = ( mApiOspfAreaAggregate_t *)node;    oidLength = OSPF_AREA_AGGREGATE_INSTANCE_LEN;    /* reconstruct the index values for ospfExtLsdbTable. ospfExtLsdbTable is indexed     * by ospfExtLsdbType, ospfExtLsdbLsid and ospfExtLsdbRouterId     */    memset( mibIndex, 0, sizeof(mibIndex) );    ospf_mApi_ipAddr2IpIndex( pAreaAg->ospfAreaAggregateAreaID, &mibIndex[0] );    mibIndex[4] = pAreaAg->ospfAreaAggregateLsdbType;    ospf_mApi_ipAddr2IpIndex( pAreaAg->ospfAreaAggregateNet, &mibIndex[5] );    ospf_mApi_ipAddr2IpIndex( pAreaAg->ospfAreaAggregateMask, &mibIndex[9] );    return ospfMapiOidCompare( oidLength, (ulong_t *)key.p, mibIndex );}/****************** internal ospf-mib method routines ********************//***************************************************************************************** ospf_mApi_protoCheck - OSPF protocol consistency checks** This routine performs the protocol consistency checks. It check if the OSPF protocol* is enabled. It is called when an attempt is made to instantiate an instance of* conceptual tabular row. Specifically, this routine is called each time a tabular row is* created with the createAndGo(4) rowStatus enumeration value or if the rowStatus* enumeration value for an existing row is set to active(1).** RETURNS: OK or ERROR** NOMANUAL*/LOCAL STATUS ospf_mApi_protoCheck( void ){    mApiOspfGenGroup_t *pMapiOspfGenGroup;    pMapiOspfGenGroup = (mApiOspfGenGroup_t *)thisMapi->pMapiOspfGenGroup;    if ( pMapiOspfGenGroup->ospfAdminStat == EmApiOspf_disabled )    {        mApiOspfPrintf(("ospf_mApi_protoCheck:ospfAdminStat not enabled\n"));        return ERROR;    }    return OK;}/****************************************************************************************** ospf_mApi_areaStatusUpdate - examine and update various Area attributes.** This routine examine and update varios Area attributes. This routine is invoked when* the state of of an interface connected to an area has changed. It checks the transit* area status, update the counter that tracks the number of active areas in the router,* and determined if the area border router (ABR) status for the router needs to be* updated.** RETURNS: N/A** NOMANUAL*/LOCAL void ospf_mApi_areaStatusUpdate( mApiOspfArea_t *pArea,                                       ushort_t initialActiveIfCnt,                                       ushort_t initialActiveHostCnt ){    mApiOspfGenGroup_t *pMapiOspfGenGroup;    if ( pArea == NULL )        return;    /* special case for handling backbone area */    if ( pArea->ospfAreaId == OSPF_BACKBONE_AREA )    {        /* determine if the backbone area is still active. Only the numActiveIf         * counter for the backbone is considered here. Ignore the numActiveHost         * counter since host interface is somewhat "passive" and should not take         * into account when determine if the backbone area is active.         */        if ( pArea->numActiveIf > 0 )            thisMapi->ospfBackboneActive = TRUE;        else            thisMapi->ospfBackboneActive = FALSE;    }    /* a transit area must have at least one active interface attach to it.     * Otherwise, virtual link will not operate. The characteristic of a     * transit area is only meaningful is there is virtual link configured     * in that area     */    if ( (pArea->numActiveIf > 0) && (pArea->numActiveVirtIf > 0) )        pArea->isTransitArea = EmApiOspf_true; /* mark this as an transit area */    else        pArea->isTransitArea = EmApiOspf_false;    /* keep track the number of active area that we have. If there is no active     * interface in the area, area can no longer be labeled as active. Here we     * don't consider the host interface at all.     */    if ( (pArea->numActiveIf == 0) && (initialActiveIfCnt != 0) )    {        if (thisMapi->numActiveArea > 0) /* so that we don't go to negative */            thisMapi->numActiveArea--;    }    else    {        /* if there was previously no active interface attached to this area and         * there is at least one now, increment the numActiveArea counter. If there was         * at least one active interface attached previously, do nothing because         * the area has already been declared as active. Notice that the number of         * host interface in an area is not considered here. This is because most of         * the configurations (such as virtual link) requires an active (non host)         * interface in order to operate.         */         if ( (initialActiveIfCnt == 0) && (pArea->numActiveIf > 0) )             thisMapi->numActiveArea++;    }    /* update the ABR status */    pMapiOspfGenGroup = (mApiOspfGenGroup_t *)thisMapi->pMapiOspfGenGroup;    if ( thisMapi->numActiveArea > 1 )        pMapiOspfGenGroup->ospfAreaBdrRtrStatus = EmApiOspf_true;    else        pMapiOspfGenGroup->ospfAreaBdrRtrStatus = EmApiOspf_false;    return;}/***************************************************************************************** ospf_mApi_areaRegsiterIf - register a client Interface to an area** This routine add a client interface to the listIfAttached linked list for an area.* There are three types of client that gets onto the list: physical interface,* virtual interface and host interface. It is invoked when (1) the area is first created* (2) the rowStatus for the attached interface has changed (i.e. from active to* notInService) (3) a new client interface is created.** RETURNS: OK or ERROR** NOMANUAL*/LOCAL STATUS ospf_mApi_areaRegisterIf( mApiOspfArea_t *pArea, void *pNewClient,                                       mApiOspfClientType_t clientType, int oldStatus ){    mApiOspfClient_t     *pAttachedClient;    ushort_t             initialActiveIf;    ushort_t             initialActiveHost;    mApiOspfRowStatus_t  currStatus;    /* save the current active interface count for later comparison */    initialActiveIf = pArea->numActiveIf;    initialActiveHost = pArea->numActiveHost;    /* make sure we don't have a duplicate entry */    for ( pAttachedClient = (mApiOspfClient_t *)lstFirst( &pArea->listIfAttached);          pAttachedClient != NULL;          pAttachedClient = (mApiOspfClient_t *)lstNext( &pAttachedClient->node ) )    {        if ( pAttachedClient->clientType != clientType )            continue;        switch( pAttachedClient->clientType )        {            case EmApiOspfClientType_intf:            {                mApiOspfIf_t *pIf;                mApiOspfIf_t *pClient;                pIf = (mApiOspfIf_t *)pAttachedClient->pClient;                pClient = (mApiOspfIf_t *)pNewClient;                if ( (pIf->ospfIfIpAddress == pClient->ospfIfIpAddress) &&                     (pIf->ospfAddressLessIf == pClient->ospfAddressLessIf) )                {                    mApiOspfPrintf(("ospf_mApi_areaRegisterIf:Client exist\n"));                    /* remember its previous state */                    pAttachedClient->oldStatus = oldStatus;                    /* get the current client row status information */                    currStatus = pClient->ospfIfStatus;                    /* interface transition from active to notReady or notInService? */                    if ( (oldStatus == (int)EmApiOspfRowStatus_active) &&                         ( (currStatus == EmApiOspfRowStatus_notInService) ||                           (currStatus == EmApiOspfRowStatus_notReady) ) )                    {                        if ( pIf->ospfIfAdminStat == EmApiOspf_enabled )                        {                            if ( pArea->numActiveIf > 0 )                                pArea->numActiveIf--;                            /* update the area attributes if necessary */                            ospf_mApi_areaStatusUpdate( pArea, initialActiveIf,                                                        initialActiveHost );                        }                        return OK;                    }                    /* interface transition from notInService or notReady to active? */                    else if ( (currStatus == EmApiOspfRowStatus_active) &&                              ( (oldStatus == (int)EmApiOspfRowStatus_notInService) ||                                (oldStatus == (int)EmApiOspfRowStatus_notReady) ) )                    {                        if ( pIf->ospfIfAdminStat == EmApiOspf_enabled )                        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影院国产精品| 成人午夜激情影院| 3atv在线一区二区三区| 亚洲观看高清完整版在线观看 | 国产精品二三区| av电影在线观看一区| 日韩一区中文字幕| 欧美日韩免费在线视频| 日韩不卡一区二区| 国产日韩欧美麻豆| 色屁屁一区二区| 免费日韩伦理电影| 国产精品视频一区二区三区不卡| 成人免费视频一区| 亚洲一区二区三区小说| 日韩欧美中文一区| 国产精品1区二区.| 亚洲一区视频在线| 亚洲精品一区二区三区在线观看| 国产成人超碰人人澡人人澡| 亚洲精品免费播放| 精品国一区二区三区| 成人高清免费在线播放| 午夜精品福利一区二区蜜股av | 精品在线观看视频| 一区精品在线播放| 欧美一级日韩不卡播放免费| 夫妻av一区二区| 亚洲一线二线三线视频| 精品国产乱码久久久久久影片| jvid福利写真一区二区三区| 亚洲一二三四久久| 久久精品综合网| 日本韩国一区二区三区视频| 天天综合网天天综合色| 亚洲国产精品99久久久久久久久 | 日韩精品视频网站| 中文字幕亚洲在| 日韩精品一区二区三区在线播放 | 国产精品欧美一区二区三区| 欧美色图激情小说| av色综合久久天堂av综合| 亚洲成人激情av| 日韩久久一区二区| 欧美成人a∨高清免费观看| 色婷婷综合视频在线观看| 成人午夜激情在线| 久久精品噜噜噜成人88aⅴ| 亚洲欧美一区二区久久| 久久久精品综合| 欧美巨大另类极品videosbest | 中文一区二区完整视频在线观看| 欧美日韩高清一区二区三区| kk眼镜猥琐国模调教系列一区二区| 秋霞影院一区二区| 亚洲成人一区二区| 亚洲卡通欧美制服中文| 国产丝袜欧美中文另类| 欧美精品v国产精品v日韩精品| 国产在线麻豆精品观看| 亚州成人在线电影| 精品sm在线观看| 精品欧美乱码久久久久久1区2区| 91视频国产观看| 国产乱国产乱300精品| 亚洲免费av高清| 中文字幕av一区二区三区| 欧美电影免费提供在线观看| 91激情五月电影| 成人午夜视频网站| 毛片基地黄久久久久久天堂| 精品国产乱码久久久久久蜜臀 | 日韩高清在线观看| 亚洲免费在线观看| 欧美xxxxx牲另类人与| 制服视频三区第一页精品| 日本高清不卡视频| av不卡在线观看| 成人午夜av电影| 韩国成人福利片在线播放| 蜜桃视频一区二区三区在线观看| 亚洲综合视频在线观看| 韩国精品免费视频| 精品一区二区三区久久| 午夜天堂影视香蕉久久| 亚洲美女一区二区三区| 国产精品久久精品日日| 中文欧美字幕免费| 国产精品网站一区| 欧美国产激情一区二区三区蜜月| 精品国产91亚洲一区二区三区婷婷| 在线观看日韩高清av| 色综合天天视频在线观看| 色哟哟国产精品| 色狠狠一区二区三区香蕉| 色综合久久综合网欧美综合网| 成人福利视频网站| 国产一区二区在线影院| 成人免费视频一区| 一本久久a久久精品亚洲| 91免费版在线| 欧美在线你懂的| 欧美日韩在线观看一区二区| 欧美无砖砖区免费| 欧美一区2区视频在线观看| 在线观看av一区| 欧美日韩一区三区| 91精品在线观看入口| 日韩欧美一二区| 国产视频一区二区三区在线观看 | 国产午夜久久久久| 国产精品蜜臀av| 亚洲精品一卡二卡| 亚洲激情av在线| 九色综合狠狠综合久久| 国产乱码字幕精品高清av| 成人国产亚洲欧美成人综合网| 99re视频精品| 欧美日韩精品电影| 亚洲精品一区二区三区精华液| 久久新电视剧免费观看| 国产欧美日韩一区二区三区在线观看| 久久久久高清精品| 一区2区3区在线看| 蜜臀精品久久久久久蜜臀 | 秋霞午夜av一区二区三区| 久久爱另类一区二区小说| 成人黄色免费短视频| 欧美三片在线视频观看| 精品国产一区二区三区av性色| 国产精品视频一二| 日韩电影在线免费| 成人国产精品免费观看视频| 欧美日韩国产另类一区| 国产午夜精品一区二区三区四区 | 国产成人自拍网| 欧美影院一区二区三区| 精品国产乱码久久久久久久久| 亚洲视频你懂的| 成人av网站大全| 欧美一区二区福利视频| 国产女同性恋一区二区| 欧美a级一区二区| av资源网一区| 日韩一级完整毛片| 亚洲男同性恋视频| 国产美女久久久久| 欧美日韩不卡一区二区| 国产精品拍天天在线| 日韩二区三区四区| 欧美无砖专区一中文字| 国产精品理论在线观看| 美女网站一区二区| 欧美系列日韩一区| 中文字幕日韩一区| 国产精品亚洲一区二区三区妖精| 国产一区二区按摩在线观看| 精品国产乱码久久久久久夜甘婷婷| 亚洲一二三区不卡| 91精品办公室少妇高潮对白| 国产精品人成在线观看免费| 激情都市一区二区| 在线精品视频一区二区三四 | 91啪亚洲精品| 最新中文字幕一区二区三区| 国产真实乱偷精品视频免| 欧美肥大bbwbbw高潮| 一区二区在线电影| 色综合天天综合色综合av| 久久精品免费在线观看| 久久精品国产在热久久| 91精品久久久久久久91蜜桃| 亚洲国产综合在线| 在线视频亚洲一区| 亚洲一区二区精品久久av| 色一情一伦一子一伦一区| 亚洲综合在线视频| 日本伦理一区二区| 亚洲欧美日韩国产中文在线| 99热在这里有精品免费| 国产精品久久久久久久久免费樱桃| 国产在线精品免费av| 欧美猛男gaygay网站| 免费看日韩a级影片| 欧美一区二区成人6969| 亚洲午夜精品网| 色综合久久中文字幕综合网| 亚洲男帅同性gay1069| 在线影院国内精品| 亚洲已满18点击进入久久| 欧美日韩dvd在线观看| 一区二区视频免费在线观看| 3751色影院一区二区三区| 午夜国产精品一区| 日韩一级大片在线观看| 激情都市一区二区| 国产精品欧美一区喷水| 91精品视频网| 奇米888四色在线精品| 久久色.com|