示例#1
0
//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;
}
示例#2
0
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);
    }
  }
}
示例#4
0
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);
    }
  }
}
示例#5
0
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");
}
示例#6
0
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);
    }
  }
}
示例#7
0
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");

}