gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r26158 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r26158 - gnunet/src/ats
Date: Tue, 19 Feb 2013 13:52:39 +0100

Author: wachs
Date: 2013-02-19 13:52:39 +0100 (Tue, 19 Feb 2013)
New Revision: 26158

Modified:
   gnunet/src/ats/Makefile.am
   gnunet/src/ats/ats.conf.in
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
   gnunet/src/ats/test_ats_api_common.h
   gnunet/src/ats/test_ats_mlp.c
Log:
refactoring and renaming


Modified: gnunet/src/ats/Makefile.am
===================================================================
--- gnunet/src/ats/Makefile.am  2013-02-19 09:31:32 UTC (rev 26157)
+++ gnunet/src/ats/Makefile.am  2013-02-19 12:52:39 UTC (rev 26158)
@@ -200,7 +200,8 @@
 test_ats_mlp_LDADD = \
   $(GN_LIBGLPK) \
   $(top_builddir)/src/util/libgnunetutil.la \
-  $(top_builddir)/src/statistics/libgnunetstatistics.la
+  $(top_builddir)/src/statistics/libgnunetstatistics.la \
+  $(top_builddir)/src/ats/libgnunetats.la  
 
 #test_ats_mlp_averaging_SOURCES = \
 # $(GN_MLP_SRC) test_ats_mlp_averaging.c test_ats_api_common.c

Modified: gnunet/src/ats/ats.conf.in
===================================================================
--- gnunet/src/ats/ats.conf.in  2013-02-19 09:31:32 UTC (rev 26157)
+++ gnunet/src/ats/ats.conf.in  2013-02-19 12:52:39 UTC (rev 26158)
@@ -32,16 +32,23 @@
 
 
 # MLP specific settings
-# MAX_DURATION = 3 s
-# MAX_ITERATIONS = 1024 
+ATS_MIN_INTERVAL = 15000
+ATS_EXEC_INTERVAL = 30000
 
+# MLP defaults
+# MLP_MAX_DURATION = 3 s
+# MLP_MAX_ITERATIONS = 1024 
+# MLP_COEFFICIENT_D = 1.0
+# MLP_COEFFICIENT_U = 1.0
+# MLP_COEFFICIENT_R = 1.0
+# MLP_MIN_BANDWIDTH = 1024
+# MLP_MIN_CONNECTIONS = 4
 
-
+# MLP Debugging settings
 DUMP_MLP = NO
 DUMP_SOLUTION = NO
 DUMP_OVERWRITE = NO 
 DUMP_MIN_PEERS = 0
 DUMP_MIN_ADDRS = 0
 DUMP_OVERWRITE = NO
-ATS_MIN_INTERVAL = 15000
-ATS_EXEC_INTERVAL = 30000
+

Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-02-19 09:31:32 UTC 
(rev 26157)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-02-19 12:52:39 UTC 
(rev 26158)
@@ -1101,8 +1101,8 @@
   unsigned int n_min;
   struct GNUNET_TIME_Relative i_exec;
   int c;
-  char * quota_out_str;
-  char * quota_in_str;
+  int c2;
+  int found;
 
   struct GNUNET_TIME_Relative max_duration;
   long long unsigned int max_iterations;
@@ -1111,21 +1111,21 @@
   int res = glp_init_env();
   switch (res) {
     case 0:
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "GLPK: `%s'\n",
+       LOG (GNUNET_ERROR_TYPE_DEBUG, "GLPK: `%s'\n",
           "initialization successful");
       break;
     case 1:
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "GLPK: `%s'\n",
+       LOG (GNUNET_ERROR_TYPE_DEBUG, "GLPK: `%s'\n",
           "environment is already initialized");
       break;
     case 2:
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not init GLPK: `%s'\n",
+       LOG (GNUNET_ERROR_TYPE_ERROR, "Could not init GLPK: `%s'\n",
           "initialization failed (insufficient memory)");
       GNUNET_free(mlp);
       return NULL;
       break;
     case 3:
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not init GLPK: `%s'\n",
+       LOG (GNUNET_ERROR_TYPE_ERROR, "Could not init GLPK: `%s'\n",
           "initialization failed (unsupported programming model)");
       GNUNET_free(mlp);
       return NULL;
@@ -1136,54 +1136,57 @@
 
   /* Create initial MLP problem */
   mlp->prob = glp_create_prob();
