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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ospf_mib_api.c

?? vxworks下ospf協(xié)議棧
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
 * * NOMANUAL */void ospf_mApi_ipAddr2IpIndex( ulong_t ulIpAddr, ulong_t *pIndex ){    pIndex[0] = ( ulIpAddr >> 24) & 0xFF;    pIndex[1] = ( ulIpAddr >> 16) & 0xFF;    pIndex[2] = ( ulIpAddr >>  8) & 0xFF;    pIndex[3] = ( ulIpAddr >>  0) & 0xFF;    return;}/*****************************************************************************************  ospf_mApi_ipIndex2IpAddr - convert IP Address index to ulong_t.**  This routine convers the IP Address index to ulong_t (network order to host order)**  RETURNS: Host order**  NOMANUAL*/ulong_t ospf_mApi_ipIndex2IpAddr( ulong_t *pIndex ){    ulong_t ipAddr;    ipAddr = 0;    ipAddr |= ( pIndex[0] & 0xFF ) << 24;    ipAddr |= ( pIndex[1] & 0xFF ) << 16;    ipAddr |= ( pIndex[2] & 0xFF ) << 8;    ipAddr |= ( pIndex[3] & 0xFF ) << 0;    return ipAddr;}/********** public Management method routines **********//*************************************************************************************** ospfMapiIsInited - determine if the OSPF Management Facility is initialized** This routine determines if the OSPF Management Facility is initialized.** RETURNS: TRUE if the facility is inited, FALSE otherwise.** ERRNO: N/A** NOMANUAL*/BOOL ospfMapiIsInited( void ){    return ospfMapiInitDone;}/***************************************************************************************** ospfMapiDestroy - destroy the OSPF Management facilities** This routine releases all resources that have been allocated for the Management* Interface.** RETURNS: N/A** ERRNOR: N/A*/STATUS ospfMapiDestroy( void ){    if ( thisMapi != NULL )    {        semTake( thisMapi->semMapiMutex, WAIT_FOREVER );        /* if the OSPF protocol is running, do not allow mib api to be destoryed.          * Otherwise, there will be no way to manage the OSPF protocol. Moreover,         * if the mib api is destoryed and later reinitialized again (while OSPF         * protoocl is running), the mib api management database will not be able to         * synchronize with the OSPF configuration. There is no mechanism for mib         * api to query OSPF for its configuration. In fact, it is not feasible for         * mib api to do so since that will cause unnecessary disruption to the OSPF         * protocol especially if the OSPF is configured in a very complex way and         * there are a large number of link state advertisements in the ospf database.          */        if ( thisMapi->ospfProtoInit == TRUE )        {            semGive( thisMapi->semMapiMutex );                    printf("ospfMapiDestory:OSPF Protocol is up running! Operation denied!\n");            return OK;        }                    /* tell 'em that the ospf mib api is no longer inited */        ospfMapiInitDone = FALSE;        if ( thisMapi->pMapiOspfGenGroup != NULL )        {            free( (void *)thisMapi->pMapiOspfGenGroup );            thisMapi->pMapiOspfGenGroup = NULL;        }        /* erase all avl nodes from avl tree maintain by mib api */        ospf_mApi_avlTreeErase();        if ( thisMapi->pMapiWrnOspfGenGroup != NULL )        {            free( (void *)thisMapi->pMapiWrnOspfGenGroup );            thisMapi->pMapiWrnOspfGenGroup = NULL;        }        /* free all memory used by the rowStatus handlers */        if ( thisMapi->pMapiOspfAreaRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfAreaRs );        if ( thisMapi->pMapiOspfStubRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfStubRs );        if ( thisMapi->pMapiOspfHostRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfHostRs );        if ( thisMapi->pMapiOspfIfRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfIfRs );        if ( thisMapi->pMapiOspfIfmRs != NULL )            rsParamsDelete(thisMapi->pMapiOspfIfmRs );        if ( thisMapi->pMapiOspfVirtIfRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfVirtIfRs );        if ( thisMapi->pMapiOspfNbrRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfNbrRs );        if ( thisMapi->pMapiOspfAreaAgRs != NULL )            rsParamsDelete( thisMapi->pMapiOspfAreaAgRs );        if ( thisMapi->pMapiWrnOspfIfRs != NULL )            rsParamsDelete( thisMapi->pMapiWrnOspfIfRs );        semDelete( thisMapi->semMapiMutex );        free( (void *)thisMapi );        thisMapi = NULL;        mApiOspfPrintf(("ospfMapiDestroy:Router must be restarted now...!!!\n"));    }    return OK;}/***************************************************************************************** ospfMapiInit - initialize Management Interface for OSPF.** This routine initializes the facilities for managing the OSPF. It allocates the* resources needed to allow access to the RFC1850 and WRN Enterprise MIBs. If any* of the parameters is set to 0, the appropriate default values will be used to* allocate the resources needed.** RETURNS: OK or ERROR** ERRNO: N/A*/STATUS ospfMapiInit( NVRAM_SAVE_FUNCPTR nvramSaveRtn, /* callback function pointer */                     NVRAM_DELETE_FUNCPTR nvramDelRtn, /* callback function pointer */                     NVRAM_RETRIEVE_FUNCPTR nvramRetrieveRtn /* callback func pointer */                     ){    /* if ospf has been initialized, do nothing. This is needed in order to avoid multiple     * MIB API initialization been done if ospf is started, shutdown and restarted (the     * MIB API facility is not destoryed during ospf shutdown)     */    if ( ospfMapiInitDone == TRUE )    {        mApiOspfPrintf(("ospfMapiInit: already inited\n"));        return OK;    }    /* create an instance of mApiOspfClass_t */    if ( ( thisMapi = (mApiOspfClass_t *)calloc( 1, sizeof(mApiOspfClass_t))) == NULL )        return ERROR;    /* Create Semaphore to make the access to management AVL trees safe. */    thisMapi->semMapiMutex = semMCreate( SEM_Q_PRIORITY | SEM_INVERSION_SAFE );    if ( thisMapi->semMapiMutex == NULL )    {        free( (char *)thisMapi );        thisMapi = NULL;        return ERROR;    }    /* lock the semaphore */    semTake( thisMapi->semMapiMutex, WAIT_FOREVER );    /* initialize the timeout value used by ospf2Mapi task for operational and statistical     * updates. This is done to avoid the received queue (used by the ospf2Mapi task)     * overflow problem. This happens if the ospf2Mapi task failed to acquire the      * semMapiMutex semaphore due to some expected problems in the mib api.     */    thisMapi->semTimeout = sysClkRateGet() * 5;  /*  5 seconds */    /* set protocol features based on the compile-time preprocessors */    thisMapi->ospfProtoInit = FALSE;    thisMapi->ospfNssaEnabled = FALSE;   /* NSSA is not supported now */#if defined(__OSPF_DB_OVERFLOW_SUPPORT__)    thisMapi->ospfDbOverflow = TRUE;#endif /* __OSPF_DB_OVERFLOW_SUPPORT__ */#if defined(__OPAQUE_LSA__)    thisMapi->ospfOpaqueEnable = TRUE;#endif /* __OPAQUE_LSA__ */#if defined(__RFC_2328__)    thisMapi->ospfRfcProto = EospfProtoType_rfc2328;#else    thisMapi->ospfRfcProto = EospfProtoType_rfc1583;#endif /* __RFC_2328__ */    /* remember the callback function that is used for saving ospf configuration to     * nvram. This callback function is only applicable for system that uses     * nonvolatile memory for saving the system configuration. If this callback     * function is not provided, ospf configuration will not be save     */    thisMapi->nvramSaveRtn = nvramSaveRtn;    if ( thisMapi->nvramSaveRtn == NULL )        mApiOspfPrintf(("ospfMapiInit:nvramSaveRtn callback not registered\n"));    thisMapi->nvramDelRtn = nvramDelRtn;    if ( thisMapi->nvramDelRtn == NULL )        mApiOspfPrintf(("ospfMapiInit:nvramDelRtn callback not registered\n"));    thisMapi->nvramRetrieveRtn = nvramRetrieveRtn;    if ( thisMapi->nvramRetrieveRtn == NULL )        mApiOspfPrintf(("ospfMapiInit:nvramRetrieveRtn callback not registered\n"));    /* setup system specific configuration parameters for OSPF MIB and WRN-OSPF     * Enterprise MIB.     */    thisMapi->mApiOspfMaxArea = DEFAULT_OSPF_MAPI_AREA_MAX;    thisMapi->mApiWrnOspfMaxArea = DEFAULT_OSPF_MAPI_AREA_MAX;    thisMapi->mApiOspfMaxStub = DEFAULT_OSPF_MAPI_STUB_MAX;    thisMapi->mApiOspfMaxLsdb = DEFAULT_OSPF_MAPI_LSDB_MAX;    thisMapi->mApiOspfMaxHost = DEFAULT_OSPF_MAPI_HOST_MAX;    thisMapi->mApiOspfMaxIf = DEFAULT_OSPF_MAPI_INTF_MAX;    thisMapi->mApiOspfMaxIfMetric = DEFAULT_OSPF_MAPI_INTF_MAX;    thisMapi->mApiOspfMaxVirtIf = DEFAULT_OSPF_MAPI_VIRT_INTF_MAX;    thisMapi->mApiOspfMaxVirtNbr = DEFAULT_OSPF_MAPI_VIRT_INTF_MAX;    thisMapi->mApiOspfMaxNbr = DEFAULT_OSPF_MAPI_NBR_MAX;    thisMapi->mApiOspfMaxExtLsdb = DEFAULT_OSPF_MAPI_EXT_LSDB_MAX;    thisMapi->mApiOspfMaxAreaAg = DEFAULT_OSPF_MAPI_AREA_AG_MAX;    /* create the OSPF general parameters data structure */    thisMapi->pMapiOspfGenGroup = (void *)calloc( 1, sizeof(mApiOspfGenGroup_t) );    if ( thisMapi->pMapiOspfGenGroup == NULL )    {        ospfMapiDestroy();        return ERROR;    }    /* initialize the rfc1850 ospf general group parameters to default. Tell 'em to     * set all read-write objects to default value too     */    ospf_mApi_initGeneralGroup( TRUE );    /* initialize the row status library for rfc1850 MIB */    if ( ospf_mApi_initRsLib() == ERROR )    {        mApiOspfError(("ospfMapiInit:ospf_mApi_initRsLib failed.\n"));        ospfMapiDestroy();        return ERROR;    }    /* initialize the AVL trees for rfc1850 MIB */    if ( ospf_mApi_initAvlTree() == ERROR )    {        mApiOspfError(("ospfMapiInit:ospf_mApi_initAvlTree failed.\n"));        ospfMapiDestroy();        return ERROR;    }    /* setup system specific configuration parameters for OSPF MIB and WRN-OSPF     * Enterprise MIB.     */    thisMapi->mApiWrnOspfMaxLsdb =  DEFAULT_OSPF_MAPI_TYPE10_LSA_MAX;    thisMapi->mApiWrnOspfMaxLocalLsdb = DEFAULT_OSPF_MAPI_TYPE9_LSA_MAX;    thisMapi->mApiWrnOspfMaxExtLsdb = DEFAULT_OSPF_MAPI_TYPE11_LSA_MAX;    thisMapi->mApiWrnOspfMaxIf = DEFAULT_OSPF_MAPI_WRN_INTF_MAX;    /* create the OSPF general parameters data structure */    thisMapi->pMapiWrnOspfGenGroup = (void *)calloc( 1, sizeof(mApiWrnOspfGenGroup_t) );    if ( thisMapi->pMapiWrnOspfGenGroup == NULL )    {        ospfMapiDestroy();        return ERROR;    }    /* initialize the wrn ospf enterprise mib general group parameters to default. Tell      * 'em to initialize all read-write object to default too     */    wrnOspf_mApi_initGeneralGroup( TRUE );    /* initialize the row status library for wrn-ospf enterprise MIB */    if ( wrnOspf_mApi_initRsLib() == ERROR )    {        mApiOspfError(("ospfMapiInit:wrnOspf_mApi_initRsLib failed.\n"));        ospfMapiDestroy();        return ERROR;    }    /* initialize the AVL tree for WRN-OSPF Enterprise MIB */    if ( wrnOspf_mApi_initAvlTree() == ERROR )    {        mApiOspfError(("ospfMapiInit:ospf_mApi_initWrnAvlTree failed.\n"));        ospfMapiDestroy();        return ERROR;    }    /* make the semaphore avaiable, signal that the management facility is ready */    ospfMapiInitDone = TRUE;    /* SPR#86520 - Added INCLUDE_OSPF_MIB_UTILITIES component initialization */#if defined(INCLUDE_OSPF_MIB_SHOW_ROUTINES)    ospfMapiShowInit();#endif /* INCLUDE_OSPF_MIB_SHOW_ROUTINES */#if defined(INCLUDE_OSPF_MIB_UTILITIES)    (void)ospfMapiUtilitiesInit();#endif /* INCLUDE_OSPF_MIB_UTILITIES */        semGive( thisMapi->semMapiMutex );    mApiOspfPrintf(("ospfMapiInit:completed.\n"));    /* invoke the caller nvram retrieve callback function to retrieve the OSPF     * configuraitons that are previously save to the nonvolatile memory prior the     * router is rebooted. This nvramRetrieveRtn() will populate all the read-write     * scalar objects as well as the read-create tabular rows in the OSPF-MIB so     * that the manamgenet interface can build its management database.     */    if ( nvramRetrieveRtn != NULL )    {        mApiOspfPrintf(("ospfMapiInit:retrieving ospf configuration from nvram...\n"));        nvramRetrieveRtn();    }    return OK;}/************************************************************************************* ospfMapiSetHelper - OSPF MIB API helper routine for SET operation** This OSPF MIB API helper routine is a wrapper routine that encapsulates al

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说一区二区三区| 亚洲成av人片一区二区三区| 国产成人免费视频精品含羞草妖精| 国产网站一区二区| 欧美视频在线一区二区三区| 精品一区二区在线观看| 夜夜精品视频一区二区| 亚洲国产高清不卡| 欧美一区二区成人6969| 波多野结衣中文字幕一区 | 成人免费黄色大片| 视频一区中文字幕| 中文字幕在线播放不卡一区| 欧美日韩国产中文| 91久久精品一区二区二区| 欧美日韩电影在线播放| 视频一区二区三区在线| 亚洲欧美国产三级| 欧美精品一区二区三区蜜臀| 91精品国产色综合久久不卡电影| 成人精品电影在线观看| 国产成人在线视频播放| 国产高清不卡二三区| 国产乱码精品一区二区三区五月婷 | 欧美肥妇bbw| 色欧美乱欧美15图片| 99热国产精品| 91免费精品国自产拍在线不卡| 国产美女精品一区二区三区| 激情综合色播激情啊| 亚洲成国产人片在线观看| 亚洲图片欧美视频| 日本午夜一本久久久综合| 亚洲aaa精品| 久久国产麻豆精品| 国产99一区视频免费| 欧美一区二区三区日韩视频| 欧美精品丝袜久久久中文字幕| 欧美日韩和欧美的一区二区| 色哟哟亚洲精品| 欧美色综合网站| 日韩精品在线一区二区| 国产亚洲婷婷免费| 亚洲品质自拍视频网站| 亚洲一区国产视频| 激情综合色播激情啊| 91在线无精精品入口| 欧美熟乱第一页| 久久久久久亚洲综合| 夜色激情一区二区| 久久国产精品免费| 色综合久久99| 国产欧美精品一区二区三区四区| 亚洲裸体在线观看| 国产馆精品极品| 91精品国产综合久久久蜜臀图片 | caoporn国产精品| 精品入口麻豆88视频| 一区二区三区欧美久久| 日本不卡视频在线| jlzzjlzz亚洲女人18| 欧美一区二区三区免费视频| 亚洲国产精品传媒在线观看| 石原莉奈在线亚洲二区| 99久久婷婷国产| 国产精品嫩草影院com| 韩国三级在线一区| 久久久国产精华| 国产精品一区二区久久不卡| 国产欧美视频在线观看| 波多野结衣中文字幕一区二区三区| 国产亚洲欧美日韩在线一区| 国产成人午夜片在线观看高清观看| 久久久久免费观看| 99久久精品久久久久久清纯| 亚洲裸体在线观看| 欧美成人精品1314www| 亚洲一区二区av在线| 国产精品夜夜嗨| 亚洲激情五月婷婷| 国产亚洲欧美激情| 6080yy午夜一二三区久久| 国产精品自拍三区| 亚洲影视资源网| 亚洲国产成人午夜在线一区| 色综合久久中文综合久久97| 三级影片在线观看欧美日韩一区二区| 欧美一区二区三区影视| 国产乱子轮精品视频| 亚洲午夜久久久久久久久电影网| 日韩精品综合一本久道在线视频| 国产精品一卡二卡在线观看| 亚洲黄色免费网站| 国产欧美日韩三级| 日韩一级高清毛片| 欧洲精品在线观看| 波多野结衣欧美| 九九热在线视频观看这里只有精品| 国产日韩精品一区二区浪潮av| 欧美性受极品xxxx喷水| 国产成人免费视频精品含羞草妖精| 日韩精品免费专区| 亚洲小说春色综合另类电影| 中文字幕国产精品一区二区| 久久理论电影网| 久久精品夜色噜噜亚洲aⅴ| 精品国产乱子伦一区| 欧美不卡123| 成人免费va视频| 老司机午夜精品| 亚洲电影视频在线| 怡红院av一区二区三区| 亚洲国产激情av| 国产欧美日韩麻豆91| 久久精品亚洲一区二区三区浴池 | 欧美一级xxx| 欧美综合久久久| 欧美探花视频资源| 欧美日韩国产高清一区二区三区 | 一区二区在线观看免费 | 亚洲国产一二三| 五月天婷婷综合| 风流少妇一区二区| 精品在线一区二区| 国产揄拍国内精品对白| 国精产品一区一区三区mba视频 | 久久精品国产网站| 国产a区久久久| 99国产欧美另类久久久精品 | 91欧美一区二区| 欧美视频中文字幕| 精品国产污污免费网站入口 | 亚洲综合一区二区精品导航| 亚洲超碰97人人做人人爱| 奇米777欧美一区二区| 国产呦精品一区二区三区网站| 国产精品一区二区三区99| 成人免费视频免费观看| 欧美性一区二区| 中文字幕av一区二区三区免费看| 亚洲人精品午夜| 激情综合五月天| 欧洲色大大久久| 久久精品夜色噜噜亚洲aⅴ| 日韩美女久久久| 欧美aⅴ一区二区三区视频| 国产精品18久久久久久久久久久久 | 粉嫩av一区二区三区在线播放| 欧美影院精品一区| 久久久精品黄色| 日韩精品一级二级| 91在线观看成人| 精品国产乱码久久| 亚洲图片欧美色图| 99精品欧美一区二区三区小说| 一区二区三区 在线观看视频| 老司机免费视频一区二区三区| 欧美揉bbbbb揉bbbbb| 国产精品久久久久影院亚瑟| 久久精品国产久精国产| 欧美精品tushy高清| 亚洲综合图片区| 91首页免费视频| 国产精品久久久久久久午夜片 | 国内一区二区视频| 日韩欧美成人一区二区| 婷婷成人激情在线网| 欧美日韩高清在线播放| 亚洲一区二区在线免费看| 99re66热这里只有精品3直播| 国产喷白浆一区二区三区| 国产乱妇无码大片在线观看| 久久精品无码一区二区三区| 国产成人无遮挡在线视频| 久久久精品国产99久久精品芒果| 精品一区二区免费在线观看| 欧美电影免费提供在线观看| 黄一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产在线国偷精品免费看| 久久精品免费在线观看| 国产精品自拍网站| 成人欧美一区二区三区1314 | 亚洲国产日产av| 欧美情侣在线播放| 国产一区二区免费视频| 国产精品久久久久久亚洲毛片| 在线观看成人免费视频| 久久99最新地址| 中文字幕综合网| 日韩美女视频一区二区在线观看| 国产成人亚洲综合色影视| 亚洲伦在线观看| 精品国产乱码久久久久久夜甘婷婷| 成人午夜在线播放| 日本麻豆一区二区三区视频| 国产欧美一区二区精品忘忧草| 在线一区二区观看| 国产一区二区久久| 亚洲成a人v欧美综合天堂下载|