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

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

?? ospf_utilities.c

?? vxworks下ospf協議棧
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* ospf_utilities.c  - OSPF utility functions *//* Copyright 2000-2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02v,12may03,asr	    Changes to make OSPF virtual stack compatible02t,26may03,agi     Added ospf_get_system_elapsed_time_second(),                     ported utility functions from RWOS02u,27may03,kc      MIPS board crash due to reference of a null pointer in                     ospf_set_ip_router_tagfiled ()02t,27may02,mwv     SPR 87784 create the function ospf_process_export_route_queue_all()                    This function will process all messages in the export route queue.					Fixed a compile warning in the function ospf_redistribute_route (),					removed the variable route_already_in_ip_table,02s,15may03,htm     SPR 86907 Vitual link is not included in router-LSA for the backbone02r,14may03,agi     moved from RWOS semaphores to vxWorks semaphores02q,22apr03,ram	    SPR#76812 Modifications for OSPF performance enhancements02p,17feb02,ram		SPR 81808 Added OSPF memory partition support02o,09dec02,ram		SPR 84714 & 84711 Added correct metric for type 2 external					and OSPF route weigth.					02o,04dec02,kkz     Warning cleanup02n,03dec02,mwv     Update ospfShowVersion, spr 8462602m,19nov02,kc      Added new ospf_flush_network_link_advertisement() and                    ospf_notify_areas_for_abr_change() routines.02l,31oct02,htm     Add fix for SPR# 8114502k,18oct02,hme     Revert ospf_redistribute_route() case OSPF_REPLACE_PATH to pre                    TRS 29100102j,18sep02,agi     Fixed ospf_redistribute_route()02i,06jun02,kc      Obsolete the routine ospf_free_rw_container_and_data().02h,22apr02,ark     Added in fixes for Virtual links02g,17apr02,ark     Added in fix for SPR 74616. Added new function                    ospf_get_destination_address_of PPP link.Modified                    ospf_convert_ospf_route_table_entry_into_ip_route.02f,09jan02,jkw     Remove elapsed time from checking same instance.02e,20dec01,jkw     Removed sptr_area->sptr_interfaces structure.02d,13oct01,kc      Dynamic configuration changes.02c,11oct01,jkw     Set pointer to NULL after table_free.02b,22sep01,kc      Obsolete ospf_get_port_number(). Added ospf_validate_interface().02a,14jul01,aos     Add ospfShowVersion() function01z,23jul01,jkw     Added in routine to delete items in a container and the container.01y,20jun01,jkw     Added unnumbered link support01x,11may01,aos     Added null pointer checks01w,03may01,jkw     Added checks for NULL pointers and alarm messages01v,26sep00,reshma  Added WindRiver CopyRight01u,25sep00,reshma  RFC-1587 implementation for OSPF NSSA Option, also tested against                    ANVL.01t,13jul00,reshma  Function ospf_parse_port_plain_text_or_md5_password() modified to                    process  simple/MD5 authentication type correctly.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,16aug99,jack    Folded the fix in RTM patricia - always return most specific route -                    Sue case into ospf patricia tree.01o,19jul99,jack    RFC 1745 tag related changes01n,28jul99,jack    change in ospf_convert_ospf_route_table_entry_into_ip_route01m,15jan99,jack    Changed the return value in ospf_get_port_number to NO_SUCH_PORT if                    no port is found01l,28dec98,jack    Compiled and added some comments01k,13nov98,jack    Changes related to introducing queuing in OSPF to RTM interface and                    bug fix on the external route additions path (to RTM)01j,11nov98,jack    Config changes, linted and big endian changes01i,30oct98,jack    Incorporate changes for compilation on Vxworks01h,23aug98,jack    ANVL tested OSPF with PATRICIA tree route table and no recursion01g,10aug98,jack    PATRICIA Route Table Based OSPF Code Base01f,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*//*DESCRIPTIONThis file contains various utility functions such as comparing ipaddresses, incrementing sequence numbers, finding the authentication sizes,checking the type of OSPF router.  This file is used whenever a utilityfunction needs to be called.*/#include "ospf.h"#if defined (__OSPF_VIRTUAL_STACK__)#include "ospf_vs_lib.h"#endif /* __OSPF_VIRTUAL_STACK__ *//* defines */#define NUMBER_OF_BITS_IN_BYTE    8static enum TEST ospf_convert_ospf_route_table_entry_into_ip_route    (IP_ROUTE_ENTRY *	sptr_ip_route_entry,     OSPF_ROUTING_TABLE_ENTRY *	sptr_ospf_route_entry_to_export,     OSPF_NEXT_HOP_BLOCK	*	sptr_next_hop_block);static enum TEST ospf_redistribute_route    (enum OSPF_ROUTING_TABLE_UPDATE_ACTION action,     IP_ROUTE_ENTRY *	sptr_ip_route_entry);static void ospf_set_ip_route_tagfiled    (IP_ROUTE_ENTRY *	sptr_ip_route,     OSPF_ROUTING_TABLE_ENTRY *	sptr_ospf_route_entry_to_export);static void ospf_set_ip_metrics    (IP_ROUTE_ENTRY *	sptr_ip_route,     OSPF_ROUTING_TABLE_ENTRY *	sptr_ospf_route_entry_to_export);/* SPR 74616 */ULONG ospf_get_destination_address_of_PPP_link (ULONG ppp_src_addr);/* SPR 74616 */extern void ospfShowVersion(void);/******************************************************************************/enum BOOLEAN ospf_check_if_addresses_match (ULONG address_1,ULONG address_2){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_check_if_addresses_match\r\n");	if (address_1 == address_2)		{		return (TRUE);		}	else		{		return (FALSE);		}}/******************************************************************************/enum BOOLEAN ospf_check_for_transit_areas (void){	enum BOOLEAN transit_areas_exist;	OSPF_AREA_ENTRY *sptr_area = NULL;	OSPF_AREA_ENTRY *sptr_next_area = NULL;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_check_for_transit_areas\r\n");	transit_areas_exist = FALSE;	for (sptr_area = ospf.sptr_area_list; sptr_area != NULL; sptr_area = sptr_next_area)		{		sptr_next_area = sptr_area->sptr_forward_link;		if (sptr_area->flags._bit.transit == TRUE)			{			transit_areas_exist = TRUE;			break;			}		}	return (transit_areas_exist);}/******************************************************************************/void ospf_generate_network_and_router_link_state_advertisements (OSPF_INTERFACE *sptr_interface){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_generate_network_and_router_link_state_advertisements\r\n");	if (sptr_interface->sptr_area->build_router == TRUE)		{		ospf_originate_router_links_advertisement (sptr_interface->sptr_area);		/* SPR 86907  -- Begin */		if ((sptr_interface->type == OSPF_VIRTUAL_LINK) && (sptr_interface->sptr_transit_area != NULL))             ospf_originate_router_links_advertisement (sptr_interface->sptr_transit_area);		/* SPR 86907  -- End */		sptr_interface->sptr_area->build_router = FALSE;		}	if (sptr_interface->flags._bit.build_network == TRUE)		{		ospf_originate_network_links_advertisement (sptr_interface);		sptr_interface->flags._bit.build_network = FALSE;		}	return;}/******************************************************************************/ULONG ospf_get_authentication_size (OSPF_INTERFACE *sptr_interface){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_get_authentication_size\r\n");	if (sptr_interface->authentication.type == OSPF_AUTHENTICATION_MD5)		{		return (OSPF_AUTHENTICATION_MD5_SIZE);		}	else		{		return (0x00000000L);		}}/******************************************************************************/ULONG ospf_get_interface_mtu (OSPF_INTERFACE *sptr_interface){	ULONG mtu;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_get_interface_mtu\r\n");#if defined (__OSPF_VIRTUAL_LINK__)	if (sptr_interface->type == OSPF_VIRTUAL_LINK)		{		mtu = 1500;		}	else		{		mtu = sptr_interface->mtu;		}#else /*__OSPF_VIRTUAL_LINK__*/	if (sptr_interface->type == OSPF_VIRTUAL_LINK)		{		mtu = OSPF_MAXIMUM_PACKET_SIZE_FOR_VIRTUAL_LINK;		}	else		{		mtu = sptr_interface->mtu;		}#endif /* __OSPF_VIRTUAL_LINK__ *//* Mistral commented on  May 22nd */	/*mtu = mtu - sizeof (IP_HEADER); */	return (mtu);}/**************************************************************************************** ospf_flush_network_link_advertisement - flush network link advertisement** This routine flush the self-originated network-LSA. It is called when a router* that has formerly been the designated router for a netwok is no longer declared* itself as the designated router. This could happen when the interface is* dynamically brought down due to the configuration changes** RETURNS: N/A*/void ospf_flush_network_link_advertisement( OSPF_INTERFACE *sptr_interface ){    USHORT age = 0x00;	OSPF_LS_DATABASE_ENTRY *    sptr_network_database_entry = NULL;    /* SPR 84478, 84485, 84486 -- Begin */    if (sptr_interface->designated_router.address == sptr_interface->address)        {        /*         * A router that has formerly been the Designated Router for a network,         * but is no longer, should flush the network-LSA that it had previously         * (SPR#75785)         */         /*search for the old network LSA entry in the  database and set the          * age= OSPF_MAX_AGE          */         /* SPR#76812 -- Begin */         sptr_network_database_entry = ospf_find_LSA (             sptr_interface->sptr_area,              sptr_interface->designated_router.address,             ospf.router_id,              OSPF_LS_NETWORK);		 /* SPR#76812 -- End */               if(sptr_network_database_entry != NULL)             {             age = OSPF_MAXIMUM_AGE;             age = host_to_net_short (age);             /* Assign OSPF_MAX_AGE value to network LSA*/             sptr_network_database_entry->advertisement.sptr_network->ls_header.age = age;             }        }    /* SPR 84478, 84485, 84486 -- End */    }/*************************************************************************************** ospf_notify_areas_for_abr_change - send notification for area border router changes** This routine originates the router link state advertisements for areas to which* this router connects for the changes in its area border router status.** RETURNS: N/A*/void ospf_notify_areas_for_abr_change( ulong_t area_id_to_skip ){    /* SPR 84478, 84485, 84486 -- Begin */    OSPF_AREA_ENTRY* sptr_area;    for ( sptr_area = ospf.sptr_area_list; sptr_area != NULL;          sptr_area = sptr_area->sptr_forward_link )    {        /* skip the area that doesn't need the router lsa to send to. The area to         * skip would be the area that has already gone through the link state         * database exchange process due to changes in the area or interface         * configuration         */        if ( sptr_area->area_id == area_id_to_skip )            continue;        /* originate router lsa to notify interface in the area that the router's         * area border router status has changed.         */        ospf_originate_router_links_advertisement( sptr_area );    }    return;    /* SPR 84478, 84485, 84486 -- End */}/********************************************************************************* ospf_check_if_area_border_router - check if router is an area border router** This routine checks if the router is an area border router. If the router is* attached to multiple areas, then it's an area border router (page 149, #3)* provided that there is at least one operational interface in each area. It is* not necessary to check for the number of operational virtual interfaces in an* area because if there is no operational interface in the transit area, the end* point of the virtual interface will not be reachable, thus, virtual interfaces*  will not operate.** RETURNS: TRUE or FALSE*/enum BOOLEAN ospf_check_if_area_border_router (void){	OSPF_AREA_ENTRY *sptr_area = NULL;	OSPF_AREA_ENTRY *sptr_next_area = NULL;	USHORT number_of_areas = 0x0000;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_check_if_area_border_router\r\n");	for (sptr_area = ospf.sptr_area_list; sptr_area != NULL; sptr_area = sptr_next_area)		{		sptr_next_area = sptr_area->sptr_forward_link;		if (sptr_area->number_of_interfaces_in_up_state == 0)			{			continue;			}		number_of_areas++;		}	if ((number_of_areas > 0x0001) || (ospf.number_of_virtual_links > 0x00000000L))		{		return (TRUE);		}	else		{		return (FALSE);		}}/********************************************************************************* ospf_validate_interface - validate the existence of an interface** This routine walks the sptr_interface_list and verify if the given interface* IP address matches the IP address of a node on the list.** RETURNS: TRUE or FALSE*/enum BOOLEAN ospf_validate_interface(ULONG interface_address){    OSPF_INTERFACE  *sptr_interface;    for ( sptr_interface = ospf.sptr_interface_list; sptr_interface != NULL;          sptr_interface = sptr_interface->sptr_forward_link )    {        if ((sptr_interface->port_enabled == TRUE) &&            (sptr_interface->address == interface_address))        {            return(TRUE);        }    }    return(FALSE);}/**************************************************************************//* section 13.1 of OSPF specification (page 136) */enum TEST ospf_check_if_more_recent (OSPF_LS_HEADER *sptr_new_ls_header,OSPF_LS_HEADER *sptr_current_ls_header,ULONG elapsed_time){	seq_t new_sequence_number;	seq_t current_sequence_number;	USHORT new_age;	USHORT current_age;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_check_if_more_recent\r\n");	new_sequence_number = sptr_new_ls_header->sequence_number;	new_sequence_number = net_to_host_long (new_sequence_number);	current_sequence_number = sptr_current_ls_header->sequence_number;	current_sequence_number = net_to_host_long (current_sequence_number);	if (new_sequence_number > current_sequence_number)		{		return (PASS);		}	else if (sptr_new_ls_header->sequence_number == sptr_current_ls_header->sequence_number)		{		if (sptr_new_ls_header->checksum > sptr_current_ls_header->checksum)			{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av激情亚洲男人天堂| 日本成人在线一区| 成人av在线网| 中文字幕视频一区| 色综合中文字幕| 亚洲国产日韩精品| 欧美精品在欧美一区二区少妇| 午夜欧美大尺度福利影院在线看| 欧美高清性hdvideosex| 久久国内精品自在自线400部| 日韩一区二区免费在线电影| 国产一区二区剧情av在线| 国产女主播一区| 91啪亚洲精品| 亚洲成人免费在线| 久久久久久久久久久黄色| 成人app软件下载大全免费| 亚洲欧美日韩国产中文在线| 欧美日韩综合一区| 国精产品一区一区三区mba桃花| 国产欧美日韩不卡| 欧美唯美清纯偷拍| 国产一区 二区| 一二三区精品视频| 亚洲精品一区二区三区四区高清| 成人国产亚洲欧美成人综合网| 亚洲综合区在线| 亚洲精品一区二区三区蜜桃下载 | 日韩国产欧美视频| 久久久久国产精品麻豆ai换脸| 91碰在线视频| 国产一区日韩二区欧美三区| 一区二区免费在线| 久久综合精品国产一区二区三区| 91看片淫黄大片一级在线观看| 舔着乳尖日韩一区| 成人免费一区二区三区视频| 欧美一三区三区四区免费在线看 | 狠狠久久亚洲欧美| 国产精品色眯眯| 777欧美精品| 91尤物视频在线观看| 韩国三级中文字幕hd久久精品| 亚洲色图制服丝袜| 久久综合精品国产一区二区三区| 精品污污网站免费看| jlzzjlzz欧美大全| 国产制服丝袜一区| 日韩国产精品久久| 一区二区三区在线免费播放| 国产欧美一区二区精品性| 欧美一区二区观看视频| 91麻豆国产香蕉久久精品| 国产一区二区三区观看| 男女视频一区二区| 午夜一区二区三区视频| 亚洲精品视频观看| 最新中文字幕一区二区三区 | 国产日韩欧美亚洲| 欧美成人三级电影在线| 欧美性三三影院| 一本色道a无线码一区v| 国产精品一卡二卡在线观看| 美女网站在线免费欧美精品| 亚洲国产精品久久一线不卡| 亚洲视频你懂的| 中文字幕一区不卡| 国产精品久久免费看| 国产日韩av一区二区| 亚洲精品在线观| 2024国产精品| 精品国产1区2区3区| 日韩欧美激情一区| 欧美一级一级性生活免费录像| 欧美三区在线视频| 欧美午夜一区二区三区| 91在线视频观看| 91在线国产观看| 色婷婷av一区二区三区软件| 色综合咪咪久久| 91丝袜美女网| 91黄色在线观看| 欧美色欧美亚洲另类二区| 欧美性受xxxx| 欧美一区二区三区婷婷月色| 欧美一区二区在线视频| 欧美一区二区三区思思人| 欧美一区二区视频观看视频| 日韩一区二区三区视频| 日韩免费观看2025年上映的电影| 欧美一级xxx| 久久天天做天天爱综合色| 久久色成人在线| 国产精品第一页第二页第三页| 中文字幕欧美一| 一区二区三区在线视频免费 | 欧美成人a∨高清免费观看| 日韩一级成人av| 久久久夜色精品亚洲| 欧美国产成人精品| 亚洲激情五月婷婷| 天天色综合天天| 国产美女在线观看一区| 97精品电影院| 欧美日韩免费视频| 久久综合成人精品亚洲另类欧美| 国产精品初高中害羞小美女文| 一区二区三区日韩精品| 日韩二区在线观看| 国产盗摄一区二区三区| 91久久精品国产91性色tv | 欧美精品一区二区高清在线观看| 国产亚洲欧美中文| 亚洲综合av网| 国内外成人在线视频| eeuss影院一区二区三区| 欧美性感一区二区三区| 精品国产sm最大网站免费看| 亚洲欧美国产高清| 美女视频免费一区| 99久久精品国产观看| 欧美一区二区三区在线观看视频| 国产精品三级电影| 日本免费在线视频不卡一不卡二 | 成人av免费观看| 欧美日韩一级二级| 国产日韩欧美在线一区| 午夜不卡在线视频| 99精品热视频| 日韩欧美国产三级电影视频| 亚洲欧美日韩在线播放| 国产精品一区二区男女羞羞无遮挡 | 精品视频在线看| 久久亚洲一区二区三区明星换脸| 亚洲一线二线三线视频| 国产精品1024久久| 宅男噜噜噜66一区二区66| 亚洲天堂免费看| 国产在线播放一区| 欧美猛男男办公室激情| 亚洲视频免费在线观看| 国产99久久久久| 欧美va亚洲va香蕉在线| 亚洲香蕉伊在人在线观| 不卡一区二区三区四区| 欧美sm美女调教| 日韩高清一级片| 欧美高清性hdvideosex| 亚洲综合图片区| 91免费精品国自产拍在线不卡 | 国产精品久久久久四虎| 麻豆精品在线视频| 在线观看91av| 亚洲综合在线五月| 97精品国产97久久久久久久久久久久| 久久综合久久99| 捆绑调教一区二区三区| 欧美日韩二区三区| 亚洲最新在线观看| 欧洲一区二区三区免费视频| 亚洲欧美色综合| 91欧美一区二区| 亚洲免费观看视频| 99riav久久精品riav| 国产精品久久久久一区二区三区 | 亚洲免费三区一区二区| 成人深夜在线观看| 欧美韩国日本一区| 国产91对白在线观看九色| 久久久精品综合| 国产一区在线精品| 国产无人区一区二区三区| 国产一区啦啦啦在线观看| 精品sm在线观看| 国产精品系列在线播放| 亚洲国产精品av| 成人h版在线观看| 亚洲免费看黄网站| 欧美日韩成人在线| 奇米精品一区二区三区在线观看 | 免费人成在线不卡| 欧美一级xxx| 国产又黄又大久久| 国产精品天干天干在线综合| www.亚洲在线| 亚洲免费在线看| 欧美欧美欧美欧美| 精品一区二区三区免费视频| 久久美女高清视频| av日韩在线网站| 亚洲高清在线视频| 欧美成人精品1314www| 国产美女在线观看一区| 亚洲婷婷综合久久一本伊一区| 色屁屁一区二区| 日韩电影网1区2区| 久久理论电影网| 一本到不卡精品视频在线观看| 婷婷中文字幕综合| 久久蜜桃av一区二区天堂|