gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r32308 - in gnunet/src/ats: . experiments


From: gnunet
Subject: [GNUnet-SVN] r32308 - in gnunet/src/ats: . experiments
Date: Tue, 11 Feb 2014 14:28:06 +0100

Author: wachs
Date: 2014-02-11 14:28:06 +0100 (Tue, 11 Feb 2014)
New Revision: 32308

Modified:
   gnunet/src/ats/experiments/example.exp
   gnunet/src/ats/gnunet-ats-solver-eval.c
   gnunet/src/ats/gnunet-ats-solver-eval.h
Log:
properties


Modified: gnunet/src/ats/experiments/example.exp
===================================================================
--- gnunet/src/ats/experiments/example.exp      2014-02-11 12:33:51 UTC (rev 
32307)
+++ gnunet/src/ats/experiments/example.exp      2014-02-11 13:28:06 UTC (rev 
32308)
@@ -1,71 +1,113 @@
 [experiment]
  name = test
- masters = 1
- slaves = 2
  max_duration = 15 s
  log_freq = 1000 ms
  cfg_file = experiments/gnunet_ats_sim_default.conf
  
+ 
 [episode-0]
+# Setup addresses
+
 # operations = address_add, address_del, start_set_property, 
stop_set_property, 
 # start_set_preference, stop_preference, start_request, stop_request
-duration = 2 s
+duration = 5 s
 op-0-operation = address_add
 op-0-address-id = 0
 op-0-peer-id = 0
 op-0-address-session = 0
 op-0-address-network = 0
-op-0-address = 0_0_udp
-op-0-plugin = udp
+op-0-address = 0_0_test
+op-0-plugin = test
 
-#op-1-operation = start_set_preference
-#op-1-address-id = 1
-#op-1-peer-id = 1
-# constant, linear, sinus, random
-#op-1-gen-type = constant
-#op-1-base-rate= 10000
-#op-1-max-rate = 100000
-#op-1-frequency = 500 ms
-# BANDWIDTH, LATENCY
-#op-1-pref = BANDWIDTH  
+op-1-operation = address_add
+op-1-address-id = 1
+op-1-peer-id = 1
+op-1-address-session = 0
+op-1-address-network = 0
+op-1-address = 1_1_test
+op-1-plugin = test
 
-op-1-operation = start_request
-op-1-peer-id = 0
+op-2-operation = start_request
+op-2-peer-id = 0
 
+op-3-operation = start_request
+op-3-peer-id = 1
 
-op-2-operation = start_set_property
-op-2-address-id = 0
-op-2-peer-id = 0
+[episode-1]
+# Set delay
+duration = 5 s
+
+op-0-operation = start_set_property
+op-0-address-id = 0
+op-0-peer-id = 0
 # constant, linear, sinus, random
-op-2-gen-type = constant
-op-2-base-rate= 10000
-op-2-max-rate = 100000
-op-2-frequency = 500 ms
+op-0-gen-type = random
+op-0-base-rate= 10000
+op-0-max-rate = 20000
+op-0-frequency = 1000 ms
 # bandwidth, latency
 # "TERMINATOR", "UTILIZATION_UP", "UTILIZATION_DOWN", 
"UTILIZATION_PAYLOAD_UP", "UTILIZATION_PAYLOAD_DOWN", "NETWORK_TYPE", "DELAY", 
"DISTANCE", "COST_WAN", "COST_LAN", "COST_WLAN"
-op-2-property = UTILIZATION_UP  
+op-0-property = DELAY  
 
+op-1-operation = start_set_property
+op-1-address-id = 1
+op-1-peer-id = 1
+# constant, linear, sinus, random
+op-1-gen-type = constant
+op-1-base-rate= 1
+op-1-max-rate = 1
+op-1-frequency = 1000 ms
+# bandwidth, latency
+# "TERMINATOR", "UTILIZATION_UP", "UTILIZATION_DOWN", 
"UTILIZATION_PAYLOAD_UP", "UTILIZATION_PAYLOAD_DOWN", "NETWORK_TYPE", "DELAY", 
"DISTANCE", "COST_WAN", "COST_LAN", "COST_WLAN"
+op-1-property = DELAY  
 
-[episode-1]
+
+[episode-2]
+# Shutdown
 duration = 2 s
-
-op-0-operation = address_del
+op-0-operation = stop_set_property
 op-0-address-id = 0
 op-0-peer-id = 0
-op-0-address-session = 0
-op-0-address-network = 0
-op-0-address = 0_0_udp
-op-0-plugin = udp
+op-0-property = DELAY
 
