aboutsummaryrefslogtreecommitdiff
path: root/src/ats/perf_ats_mlp.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-04-16 15:37:46 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-04-16 15:37:46 +0000
commitd043dd0e4ca407081eaa1b9072b37b1d9e715813 (patch)
treee07cb8c113d8406745821c495c7fb3c53e74b050 /src/ats/perf_ats_mlp.c
parent58082a82b9b089de618dfe693e9342e078437451 (diff)
downloadgnunet-d043dd0e4ca407081eaa1b9072b37b1d9e715813.tar.gz
gnunet-d043dd0e4ca407081eaa1b9072b37b1d9e715813.zip
- changes
Diffstat (limited to 'src/ats/perf_ats_mlp.c')
-rw-r--r--src/ats/perf_ats_mlp.c63
1 files changed, 22 insertions, 41 deletions
diff --git a/src/ats/perf_ats_mlp.c b/src/ats/perf_ats_mlp.c
index a15e4b4b8..2daac4769 100644
--- a/src/ats/perf_ats_mlp.c
+++ b/src/ats/perf_ats_mlp.c
@@ -35,12 +35,17 @@
35#define MLP_MAX_EXEC_DURATION GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 3) 35#define MLP_MAX_EXEC_DURATION GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 3)
36#define MLP_MAX_ITERATIONS INT_MAX 36#define MLP_MAX_ITERATIONS INT_MAX
37 37
38#define DEF_PEERS 10
39#define DEF_ADDRESSES_PER_PEER 5
40
41static unsigned int peers;
42static unsigned int addresses;
38 43
39static int ret; 44static int ret;
40 45
41struct GNUNET_STATISTICS_Handle * stats; 46struct GNUNET_STATISTICS_Handle * stats;
42 47
43struct GNUNET_CONTAINER_MultiHashMap * addresses; 48//struct GNUNET_CONTAINER_MultiHashMap * addresses;
44 49
45struct GAS_MLP_Handle *mlp; 50struct GAS_MLP_Handle *mlp;
46 51
@@ -53,56 +58,26 @@ check (void *cls, char *const *args, const char *cfgfile,
53 ret = 1; 58 ret = 1;
54 return; 59 return;
55#endif 60#endif
56 struct ATS_Address addr[10];
57
58 stats = GNUNET_STATISTICS_create("ats", cfg);
59 61
60 addresses = GNUNET_CONTAINER_multihashmap_create (10); 62 if (peers == 0)
63 peers = DEF_PEERS;
64 if (addresses == 0)
65 addresses = DEF_ADDRESSES_PER_PEER;
61 66
62 GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK, &addr[0].peer.hashPubKey); 67 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Setting up %u peers with %u addresses per peer\n", peers, addresses);
63 addr[0].mlp_information = NULL;
64 addr[0].next = NULL;
65 addr[0].prev = NULL;
66 addr[0].plugin = strdup ("dummy");
67 68
68 addr[1].peer = addr[0].peer; 69 GNUNET_HashCode hash;
69 addr[1].mlp_information = NULL; 70 //memset (&hash, '\0', sizeof (GNUNET_HashCode));
70 addr[1].next = NULL; 71 //hash.bits[0] = 1;
71 addr[1].prev = NULL; 72 //GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "peer %s\n", GNUNET_h2s_full (&hash));
72 addr[1].plugin = strdup ("dummy2");
73
74 GNUNET_CONTAINER_multihashmap_put(addresses, &addr[0].peer.hashPubKey, &addr[0], GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
75 73
76 mlp = GAS_mlp_init (cfg, NULL, MLP_MAX_EXEC_DURATION, MLP_MAX_ITERATIONS); 74 mlp = GAS_mlp_init (cfg, NULL, MLP_MAX_EXEC_DURATION, MLP_MAX_ITERATIONS);
75 mlp->auto_solve = GNUNET_NO;
77 76
78 /* Add a new address */
79#if 0
80 GAS_mlp_address_update (mlp, addresses, &addr[0]);
81
82 GNUNET_assert (mlp != NULL);
83 GNUNET_assert (mlp->addr_in_problem == 1);
84 77
85 /* Update an new address */
86 GAS_mlp_address_update (mlp, addresses, &addr[0]);
87 GNUNET_assert (mlp->addr_in_problem == 1);
88 78
89 /* Add a second address for same peer */
90 GNUNET_CONTAINER_multihashmap_put(addresses, &addr[0].peer.hashPubKey, &addr[1], GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
91 GAS_mlp_address_update (mlp, addresses, &addr[1]);
92 GNUNET_assert (mlp->addr_in_problem == 2);
93
94 /* Delete an address */
95 GNUNET_CONTAINER_multihashmap_remove (addresses, &addr[0].peer.hashPubKey, &addr[0]);
96 GAS_mlp_address_delete (mlp, addresses, &addr[0]);
97 GAS_mlp_address_delete (mlp, addresses, &addr[1]);
98#endif
99 GAS_mlp_done (mlp); 79 GAS_mlp_done (mlp);
100 80
101 GNUNET_free (addr[0].plugin);
102 GNUNET_free (addr[1].plugin);
103 GNUNET_CONTAINER_multihashmap_destroy (addresses);
104 GNUNET_STATISTICS_destroy(stats, GNUNET_NO);
105
106 ret = 0; 81 ret = 0;
107 return; 82 return;
108} 83}
@@ -124,6 +99,12 @@ main (int argc, char *argv[])
124 }; 99 };
125 100
126 static struct GNUNET_GETOPT_CommandLineOption options[] = { 101 static struct GNUNET_GETOPT_CommandLineOption options[] = {
102 {'a', "addresses", NULL,
103 gettext_noop ("addresses per peer"), 1,
104 &GNUNET_GETOPT_set_uint, &addresses},
105 {'p', "peers", NULL,
106 gettext_noop ("peers"), 1,
107 &GNUNET_GETOPT_set_uint, &peers},
127 GNUNET_GETOPT_OPTION_END 108 GNUNET_GETOPT_OPTION_END
128 }; 109 };
129 110