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

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

?? ospf_control.c

?? vxworks下ospf協議棧
?? C
字號:
/* ospf_control.c - used for shutting down OSPF router *//* Copyright 1998-2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02u,17jul03,kc      Fixed SPR#88975 - added call to ospf2Mapi_shutdown() in                    ospf_halt_ospf_router().02t,30jun03,agi     closed raw ip socket on shutdown (again)02s,17jun03,agi     reverted closing raw ip socket on shutdown02r,13jun03,agi     SPR#88974, close raw socket on shutdown02q,11jun03,ram     SPR#88965 Separate route table and LSDB hash parameters02p,11jun03,agi     Added deletion of the watch dog02o,30may03,agi     Fixed SPR#88958 halt_ospf_router() is not to close ipSock02n,30may03,agi     fixed halt_ospf_router()02m,27may03,agi     Changed rw_container to ospf_container02l,14may03,asr	    Changes to make OSPF virtual stack compatible02k,27may03,mwv     SPR 87784 ospf_shut_down_router () will call                     ospf_process_export_route_queue_all () to process ALL                     messages in the export route queue 02l,26may03,kc      Fixed SPR#87790 - removed the ospf2Mapi_request() shutdown                     request in ospf_shut_down_ospf_router().02k,14may03,agi     Changed RWOS semaphores to vxWorks semaphores02j,22apr03,ram	    SPR#76812 Modifications for OSPF performance enhancements02i,19nov02,mwv     merge TMS code SPR 8428402h,30aug02,agi     Fixed compiler warnings02g,16apr02,jkw     One copy of external and type 11 lsa02f,01apr02,kc      Change the printf to OSPF_ALARM_PRINTF.02e,13oct01,kc      Dynamic Configuration changes.02d,11oct01,jkw     Set pointer to NULL after table_free.02c,24sep01,kc      Cleaned up receive task related globals after raw socket fixes.02b,21sep01,kc      Removed unused raw socket close() calls.02a,13aug01,kc      Fixed compiler warnings.01z,14aug01,aos     Fixed OSPF shutdown routine01y,20jun01,jkw     Added unnumbered link support01x,3may01,jkw      Added checks for NULL pointers and alarm messages01w,3may01,jkw      Added printf messages for NULL pointers01v 30sep00,reshma  Added raw_sockets to replace direct call to IP.01u,26sep00,reshma  Added WindRiver CopyRight01t,25sep00,reshma  RFC-1587 implementation for OSPF NSSA Option, also tested against ANVL.01s,07jul00,reshma  Unix compatibility related changes.01r,04apr00,reshma  Added some MIB support (Read only).Passed all important ANVL                    OSPF tests.01q,23dec99,reshma  Compatibility with VxWorks-IP and VxWorks RTM-interface01p,13aug99,jack    Compilation fixes no IP case01o,28dec98,jack    Compiled and added some comments01n,02dec98,jack    Changes to remove Vx warnings01m,11nov98,jack    Config changes, linted and big endian changes01l,30oct98,jack    Incorporate changes for compilation on Vxworks01k,27aug98,jack	Added ospf_free_entire_list on,ospf.sptr_external_advertisement_list_head01j,23aug98,jack    ANVL tested OSPF with PATRICIA tree route table and no recursion01i,10aug98,jack    PATRICIA Route Table Based OSPF Code Base01h,07jul98,jack    Patricia RT table related changes - need to be tested01g,19jun98,jack    List routine changes. OSPF add and delete list routines, eventually                     call the rwutils list routines.01f,04jun98,jack    Integration with RTM and BGP01e,24apr98,jack    RTM changes01d,10jul97,cindy   Pre-release v1.52b01c,02oct97,cindy   Release Version 1.5201b,22oct96,cindy   Release Version 1.5001a,05jun96,cindy   First Beta Release*//*DESCRIPTIONospf_control.c is used for shutting down OSPF.This file is used when a user issues a command to shutdown OSPF.*/#include "ospf.h"#if defined (__OSPF_VIRTUAL_STACK__)#include "ospf_vs_lib.h"#endif /* __OSPF_VIRTUAL_STACK__ */#include <ioLib.h>#if defined(__OSPF_ROUTER_STACK__)/* asr: new function prototype */IMPORT RTM_HANDLE protocol_rtm_terminate (    RTM_HANDLE protoRtmHandle#if defined (VIRTUAL_STACK)     , int vsNum#endif /* VIRTUAL_STACK */    );#endif /*__OSPF_ROUTER_STACK__*//******************************************************************************** ospf_kill_all_tasks - kill all OSPF tasks ** This function kills all OSPF tasks.  It does not kill the OSPF RTM task.  * This task is killed by RTM.** RETURNS: N/A** NOMANUAL*/void ospf_kill_all_tasks ()    {    OSPF_TASKS  task;    for (task = OSPF_TASK_TIMER; task < OSPF_NUM_TASKS; task++)        {        if (task == OSPF_TASK_RTM)            {            continue;            }        if (taskDelete (ospf.ospf_tasks[task].task_id) == ERROR)            {            printf (                "Unable to delete OSPF task %s",                ospf.ospf_tasks[task].task_name);            }        }    }/******************************************************************************** ospf_halt_ospf_router - calls the utility functions to clean up OSPF for deletion.** This routine clean up all the data structures and tasks in OSPF.* This is done by acquiring the OSPF mutex and then calling utility* functions to clean up the lists and tasks in OSPF.** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void  ospf_halt_ospf_router (void)    {	OSPF_PRINTF_PROLOGUE (        OSPF_PROLOGUE_PRINTF, "OSPF: Entering ospf_halt_ospf_router\r\n");    ospf.protocol_enabled = FALSE;    ospf_shut_down_ospf_router ();#if defined(__OSPF_MIB__)    /* SPR#88975 - force tOspfMapi task to shutdown as well */    ospf2Mapi_shutdown();#endif /* __OSPF_MIB__ */    /* close the raw socket */    close (ipSock);#if defined (__OSPF_ROUTER_STACK__)    /* asr: protocol_rtm_terminate now takes virtual stack ID as well */	#if defined (VIRTUAL_STACK)		protocol_rtm_terminate (ospf.ospf_rtm_handle, ospf.ospf_vsid);	#else 		protocol_rtm_terminate (ospf.ospf_rtm_handle);	#endif /* VIRTUAL_STACK */#else  /*__OSPF_ROUTER_STACK__*/	rtm_deregister_protocol(ospf.ospf_rtm_handle);#endif /*__OSPF_ROUTER_STACK__*/    ospf_deregister_with_ip (NULL,NULL);    ospf_kill_all_tasks ();    }/******************************************************************************* ospf_shut_down_ospf_router - cleans up data structures in OSPF** This routine clean up all the data structures in OSPF.* This is done by flushing out all the link state databases, interfaces,* areas, and external route queue.** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void ospf_shut_down_ospf_router ()    {	OSPF_CONTAINER_ITERATOR iterator;	OSPF_EXTERNAL_ROUTE *sptr_external_route =NULL;	OSPF_ROUTING_TABLE_NODE *sptr_routing_table_node = NULL;	OSPF_ROUTING_TABLE_ENTRY *sptr_routing_table_entry = NULL;    enum BOOLEAN  goingdown;	OSPF_INTERFACE *sptr_interface = NULL;	OSPF_INTERFACE *sptr_next_interface = NULL;    ULONG index;	enum OSPF_ROUTE_TABLE_TYPE table_type;	OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "OSPF: Entering ospf_shut_down_ospf_router\r\n");	iterator = (OSPF_CONTAINER_ITERATOR)NULL;	sptr_external_route = NULL;	/* Flush out all the self originated LSAs */	ospf_flush_the_link_state_database_of_router_lsa ();	ospf_flush_the_link_state_database_of_network_summary_lsa ();	ospf_flush_the_link_state_database_of_asbr_summary_lsa ();	ospf_flush_the_link_state_database_of_external_lsa ();#if defined (__NSSA__)	ospf_flush_the_link_state_database_of_type_7_lsa ();#endif /* __NSSA__ */	ospf_flush_the_link_state_database_of_network_lsa ();#if defined (__OPAQUE_LSA__)	ospfRemoveAllTypes();#endif /* __OPAQUE_LSA__ */	/* Send empty hello to relinquish DR control */    goingdown = TRUE;	for (sptr_interface = ospf.sptr_interface_list; sptr_interface != NULL; sptr_interface = sptr_next_interface)		{		sptr_next_interface = sptr_interface->sptr_forward_link;		ospf_send_hello (sptr_interface, NULL, goingdown);		}		/*opaque lsa free up lsa 9 and lsa 11 list jkw */#if defined (__OPAQUE_LSA__)	if (ospf.sptr_type_9_callback_list_head != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_type_9_callback_list_head);		}	ospf.sptr_type_9_callback_list_head = NULL;	if (ospf.sptr_type_10_callback_list_head != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_type_10_callback_list_head);		}	ospf.sptr_type_10_callback_list_head = NULL;	if (ospf.sptr_type_11_callback_list_head != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_type_11_callback_list_head);		}	ospf.sptr_type_11_callback_list_head = NULL;#endif /* __OPAQUE_LSA__ */	ospf_free_ospf_classes_area_lists ();	ospf_free_interfaces ();	ospf.sptr_interface_list = NULL;	ospf.sptr_area_list = NULL;	ospf.sptr_backbone_area = NULL;	ospf.sptr_stub_area_list = NULL;	ospf.sptr_nssa_area_list = NULL;	if (ospf.sptr_configured_virtual_links != NULL)    	{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_configured_virtual_links);    	}	ospf.sptr_configured_virtual_links = NULL;	if (ospf.sptr_configured_external_routes != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_configured_external_routes);		}	ospf.sptr_configured_external_routes = NULL;	if (ospf.sptr_originated_external_routes != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_originated_external_routes);		}	ospf.sptr_originated_external_routes = NULL;	/* Remove routes from RTM */	/* SPR#76812 -- Begin */    for(table_type = OSPF_ROUTE_TABLE_NETWORK; table_type < OSPF_ROUTE_TABLE_MAX; table_type++)        {        for(index = 0x00000000L; index < OSPF_RT_HASH_TABLE_SIZE; index++)            {            if(ospf.sptr_routing_table_head[table_type][index] != NULL)			    {                for (sptr_routing_table_node = ospf.sptr_routing_table_head[table_type][index];                     sptr_routing_table_node != NULL;                     sptr_routing_table_node = sptr_routing_table_node->sptr_forward_link)                    {                    if(sptr_routing_table_entry != NULL)                        {                        ospf_export_route_to_other_protocols (                            OSPF_DELETE_PATH,                             sptr_routing_table_entry);                        }                    }                }            }        }    /* SPR#76812 -- End */	/* SPR 87784         *	 * process the queue */	ospf_process_export_route_queue_all();    /* SPR#76812 -- Begin */    for(table_type = OSPF_ROUTE_TABLE_NETWORK; table_type < OSPF_ROUTE_TABLE_MAX; table_type++)        {        for(index = 0x00000000L; index < OSPF_RT_HASH_TABLE_SIZE; index++)            {            if(ospf.sptr_routing_table_head[table_type][index] != NULL)                {                ospf_free_routing_table_nodes (                    ospf.sptr_routing_table_head[table_type][index]);                }            }        }	/* SPR#76812 -- End */    if (ospf.sptr_host_list != NULL)        {        ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_host_list);        }    ospf.sptr_host_list = NULL;    if ((iterator = ospf_container_create_iterator (ospf.sptr_external_route_queue)) == 0)        {        return;        } 	ospf_container_goto_front (iterator);	while (ospf_container_is_at_end (iterator) == false)		{		sptr_external_route = (OSPF_EXTERNAL_ROUTE*) ospf_container_at (iterator);		if (sptr_external_route  != NULL)			{			table_free (sptr_external_route);			sptr_external_route = NULL;			}		ospf_container_next (iterator);		}	ospf_container_free_iterator (iterator);	iterator = 0;	ospf_container_free (ospf.sptr_external_route_queue);	ospf.sptr_external_route_queue = NULL;	if (ospf.sptr_ospf_export_route_queue != NULL)		{		ospf_free_entire_list ((OSPF_GENERIC_NODE*) ospf.sptr_ospf_export_route_queue);		}    /* delete the watchdog timer */    if (ospf.watchdog  != INVALID_HANDLE)        {        wdDelete (ospf.watchdog);        }    } /* ospf_shut_down_ospf_router() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
《视频一区视频二区| 青娱乐精品视频| 亚洲福利视频一区| 青草av.久久免费一区| 肉色丝袜一区二区| 成人h精品动漫一区二区三区| 老司机精品视频一区二区三区| 国产精品69久久久久水密桃 | 欧美电影精品一区二区| 国产精品888| 777xxx欧美| 成人免费的视频| 欧美一区二区在线不卡| 国产精品538一区二区在线| 欧美色涩在线第一页| 久久久亚洲欧洲日产国码αv| aaa欧美大片| 老司机免费视频一区二区三区| 亚洲欧美一区二区三区孕妇| 91精品国产91综合久久蜜臀| 91在线精品秘密一区二区| 日韩欧美国产精品一区| 色婷婷激情综合| 国产日本欧美一区二区| 日韩女优av电影在线观看| 欧美综合在线视频| 亚洲欧美偷拍三级| 国产精品视频线看| 国产专区综合网| 免费观看久久久4p| 麻豆成人91精品二区三区| 91.com视频| 欧美美女一区二区在线观看| 91看片淫黄大片一级在线观看| 日韩在线一区二区三区| 欧美日韩久久一区| 在线观看日韩毛片| 亚洲国产精品嫩草影院| 亚洲国产日韩精品| 亚洲va韩国va欧美va| 91亚洲精品一区二区乱码| 亚洲欧美日韩一区| 尤物av一区二区| 亚洲第一激情av| 欧美va日韩va| 欧美国产日本视频| 91丝袜美腿高跟国产极品老师| 大胆亚洲人体视频| 99视频超级精品| 色欧美乱欧美15图片| 欧美日韩精品一二三区| 欧美疯狂做受xxxx富婆| 九色porny丨国产精品| 国产乱对白刺激视频不卡| 国产成人精品1024| 亚洲欧美福利一区二区| 亚洲成va人在线观看| 国产激情偷乱视频一区二区三区| 国产欧美日韩综合精品一区二区| 夜夜精品浪潮av一区二区三区| 七七婷婷婷婷精品国产| 青青草成人在线观看| 国产精品久久久久久久浪潮网站| 亚洲一区二区三区四区的| 韩国欧美国产一区| 一区二区三区四区在线播放 | 国产乱色国产精品免费视频| 99久久精品久久久久久清纯| 欧美人与禽zozo性伦| 久久香蕉国产线看观看99| 色婷婷一区二区三区四区| 欧美哺乳videos| 亚洲国产精品久久久男人的天堂 | 777a∨成人精品桃花网| 国产精品久久三| 日韩av一区二区三区四区| 亚洲国产成人私人影院tom| 欧美一级在线观看| 亚洲电影一区二区三区| 99国产精品一区| 国产精品正在播放| 精品久久久久一区二区国产| 日本亚洲最大的色成网站www| 91年精品国产| 色综合久久久久综合体桃花网| 久久久午夜精品| 美洲天堂一区二卡三卡四卡视频| 亚洲成人在线观看视频| 亚洲国产精品人人做人人爽| 99精品久久久久久| 国产精品国产三级国产aⅴ中文 | 亚洲一区二区在线免费看| 91久久免费观看| 亚洲第一狼人社区| 日本成人中文字幕| 欧美视频日韩视频在线观看| 亚洲综合精品久久| 欧美日韩一区二区在线观看| 亚洲精品国产视频| 午夜精品福利一区二区三区蜜桃| 欧美午夜不卡在线观看免费| 亚洲国产精品人人做人人爽| 欧美高清视频一二三区| 韩国女主播成人在线| 国产91色综合久久免费分享| 中文字幕久久午夜不卡| 国产精品成人在线观看| 亚洲一二三四久久| 久久综合色8888| 91在线观看成人| 51精品视频一区二区三区| 精品一区二区在线免费观看| **网站欧美大片在线观看| 亚洲手机成人高清视频| 成人午夜av在线| 日韩中文字幕亚洲一区二区va在线| 日韩欧美一区二区不卡| 成人h版在线观看| 欧美日产在线观看| 高清国产一区二区三区| 天天亚洲美女在线视频| 国产成人精品免费视频网站| 天堂一区二区在线| 波多野结衣亚洲| 免费观看91视频大全| 91豆麻精品91久久久久久| 国产精品 欧美精品| 日本伊人精品一区二区三区观看方式| 久久人人97超碰com| 在线看一区二区| 亚洲婷婷综合久久一本伊一区| 日韩一区二区三区电影| 亚洲成人免费看| 色欧美片视频在线观看在线视频| 国产精品一区一区| 精品亚洲欧美一区| 91精品婷婷国产综合久久性色| 一本大道av伊人久久综合| 久久亚洲私人国产精品va媚药| 欧美亚洲高清一区| 亚洲精品中文字幕乱码三区| 国产精品美女久久久久久久网站| 日韩欧美一级在线播放| 欧美人与性动xxxx| 欧美日韩免费观看一区三区| 95精品视频在线| 日本韩国精品在线| 色综合色狠狠综合色| 91小宝寻花一区二区三区| 粉嫩嫩av羞羞动漫久久久| 国产片一区二区| 不卡的电视剧免费网站有什么| gogo大胆日本视频一区| 亚洲精品免费一二三区| 亚洲欧美在线观看| 日本高清不卡视频| 视频在线在亚洲| 国模套图日韩精品一区二区| 国产麻豆精品95视频| 国产精品丝袜在线| jizzjizzjizz欧美| 在线观看日韩精品| 精品亚洲成a人在线观看| 成人av在线观| 欧美体内she精高潮| 91精品一区二区三区久久久久久| 精品日本一线二线三线不卡| 国产精品久久国产精麻豆99网站 | 亚洲色图在线视频| 天堂在线亚洲视频| 久久久久国产精品人| 一区二区免费看| 久久99精品久久久久婷婷| 一本一道综合狠狠老| 久久影音资源网| 9191久久久久久久久久久| 成人免费精品视频| 亚洲色图欧美激情| 国产成人综合视频| 欧美午夜精品一区二区三区| 日韩精品成人一区二区三区| 国产成人av自拍| 国产精品69久久久久水密桃| 在线观看亚洲a| 亚洲日本护士毛茸茸| 日韩视频在线你懂得| 亚洲综合在线电影| 风间由美性色一区二区三区| 欧美一级在线观看| 91国产视频在线观看| 欧美mv和日韩mv国产网站| 欧美日韩成人综合| 亚洲午夜免费电影| 国产精品久久二区二区| 日韩中文字幕区一区有砖一区| 亚洲欧美日韩小说| 亚洲男人天堂一区| 日本韩国一区二区| 欧美日韩三级视频| 午夜精品福利一区二区蜜股av|