[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r32308 - in gnunet/src/ats: . experiments,
gnunet <=