-op-1-operation = stop_set_preference
+op-1-operation = stop_set_property
 op-1-address-id = 1
 op-1-peer-id = 1
-op-1-pref = BANDWIDTH  
+op-1-property = DELAY
 
-op-2-operation = stop_set_property
+[episode-3]
+# Shutdown
+duration = 2 s
+
+op-0-operation = stop_request
+op-0-peer-id = 0  
+
+op-1-operation = stop_request
+op-1-peer-id = 1
+
+op-2-operation = address_del
 op-2-address-id = 0
 op-2-peer-id = 0
-op-2-property = UTILIZATION_UP
+op-2-address-session = 0
+op-2-address-network = 0
+op-2-address = 0_0_test
+op-2-plugin = test
 
-op-3-operation = stop_request
-op-3-peer-id = 0  
\ No newline at end of file
+op-2-operation = address_del
+op-2-address-id = 1
+op-2-peer-id = 1
+op-2-address-session = 0
+op-2-address-network = 0
+op-2-address = 1_1_test
+op-2-plugin = test
+
+#op-1-operation = start_set_preference
+#op-1-address-id = 1
+#op-1-peer-id = 1
+# constant, linear, sinus, random
+#op-1-gen-type = constant
+#op-1-base-rate= 10000
+#op-1-max-rate = 100000
+#op-1-frequency = 500 ms
+# BANDWIDTH, LATENCY
+#op-1-pref = BANDWIDTH  
\ No newline at end of file

Modified: gnunet/src/ats/gnunet-ats-solver-eval.c
===================================================================
--- gnunet/src/ats/gnunet-ats-solver-eval.c     2014-02-11 12:33:51 UTC (rev 
32307)
+++ gnunet/src/ats/gnunet-ats-solver-eval.c     2014-02-11 13:28:06 UTC (rev 
32308)
@@ -274,7 +274,8 @@
   {
     GNUNET_break (0);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-        "Setting property generation for unknown address %u\n", 
pg->address_id);
+        "Setting property generation for unknown address [%u:%u]\n",
+        pg->peer, pg->address_id);
     return;
   }
 
@@ -286,8 +287,8 @@
       GNUNET_ATS_print_property_type (pg->ats_property), pref_value);
 
 
-  atsi.type = pg->ats_property;
-  atsi.value = (uint32_t) pref_value;
+  atsi.type = htonl (pg->ats_property);
+  atsi.value = htonl ((uint32_t) pref_value);
 
   /* set performance here! */
   sh->env.sf.s_bulk_start (sh->solver);
@@ -701,8 +702,6 @@
   struct Experiment *e;
   e = GNUNET_new (struct Experiment);
   e->name = NULL;
-  e->num_masters = 0;
-  e->num_slaves = 0;
   e->start = NULL;
   e->total_duration = GNUNET_TIME_UNIT_ZERO;
   return e;
@@ -1545,6 +1544,7 @@
     if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_time(cfg,
         sec_name, "duration", &e_duration))
     {
+      fprintf (stderr, "Missing duration in episode %u \n",e_counter);
       GNUNET_free (sec_name);
       break;
     }
@@ -1571,7 +1571,7 @@
     if (NULL == last)
       e->start = cur;
     else
-    last->next = cur;
+      last->next = cur;
 
     GNUNET_free (sec_name);
     e_counter ++;
@@ -2018,28 +2018,6 @@
 
   }
 
-  if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number(cfg, "experiment",
-      "masters", &e->num_masters))
-  {
-    fprintf (stderr, "Invalid %s", "masters");
-    free_experiment (e);
-    return NULL;
-  }
-  else
-    fprintf (stderr, "Experiment masters: `%llu'\n",
-        e->num_masters);
-
-  if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number(cfg, "experiment",
-      "slaves", &e->num_slaves))
-  {
-    fprintf (stderr, "Invalid %s", "slaves");
-    free_experiment (e);
-    return NULL;
-  }
-  else
-    fprintf (stderr, "Experiment slaves: `%llu'\n",
-        e->num_slaves);
-
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_time(cfg, "experiment",
       "log_freq", &e->log_freq))
   {
@@ -2078,16 +2056,31 @@
   return e;
 }
 
+
+
 /**
  * Solver
  */
 