-  GNUNET_assert (mlp->prob != NULL);
+  if (NULL == mlp->prob)
+  {
+               GNUNET_assert (mlp->prob != NULL);
+  }
 
   mlp->BIG_M = (double) BIG_M_VALUE;
 
   /* Get timeout for iterations */
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time(cfg, "ats", 
"MAX_DURATION", &max_duration))
+  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time(cfg, "ats", 
"MLP_MAX_DURATION", &max_duration))
   {
     max_duration = MLP_MAX_EXEC_DURATION;
   }
 
   /* Get maximum number of iterations */
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_size(cfg, "ats", 
"MAX_ITERATIONS", &max_iterations))
+  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_size(cfg, "ats", 
"MLP_MAX_ITERATIONS", &max_iterations))
   {
     max_iterations = MLP_MAX_ITERATIONS;
   }
 
   /* Get diversity coefficient from configuration */
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats",
-                                                      "COEFFICIENT_D",
+                                                      "MLP_COEFFICIENT_D",
                                                       &tmp))
     D = (double) tmp / 100;
   else
-    D = 1.0;
+    D = DEFAULT_D;
 
   /* Get proportionality coefficient from configuration */
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats",
-                                                      "COEFFICIENT_R",
+                                                      "MLP_COEFFICIENT_R",
                                                       &tmp))
     R = (double) tmp / 100;
   else
-    R = 1.0;
+    R = DEFAULT_R;
 
   /* Get utilization coefficient from configuration */
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats",
-                                                      "COEFFICIENT_U",
+                                                      "MLP_COEFFICIENT_U",
                                                       &tmp))
     U = (double) tmp / 100;
   else
-    U = 1.0;
+    U = DEFAULT_U;
 
   /* Get quality metric coefficients from configuration */
-  int i_delay = -1;
-  int i_distance = -1;
+  int i_delay = NaN;
+  int i_distance = NaN;
   int q[GNUNET_ATS_QualityPropertiesCount] = GNUNET_ATS_QualityProperties;
   for (c = 0; c < GNUNET_ATS_QualityPropertiesCount; c++)
   {
     /* initialize quality coefficients with default value 1.0 */
-    mlp->co_Q[c] = 1.0;
+    mlp->co_Q[c] = DEFAULT_QUALITY;
 
     mlp->q[c] = q[c];
     if (q[c] == GNUNET_ATS_QUALITY_NET_DELAY)
@@ -1192,24 +1195,24 @@
       i_distance = c;
   }
 
