⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospf_show_lsdb.c

📁 vxworks下ospf协议栈
💻 C
📖 第 1 页 / 共 5 页
字号:
	ospf_print_ls_age(sptr_database_entry->advertisement.sptr_type_11->ls_header.age);	ospf_print_ls_options();	ospf_print_ls_type(sptr_database_entry->advertisement.sptr_type_11->ls_header.type);	ospf_lsid.lsid = sptr_database_entry->advertisement.sptr_type_11->ls_header.id.lsid;	ospf_lsid.lsid = net_to_host_long(ospf_lsid.lsid);	ospf_print_ls_opaque_id(ospf_lsid.opaque_lsid);	ospf_print_ls_advertising_router(sptr_database_entry->advertisement.sptr_type_11->ls_header.advertising_router);	ospf_print_ls_sequence_number(sptr_database_entry->advertisement.sptr_type_11->ls_header.sequence_number);	ospf_print_ls_checksum(sptr_database_entry->advertisement.sptr_type_11->ls_header.checksum);	ospf_print_ls_length(sptr_database_entry->advertisement.sptr_type_11->ls_header.length);	printf("=====================================================================\r\n");	return;}void ospfShowOpaqueLsdb(enum OSPF_SEARCH_TYPE key, ULONG key_value){	OSPF_AREA_ENTRY *sptr_area = ospf.sptr_area_list;	OSPF_LS_DATABASE_HEAD *sptr_ls_database_head = NULL;	OSPF_LS_DATABASE_ENTRY *sptr_database_entry = NULL;	OSPF_LS_DATABASE_ENTRY *sptr_next_database_entry = NULL;    ULONG index;	ULONG number_of_type_9_lsas = 0x00000000;	ULONG number_of_type_10_lsas = 0x00000000;	ULONG number_of_type_11_lsas = 0x00000000;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_show_opaque_lsdb\r\n");	semTake (ospf_global_mutex , WAIT_FOREVER);	sptr_area = ospf.sptr_area_list;	sptr_ls_database_head = NULL;	sptr_database_entry = NULL;	index = 0;	while (sptr_area != NULL)		{		for (index = 0x00000000L, sptr_ls_database_head = &(sptr_area->opaque_ls_database_hash_table[TYPE_9_LSA][index]);	/* for each hash list */			index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(sptr_area->opaque_ls_database_hash_table[TYPE_9_LSA][index]))			{			/* SPR#76812 */	       	for (sptr_database_entry = sptr_ls_database_head->sptr_linear_database_entry;	       		sptr_database_entry != NULL;	       	    sptr_database_entry = sptr_next_database_entry)				{				sptr_next_database_entry = sptr_database_entry->sptr_forward_link;				if ( sptr_database_entry->advertisement.sptr_type_9 != NULL )					{					if (key == OSPF_SEARCH_ADVERTISING_ROUTER)						{						key_value = host_to_net_long(key_value);						if (sptr_database_entry->advertisement.sptr_type_9->ls_header.advertising_router == key_value)							{							ospf_print_type_9(sptr_area,sptr_database_entry);							number_of_type_9_lsas++;							}						}					else if (key == OSPF_SEARCH_LSA_ID)						{						key_value = host_to_net_long(key_value);						if (sptr_database_entry->advertisement.sptr_type_9->ls_header.id.lsid == key_value)							{							ospf_print_type_9(sptr_area,sptr_database_entry);							number_of_type_9_lsas++;							}						}					else						{						if (key_value == OSPF_LS_TYPE_9)							{							ospf_print_type_9(sptr_area,sptr_database_entry);							number_of_type_9_lsas++;							}						}					}				}			}		sptr_area = sptr_area->sptr_forward_link;		}	ospf_print_number_of_type_9_lsas(number_of_type_9_lsas);	printf("=====================================================================\r\n");	sptr_area = ospf.sptr_area_list;	sptr_ls_database_head = NULL;	sptr_database_entry = NULL;	index = 0;	while (sptr_area != NULL)		{		for (index = 0x00000000L, sptr_ls_database_head = &(sptr_area->opaque_ls_database_hash_table[TYPE_10_LSA][index]);	/* for each hash list */			index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(sptr_area->opaque_ls_database_hash_table[TYPE_10_LSA][index]))			{			/* SPR#76812 */	       	for (sptr_database_entry = sptr_ls_database_head->sptr_linear_database_entry;	       		sptr_database_entry != NULL;	       	    sptr_database_entry = sptr_next_database_entry)				{				sptr_next_database_entry = sptr_database_entry->sptr_forward_link;				if ( sptr_database_entry->advertisement.sptr_type_10 != NULL )					{					if (key == OSPF_SEARCH_ADVERTISING_ROUTER)						{						key_value = host_to_net_long(key_value);						if (sptr_database_entry->advertisement.sptr_type_10->ls_header.advertising_router == key_value)							{							ospf_print_type_10(sptr_area,sptr_database_entry);							number_of_type_10_lsas++;							}						}					else if (key == OSPF_SEARCH_LSA_ID)						{						key_value = host_to_net_long(key_value);						if (sptr_database_entry->advertisement.sptr_type_10->ls_header.id.lsid == key_value)							{							ospf_print_type_10(sptr_area,sptr_database_entry);							number_of_type_10_lsas++;							}						}					else						{						if (key_value == OSPF_LS_TYPE_10)							{							ospf_print_type_10(sptr_area,sptr_database_entry);							number_of_type_10_lsas++;							}						}					}				}			}		sptr_area = sptr_area->sptr_forward_link;		}	ospf_print_number_of_type_10_lsas(number_of_type_10_lsas);	printf("=====================================================================\r\n");	sptr_ls_database_head = NULL;	sptr_database_entry = NULL;	index = 0;	/* Check for type 11 lsdb */	for (index = 0x00000000L, sptr_ls_database_head = &(ospf.type_11_database_hash_table[LS_TYPE_11_LSA][index]);	/* for each hash list */		index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(ospf.type_11_database_hash_table[LS_TYPE_11_LSA][index]))		{		if (sptr_ls_database_head == NULL)			{			continue;			}		/* SPR#76812 */	       	for (sptr_database_entry = sptr_ls_database_head->sptr_linear_database_entry;	       		sptr_database_entry != NULL;	       	    sptr_database_entry = sptr_next_database_entry)				{				sptr_next_database_entry = sptr_database_entry->sptr_forward_link;			if ( sptr_database_entry->advertisement.sptr_type_11 != NULL )				{				if (key == OSPF_SEARCH_ADVERTISING_ROUTER)					{					key_value = host_to_net_long(key_value);					if (sptr_database_entry->advertisement.sptr_type_11->ls_header.advertising_router == key_value)						{						ospf_print_type_11(sptr_database_entry);						number_of_type_11_lsas++;						}					}				else if (key == OSPF_SEARCH_LSA_ID)					{					key_value = host_to_net_long(key_value);					if (sptr_database_entry->advertisement.sptr_type_11->ls_header.id.lsid == key_value)						{						ospf_print_type_11(sptr_database_entry);						number_of_type_11_lsas++;						}					}				else					{					if (key_value == OSPF_LS_TYPE_11)						{						ospf_print_type_11(sptr_database_entry);						number_of_type_11_lsas++;						}					}				}			}		}	ospf_print_number_of_type_11_lsas(number_of_type_11_lsas);	printf("=====================================================================\r\n");	semGive(ospf_global_mutex );	return;}#endif /* __OPAQUE_LSA__ */static void ospf_print_ls_router_id(){	char print_buffer[PRINT_BUFFER_SIZE];	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_router_id\r\n");	OSPF_CONVERT_IP_ADDRESS_TO_DOT_FORMAT_FOR_DEBUG (print_buffer, ospf.router_id);	printf("OSPF Router with id(%s)\r\n", print_buffer);	return;}static void ospf_print_ls_age(USHORT ls_age){	USHORT age;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_age\r\n");	age = ls_age;	age = net_to_host_short(age);	printf("LS age: %d\r\n", age);	return;}static void ospf_print_ls_options_for_router(OSPF_ROUTER_LINK_ADVERTISEMENT_HEADER *sptr_router){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_options\r\n");	printf("Options: (No TOS-capability)\r\n");	if (sptr_router != NULL)		{		if (sptr_router->bit_options._bit.bit_V)			{			printf("         Virtual Link\r\n");			}		if (sptr_router->bit_options._bit.bit_B)			{			printf("         Area Border Link\r\n");			}		if (sptr_router->bit_options._bit.bit_E)			{			printf("         ASBR Link\r\n");			}		}	return;}static void ospf_print_ls_options(){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_options\r\n");	printf("Options: (No TOS-capability)\r\n");	return;}static void ospf_print_ls_type(BYTE_ENUM (OSPF_LS_TYPE) type){	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_type\r\n");	switch (type)		{		case OSPF_LS_ROUTER:			printf("Router Links\r\n");			return;		case OSPF_LS_NETWORK:			printf("Network Links\r\n");			return;		case OSPF_LS_SUMMARY_NETWORK:			printf("Summary Links(Network)\r\n");			return;		case OSPF_LS_SUMMARY_AS_BOUNDARY_ROUTER:			printf("Summary Links(AS Boundary Router)\r\n");			return;		case OSPF_LS_AS_EXTERNAL:			printf("AS External Link\r\n");			return;#if defined (__NSSA__)		case OSPF_LS_TYPE_7:			printf("NSSA Links(Type 7)\r\n");			return;#endif /*__NSSA__*/		/* opaque lsa print opaque types jkw */#if defined (__OPAQUE_LSA__)		case OSPF_LS_TYPE_9:			printf("Opaque Links(Type 9)\r\n");			return;		case OSPF_LS_TYPE_10:			printf("Opaque Links(Type 10)\r\n");			return;		case OSPF_LS_TYPE_11:			printf("Opaque Links(Type 11)\r\n");			return;#endif /* __OPAQUE_LSA__ */		default:			printf("Unknown Links\r\n");			return;		}}static void ospf_print_ls_id(ULONG ls_id){	char print_buffer[PRINT_BUFFER_SIZE];	ULONG id;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_id\r\n");	id = ls_id;	id = net_to_host_long(id);	OSPF_CONVERT_IP_ADDRESS_TO_DOT_FORMAT_FOR_DEBUG (print_buffer, id);	printf("Link State ID: %s\r\n", print_buffer);	return;}static void ospf_print_ls_advertising_router(ULONG ls_advertising_router){	char print_buffer[PRINT_BUFFER_SIZE];	ULONG advertising_router;	OSPF_PRINTF_DEBUG (OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_print_ls_advertising_router\r\n");	advertising_router = ls_advertising_router;	advertising_router = net_to_host_long(advertising_router);	OSPF_CONVERT_IP_ADDRESS_T

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -