//yowada olsr_bool match_local_iface_addr(void *olsr, olsr_ip_addr *neigh_addr) { struct olsrv2* olsr1 = (struct olsrv2* ) olsr; union olsr_ip_addr *local_addr = NULL; int ifnum,i; ifnum = ((struct olsrv2 *)olsr)->iface_num; for (i=0; i < ifnum; i++){ local_addr = &((struct olsrv2 *)olsr)->iface_addr[i]; if (DEBUG_OLSRV2) { if (olsr1->olsr_cnf->ip_version == AF_INET) { char str1[INET_ADDRSTRLEN], str2[INET_ADDRSTRLEN]; ConvertIpv4AddressToString(local_addr->v4, str1); ConvertIpv4AddressToString(neigh_addr->v4, str2); olsr_printf("Local addr %s,\tNeigh addr %s\n",str1, str2); } else if (olsr1->olsr_cnf->ip_version == AF_INET6) { char str1[INET6_ADDRSTRLEN], str2[INET6_ADDRSTRLEN]; ConvertIpv6AddressToString(&local_addr->v6, str1, OLSR_FALSE); ConvertIpv6AddressToString(&neigh_addr->v6, str2, OLSR_FALSE); olsr_printf("Local addr %s,\tNeigh addr %s\n",str1, str2); } } if (equal_ip_addr((struct olsrv2 *)olsr, neigh_addr ,local_addr) == OLSR_TRUE) return OLSR_TRUE; } return OLSR_FALSE; }
void print_mpr_set_per_interface(struct olsrv2* olsr, OLSR_LIST *MPR_set) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_MPR_TUPLE *data = NULL; tmp = MPR_set->head; if (tmp == NULL){ olsr_printf( "--- MPR Set per Interface ---\n"); olsr_printf( "no entry.\n"); olsr_printf( "-----------------------------\n"); }else{ if (olsr->olsr_cnf->ip_version == AF_INET){ char str1[INET_ADDRSTRLEN], str2[INET_ADDRSTRLEN]; olsr_printf( "------------ MPR Set per Interface ------------\n"); olsr_printf( "%-20s %-16s\n", "local_iface_addr", "MPR_if_addr"); olsr_printf( "-----------------------------------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_TUPLE *)tmp->data; //inet_ntop(AF_INET, &data->local_iface_addr.v4, str1, sizeof(str1)); //inet_ntop(AF_INET, &data->MPR_if_addr.v4, str2, sizeof(str2)); ConvertIpv4AddressToString(data->local_iface_addr.v4, str1); ConvertIpv4AddressToString(data->MPR_if_addr.v4, str2); olsr_printf( "%-20s %-16s\n", str1, str2); tmp = tmp->next; } olsr_printf( "----------------------------------------------\n"); } else if (olsr->olsr_cnf->ip_version == AF_INET6){ char str1[INET6_ADDRSTRLEN], str2[INET6_ADDRSTRLEN]; olsr_printf( "--------------------------- MPR Set per Interface ---------------------------\n"); olsr_printf( "%-46s %-46s\n", "local_iface_addr", "MPR_if_addr"); olsr_printf( "-----------------------------------------------------------------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_TUPLE *)tmp->data; //inet_ntop(AF_INET6, // data->local_iface_addr.v6.s6_addr, str1, sizeof(str1)); //inet_ntop(AF_INET6, // data->MPR_if_addr.v6.s6_addr, str2, sizeof(str2)); ConvertIpv6AddressToString(&data->local_iface_addr.v6, str1, (olsr_bool)false); ConvertIpv6AddressToString(&data->MPR_if_addr.v6, str2, (olsr_bool)false); olsr_printf( "%-46s %-46s\n", str1, str2); tmp = tmp->next; } olsr_printf( "-----------------------------------------------------------------------------\n"); } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } }
void print_relay_set(struct olsrv2 *olsr) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_RELAY_TUPLE *data = NULL; if(olsr->olsr_cnf->debug_level < 2) return; tmp = olsr->relay_set.head; if(tmp == NULL){ olsr_printf("--- Relay Set ---\n"); olsr_printf("no entry.\n"); olsr_printf("----------------------------\n"); }else{ if(olsr->olsr_cnf->ip_version == AF_INET){ char str[INET_ADDRSTRLEN]; olsr_printf("-------------- Relay Neighbor Set --------------\n"); olsr_printf("%-16s\n", "RS_if_addr"); olsr_printf("--------------------------------------------------\n"); while(tmp != NULL){ data = (OLSR_RELAY_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET, &data->RS_if_addr.v4, str, sizeof(str)); ConvertIpv4AddressToString(data->RS_if_addr.v4, str); olsr_printf("%-16s\n", str); tmp = tmp->next; } olsr_printf("--------------------------------------------------\n"); } else if(olsr->olsr_cnf->ip_version == AF_INET6){ char str[INET6_ADDRSTRLEN]; olsr_printf("---------------------------- Relay Set ------------------------------\n"); olsr_printf("%-46s\n", "RS_if_addr"); olsr_printf("--------------------------------------------------------------------------------\n"); while(tmp != NULL){ data = (OLSR_RELAY_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET6, data->RS_if_addr.v6.s6_addr, str, sizeof(str)); ConvertIpv6AddressToString(&data->RS_if_addr.v6, str, OLSR_FALSE); olsr_printf("%-46s\n", str); tmp = tmp->next; } olsr_printf("--------------------------------------------------------------------------------\n"); } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } }
void print_mprN2(struct olsrv2* olsr, OLSR_LIST *N2) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_MPR_N_TUPLE *data = NULL; tmp = N2->head; if (tmp == NULL){ olsr_printf( "--- MPR N2 ---\n"); olsr_printf( "no entry.\n"); olsr_printf( "--------------\n"); }else{ if (olsr->olsr_cnf->ip_version == AF_INET){ char str[INET_ADDRSTRLEN]; olsr_printf( "----- MPR N2 -----\n"); olsr_printf( "%-16s\n", "MPR_N2_if_addr"); olsr_printf( "------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_N_TUPLE *)tmp->data; //inet_ntop(AF_INET, &data->addr.v4, str, sizeof(str)); ConvertIpv4AddressToString(data->addr.v4, str); olsr_printf( "%-16s\n", str); tmp = tmp->next; } olsr_printf( "------------------\n"); } else if (olsr->olsr_cnf->ip_version == AF_INET6){ char str[INET6_ADDRSTRLEN]; olsr_printf( "------------------- MPR N2 -------------------\n"); olsr_printf( "%-46s\n", "MPR_N2_if_addr"); olsr_printf( "----------------------------------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_N_TUPLE *)tmp->data; //inet_ntop(AF_INET6, data->addr.v6.s6_addr, str, sizeof(str)); ConvertIpv6AddressToString(&data->addr.v6, str, (olsr_bool)false); olsr_printf( "%-46s\n", str); tmp = tmp->next; } olsr_printf( "----------------------------------------------\n"); } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } }
void print_proc_set(struct olsrv2 *olsr) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_PROC_TUPLE *data = NULL; struct olsrd_config* olsr_cnf = olsr->olsr_cnf; int i; if (olsr_cnf->debug_level < 2) return; olsr_printf("--- Processed Set ---\n"); //struct olsrv2 for (i=0; i<HASHSIZE; i++) { tmp = olsr->proc_set[i].list.head; if (tmp != NULL){ if (olsr_cnf->ip_version == AF_INET){ char str[INET_ADDRSTRLEN]; olsr_printf("%-16s %-12s %-12s\n", "P_addr", "P_seq_number", "P_time"); while (tmp != NULL){ char time[30]; data = (OLSR_PROC_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET, &data->P_addr.v4, str, sizeof(str)); ConvertIpv4AddressToString(data->P_addr.v4, str); qualnet_print_clock_in_second(data->P_time, time); olsr_printf("%-16s %-12d %s [sec]\n", str, data->P_seq_number, time); tmp = tmp->next; } } else if (olsr_cnf->ip_version == AF_INET6){ char str[INET6_ADDRSTRLEN]; olsr_printf("%-46s %-12s %-12s\n", "P_addr", "P_seq_number", "P_time"); while (tmp != NULL){ char time[30]; data = (OLSR_PROC_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET6, data->P_addr.v6.s6_addr, str, sizeof(str)); ConvertIpv6AddressToString(&data->P_addr.v6, str, OLSR_FALSE); qualnet_print_clock_in_second(data->P_time, time); olsr_printf("%-46s %-12d %s [sec]\n", str, data->P_seq_number, time); tmp = tmp->next; } } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } } olsr_printf("-------------------\n"); }
void print_mprN(struct olsrv2* olsr, OLSR_LIST *N) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_MPR_N_TUPLE *data = NULL; tmp = N->head; if (tmp == NULL){ olsr_printf("--- MPR N ---\n"); olsr_printf("no entry.\n"); olsr_printf("--------------\n"); }else{ if (olsr->olsr_cnf->ip_version == AF_INET){ char str[INET_ADDRSTRLEN]; olsr_printf("------------------------ MPR N -----------------------\n"); olsr_printf("%-16s %-12s %-12s %-12s\n", "MPR_N_if_addr", "D", "reachability", "willingness"); olsr_printf("------------------------------------------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_N_TUPLE *)tmp->data; //inet_ntop(AF_INET, &data->addr.v4, str, sizeof(str)); //yowada ConvertIpv4AddressToString(data->addr.v4, str); olsr_printf("%-16s %-12u %-12u %-12u\n", str, data->D, data->reachability, data->willingness); tmp = tmp->next; } olsr_printf("------------------------------------------------------\n"); } else if (olsr->olsr_cnf->ip_version == AF_INET6){ char str[INET6_ADDRSTRLEN]; olsr_printf("--------------------------------------- MPR N --------------------------------------\n"); olsr_printf("%-46s %-12s %-12s %-12s\n", "MPR_N_if_addr", "D", "reachability", "willingness"); olsr_printf("------------------------------------------------------------------------------------\n"); while (tmp != NULL){ data = (OLSR_MPR_N_TUPLE *)tmp->data; //inet_ntop(AF_INET6, data->addr.v6.s6_addr, str, sizeof(str)); ConvertIpv6AddressToString(&data->addr.v6, str, OLSR_FALSE); olsr_printf("%-46s %-12u %-12u %-12u\n", str, data->D, data->reachability, data->willingness); tmp = tmp->next; } olsr_printf("------------------------------------------------------------------------------------\n"); } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } }
void print_routing_set(struct olsrv2 *olsr) { OLSR_LIST_ENTRY *tmp = NULL; OLSR_ROUTING_TUPLE *data = NULL; int i; if (olsr->olsr_cnf->debug_level < 2) return; olsr_printf("--- Routing Set ---\n"); olsr_printf("%-17s %-17s %-12s %-16s %-10s\n", "R_dest_iface_addr", "R_next_iface_addr", "R_dist", "R_iface_addr", "R_prefix"); for (i=0; i<HASHSIZE; i++) { tmp = olsr->routing_set[i].list.head; if (tmp == NULL){ }else{ if (olsr->olsr_cnf->ip_version == AF_INET){ char str1[INET_ADDRSTRLEN], str2[INET_ADDRSTRLEN], str3[INET_ADDRSTRLEN]; while (tmp){ data = (OLSR_ROUTING_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET, &data->R_dest_iface_addr.v4, str1, sizeof(str1)); //inet_ntop(AF_INET, &data->R_next_iface_addr.v4, str2, sizeof(str2)); //inet_ntop(AF_INET, &data->R_iface_addr.v4, str3, sizeof(str3)); ConvertIpv4AddressToString(data->R_dest_iface_addr.v4, str1); ConvertIpv4AddressToString(data->R_next_iface_addr.v4, str2); ConvertIpv4AddressToString(data->R_iface_addr.v4, str3); olsr_printf("%-17s %-17s %-12d %-16s %-10d\n", str1, str2, data->R_dist, str3, data->R_prefix_length); tmp = tmp->next; } } else if (olsr->olsr_cnf->ip_version == AF_INET6){ char str1[INET6_ADDRSTRLEN], str2[INET6_ADDRSTRLEN], str3[INET6_ADDRSTRLEN]; olsr_printf("%-46s %-46s %-12s %-46s %-10s\n", "R_dest_iface_addr", "R_next_iface_addr", "R_dist", "R_iface_addr", "R_prefix"); while (tmp){ data = (OLSR_ROUTING_TUPLE *)tmp->data; //WIN FIX: Need to resolve this //inet_ntop(AF_INET6, data->R_dest_iface_addr.v6.s6_addr, str1, sizeof(str1)); //inet_ntop(AF_INET6, data->R_next_iface_addr.v6.s6_addr, str2, sizeof(str2)); //inet_ntop(AF_INET6, data->R_iface_addr.v6.s6_addr, str3, sizeof(str3)); ConvertIpv6AddressToString(&data->R_dest_iface_addr.v6, str1, OLSR_FALSE); ConvertIpv6AddressToString(&data->R_next_iface_addr.v6, str2, OLSR_FALSE); ConvertIpv6AddressToString(&data->R_iface_addr.v6, str3, OLSR_FALSE); olsr_printf("%-46s %-46s %-12d %-46s %-10d\n", str1, str2, data->R_dist, str3, data->R_prefix_length); tmp = tmp->next; } } else{ olsr_error("Un known ip_version"); assert(OLSR_FALSE); } } } olsr_printf("-------------------\n"); }
void print_topology_set(struct olsrv2 *olsr) { int hash_index; OLSR_LIST_ENTRY *entry = NULL; OLSR_TOPOLOGY_TUPLE *data = NULL; olsr_bool put_head = OLSR_FALSE; if(olsr->olsr_cnf->debug_level < 2) return; for(hash_index = 0; hash_index < HASHSIZE; hash_index++) { entry = olsr->topology_set[hash_index].list.head; while(entry) { if(put_head == OLSR_FALSE) { olsr_printf("--------------------------------------- Topology Set -------------------------\n"); if(olsr->olsr_cnf->ip_version == AF_INET) olsr_printf("%-25s %-25s %-20s %-25s\n", "T_dest_iface_addr", "T_last_iface_addr", "T_seq", "T_time"); else olsr_printf("%-46s %-46s %-20s %-46s\n", "T_dest_iface_addr", "T_last_iface_addr", "T_seq", "T_time"); put_head = OLSR_TRUE; } data = (OLSR_TOPOLOGY_TUPLE *)entry->data; if(olsr->olsr_cnf->ip_version == AF_INET) { char str1[INET_ADDRSTRLEN], str2[INET_ADDRSTRLEN]; char time[30]; //WIN FIX: Need to resolve this //inet_ntop(AF_INET, &data->T_dest_iface_addr.v4, str1, sizeof(str1)); //inet_ntop(AF_INET, &data->T_last_iface_addr.v4, str2, sizeof(str2)); ConvertIpv4AddressToString(data->T_dest_iface_addr.v4, str1); ConvertIpv4AddressToString(data->T_last_iface_addr.v4, str2); qualnet_print_clock_in_second(data->T_time, time); olsr_printf("%-25s %-25s %-20d %-25s\n", str1, str2, data->T_seq, time); } else { char str1[INET6_ADDRSTRLEN], str2[INET6_ADDRSTRLEN]; char time[30]; //WIN FIX: Need to resolve this //inet_ntop(AF_INET6, data->T_dest_iface_addr.v6.s6_addr, str1, sizeof(str1)); //inet_ntop(AF_INET6, data->T_last_iface_addr.v6.s6_addr, str2, sizeof(str2)); ConvertIpv6AddressToString(&data->T_dest_iface_addr.v6, str1, OLSR_FALSE); ConvertIpv6AddressToString(&data->T_last_iface_addr.v6, str2, OLSR_FALSE); qualnet_print_clock_in_second(data->T_time, time); olsr_printf("%-46s %-46s %-20d %s [sec]\n", str1, str2, data->T_seq, time); }//if entry = entry->next; }//while }//for if(put_head == OLSR_FALSE) { olsr_printf("------------------------------ Topology Set ----------------------------\n"); olsr_printf(" no entry.\n"); } olsr_printf("\n"); }