📄 ospf_show_lsdb.c
字号:
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 ) { number_of_type_9_lsas++; length = sptr_database_entry->advertisement.sptr_type_9->ls_header.length; length = net_to_host_short(length); type_9_lsa_bytes = type_9_lsa_bytes + length; } } } 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 ) { length = sptr_database_entry->advertisement.sptr_type_10->ls_header.length; length = net_to_host_short(length); type_10_lsa_bytes = type_10_lsa_bytes + length; number_of_type_10_lsas++; } } }#endif /* __OPAQUE_LSA__ */ ospf_print_ls_router_area_id(sptr_area->area_id); ospf_print_number_of_router_lsas(number_of_router_lsas); printf("=====================================================================\r\n"); ospf_print_number_of_network_lsas(number_of_network_lsas); printf("=====================================================================\r\n"); ospf_print_number_of_network_summary_lsas(number_of_network_summary_lsas); printf("=====================================================================\r\n"); ospf_print_number_of_asbr_summary_lsas(number_of_asbr_summary_lsas); printf("=====================================================================\r\n");#if defined (__NSSA__) ospf_print_number_of_type_7_lsas(number_of_type_7_lsas); printf("=====================================================================\r\n");#endif /* __NSSA__ */#if defined (__OPAQUE_LSA__) ospf_print_number_of_type_9_lsas(number_of_type_9_lsas); printf("=====================================================================\r\n"); ospf_print_number_of_type_10_lsas(number_of_type_10_lsas); printf("=====================================================================\r\n");#endif /* __OPAQUE_LSA__ */ total_number_of_lsas = total_number_of_lsas + number_of_router_lsas + number_of_network_lsas + number_of_network_summary_lsas + number_of_asbr_summary_lsas + number_of_type_7_lsas + number_of_type_9_lsas + number_of_type_10_lsas; sptr_area = sptr_area->sptr_forward_link; } /* Check for external lsdb */ for (index = 0x00000000L, sptr_ls_database_head = &(ospf.external_database_hash_table[LS_EXTERNAL_LSA][index]); /* for each hash list */ index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(ospf.external_database_hash_table[LS_EXTERNAL_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; /* SPR 85893 --Begin */ if (( sptr_database_entry->advertisement.sptr_external != NULL ) && ( sptr_database_entry->ls_database_pending_delete == FALSE)) /* SPR 85893 --End */ { number_of_external_lsas++; length = sptr_database_entry->advertisement.sptr_external->ls_header.length; length = net_to_host_short(length); external_lsa_bytes = external_lsa_bytes + length; } } } ospf_print_number_of_external_lsas(number_of_external_lsas); printf("=====================================================================\r\n");#if defined (__OPAQUE_LSA__) /* 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 ) { number_of_type_11_lsas++; length = sptr_database_entry->advertisement.sptr_type_11->ls_header.length; length = net_to_host_short(length); type_11_lsa_bytes = type_11_lsa_bytes + length; } } } ospf_print_number_of_type_11_lsas(number_of_type_11_lsas); printf("=====================================================================\r\n");#endif /* __OPAQUE_LSA__ */ ospf_print_router_lsa_bytes(router_lsa_bytes); printf("=====================================================================\r\n"); ospf_print_network_lsa_bytes(network_lsa_bytes); printf("=====================================================================\r\n"); ospf_print_network_summary_lsa_bytes(network_summary_lsa_bytes); printf("=====================================================================\r\n"); ospf_print_asbr_summary_lsa_bytes(asbr_summary_lsa_bytes); printf("=====================================================================\r\n");#if defined (__NSSA__) ospf_print_type_7_lsa_bytes(type_7_lsa_bytes); printf("=====================================================================\r\n");#endif /* __NSSA__ */#if defined (__OPAQUE_LSA__) ospf_print_type_9_lsa_bytes(type_9_lsa_bytes); printf("=====================================================================\r\n"); ospf_print_type_10_lsa_bytes(type_10_lsa_bytes); printf("=====================================================================\r\n");#endif /* __OPAQUE_LSA__ */ ospf_print_external_lsa_bytes(external_lsa_bytes); printf("=====================================================================\r\n");#if defined (__OPAQUE_LSA__) ospf_print_type_11_lsa_bytes(type_11_lsa_bytes); printf("=====================================================================\r\n");#endif /* __OPAQUE_LSA__ */ ospf_print_total_number_of_lsas(total_number_of_lsas); printf("=====================================================================\r\n"); total_lsa_bytes = router_lsa_bytes + network_lsa_bytes + network_summary_lsa_bytes + asbr_summary_lsa_bytes + type_7_lsa_bytes + type_9_lsa_bytes + type_10_lsa_bytes + external_lsa_bytes + type_11_lsa_bytes; ospf_print_total_lsa_bytes(total_lsa_bytes); printf("=====================================================================\r\n"); semGive(ospf_global_mutex ); return OK; }/******************************************************************************** ospfShowRouterLsdb - show router link state database **/STATUS ospfShowRouterLsdb () { 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; USHORT number_of_links; ULONG number_of_router_lsas = 0x00000000; OSPF_PRINTF_DEBUG ( OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_show_router_lsdb\r\n"); semTake (ospf_global_mutex , WAIT_FOREVER); while (sptr_area != NULL) { for (index = 0x00000000L, sptr_ls_database_head = &(sptr_area->ls_database_hash_table[OSPF_LS_ROUTER][index]); /* for each hash list */ index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(sptr_area->ls_database_hash_table[OSPF_LS_ROUTER][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_router != NULL ) { ospf_print_ls_router_id(); ospf_print_ls_router_area_id(sptr_area->area_id); ospf_print_ls_age(sptr_database_entry->advertisement.sptr_router->ls_header.age); ospf_print_ls_options_for_router(sptr_database_entry->advertisement.sptr_router); ospf_print_ls_type(sptr_database_entry->advertisement.sptr_router->ls_header.type); ospf_print_ls_id(sptr_database_entry->advertisement.sptr_router->ls_header.id); ospf_print_ls_advertising_router(sptr_database_entry->advertisement.sptr_router->ls_header.advertising_router); ospf_print_ls_sequence_number(sptr_database_entry->advertisement.sptr_router->ls_header.sequence_number); ospf_print_ls_checksum(sptr_database_entry->advertisement.sptr_router->ls_header.checksum); ospf_print_ls_length(sptr_database_entry->advertisement.sptr_router->ls_header.length); number_of_links = sptr_database_entry->advertisement.sptr_router->number_of_links; number_of_links = net_to_host_short (number_of_links); ospf_print_ls_number_of_links(number_of_links); ospf_print_ls_router_links(number_of_links, &(sptr_database_entry->advertisement.sptr_router->link)); printf("=====================================================================\r\n"); number_of_router_lsas++; } } } sptr_area = sptr_area->sptr_forward_link; } ospf_print_number_of_router_lsas(number_of_router_lsas); printf("=====================================================================\r\n"); semGive(ospf_global_mutex ); return OK; }/******************************************************************************** ospfShowNetworkLsdb - show network link state database **/STATUS ospfShowNetworkLsdb(){ OSPF_AREA_ENTRY *sptr_area = ospf.sptr_area_list; OSPF_LS_DATABASE_HEAD *sptr_ls_database_head = NULL; OSPF_LS_DATABASE_ENTRY *sptr_next_database_entry = NULL; OSPF_LS_DATABASE_ENTRY *sptr_database_entry = NULL; ULONG index; ULONG number_of_network_lsas = 0x00000000; OSPF_PRINTF_DEBUG ( OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_show_network_lsdb\r\n"); semTake (ospf_global_mutex , WAIT_FOREVER); while (sptr_area != NULL) { for (index = 0x00000000L, sptr_ls_database_head = &(sptr_area->ls_database_hash_table[OSPF_LS_NETWORK][index]); /* for each hash list */ index < OSPF_HASH_TABLE_SIZE; ++index, sptr_ls_database_head = &(sptr_area->ls_database_hash_table[OSPF_LS_NETWORK][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_network != NULL ) { ospf_print_ls_router_id(); ospf_print_ls_network_area_id(sptr_area->area_id); ospf_print_ls_age(sptr_database_entry->advertisement.sptr_network->ls_header.age); ospf_print_ls_options(); ospf_print_ls_type(sptr_database_entry->advertisement.sptr_network->ls_header.type); ospf_print_ls_id(sptr_database_entry->advertisement.sptr_network->ls_header.id); ospf_print_ls_advertising_router(sptr_database_entry->advertisement.sptr_network->ls_header.advertising_router); ospf_print_ls_sequence_number(sptr_database_entry->advertisement.sptr_network->ls_header.sequence_number); ospf_print_ls_checksum(sptr_database_entry->advertisement.sptr_network->ls_header.checksum); ospf_print_ls_length(sptr_database_entry->advertisement.sptr_network->ls_header.length); ospf_print_ls_network_mask(sptr_database_entry->advertisement.sptr_network->network_mask); ospf_print_ls_network_links(sptr_database_entry->advertisement.sptr_network); printf("=====================================================================\r\n"); number_of_network_lsas++; } } } sptr_area = sptr_area->sptr_forward_link; } ospf_print_number_of_network_lsas(number_of_network_lsas); printf("=====================================================================\r\n"); semGive(ospf_global_mutex ); return OK; }/******************************************************************************** ospfShowSummaryLsdb - show summary link state database**/STATUS ospfShowSummaryLsdb() { 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_network_summary_lsas = 0x00000000; OSPF_PRINTF_DEBUG ( OSPF_DEBUG_PRINTF, "OSPF: Entering ospf_show_summary_lsdb\r\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -