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

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

?? ospf_init.c

?? vxworks下ospf協議棧
?? C
字號:
/* ospf_init.c - initialize the OSPF protocol and register with IP *//* Copyright 1998 - 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02l,11jun03,agi  Fixed SPR#88950, made ospfPartMemInitialize() global02k,10jun03,kkz  SPR 88929 Moved creation of ospf semaphores to here, and removed setting                 of ospf.ospf_enabled to TRUE02j,02jun03,agi  Set ospf.ospf_enabled to TRUE02i,02jun03,ram  Initialize OSPF memory partition in ospfInitialize02h,30may03,agi  removed ospfRawInputTaskId02g,08may03,asr  Changes to make OSPF virtual stack compatible02f,26may03,agi  Removed RWOS_MUTEXs02e,22apr03,ram  SPR#76812 Modifications for OSPF performance enhancements02d,17feb02,ram  SPR 81808 Added OSPF memory partition support02c,10feb03,kc   Fixed SPR#86175 - modified ospfInitialize() to ensure exclussive                 access to the protosw protocol table when OSPF is registered its                 protocol type to IP. Changed all printf statemets to use                 OSPF_PRINTF_DEBUG debug macro. Moved all ospf_xxx_stub()                 function calls from ospfInitialize() to ospf_initialize_router()                 in the ospf_initialization.c file.02c,28jan03,ram  SPR 85050 Added new mutex for external route queue02b,19nov02,mwv  Merge TMS code SPR 8428402a,08oct02,agi  Fixed compiler warning01k,15may02,jkw  Added capability to change external route queue to AVL tree.01j,25apr02,jkw  Added in ospf_show_routing_stub for displaying routing table.01i,12feb02,kc   Fixed compiler warnings.01h,11feb02,kc   Corrected misleading printf statement.01g,22sep01,kc   Fixed protosw[] for raw socket.01f,17sep01,kc   Moved ospfConfigurationTableInit() to ospf_vs_lib.c. Moved                 virtual initialization to ospf_initialize_protocol(). Moved                 ospf_show_xxx extern statements to ospf_prototypes.h. Moved                 ospf_cfg() to ospf_init().01e,23aug01,jkw  Fxed compiler warnings.01d,13aug01,kc   Fixed compiler warning for __NSSA__01c,13aug01,kc   Fixed compiler warning - changed ospf_receive() function to use                 void returned type.01b,24jul01,jkw  Removed WINROUTER preproc01a,23jul01,jkw  Added new configuration variables for ignoring tos and demand circuit*//*DESCRIPTIONospf_init.c is used for registering OSPF to the IP protocol using the protoswstructure.  This file will check to see if the OSPF has been initialized on thesending and receiving of OSPF packets.This file is used at the startup of OSPF.*/#include <stdio.h>#include <vxWorks.h>#include <netLib.h>#include <net/protosw.h>#include <net/domain.h>#include <net/mbuf.h>#include <netinet/in.h>#include <netinet/in_systm.h>#include <netinet/in_pcb.h>#include <netinet/ip.h>#include <netinet/ip_var.h>#include "ospf.h"#if defined (__OSPF_VIRTUAL_STACK__)    #include "ospf_vs_lib.h"#endif /* __OSPF_VIRTUAL_STACK__ *//*************************************************************************************************//* externs */#if !defined (VIRTUAL_STACK)    IMPORT int  _protoSwIndex;    IMPORT struct protosw   inetsw [IP_PROTO_NUM_MAX];    IMPORT u_char ip_protox[IPPROTO_MAX];#endif/* globals */#if !defined (__OSPF_VIRTUAL_STACK__)    OSPF_CLASS ospf;    /*raw socket - Added socket for input jkw*/    int ipSock;    OSPF_CALLBACK_IF OspfRegistrationInfo;    char ospf_configuration_text[OSPF_MAXIMUM_FILE_SIZE + 1];    UINT ten_seconds_counter;    /* SPR 81808 -- Begin */    ULONG ospfMemPartId;    /* SPR 81808 -- End */    /*RFC 1765*/    ULONG ospf_db_overflow_timer;#endif /* __OSPF_VIRTUAL_STACK__ */#if defined (__OSPF_ROUTER_STACK__)    extern void ospf_ctlinput(unsigned long intf, unsigned short intf_index, int intf_flags);    extern void  ospf_kernel_register_with_ip (FP_OSPF_RECEIVE pospfReceive,                                               FP_OSPF_SEND pospfSend);    extern void ospf_kernel_deregister_with_ip (FP_OSPF_RECEIVE pospfReceive,                                                FP_OSPF_SEND pospfSend);#else /*__OSPF_ROUTER_STACK__*/    extern void ospf_ctlinput (int command, struct sockaddr *sa,register struct ip *ip);#endif/*__OSPF_ROUTER_STACK__*/extern void ospf_init (void);#if defined (__OSPF_ROUTER_STACK__)    #if defined (__OSPF_VIRTUAL_STACK__)        /* Management stack identifier */        OSPF_VSID mgmtStackId;        void ospfConfigurationTableInit(CONFIGURATION_TABLE *configuration_table);    #endif /* OSPF_VIRTUAL_STACK */#endif /* __OSPF_ROUTER_STACK__ *//*************************************************************************************************//********************************************************************************  ospf_create_mutexes - create OSPF mutex semaphores** This function create OSPF mutex semaphores** RETURNS: OK on success, ERROR is a mutex semaphore could not be created** NOMANUAL*/STATUS ospf_create_mutexes ()    {    /* create global OSPF mutex semaphore for accessing OSPF datastructures */    ospf_global_mutex = semMCreate (        SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE);    if (ospf_global_mutex == NULL)        {        printf ("ospf_create_tasks: ERROR: ");        printf ("Could not create global OSPF semaphore, exiting\n");        return ERROR;        }    /* create OSPF external router mutex semaphore */    ospf_external_route_mutex = semMCreate (        SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE);    if (ospf_external_route_mutex == NULL)        {        printf ("ospf_create_tasks: ERROR: ");        printf ("Could not create OSPF external route mutex semaphore, ");        printf ("exiting\n");        return ERROR;        }    /* create OSPF config mutex semaphore */    ospf_config_mutex = semMCreate (        SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE);    if (ospf_config_mutex == NULL)        {        printf ("ospf_create_tasks: ERROR: ");        printf ("Could not create OSPF config mutex semaphore, exiting\n");        return ERROR;        }    return OK;    }/*************************************************************************** ospfInitialize - registration function for OSPF to IP and RTM** This routine will make the appropriate registration calls to IP* and to the routing table manager.** <autostart> Auto start OSPF when the router comes up** <vsNum> May or may not be used.  Used for multiple instances of OSPF** RETURNS: INT** ERRNO: N/A** NOMANUAL*/#if defined (__OSPF_ROUTER_STACK__)int ospfInitialize (int vsNum){    #if defined (VIRTUAL_STACK)        /* asr: ospf_vs_id will be ignored if virtual stacks are not used */        ospf.ospf_vsid = vsNum;    #else        ospf.ospf_vsid = 0;    #endif    /* SPR 81808 -- Begin */    if(ospfPartMemInitialize() == FALSE)    {       OSPF_PRINTF_ALARM(OSPF_ALARM_PRINTF,"Failed to initialize OSPF memory partition. \n\r");       return(ERROR);    }    /* SPR 81808 -- End */    #if defined (__OSPF_VIRTUAL_STACK__)        /* Initialize support for virtual stacks. */        if (ospfVirtualStackLibInit() == ERROR) {            OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF,                               "ospfInitialize: unable to initialize ospf virtual stack support.\n");            return(ERROR);        }        /* set the startup task to create the ospf management stack */        if (ospfVirtualStackCreate (&mgmtStackId) == ERROR) {            OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "Unable to setup stack0.\n");            return(ERROR);        }        /* Start the initial ("management") ospf virtual stack. */        ospfVirtualStackInit (mgmtStackId);        ospfConfigurationTableInit(&ospf_configuration_table);    #endif/* __OSPF_VIRTUAL_STACK__ */    OspfRegistrationInfo.ospfEnabled = 0;    if (ospf_create_mutexes() == ERROR)        {        printf("OSPF: could not create mutex semaphores, exiting ...\n");        return ERROR;        }    /* asr: initialize protocol_initialized flag to false.     * After ospf_init is called, and initialization is successful,     * the flag would be set to true.     */    ospf.protocol_initialized = FALSE;    return(OK);}#endif /* __OSPF_ROUTER_STACK__ *//*************************************************************************** ospf_register_with_ip - registration function for OSPF to IP** This routine will make the appropriate registration calls to IP.** <pospfReceive> Receive function pointer to IP** <pospfSend> Send function pointer to IP** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/#if defined (__OSPF_ROUTER_STACK__)void ospf_register_with_ip (FP_OSPF_RECEIVE pospfReceive, FP_OSPF_SEND pospfSend){    ospf_kernel_register_with_ip(pospfReceive, pospfSend);    return;}/*************************************************************************** ospf_deregister_with_ip - deregistration function for OSPF to IP** This routine will make the appropriate deregistration calls to IP.** <pospfReceive> Receive function pointer to IP** <pospfSend> Send function pointer to IP** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void ospf_deregister_with_ip (FP_OSPF_RECEIVE pospfReceive, FP_OSPF_SEND pospfSend){    ospf_kernel_deregister_with_ip(pospfReceive, pospfSend);    return;}#else /* __OSPF_ROUTER_STACK__ */void ospf_register_with_ip (FP_OSPF_RECEIVE pospfReceive, FP_OSPF_SEND pospfSend){    OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_register_with_ip\r\n");    OspfRegistrationInfo.pOSpfReceive = pospfReceive;    OspfRegistrationInfo.pOSpfSend = pospfSend;    OspfRegistrationInfo.ospfEnabled = 1;    return;}void ospf_deregister_with_ip (FP_OSPF_RECEIVE pospfReceive, FP_OSPF_SEND pospfSend){    OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_deregister_with_ip\r\n");    OspfRegistrationInfo.pOSpfReceive = pospfReceive;    OspfRegistrationInfo.pOSpfSend = pospfSend;    OspfRegistrationInfo.ospfEnabled = 0;    return;}#endif /* __OSPF_ROUTER_STACK__ *//* SPR 81808 -- Begin *//******************************************************************************* ospfPartMemInitialize - initialize OSPF memory partition** This function initializes the OSPF memory partition and sets the partition* expansion parameters.** RETURNS: TRUE/FALSE*/bool ospfPartMemInitialize ()    {    ospfMemPartId = OSPF_PARTMEM_CREATE (OSPF_PARTMEM_LARGE_SIZE);    if(!ospfMemPartId)        {        /*         * Failed to allocate larget memory partition         * try allocating smaller partition         */         ospfMemPartId = OSPF_PARTMEM_CREATE (OSPF_PARTMEM_SMALL_SIZE);         if (!ospfMemPartId)             {             return (FALSE);             }        }     /* Configure OSPF partition */     OSPF_PARTMEM_CONFIG;     return (TRUE);    }/* SPR 81808 -- End */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷拍亚洲欧洲综合| 91黄色免费版| 另类的小说在线视频另类成人小视频在线 | 日韩和的一区二区| 亚洲影院免费观看| 香蕉久久一区二区不卡无毒影院 | 顶级嫩模精品视频在线看| 精品中文字幕一区二区小辣椒 | 91一区二区在线| 99久精品国产| 色综合欧美在线视频区| 色噜噜狠狠色综合中国 | 亚洲激情图片小说视频| 亚洲午夜国产一区99re久久| 一区二区三区欧美激情| 亚洲国产综合在线| 日本中文字幕不卡| 捆绑变态av一区二区三区| 久久99精品国产| 欧美日韩1区2区| 欧美日韩国产一级片| 日韩亚洲欧美成人一区| 久久久国际精品| 亚洲色图视频免费播放| 首页亚洲欧美制服丝腿| 国内一区二区视频| 波多野结衣中文字幕一区二区三区| 波多野结衣91| 欧美视频一二三区| 欧美成人vr18sexvr| 国产丝袜欧美中文另类| 亚洲精品乱码久久久久久黑人| 五月婷婷激情综合| 国产美女主播视频一区| 色综合天天综合色综合av| 欧美日韩精品一区二区三区蜜桃| 精品处破学生在线二十三| 综合av第一页| 麻豆免费看一区二区三区| 粉嫩13p一区二区三区| 欧美亚洲禁片免费| 久久免费美女视频| 亚洲一区日韩精品中文字幕| 久久精品二区亚洲w码| 不卡的电影网站| 欧美精品乱码久久久久久按摩 | 久久电影国产免费久久电影| 国产91精品久久久久久久网曝门| 91福利社在线观看| 欧美xxx久久| 一级特黄大欧美久久久| 韩国欧美国产1区| 欧美影院午夜播放| 国产亚洲综合性久久久影院| 亚洲一级二级三级| 国产成人精品www牛牛影视| 欧美日韩在线免费视频| 久久中文字幕电影| 亚洲成人av一区| 成人理论电影网| 91精品国产综合久久精品| 亚洲欧洲日韩av| 激情另类小说区图片区视频区| 日本高清免费不卡视频| 欧美激情一区二区在线| 亚洲国产裸拍裸体视频在线观看乱了| 高清国产一区二区| 日韩欧美亚洲一区二区| 玉米视频成人免费看| 国产a视频精品免费观看| 这里只有精品视频在线观看| 亚洲欧洲综合另类| 国产福利电影一区二区三区| 日韩免费观看高清完整版在线观看| 亚洲欧美日韩在线| 成人美女在线观看| 久久精品欧美一区二区三区不卡 | 激情欧美一区二区三区在线观看| 欧美色综合网站| 国产精品麻豆网站| 国产a久久麻豆| 国产视频一区二区三区在线观看| 免费观看在线综合色| 欧美日韩亚洲综合在线| 成人欧美一区二区三区| 国产成人一区二区精品非洲| 欧美va亚洲va在线观看蝴蝶网| 首页欧美精品中文字幕| 欧美性大战久久久久久久蜜臀| 中文字幕日本乱码精品影院| 成人精品国产免费网站| 日本一区二区在线不卡| 国产露脸91国语对白| 26uuu欧美| 国产一区在线观看视频| 欧美电影免费观看完整版| 美国十次综合导航| 欧美一二三区在线| 秋霞午夜鲁丝一区二区老狼| 欧美精品乱码久久久久久| 亚洲国产成人va在线观看天堂| 欧美性视频一区二区三区| 亚洲另类中文字| 在线观看免费一区| 亚洲福利国产精品| 91精品久久久久久久久99蜜臂| 日韩和的一区二区| 日韩午夜中文字幕| 久久91精品国产91久久小草| 久久影视一区二区| 国产成人自拍网| 国产精品美女一区二区三区| 成人福利视频在线看| 亚洲色图制服丝袜| 欧美优质美女网站| 亚洲a一区二区| 欧美大尺度电影在线| 国产在线播放一区三区四| 久久精品亚洲国产奇米99| 成人黄色软件下载| 亚洲尤物视频在线| 日韩一区二区在线免费观看| 久久精品国产精品亚洲红杏| 久久综合九色综合97婷婷女人| 国产精选一区二区三区| 中文字幕一区二区5566日韩| 91麻豆成人久久精品二区三区| 亚洲免费伊人电影| 欧美蜜桃一区二区三区| 日本成人在线一区| 久久人人97超碰com| 99视频精品在线| 天天综合色天天| 久久久激情视频| 在线观看欧美日本| 麻豆精品久久精品色综合| 国产蜜臀97一区二区三区 | 丝袜脚交一区二区| ww久久中文字幕| 成人av小说网| 五月婷婷久久丁香| 国产色产综合色产在线视频| 日本道精品一区二区三区| 免费久久99精品国产| 久久免费看少妇高潮| 91蜜桃传媒精品久久久一区二区| 亚洲激情中文1区| 日韩欧美电影在线| 成人av在线资源| 香港成人在线视频| 国产欧美精品一区二区三区四区 | 国产成人免费在线视频| 一区二区三区高清在线| 制服丝袜中文字幕一区| 成人av在线看| 日韩综合在线视频| 国产精品女主播在线观看| 欧美日韩视频在线一区二区| 国模一区二区三区白浆| 一区二区三区四区在线播放| www亚洲一区| 欧美优质美女网站| 国产91精品一区二区麻豆网站| 亚洲一区二区三区在线| 欧美激情一二三区| 欧美精品丝袜久久久中文字幕| 国产69精品久久久久毛片| 日韩成人一区二区三区在线观看| 中文一区一区三区高中清不卡| 7777精品伊人久久久大香线蕉经典版下载 | 国产片一区二区三区| 欧美无人高清视频在线观看| 国产成人三级在线观看| 日韩精品一二区| 亚洲免费色视频| 国产日韩v精品一区二区| 3atv在线一区二区三区| 91日韩在线专区| 国产老女人精品毛片久久| 日日嗨av一区二区三区四区| 亚洲欧美成aⅴ人在线观看| 久久久综合视频| 日韩视频在线观看一区二区| 精品视频在线看| 91麻豆.com| 成人av在线看| 国产成人av在线影院| 老司机精品视频在线| 午夜精品免费在线| 一区二区三区四区不卡视频| 国产精品第四页| 国产精品美女久久久久高潮| 久久综合色鬼综合色| 日韩一区二区中文字幕| 在线电影欧美成精品| 色婷婷av一区二区| 色婷婷久久久久swag精品 | 久久精品一区蜜桃臀影院| 日韩视频不卡中文| 日韩片之四级片|