+static int
+free_all_it (void *cls,
+    const struct GNUNET_PeerIdentity *key,
+    void *value)
+{
+  struct ATS_Address *address = value;
+  GNUNET_CONTAINER_multipeermap_remove (sh->env.addresses, key, value);
+  GNUNET_free (address);
+
+  return GNUNET_OK;
+}
+
 void
 GNUNET_ATS_solvers_solver_stop (struct SolverHandle *sh)
 {
  GNUNET_STATISTICS_destroy ((struct GNUNET_STATISTICS_Handle *) sh->env.stats,
      GNUNET_NO);
  GNUNET_PLUGIN_unload (sh->plugin, sh->solver);
+ GNUNET_CONTAINER_multipeermap_iterate (sh->addresses, &free_all_it, NULL);
  GNUNET_CONTAINER_multipeermap_destroy(sh->addresses);
  GNUNET_free (sh->plugin);
  GNUNET_free (sh);
@@ -2330,10 +2323,15 @@
 }
 
 static void
-normalized_property_changed_cb (void *cls, struct ATS_Address *peer,
+normalized_property_changed_cb (void *cls, struct ATS_Address *address,
     uint32_t type, double prop_rel)
 {
-  /* TODO */
+  GNUNET_log(GNUNET_ERROR_TYPE_INFO,
+      "Normalized property %s for peer `%s' changed to %.3f \n",
+      GNUNET_ATS_print_property_type (type), GNUNET_i2s (&address->peer),
+      prop_rel);
+
+  sh->env.sf.s_address_update_property (sh->solver, address, type, 0, 
prop_rel);
 }
 
 
@@ -2402,27 +2400,25 @@
   return sh;
 }
 
-static int
-free_all_it (void *cls,
-    const struct GNUNET_PeerIdentity *key,
-    void *value)
-{
-  struct ATS_Address *address = value;
-  GNUNET_CONTAINER_multipeermap_remove (sh->env.addresses, key, value);
-  GNUNET_free (address);
-
-  return GNUNET_OK;
-}
-
 static void
 done ()
 {
   struct TestPeer *cur;
   struct TestPeer *next;
-  /* Clean up experiment */
+
+  struct TestAddress *cur_a;
+  struct TestAddress *next_a;
+
+  /* Stop logging */
+  GNUNET_ATS_solver_logging_stop (l);
+
+  /* Stop all preference generation */
   GNUNET_ATS_solver_generate_preferences_stop_all ();
+
+  /* Stop all property generation */
   GNUNET_ATS_solver_generate_property_stop_all ();
 
+  /* Clean up experiment */
   if (NULL != e)
   {
     GNUNET_ATS_solvers_experimentation_stop (e);
@@ -2440,10 +2436,21 @@
   {
     next = cur->next;
     GNUNET_CONTAINER_DLL_remove (peer_head, peer_tail, cur);
-    GNUNET_CONTAINER_multipeermap_iterate (sh->env.addresses, &free_all_it, 
NULL);
-
+    next_a = cur->addr_head;
+    while  (NULL != (cur_a = next_a))
+    {
+      next_a = cur_a->next;
+      GNUNET_CONTAINER_DLL_remove (cur->addr_head, cur->addr_tail, cur_a);
+      GNUNET_free (cur_a);
+    }
     GNUNET_free (cur);
   }
+
+  if (NULL != sh)
+  {
+    GNUNET_ATS_solvers_solver_stop (sh);
+    sh = NULL;
+  }
   /* Shutdown */
   end_now();
 
@@ -2458,15 +2465,7 @@
   else
     GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n");
 
-  /* Stop logging */
-  GNUNET_ATS_solver_logging_stop (l);
 
-  /* Stop traffic generation */
-  // GNUNET_ATS_TEST_generate_traffic_stop_all();
-
-  /* Stop all preference generations */
-  GNUNET_ATS_solver_generate_preferences_stop_all ();
-
   /*
   evaluate (duration);
   if (opt_log)

Modified: gnunet/src/ats/gnunet-ats-solver-eval.h
===================================================================
--- gnunet/src/ats/gnunet-ats-solver-eval.h     2014-02-11 12:33:51 UTC (rev 
32307)
+++ gnunet/src/ats/gnunet-ats-solver-eval.h     2014-02-11 13:28:06 UTC (rev 
32308)
@@ -162,8 +162,6 @@
 {
   char *name;
   char *cfg_file;
-  unsigned long long int num_masters;
-  unsigned long long int num_slaves;
   struct GNUNET_TIME_Relative log_freq;
   struct GNUNET_TIME_Relative max_duration;
   struct GNUNET_TIME_Relative total_duration;




reply via email to

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