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

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

?? ospf_external_routes.c

?? vxworks下ospf協議棧
?? C
字號:
/* ospf_external_routes.c - used for processing external routes *//* Copyright 1998 - 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02l,12may03,asr	   Changes to make OSPF virtual stack compatible02k,27may03,agi    Changed rw_container to ospf_container02j,26may03,htm    Modified ospf_process_external_route_to_ospf() to avoid using                   an iterator since the LL may change while the semaphore is                    given so the iterator might access an invalid LL. 02i,22may03,agi    Changes RWOS semaphores to vxWorks semaphores02h,22apr03,ram	   SPR#76812 Modifications for OSPF performance enhancements02g,06mar03,agi    Fixed compiler warning02f,29jan03,mwv    SPR 85893 Remove the call to ospf_find_external_route02e,28jan03,ram	   SPR 85050 Added support for external route redistribution                    based on OSPF external metric values02e,16jan03,smr    Modified ospf_queue_export_route_to_ospf to print metric correctly.02d,06jan03,ram	   SPR 85432 Changes to allow more OSPF external route processing02c,09dec02,ram	   SPR 83418 Added support for OSPF external metric types and values01b,19nov02,mwv    Merge TMS code SPR 8428402b,17oct02,mwv    Add a default metric value to type 2 external routes02a,08oct02,agi    Fixed compiler warnings01y,09jan02,jkw    Created another function for processing external routes.01x,11oct01,jkw    Set pointer to NULL after table_free.01w,13aug01,kc     removed forward declaration for ospf_find_originated_external_route()                   prototype.01v,19jun01,aos    Header file clean up01u,02may01,aos    Added ospf_find_external_route () search function to ospf_queue_export_route_to_ospf ()01t,26sep00,reshma Added WindRiver CopyRight01s,25sep00,reshma RFC-1587 implementation for OSPF NSSA Option, also tested against ANVL.01r,07jul00,reshma Unix compatibility related changes.01q,04apr00,reshma Added some MIB support (Read only).Passed all important ANVL OSPF tests.01p,23dec99,reshma Compatibility with VxWorks-IP and VxWorks RTM-interface01o,28dec98,jack   Compiled and added some comments01n,13nov98,jack   Changes related to introducing queuing in OSPF to RTM interface and                   bug fix on the external route additions path (to RTM)01m,11nov98,jack   Config changes, linted and big endian changes01l,30oct98,jack   Incorporate changes for compilation on Vxworks01k,23aug98,jack   ANVL tested OSPF with PATRICIA tree route table and no recursion01j,13aug98,jack   Added print in function: ospf_queue_export_route_to_ospf01i,10aug98,jack   PATRICIA Route Table Based OSPF Code Base01h,16jun98,jack   Syntax error correction01g,16jun98,jack   Changes related to external_routes queuing and the queue processing01f,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_external_routes.c is used for exporting external routes to other protocols throughthe Routing Table Manager.This file is used when adding or deleting external routes in OSPF.*/#include "ospf.h"#if defined (__OSPF_VIRTUAL_STACK__)#include "ospf_vs_lib.h"#endif /* __OSPF_VIRTUAL_STACK__ */#include <time.h>/*************************************************************************** ospf_process_external_route_to_ospf - process external route** This routine will walk through external route queue and* process each external route.  This routine will originate an* external lsa for each externa route.** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void ospf_process_external_route_to_ospf (){	OSPF_EXTERNAL_ROUTE *sptr_external_route =NULL;	OSPF_EXTERNAL_ROUTE *sptr_external_route_from_global_list =NULL;	ULONG routes_processed = 0;	OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "OSPF: Entering ospf_process_external_route_to_ospf\r\n");	/* SPR#76812 */	if (ospf.sptr_external_route_queue == NULL)         return;    semTake (ospf_external_route_mutex, WAIT_FOREVER);    sptr_external_route = ospf_container_front (ospf.sptr_external_route_queue);    if (sptr_external_route != NULL)         ospf_container_remove_front (ospf.sptr_external_route_queue);    semGive (ospf_external_route_mutex);	while (sptr_external_route != NULL)		{		/* SPR#76812 */		if ( (sptr_external_route->metric & 0x00ffffff) == OSPF_LSInfinity )			{			sptr_external_route_from_global_list = ospf_find_originated_external_route (ospf.sptr_originated_external_routes,				sptr_external_route);			if (sptr_external_route_from_global_list != NULL)				{				sptr_external_route->tag = sptr_external_route_from_global_list->tag;				}#if !defined (__NSSA__)			ospf_originate_external_links_advertisement (sptr_external_route);#else /* __NSSA__ */			sptr_external_route->advertising_router =  ospf.router_id;			ospf_originate_external_links_advertisement (sptr_external_route);			if (ospf.nssa_enabled == TRUE)				{				ospf_originate_type_7_links_advertisement (sptr_external_route);				}#endif /*__NSSA__*/			if (sptr_external_route_from_global_list == NULL)				{				table_free (sptr_external_route);				sptr_external_route = NULL;				}			else				{				table_free (sptr_external_route);				sptr_external_route = NULL;				table_free (sptr_external_route_from_global_list);				sptr_external_route_from_global_list = NULL;				}			}		else			{#if !defined (__NSSA__)			ospf_originate_external_links_advertisement (sptr_external_route);#else /* __NSSA__ */			sptr_external_route->advertising_router =  ospf.router_id;			ospf_originate_external_links_advertisement (sptr_external_route);			if (ospf.nssa_enabled == TRUE)				{				ospf_originate_type_7_links_advertisement (sptr_external_route);				}#endif /*__NSSA__*/			table_free (sptr_external_route);			sptr_external_route = NULL;			}			/* SPR 85432 -- Begin */			routes_processed++;			if(routes_processed >= MAX_EXTERNAL_ROUTES_PROCESSED)			{				break;			}			/* SPR 85432 -- End */            semTake (ospf_external_route_mutex, WAIT_FOREVER);            sptr_external_route = ospf_container_front (ospf.sptr_external_route_queue);            if (sptr_external_route != NULL)                 ospf_container_remove_front (ospf.sptr_external_route_queue);            semGive (ospf_external_route_mutex);		}    return;}/*************************************************************************** ospf_find_originated_external_route - find external route** This routine will walk through external route queue and* try to find the associated external route.** <sptr_originated_external_routes> Originated external routes** <sptr_external_route> External route** RETURNS: OSPF_EXTERNAL_ROUTE * or NULL** ERRNO: N/A** NOMANUAL*/OSPF_EXTERNAL_ROUTE* ospf_find_originated_external_route (OSPF_EXTERNAL_ROUTE *sptr_originated_external_routes,	OSPF_EXTERNAL_ROUTE *sptr_external_route){	OSPF_EXTERNAL_ROUTE *sptr_external_route_from_global_list;	OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "OSPF: Entering ospf_find_originated_external_route\r\n");	for (sptr_external_route_from_global_list = sptr_originated_external_routes; sptr_external_route_from_global_list != NULL;		sptr_external_route_from_global_list = sptr_external_route_from_global_list->sptr_forward_link)		{		if (sptr_external_route->destination_network == sptr_external_route_from_global_list->destination_network &&			 sptr_external_route->destination_mask == sptr_external_route_from_global_list->destination_mask &&			 sptr_external_route->metric == sptr_external_route_from_global_list->metric &&			 sptr_external_route->forwarding_address == sptr_external_route_from_global_list->forwarding_address)			{			ospf_remove_node_from_list ( (OSPF_GENERIC_NODE **) &sptr_originated_external_routes,				(OSPF_GENERIC_NODE *) sptr_external_route_from_global_list);			return (sptr_external_route_from_global_list);			}		}	return (NULL);}/*************************************************************************** delete_exported_route_from_ospf - delete the external route** This routine will delete the external route from OSPF by* calling the originate external link state advertisement with* a max age.** <destination_network> Destination network for external route** <network_mask> Network mask for external route** <metric> Metric for external route** <forwarding_address> Forwarding address for external route** <tag> Tag for external route** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void delete_exported_route_from_ospf (ULONG destination_network,ULONG network_mask,ULONG metric,ULONG forwarding_address,ULONG tag,ULONG proto){	OSPF_EXTERNAL_ROUTE *sptr_external_route =NULL;	BOOLEAN rc = false;	PARAMETER_NOT_USED(metric);	OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "OSPF: Entering delete_exported_route_from_ospf\r\n");	sptr_external_route = (OSPF_EXTERNAL_ROUTE *) table_malloc (1, sizeof (OSPF_EXTERNAL_ROUTE));	if (sptr_external_route == NULL)		{		ospf_print_memory_error_message_and_free_buffer_if_necessary ((void *) NULL, "OSPF_EXTERNAL_ROUTE");		return;		}	memset (sptr_external_route, 0x00, sizeof (OSPF_EXTERNAL_ROUTE));	sptr_external_route->sptr_forward_link = NULL;	sptr_external_route->sptr_backward_link = NULL;	sptr_external_route->destination_network = destination_network;	sptr_external_route->destination_mask = network_mask;	/* SPR 83418 -- Begin */	sptr_external_route->metric = 0x00FFFFFF;	if((metric & OSPF_ASE_bit_E) == OSPF_ASE_bit_E)	{		sptr_external_route->metric = sptr_external_route->metric | OSPF_ASE_bit_E;	}	/* SPR 83418 -- End */	sptr_external_route->forwarding_address = forwarding_address;	sptr_external_route->tag = tag;	sptr_external_route->time_stamp = time(NULL) * 60;	/* SPR 85050 -- Begin */	sptr_external_route->route_protocol = proto;	/* SPR 85050 -- End */	/* SPR#76812 -- Begin */	semTake (ospf_external_route_mutex, WAIT_FOREVER);	rc = ospf_container_add_back (ospf.sptr_external_route_queue, sptr_external_route);	semGive (ospf_external_route_mutex);	if(rc == false)	{		table_free ((void *)sptr_external_route);		sptr_external_route = NULL;	}	/* SPR#76812 -- End */	return;}/*************************************************************************** ospf_queue_export_route_to_ospf - queue the external route** This routine will add the external route to the external route* queue.** <destination_network> Destination network for external route** <network_mask> Network mask for external route** <metric> Metric for external route** <forwarding_address> Forwarding address for external route** <tag> Tag for external route** RETURNS: N/A** ERRNO: N/A** NOMANUAL*/void ospf_queue_export_route_to_ospf (ULONG destination_network,ULONG network_mask,ULONG metric,ULONG forwarding_address,ULONG tag, ULONG proto){	OSPF_EXTERNAL_ROUTE *sptr_external_route;	BOOLEAN rc = false;	OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "OSPF: Entering ospf_queue_export_route_to_ospf\r\n");	sptr_external_route = NULL;	sptr_external_route = (OSPF_EXTERNAL_ROUTE *) table_malloc (1, sizeof (OSPF_EXTERNAL_ROUTE));	if (sptr_external_route == NULL)		{		ospf_print_memory_error_message_and_free_buffer_if_necessary ((void *) NULL, "OSPF_EXTERNAL_ROUTE");		return;		}	memset (sptr_external_route, 0x00, sizeof (OSPF_EXTERNAL_ROUTE));	sptr_external_route->sptr_forward_link = NULL;	sptr_external_route->sptr_backward_link = NULL;	sptr_external_route->destination_network = destination_network;	sptr_external_route->destination_mask = network_mask;	/* SPR 83418 -- Begin */	sptr_external_route->metric = metric;	/* SPR 83418 -- End */	sptr_external_route->forwarding_address = forwarding_address;	sptr_external_route->tag = tag;	sptr_external_route->time_stamp = time (NULL);	/* SPR 85050 -- Begin */	sptr_external_route->route_protocol = proto;	/* SPR 85050 -- End */	/* SPR#76812 -- Begin */	semTake (ospf_external_route_mutex, (UINT)WAIT_FOREVER);	rc = ospf_container_add_back (ospf.sptr_external_route_queue, sptr_external_route);	semGive (ospf_external_route_mutex);	if(rc == false)	    {		table_free ((void *)sptr_external_route);		sptr_external_route = NULL;	    }	/* SPR#76812 -- End */	OSPF_PRINTF_ROUTING_TABLE (OSPF_ROUTING_TABLE_PRINTF, "----->>>>> External Route from RTM: Destination:%lx net mask:%lx metric:%d forwarding address:%lx tag:%lx\r\n",		sptr_external_route->destination_network, sptr_external_route->destination_mask, (metric & OSPF_LSInfinity),		sptr_external_route->forwarding_address, sptr_external_route->tag);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青青爽久久午夜综合久久午夜| 久久99蜜桃精品| 另类调教123区| 99久久国产综合精品色伊| 欧美区视频在线观看| 国产欧美日韩激情| 久久国产麻豆精品| 在线观看一区日韩| 国产亚洲人成网站| 奇米一区二区三区| 色视频成人在线观看免| 国产欧美一区二区精品久导航| 五月天精品一区二区三区| 国产不卡视频在线播放| 精品国产一区二区三区忘忧草| 亚洲图片欧美综合| 91福利在线免费观看| 亚洲色图丝袜美腿| 色天天综合久久久久综合片| 亚洲欧洲av在线| 久久国产精品99久久人人澡| 在线一区二区视频| 国产精品美女一区二区三区| 精油按摩中文字幕久久| 欧美日韩mp4| 一区二区三区在线不卡| 欧美日韩精品一区二区在线播放| 国产精品午夜在线观看| 国产成人午夜精品影院观看视频 | 在线看不卡av| 国产精品国产馆在线真实露脸| 国内一区二区在线| 精品福利一二区| 韩国三级在线一区| 久久这里只有精品首页| 一区二区三区精密机械公司| 亚洲激情图片qvod| 99免费精品在线| 国产亚洲va综合人人澡精品| 国内精品第一页| 久久久精品黄色| 成人深夜视频在线观看| 中文字幕一区二区三| 色呦呦一区二区三区| 亚洲欧美电影一区二区| 欧美日韩日本视频| 日韩精品免费视频人成| 欧美变态口味重另类| 国产精品一区二区在线播放| 国产亚洲短视频| 一本一道久久a久久精品综合蜜臀| 亚洲激情网站免费观看| 欧美丰满少妇xxxxx高潮对白| 美腿丝袜在线亚洲一区| 精品国产乱码久久久久久免费| 国产成人精品免费| 一级做a爱片久久| 91一区二区在线观看| 成人精品视频一区二区三区尤物| 久久久精品天堂| 不卡的电影网站| 亚洲综合激情另类小说区| 欧美二区三区91| 狠狠狠色丁香婷婷综合久久五月| 国产午夜亚洲精品不卡| 在线视频中文字幕一区二区| 日本网站在线观看一区二区三区| 久久久久久久综合日本| 欧洲人成人精品| 国产高清亚洲一区| 亚洲综合精品自拍| 国产日韩欧美亚洲| 欧美日韩精品福利| 大尺度一区二区| 男女男精品网站| 亚洲欧美日韩在线不卡| 精品三级av在线| 欧美午夜影院一区| 91视频www| 久久精品亚洲精品国产欧美kt∨ | 香港成人在线视频| 欧美大度的电影原声| 97久久精品人人爽人人爽蜜臀| 青青青爽久久午夜综合久久午夜| 国产精品久久久久毛片软件| 欧美日韩国产精品自在自线| proumb性欧美在线观看| 青青草97国产精品免费观看无弹窗版 | 91精品国产91久久久久久一区二区| 福利一区二区在线| 精品午夜久久福利影院| 一区二区日韩电影| 国产精品对白交换视频| 久久久亚洲欧洲日产国码αv| 欧美另类高清zo欧美| 91麻豆免费视频| 成人久久视频在线观看| 国产精品资源站在线| 九九精品视频在线看| 美女看a上一区| 一区二区欧美视频| 一区在线观看视频| 欧美激情资源网| 亚洲精品一区在线观看| 日韩一级在线观看| 欧美一二三区在线观看| 欧美日韩三级一区| 欧美性大战久久久久久久 | 99视频精品在线| 国产成人啪免费观看软件| 日本伊人午夜精品| 日韩电影免费在线| 日韩中文字幕亚洲一区二区va在线| 一区二区欧美视频| 亚洲电影第三页| 香蕉成人啪国产精品视频综合网| 亚洲综合区在线| 亚洲第一成人在线| 天堂久久一区二区三区| 三级不卡在线观看| 天天色 色综合| 国产精品亚洲午夜一区二区三区| 午夜一区二区三区视频| 亚洲综合小说图片| 亚洲综合激情网| 日韩经典一区二区| 久久精工是国产品牌吗| 国产综合色产在线精品| 国产剧情一区二区| www.成人网.com| 色94色欧美sute亚洲13| 欧美日韩精品一区二区三区| 日韩欧美一二三四区| 欧美精品一区二区三区很污很色的| 久久色在线视频| 国产精品美女久久久久久2018 | 国产成人在线视频网站| 成人av在线网| 欧洲一区二区av| 91精品国产福利在线观看| 久久久久久黄色| 亚洲综合激情小说| 久久国产精品免费| 99久久久国产精品| 99久久精品国产导航| 夜夜嗨av一区二区三区网页| 一区二区三区在线免费播放| 日韩av中文在线观看| 国产剧情一区二区三区| 在线看不卡av| 26uuu国产一区二区三区| 成人欧美一区二区三区白人| 天天操天天色综合| 国产成人综合亚洲91猫咪| 91黄色免费版| 久久久亚洲国产美女国产盗摄 | 色香蕉成人二区免费| 欧美放荡的少妇| 日韩一区中文字幕| 青青草97国产精品免费观看 | 国产无人区一区二区三区| 亚洲天天做日日做天天谢日日欢| 日韩精品亚洲一区二区三区免费| 国产精品影视网| 91精品一区二区三区在线观看| 国产欧美日韩一区二区三区在线观看| 亚洲一级电影视频| 不卡一区二区三区四区| 欧美本精品男人aⅴ天堂| 一区二区三区高清在线| 成人精品免费看| 欧美一级片在线观看| 一区二区三区在线播放| 福利视频网站一区二区三区| 日韩欧美一级精品久久| 亚洲国产色一区| av午夜精品一区二区三区| 久久―日本道色综合久久| 亚洲123区在线观看| 99久久精品国产网站| 久久久不卡网国产精品二区| 亚洲狠狠爱一区二区三区| av一区二区三区四区| 久久蜜桃一区二区| 麻豆91免费看| 91麻豆精品国产91久久久久久 | 在线一区二区观看| 国产精品久久久一区麻豆最新章节| 韩国女主播成人在线| 337p亚洲精品色噜噜| 亚洲不卡一区二区三区| 欧洲色大大久久| 亚洲国产裸拍裸体视频在线观看乱了 | 午夜视黄欧洲亚洲| 在线观看欧美黄色| 亚洲综合成人在线视频| 日本二三区不卡| 玉米视频成人免费看| 欧日韩精品视频| 亚洲一本大道在线|