You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
* @file rps/test_rps.c
STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL, /* 6 */
STAT_TYPE_ISSUED_PUSH_SEND, /* 7 */
STAT_TYPE_ISSUED_PULL_REQ, /* 8 */
- STAT_TYPE_ISSUED_PULL_REP, /* 9 */
- STAT_TYPE_SENT_PUSH_SEND, /* 10 */
- STAT_TYPE_SENT_PULL_REQ, /* 11 */
- STAT_TYPE_SENT_PULL_REP, /* 12 */
- STAT_TYPE_RECV_PUSH_SEND, /* 13 */
- STAT_TYPE_RECV_PULL_REQ, /* 14 */
- STAT_TYPE_RECV_PULL_REP, /* 15 */
- STAT_TYPE_MAX, /* 16 */
+ STAT_TYPE_ISSUED_PULL_REQ_MH, /* 9 */
+ STAT_TYPE_ISSUED_PULL_REP, /* 10 */
+ STAT_TYPE_SENT_PUSH_SEND, /* 11 */
+ STAT_TYPE_SENT_PULL_REQ, /* 12 */
+ STAT_TYPE_SENT_PULL_REQ_MH, /* 13 */
+ STAT_TYPE_SENT_PULL_REP, /* 14 */
+ STAT_TYPE_RECV_PUSH_SEND, /* 15 */
+ STAT_TYPE_RECV_PULL_REQ, /* 16 */
+ STAT_TYPE_RECV_PULL_REQ_MH, /* 17 */
+ STAT_TYPE_RECV_PULL_REP, /* 18 */
+ STAT_TYPE_RECV_PULL_REP_MH, /* 19 */
+ STAT_TYPE_VIEW_SIZE, /* 20 */
+ STAT_TYPE_KNOWN_PEERS, /* 21 */
+ STAT_TYPE_VALID_PEERS, /* 22 */
+ STAT_TYPE_LEARND_PEERS, /* 23 */
+ STAT_TYPE_PENDING_ONLINE_CHECKS, /* 24 */
+ STAT_TYPE_UNREQUESTED_PULL_REPLIES, /* 25 */
+ STAT_TYPE_PEERS_IN_PUSH_MAP, /* 26 */
+ STAT_TYPE_PEERS_IN_PULL_MAP, /* 27 */
+ STAT_TYPE_PEERS_IN_VIEW, /* 28 */
+ STAT_TYPE_VIEW_SIZE_AIM, /* 29 */
+ STAT_TYPE_MAX, /* 30 */
};
static char* stat_type_strings[] = {
"# rounds blocked - no pushes, no pull replies",
"# push send issued",
"# pull request send issued",
+ "# pull request send issued (multi-hop peer)",
"# pull reply send issued",
"# pushes sent",
"# pull requests sent",
+ "# pull requests sent (multi-hop peer)",
"# pull replys sent",
"# push message received",
"# pull request message received",
+ "# pull request message received (multi-hop peer)",
"# pull reply messages received",
+ "# pull reply messages received (multi-hop peer)",
+ "view size",
+ "# known peers",
+ "# valid peers",
+ "# learnd peers",
+ "# pending online checks",
+ "# unrequested pull replies",
+ "# peers in push map at end of round",
+ "# peers in pull map at end of round",
+ "# peers in view at end of round",
+ "view size aim",
};
struct STATcls
{
return STAT_TYPE_ISSUED_PULL_REQ;
}
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ_MH],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ_MH])))
+ {
+ return STAT_TYPE_ISSUED_PULL_REQ_MH;
+ }
else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REP],
stat_str,
strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REP])))
{
return STAT_TYPE_SENT_PULL_REQ;
}
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_SENT_PULL_REQ_MH],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_SENT_PULL_REQ_MH])))
+ {
+ return STAT_TYPE_SENT_PULL_REQ_MH;
+ }
else if (0 == strncmp (stat_type_strings[STAT_TYPE_SENT_PULL_REP],
stat_str,
strlen (stat_type_strings[STAT_TYPE_SENT_PULL_REP])))
{
return STAT_TYPE_RECV_PULL_REQ;
}
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REQ_MH],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REQ_MH])))
+ {
+ return STAT_TYPE_RECV_PULL_REQ_MH;
+ }
else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REP],
stat_str,
strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REP])))
{
return STAT_TYPE_RECV_PULL_REP;
}
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REP_MH],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REP_MH])))
+ {
+ return STAT_TYPE_RECV_PULL_REP_MH;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_VIEW_SIZE],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_VIEW_SIZE])))
+ {
+ return STAT_TYPE_VIEW_SIZE;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_KNOWN_PEERS],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_KNOWN_PEERS])))
+ {
+ return STAT_TYPE_KNOWN_PEERS;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_VALID_PEERS],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_VALID_PEERS])))
+ {
+ return STAT_TYPE_VALID_PEERS;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_LEARND_PEERS],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_LEARND_PEERS])))
+ {
+ return STAT_TYPE_LEARND_PEERS;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_PENDING_ONLINE_CHECKS],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_PENDING_ONLINE_CHECKS])))
+ {
+ return STAT_TYPE_PENDING_ONLINE_CHECKS;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_UNREQUESTED_PULL_REPLIES],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_UNREQUESTED_PULL_REPLIES])))
+ {
+ return STAT_TYPE_UNREQUESTED_PULL_REPLIES;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_PEERS_IN_PUSH_MAP],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_PEERS_IN_PUSH_MAP])))
+ {
+ return STAT_TYPE_PEERS_IN_PUSH_MAP;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_PEERS_IN_PULL_MAP],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_PEERS_IN_PULL_MAP])))
+ {
+ return STAT_TYPE_PEERS_IN_PULL_MAP;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_PEERS_IN_VIEW],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_PEERS_IN_VIEW])))
+ {
+ return STAT_TYPE_PEERS_IN_VIEW;
+ }
+ else if (0 == strncmp (stat_type_strings[STAT_TYPE_VIEW_SIZE_AIM],
+ stat_str,
+ strlen (stat_type_strings[STAT_TYPE_VIEW_SIZE_AIM])))
+ {
+ return STAT_TYPE_VIEW_SIZE_AIM;
+ }
return STAT_TYPE_MAX;
}
{
clean_peer (i);
}
+ close_all_files();
}
static void
post_test_task = NULL;
post_test = GNUNET_YES;
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Post test task scheduled.\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Executing post test op.\n");
if (NULL != churn_task)
{
GNUNET_SCHEDULER_cancel (churn_task);
}
for (i = 0; i < num_peers; i++)
{
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Executing post test op. (peer %" PRIu32 ")\n",
+ rps_peers[i].index);
if (NULL != rps_peers[i].op)
{
GNUNET_TESTBED_operation_done (rps_peers[i].op);
rps_peers[i].op = NULL;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Cancelled testbed operation\n");
}
if (NULL != cur_test_run.post_test)
{
for (uint32_t i = 0; i < num_peers; i++)
{
to_file ("/tmp/rps/final_stats.csv",
- ", %" PRIu32 ", " /* index */
+ "%" PRIu32 ", " /* index */
"%s, %" /* id */
PRIu64 ", %" /* rounds */
PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* blocking */
- PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */
- PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */
- PRIu64 ", %" PRIu64 ", %" PRIu64 /* recv */,
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */
+ PRIu64 ", %" /* view size */
+ PRIu64 ", %" /* known peers */
+ PRIu64 ", %" /* valid peers */
+ PRIu64 ", %" /* learned peers */
+ PRIu64 ", %" /* pending online checks */
+ PRIu64 ", %" /* unrequested pull replies */
+ PRIu64 ", %" /* peers in push map */
+ PRIu64 ", %" /* peers in pull map */
+ PRIu64 ", %" /* peers in view */
+ PRIu64 "\n"/* view size aim */,
i,
GNUNET_i2s (rps_peers[i].peer_id),
rps_peers[i].stats[STAT_TYPE_ROUNDS],
rps_peers[i].stats[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL],
rps_peers[i].stats[STAT_TYPE_ISSUED_PUSH_SEND],
rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ],
+ rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ_MH],
rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REP],
rps_peers[i].stats[STAT_TYPE_SENT_PUSH_SEND],
rps_peers[i].stats[STAT_TYPE_SENT_PULL_REQ],
+ rps_peers[i].stats[STAT_TYPE_SENT_PULL_REQ_MH],
rps_peers[i].stats[STAT_TYPE_SENT_PULL_REP],
rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND],
rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ],
- rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP]);
+ rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ_MH],
+ rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP_MH],
+ rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP],
+ rps_peers[i].stats[STAT_TYPE_VIEW_SIZE],
+ rps_peers[i].stats[STAT_TYPE_KNOWN_PEERS],
+ rps_peers[i].stats[STAT_TYPE_VALID_PEERS],
+ rps_peers[i].stats[STAT_TYPE_LEARND_PEERS],
+ rps_peers[i].stats[STAT_TYPE_PENDING_ONLINE_CHECKS],
+ rps_peers[i].stats[STAT_TYPE_UNREQUESTED_PULL_REPLIES],
+ rps_peers[i].stats[STAT_TYPE_PEERS_IN_PUSH_MAP],
+ rps_peers[i].stats[STAT_TYPE_PEERS_IN_PULL_MAP],
+ rps_peers[i].stats[STAT_TYPE_PEERS_IN_VIEW],
+ rps_peers[i].stats[STAT_TYPE_VIEW_SIZE_AIM]);
for (enum STAT_TYPE stat_type = STAT_TYPE_ROUNDS;
stat_type < STAT_TYPE_MAX;
stat_type++)
"SUM %"
PRIu64 " %" /* rounds */
PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" /* blocking */
- PRIu64 " %" PRIu64 " %" PRIu64 " %" /* issued */
- PRIu64 " %" PRIu64 " %" PRIu64 " %" /* sent */
- PRIu64 " %" PRIu64 " %" PRIu64 /* recv */,
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */
+ PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */
+ PRIu64 ", %" /* view size */
+ PRIu64 ", %" /* known peers */
+ PRIu64 ", %" /* valid peers */
+ PRIu64 ", %" /* learned peers */
+ PRIu64 ", %" /* pending online checks */
+ PRIu64 ", %" /* unrequested pull replies */
+ PRIu64 ", %" /* peers in push map */
+ PRIu64 ", %" /* peers in pull map */
+ PRIu64 ", %" /* peers in view */
+ PRIu64 "\n"/* view size aim */,
sums[STAT_TYPE_ROUNDS],
sums[STAT_TYPE_BLOCKS],
sums[STAT_TYPE_BLOCKS_MANY_PUSH],
sums[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL],
sums[STAT_TYPE_ISSUED_PUSH_SEND],
sums[STAT_TYPE_ISSUED_PULL_REQ],
+ sums[STAT_TYPE_ISSUED_PULL_REQ_MH],
sums[STAT_TYPE_ISSUED_PULL_REP],
sums[STAT_TYPE_SENT_PUSH_SEND],
sums[STAT_TYPE_SENT_PULL_REQ],
+ sums[STAT_TYPE_SENT_PULL_REQ_MH],
sums[STAT_TYPE_SENT_PULL_REP],
sums[STAT_TYPE_RECV_PUSH_SEND],
sums[STAT_TYPE_RECV_PULL_REQ],
- sums[STAT_TYPE_RECV_PULL_REP]);
+ sums[STAT_TYPE_RECV_PULL_REQ_MH],
+ sums[STAT_TYPE_RECV_PULL_REP],
+ sums[STAT_TYPE_RECV_PULL_REP_MH],
+ sums[STAT_TYPE_VIEW_SIZE],
+ sums[STAT_TYPE_KNOWN_PEERS],
+ sums[STAT_TYPE_VALID_PEERS],
+ sums[STAT_TYPE_LEARND_PEERS],
+ sums[STAT_TYPE_PENDING_ONLINE_CHECKS],
+ sums[STAT_TYPE_UNREQUESTED_PULL_REPLIES],
+ sums[STAT_TYPE_PEERS_IN_PUSH_MAP],
+ sums[STAT_TYPE_PEERS_IN_PULL_MAP],
+ sums[STAT_TYPE_PEERS_IN_VIEW],
+ sums[STAT_TYPE_VIEW_SIZE_AIM]);
}
/**
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "\tnum_peers: %" PRIu32 "\n", num_peers);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "\tpeers: %p\n", peers);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "\tlinks_succeeded: %u\n", links_succeeded);
+ ok = 1;
GNUNET_SCHEDULER_shutdown ();
return;
}
BIT(STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL) |
BIT(STAT_TYPE_ISSUED_PUSH_SEND) |
BIT(STAT_TYPE_ISSUED_PULL_REQ) |
+ BIT(STAT_TYPE_ISSUED_PULL_REQ_MH) |
BIT(STAT_TYPE_ISSUED_PULL_REP) |
BIT(STAT_TYPE_SENT_PUSH_SEND) |
BIT(STAT_TYPE_SENT_PULL_REQ) |
+ BIT(STAT_TYPE_SENT_PULL_REQ_MH) |
BIT(STAT_TYPE_SENT_PULL_REP) |
BIT(STAT_TYPE_RECV_PUSH_SEND) |
BIT(STAT_TYPE_RECV_PULL_REQ) |
- BIT(STAT_TYPE_RECV_PULL_REP);
+ BIT(STAT_TYPE_RECV_PULL_REQ_MH) |
+ BIT(STAT_TYPE_RECV_PULL_REP) |
+ BIT(STAT_TYPE_RECV_PULL_REP_MH) |
+ BIT(STAT_TYPE_VIEW_SIZE) |
+ BIT(STAT_TYPE_KNOWN_PEERS) |
+ BIT(STAT_TYPE_VALID_PEERS) |
+ BIT(STAT_TYPE_LEARND_PEERS) |
+ BIT(STAT_TYPE_PENDING_ONLINE_CHECKS) |
+ BIT(STAT_TYPE_UNREQUESTED_PULL_REPLIES) |
+ BIT(STAT_TYPE_PEERS_IN_PUSH_MAP) |
+ BIT(STAT_TYPE_PEERS_IN_PULL_MAP) |
+ BIT(STAT_TYPE_PEERS_IN_VIEW) |
+ BIT(STAT_TYPE_VIEW_SIZE_AIM);
cur_test_run.have_collect_view = COLLECT_VIEW;
/* 'Clean' directory */