亚洲欧美第一页_禁久久精品乱码_粉嫩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| 五月天婷婷综合| 亚洲无人区一区| 亚洲欧美自拍偷拍色图| www国产成人免费观看视频 深夜成人网| 一本大道av一区二区在线播放| 青青草原综合久久大伊人精品优势| 国产欧美日韩综合| 精品黑人一区二区三区久久 | 国产激情偷乱视频一区二区三区| 亚洲伊人伊色伊影伊综合网| 日韩美女精品在线| 国产欧美日韩麻豆91| 日韩欧美国产系列| 久久先锋影音av鲁色资源网| 91精品国产色综合久久不卡蜜臀 | 欧美国产精品久久| 久久久青草青青国产亚洲免观| 久久综合久久鬼色| 一区二区欧美精品| 蜜臀精品一区二区三区在线观看| 国产亚洲精品免费| **性色生活片久久毛片| 一区二区理论电影在线观看| 成人av动漫网站| 在线欧美日韩国产| 91精品久久久久久久99蜜桃| xfplay精品久久| 亚洲天堂免费在线观看视频| 亚洲一线二线三线视频| 麻豆成人久久精品二区三区小说| 国产精品一区免费视频| 日韩视频一区二区| 激情综合色播五月| av电影一区二区| 欧美久久一二区| 国产日韩欧美精品电影三级在线| 亚洲乱码国产乱码精品精可以看| 日本伊人色综合网| 成人性生交大片免费看中文网站| 在线观看av不卡| 久久蜜桃一区二区| 亚洲成人av一区二区三区| 黄色日韩网站视频| 欧美福利视频一区| 亚洲精品一二三四区| 国产又黄又大久久| 在线综合亚洲欧美在线视频| 国产99久久久国产精品潘金网站| 蜜臀av国产精品久久久久 | 精品在线播放免费| 欧美日韩国产小视频在线观看| 蜜臀av一区二区在线观看| 在线观看成人免费视频| 亚洲视频在线观看一区| 成人黄色片在线观看| 国产精品人人做人人爽人人添| 美日韩一区二区三区| 欧美精品日韩精品| 亚洲一区二区三区四区在线| 99久久er热在这里只有精品66| 久久久久久久久久久黄色| 精品一二三四区| 一区二区国产盗摄色噜噜| 色成年激情久久综合| 17c精品麻豆一区二区免费| 成+人+亚洲+综合天堂| 国产精品视频你懂的| 成人在线视频一区二区| 亚洲欧洲精品天堂一级| 色欧美88888久久久久久影院| 国产尤物一区二区在线| 欧美激情在线看| 在线观看av一区| 六月丁香婷婷色狠狠久久| 精品国产91久久久久久久妲己 | 久久免费电影网| 97久久精品人人做人人爽50路| 亚洲最新视频在线观看| 欧美剧情片在线观看| 国产在线播放一区二区三区| 国产精品久久久久婷婷| 欧美系列亚洲系列| 懂色av一区二区夜夜嗨| 亚洲综合成人在线| 久久九九国产精品| 欧美日韩一区二区三区视频| 国产一区二区h| 亚洲午夜精品在线| 国产人成一区二区三区影院| 欧美精品18+| 国产成人aaaa| 免费不卡在线观看| 亚洲免费伊人电影| 精品国产乱码久久久久久图片 | 91精品国产一区二区三区蜜臀| 91亚洲精品乱码久久久久久蜜桃| 日本午夜精品一区二区三区电影| 国产精品麻豆欧美日韩ww| 日韩一区二区三区精品视频| 在线免费观看日本一区| 成人精品国产免费网站| 日韩高清中文字幕一区| 亚洲电影在线播放| 国产精品久久久久三级| 国产欧美日本一区二区三区| 日韩欧美在线综合网| 欧美福利电影网| 在线91免费看| 欧美日韩一区二区欧美激情| 99国产精品久久久久久久久久| 高清国产一区二区三区| 国产精品99久久不卡二区| 国内偷窥港台综合视频在线播放| 蜜臀av国产精品久久久久| 精品综合久久久久久8888| 久久国内精品视频| 美女久久久精品| 精彩视频一区二区三区| 精品一区二区久久| 狠狠色狠狠色综合日日91app| 麻豆精品国产传媒mv男同 | 紧缚捆绑精品一区二区| 国产一区999| 成人手机在线视频| 成人精品免费网站| 91色综合久久久久婷婷| 欧美日韩成人综合| 久久中文娱乐网| 中文字幕一区av| 日韩国产精品久久久久久亚洲| 美洲天堂一区二卡三卡四卡视频| 国产成人综合在线| 欧美精品xxxxbbbb| 久久久久久久性| 夜夜揉揉日日人人青青一国产精品| 亚洲bt欧美bt精品777| 韩日欧美一区二区三区| 色视频成人在线观看免| 精品日韩一区二区三区免费视频| 国产精品免费视频网站| 五月激情综合网| jizz一区二区| 日韩一区二区在线观看| 国产精品女上位| 久久91精品久久久久久秒播| 色婷婷综合激情| 亚洲国产精华液网站w| 日日夜夜精品免费视频| 9i在线看片成人免费| 精品日韩一区二区三区| 日韩精品成人一区二区三区| 99热99精品| 国产精品三级在线观看| 国内外精品视频| 久久众筹精品私拍模特| 精品一区二区三区免费播放| 欧美日韩视频不卡| 伊人色综合久久天天人手人婷| 成人手机电影网| 国产欧美一区二区精品仙草咪 | 欧美视频你懂的| 舔着乳尖日韩一区| 欧美亚洲国产一区在线观看网站| 国产亲近乱来精品视频 | 成人免费精品视频| 亚洲欧美区自拍先锋| 91网站在线观看视频| 中文字幕一区二区三区av| 99久久精品国产麻豆演员表| 亚洲少妇屁股交4| 日本道免费精品一区二区三区| 亚洲另类春色国产| 欧美日韩免费视频| 极品少妇xxxx精品少妇| 国产欧美在线观看一区| av一区二区三区黑人| 亚洲午夜精品网| 日韩午夜激情电影| 国产伦精品一区二区三区免费| 中文字幕国产精品一区二区| 91丝袜国产在线播放| 午夜国产精品一区| 久久久久九九视频| 欧美日韩日日夜夜| 轻轻草成人在线| 国产精品久久久久久久午夜片| 在线一区二区视频| 精品无码三级在线观看视频| 国产精品久久久久影院亚瑟| 91麻豆精品国产自产在线观看一区| 久久99国产乱子伦精品免费| 中文字幕亚洲综合久久菠萝蜜| 777色狠狠一区二区三区| 国产91丝袜在线18| 日韩激情在线观看| 最近中文字幕一区二区三区| 精品久久久久久久久久久院品网 |