-  if ((i_delay != -1) && (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size 
(cfg, "ats",
-                                                      
"COEFFICIENT_QUALITY_DELAY",
+  if ((i_delay != NaN) && (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size 
(cfg, "ats",
+                                                      
"MLP_COEFFICIENT_QUALITY_DELAY",
                                                       &tmp)))
 
     mlp->co_Q[i_delay] = (double) tmp / 100;
   else
-    mlp->co_Q[i_delay] = 1.0;
+    mlp->co_Q[i_delay] = DEFAULT_QUALITY;
 
-  if ((i_distance != -1) && (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size 
(cfg, "ats",
-                                                      
"COEFFICIENT_QUALITY_DISTANCE",
+  if ((i_distance != NaN) && (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size 
(cfg, "ats",
+                                                      
"MLP_COEFFICIENT_QUALITY_DISTANCE",
                                                       &tmp)))
     mlp->co_Q[i_distance] = (double) tmp / 100;
   else
-    mlp->co_Q[i_distance] = 1.0;
+    mlp->co_Q[i_distance] = DEFAULT_QUALITY;
 
   /* Get minimum bandwidth per used address from configuration */
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats",
-                                                      "MIN_BANDWIDTH",
+                                                      "MLP_MIN_BANDWIDTH",
                                                       &tmp))
     b_min = tmp;
   else
@@ -1219,103 +1222,78 @@
 
   /* Get minimum number of connections from configuration */
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats",
-                                                      "MIN_CONNECTIONS",
+                                                      "MLP_MIN_CONNECTIONS",
                                                       &tmp))
     n_min = tmp;
   else
-    n_min = 4;
+    n_min = DEFAULT_MIN_CONNECTIONS;
 
   /* Init network quotas */
   int quotas[GNUNET_ATS_NetworkTypeCount] = GNUNET_ATS_NetworkType;
   for (c = 0; c < GNUNET_ATS_NetworkTypeCount; c++)
   {
-    mlp->quota_index[c] = quotas[c];
-    static char * entry_in = NULL;
-    static char * entry_out = NULL;
-    unsigned long long quota_in = 0;
-    unsigned long long quota_out = 0;
+               found = GNUNET_NO;
+         for (c2 = 0; c2 < dest_length; c2++)
+         {
+                       if (quotas[c] == network[c2])
+                 {
+                               mlp->quota_index[c] = network[c2];
+                     mlp->quota_out[c] = out_dest[c2];
+                     mlp->quota_in[c] = in_dest[c2];
+                     found = GNUNET_YES;
+                     LOG (GNUNET_ERROR_TYPE_DEBUG, "Quota for network `%s' 
(in/out) %llu/%llu\n",
+                                                               
GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                                                               
mlp->quota_out[c],
+                                                               
mlp->quota_in[c]);
+                     break;
+                 }
+         }
 
-    switch (quotas[c]) {
-      case GNUNET_ATS_NET_UNSPECIFIED:
-        entry_out = "UNSPECIFIED_QUOTA_OUT";
-        entry_in = "UNSPECIFIED_QUOTA_IN";
-        break;
-      case GNUNET_ATS_NET_LOOPBACK:
-        entry_out = "LOOPBACK_QUOTA_OUT";
-        entry_in = "LOOPBACK_QUOTA_IN";
-        break;
-      case GNUNET_ATS_NET_LAN:
-        entry_out = "LAN_QUOTA_OUT";
-        entry_in = "LAN_QUOTA_IN";
-        break;
-      case GNUNET_ATS_NET_WAN:
-        entry_out = "WAN_QUOTA_OUT";
-        entry_in = "WAN_QUOTA_IN";
-        break;
-      case GNUNET_ATS_NET_WLAN:
-        entry_out = "WLAN_QUOTA_OUT";
-        entry_in = "WLAN_QUOTA_IN";
-        break;
-      default:
-        break;
-    }
+      /* Check if defined quota could make problem unsolvable */
+      if ((n_min * b_min) > mlp->quota_out[c])
+      {
+        LOG (GNUNET_ERROR_TYPE_INFO, _("Adjusting inconsistent outbound quota 
configuration for network `%s', is %llu must be at least %llu\n"),
+                       GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                       mlp->quota_out[c],
+                       (n_min * b_min));
+        mlp->quota_out[c] = (n_min * b_min);
+      }
+      if ((n_min * b_min) > mlp->quota_in[c])
+      {
+        LOG (GNUNET_ERROR_TYPE_INFO, _("Adjusting inconsistent inbound quota 
configuration for network `%s', is %llu must be at least %llu\n"),
+                       GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                       mlp->quota_in[c],
+                       (n_min * b_min));
+        mlp->quota_in[c] = (n_min * b_min);
+      }
 
-    if ((entry_in == NULL) || (entry_out == NULL))
-      continue;
+      /* Check if bandwidth is too big to make problem solvable */
+      if (mlp->BIG_M < mlp->quota_out[c])
+      {
+        LOG (GNUNET_ERROR_TYPE_INFO, _("Adjusting outbound quota configuration 
for network `%s'from %llu to %.0f\n"),
+                       GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                       mlp->quota_out[c],
+                       mlp->BIG_M);
+        mlp->quota_out[c] = mlp->BIG_M;
+      }
+      if (mlp->BIG_M < mlp->quota_in[c])
+      {
+        LOG (GNUNET_ERROR_TYPE_INFO, _("Adjusting inbound quota configuration 
for network `%s' from %llu to %.0f\n"),
+                       GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                       mlp->quota_in[c],
+                       mlp->BIG_M);
+        mlp->quota_in[c] = mlp->BIG_M;
+      }
 
-    if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string(cfg, "ats", 
entry_out, &quota_out_str))
-    {
-      if (0 == strcmp(quota_out_str, BIG_M_STRING) ||
-          (GNUNET_SYSERR == GNUNET_STRINGS_fancy_size_to_bytes (quota_out_str, 
&quota_out)))
-        quota_out = mlp->BIG_M;
-
-      GNUNET_free (quota_out_str);
-      quota_out_str = NULL;
-    }
-    else if (GNUNET_ATS_NET_UNSPECIFIED == quotas[c])
-    {
-      quota_out = mlp->BIG_M;
-    }
-    else
-    {
-      quota_out = mlp->BIG_M;
-    }
-
-    if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string(cfg, "ats", 
entry_in, &quota_in_str))
-    {
-      if (0 == strcmp(quota_in_str, BIG_M_STRING) ||
-          (GNUNET_SYSERR == GNUNET_STRINGS_fancy_size_to_bytes (quota_in_str, 
&quota_in)))
-        quota_in = mlp->BIG_M;
-
-      GNUNET_free (quota_in_str);
-      quota_in_str = NULL;
-    }
-    else if (GNUNET_ATS_NET_UNSPECIFIED == quotas[c])
-    {
-      quota_in = mlp->BIG_M;
-    }
-    else
-    {
-      quota_in = mlp->BIG_M;
-    }
-
-    /* Check if defined quota could make problem unsolvable */
-    if (((n_min * b_min) > quota_out) && (GNUNET_ATS_NET_UNSPECIFIED != 
quotas[c]))
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Inconsistent quota configuration 
value `%s': " 
-                 "outbound quota (%u Bps) too small for combination of minimum 
connections and minimum bandwidth per peer (%u * %u Bps = %u)\n", entry_out, 
quota_out, n_min, b_min, n_min * b_min);
-
-      GAS_mlp_done(mlp);
-      mlp = NULL;
-      return NULL;
-    }
-
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found `%s' quota %llu and `%s' quota 
%llu\n",
-                entry_out, quota_out, entry_in, quota_in);
-    GNUNET_STATISTICS_update ((struct GNUNET_STATISTICS_Handle *) stats, 
entry_out, quota_out, GNUNET_NO);
-    GNUNET_STATISTICS_update ((struct GNUNET_STATISTICS_Handle *) stats, 
entry_in, quota_in, GNUNET_NO);
-    mlp->quota_out[c] = quota_out;
-    mlp->quota_in[c] = quota_in;
+         if (GNUNET_NO == found)
+                       {
+               mlp->quota_in[c] = 
ntohl(GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__);
+               mlp->quota_out[c] = 
ntohl(GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__);
+                               LOG (GNUNET_ERROR_TYPE_INFO, _("Using default 
quota configuration for network `%s' (in/out) %llu/%llu\n"),
+                                               
GNUNET_ATS_print_network_type(mlp->quota_index[c]),
+                                               mlp->quota_in[c],
+                                               mlp->quota_out[c]);
+                       }
   }
 
   /* Get minimum number of connections from configuration */
@@ -1326,6 +1304,8 @@
   else
     mlp->exec_interval = 
GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30);
 
+
+  /* Assign options to handle */
   mlp->stats = (struct GNUNET_STATISTICS_Handle *) stats;
   mlp->max_iterations = max_iterations;
   mlp->max_exec_duration = max_duration;
@@ -1363,6 +1343,9 @@
   mlp->n_min = n_min;
   mlp->m_q = GNUNET_ATS_QualityPropertiesCount;
   mlp->semaphore = GNUNET_NO;
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "solver ready\n");
+
   return mlp;
 }
 
@@ -1538,7 +1521,7 @@
 void
 GAS_mlp_address_add (void *solver, struct GNUNET_CONTAINER_MultiHashMap * 
addresses, struct ATS_Address *address)
 {
-
+       LOG (GNUNET_ERROR_TYPE_DEBUG, "Adding address for peer `%s'\n", 
GNUNET_i2s(&address->peer));
 }
 
 /**
@@ -1572,6 +1555,8 @@
   struct MLP_information *mlpi;
   struct GAS_MLP_SolutionContext ctx;
 
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Updating address for peer `%s'\n", 
GNUNET_i2s(&address->peer));
+
   GNUNET_STATISTICS_update (mlp->stats, "# MLP address updates", 1, GNUNET_NO);
 
   /* We add a new address */
@@ -1676,6 +1661,8 @@
     int session_only)
 {
   struct GAS_MLP_Handle *mlp = solver;
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Deleting address for peer `%s'\n", 
GNUNET_i2s(&address->peer));
   GNUNET_STATISTICS_update (mlp->stats,"# LP address deletions", 1, GNUNET_NO);
   struct GAS_MLP_SolutionContext ctx;
 

Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-02-19 09:31:32 UTC 
(rev 26157)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-02-19 12:52:39 UTC 
(rev 26158)
@@ -40,8 +40,16 @@
 #define MLP_AVERAGING_QUEUE_LENGTH 3
 
 #define MLP_MAX_EXEC_DURATION   
GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 3)
-#define MLP_MAX_ITERATIONS      INT_MAX
+#define MLP_MAX_ITERATIONS      1024
 
+#define DEFAULT_D 1.0
+#define DEFAULT_R 1.0
+#define DEFAULT_U 1.0
+#define DEFAULT_QUALITY 1.0
+#define DEFAULT_MIN_CONNECTIONS 4
+
+#define NaN -1
+
 struct ATS_Peer
 {
   struct ATS_Peer *next;

Modified: gnunet/src/ats/test_ats_api_common.h
===================================================================
--- gnunet/src/ats/test_ats_api_common.h        2013-02-19 09:31:32 UTC (rev 
26157)
+++ gnunet/src/ats/test_ats_api_common.h        2013-02-19 12:52:39 UTC (rev 
26158)
@@ -29,7 +29,7 @@
 #include "gnunet_ats_service.h"
 #include "gnunet-service-ats_addresses.h"
 
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10)
 
 #define PEERID0 
"2AK99KD8RM9UA9LC3QKA0IQ5UBFC0FBB50EBGCFQT8448DGGACNAC4CJQDD1CPFS494O41U88DJD1FLIG8VA5CQR9IN4L96GP104MVO"
 #define PEERID1 
"5ED7I0AR3MSTAL7FQN04S22E0EQ3CR9RLASCDLVMM1BNFPUPTCT46DLKNJ4DACASJ6U0DR5J8S3R2UJL49682JS7MOVRAB8P8A4PJH0"

Modified: gnunet/src/ats/test_ats_mlp.c
===================================================================
--- gnunet/src/ats/test_ats_mlp.c       2013-02-19 09:31:32 UTC (rev 26157)
+++ gnunet/src/ats/test_ats_mlp.c       2013-02-19 12:52:39 UTC (rev 26158)
@@ -134,6 +134,7 @@
 end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
        timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Test failed: timeout\n"));
        end_now (1);
 }
 
@@ -205,108 +206,8 @@
   /* Adding address */
   GAS_mlp_address_add (mlp, addresses, address);
 
+  /* Retrieving preferred address for peer and wait for callback */
   GAS_mlp_get_preferred_address (mlp, addresses, &p);
-
-
-#if 0
-  struct ATS_Address addr[10];
-  struct ATS_Address *res[10];
-  struct GAS_MLP_SolutionContext ctx;
-  int quotas[GNUNET_ATS_NetworkTypeCount] = GNUNET_ATS_NetworkType;
-  unsigned long long  quotas_in[GNUNET_ATS_NetworkTypeCount];
-  unsigned long long  quotas_out[GNUNET_ATS_NetworkTypeCount];
-  int quota_count;
-
-
-
-
-
-  quota_count = load_quotas(cfg, quotas_in, quotas_out, 
GNUNET_ATS_NetworkTypeCount);
-  mlp = GAS_mlp_init (cfg, NULL, quotas, quotas_in, quotas_out, quota_count);
-  mlp->auto_solve = GNUNET_NO;
-
-  struct GNUNET_PeerIdentity p[10];
-
-  /* Creating peer 1 */
-  GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK, 
&p[0].hashPubKey);
-  /* Creating peer 2 */
-  GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK, 
&p[1].hashPubKey);
-
-  /* Creating peer 1 address 1 */
-  addr[0].peer.hashPubKey = p[0].hashPubKey;
-  struct GNUNET_ATS_Information a1_ats[3];
-  set_ats (&a1_ats[0], GNUNET_ATS_QUALITY_NET_DISTANCE, 1);
-  set_ats (&a1_ats[1], GNUNET_ATS_QUALITY_NET_DELAY, 1);
-  set_ats (&a1_ats[2], GNUNET_ATS_ARRAY_TERMINATOR, 0);
-  create_address (&addr[0], "dummy", 3, &a1_ats[0]);
-  addr[0].atsp_network_type = GNUNET_ATS_NET_WAN;
-
-  /* Creating peer 1  address 2 */
-  addr[1].peer.hashPubKey = p[0].hashPubKey;
-  struct GNUNET_ATS_Information a2_ats[3];
-  set_ats (&a2_ats[1], GNUNET_ATS_QUALITY_NET_DISTANCE, 1);
-  set_ats (&a2_ats[0], GNUNET_ATS_QUALITY_NET_DELAY, 1);
-  set_ats (&a2_ats[2], GNUNET_ATS_ARRAY_TERMINATOR, 0);
-  create_address (&addr[1], "dummy2", 3, &a2_ats[0]);
-  addr[1].atsp_network_type = GNUNET_ATS_NET_LAN;
-
-  /* Creating peer 2  address 1 */
-  addr[2].peer.hashPubKey = p[1].hashPubKey;
-  struct GNUNET_ATS_Information a3_ats[3];
-  set_ats (&a3_ats[1], GNUNET_ATS_QUALITY_NET_DISTANCE, 1);
-  set_ats (&a3_ats[0], GNUNET_ATS_QUALITY_NET_DELAY, 1);
-  set_ats (&a3_ats[2], GNUNET_ATS_ARRAY_TERMINATOR, 0);
-  create_address (&addr[2], "dummy3", 3, &a3_ats[0]);
-  addr[2].atsp_network_type = GNUNET_ATS_NET_LAN;
-
-  GNUNET_CONTAINER_multihashmap_put(addresses, &addr[0].peer.hashPubKey, 
&addr[0], GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
-
-  /* Add peer 1 address 1 */
-  GAS_mlp_address_update (mlp, addresses, &addr[0]);
-
-  GNUNET_assert (mlp != NULL);
-  GNUNET_assert (mlp->addr_in_problem == 1);
-
-  /* Update an peer 1 address 1  */
-  set_ats (&a1_ats[1], GNUNET_ATS_QUALITY_NET_DELAY, 1);
-  GAS_mlp_address_update (mlp, addresses, &addr[0]);
-  GNUNET_assert (mlp->addr_in_problem == 1);
-
-  /* Add peer 1 address 2 */
-  GNUNET_CONTAINER_multihashmap_put(addresses, &addr[0].peer.hashPubKey, 
&addr[1], GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
-  GAS_mlp_address_update (mlp, addresses, &addr[1]);
-  GNUNET_assert (mlp->addr_in_problem == 2);
-
-  /* Add peer 2 address 1 */
-  GNUNET_CONTAINER_multihashmap_put(addresses, &addr[2].peer.hashPubKey, 
&addr[2], GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
-  GAS_mlp_address_update (mlp, addresses, &addr[2]);
-  GNUNET_assert (mlp->addr_in_problem == 3);
-
-  GNUNET_assert (GNUNET_OK == GAS_mlp_solve_problem(mlp, &ctx));
-  GNUNET_assert (GNUNET_OK == ctx.lp_result);
-  GNUNET_assert (GNUNET_OK == ctx.mlp_result);
-
-  res[0] = GAS_mlp_get_preferred_address(mlp, addresses, &p[0]);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Preferred address `%s' outbound 
bandwidth: %u Bps\n",res[0]->plugin, res[0]->assigned_bw_out);
-  res[1] = GAS_mlp_get_preferred_address(mlp, addresses, &p[1]);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Preferred address `%s' outbound 
bandwidth: %u Bps\n",res[1]->plugin, res[1]->assigned_bw_out);
-
-  /* Delete an address */
-  GNUNET_CONTAINER_multihashmap_remove (addresses, &addr[0].peer.hashPubKey, 
&addr[0]);
-  GAS_mlp_address_delete (mlp, addresses, &addr[0]);
-  GNUNET_CONTAINER_multihashmap_remove (addresses, &addr[1].peer.hashPubKey, 
&addr[1]);
-  GAS_mlp_address_delete (mlp, addresses, &addr[1]);
-  GNUNET_CONTAINER_multihashmap_remove (addresses, &addr[2].peer.hashPubKey, 
&addr[2]);
-  GAS_mlp_address_delete (mlp, addresses, &addr[2]);
-
-  GNUNET_assert (mlp->addr_in_problem == 0);
-
-  GNUNET_free (addr[0].plugin);
-  GNUNET_free (addr[1].plugin);
-#endif
-
-  ret = 0;
-  return;
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]