#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet_testbed_service.h"
#include "gnunet_rps_service.h"
#include "rps-test_util.h"
#include "gnunet-service-rps_sampler_elem.h"
#include <inttypes.h>
Go to the source code of this file.
Data Structures | |
struct | STATcls |
struct | OpListEntry |
Operation map entry. More... | |
struct | PendingReply |
A pending reply: A request was sent and the reply is pending. More... | |
struct | PendingRequest |
A pending request: A request was not made yet but is scheduled for later. More... | |
struct | RPSPeer |
Information we track for each peer. More... | |
struct | SingleTestRun |
Structure to define a single test. More... | |
Macros | |
#define | BIT(n) (1 << (n)) |
#define | tofile(file_name, ...) |
This function is used to facilitate writing important information to disk. More... | |
Typedefs | |
typedef void(* | InitPeer) (struct RPSPeer *rps_peer) |
Called to initialise the given RPSPeer. More... | |
typedef void(* | PreTest) (struct RPSPeer *rps_peer, struct GNUNET_RPS_Handle *h) |
Called directly after connecting to the service. More... | |
typedef void(* | MainTest) (struct RPSPeer *rps_peer) |
Executes functions to test the api/service for a given peer. More... | |
typedef void(* | ReplyHandle) (void *cls, uint64_t n, const struct GNUNET_PeerIdentity *recv_peers) |
Callback called once the requested random peers are available. More... | |
typedef void(* | PostTest) (struct RPSPeer *peer) |
Called directly before disconnecting from the service. More... | |
typedef int(* | EvaluationCallback) (void) |
Function called after disconnect to evaluate test success. More... | |
Functions | |
enum STAT_TYPE | stat_str_2_type (const char *stat_str) |
Converts string representation to the corresponding STAT_TYPE enum. More... | |
static void | tofile_ (const char *file_name, const char *line) |
Append arguments to file. More... | |
static int | evaluate (void) |
Write the ids and their according index in the given array to a file Unused. More... | |
static struct OpListEntry * | make_oplist_entry () |
Creates an oplist entry and adds it to the oplist DLL. More... | |
static int | check_statistics_collect_completed_single_peer (const struct RPSPeer *rps_peer) |
Checks if given peer already received its statistics value from the statistics service. More... | |
static int | check_statistics_collect_completed () |
Checks if all peers already received their statistics value from the statistics service. More... | |
static void | rps_disconnect_adapter (void *cls, void *op_result) |
Adapter function called to destroy connection to RPS service. More... | |
static void | cancel_pending_req (struct PendingRequest *pending_req) |
static void | cancel_request (struct PendingReply *pending_rep) |
void | clean_peer (unsigned peer_index) |
static void | shutdown_op (void *cls) |
Task run on timeout to shut everything down. More... | |
static void | trigger_shutdown (void *cls) |
static void | post_test_op (void *cls) |
Task run after duration to collect statistics and potentially shut down. More... | |
void | info_cb (void *cb_cls, struct GNUNET_TESTBED_Operation *op, const struct GNUNET_TESTBED_PeerInformation *pinfo, const char *emsg) |
Get the id of peer i. More... | |
static void | rps_connect_complete_cb (void *cls, struct GNUNET_TESTBED_Operation *op, void *ca_result, const char *emsg) |
Callback to be called when RPS service connect operation is completed. More... | |
static void * | rps_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) |
Adapter function called to establish a connection to the RPS service. More... | |
static void * | stat_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) |
Called to open a connection to the peer's statistics. More... | |
static void | stat_disconnect_adapter (void *cls, void *op_result) |
Called to disconnect from peer's statistics service. More... | |
static void | stat_complete_cb (void *cls, struct GNUNET_TESTBED_Operation *op, void *ca_result, const char *emsg) |
Called after successfully opening a connection to a peer's statistics service; we register statistics monitoring for CORE and NSE here. More... | |
static void | default_reply_handle (void *cls, uint64_t n, const struct GNUNET_PeerIdentity *recv_peers) |
Callback to call on receipt of a reply. More... | |
static void | profiler_reply_handle_info (void *cls, const struct GNUNET_PeerIdentity *recv_peer, double probability, uint32_t num_observed) |
Callback to call on receipt of a reply. More... | |
static void | request_peers (void *cls) |
Request random peers. More... | |
void | schedule_missing_requests (struct RPSPeer *rps_peer) |
Schedule requests for peer rps_peer that have neither been scheduled, nor issued, nor replied. More... | |
void | cancel_pending_req_rep (struct RPSPeer *rps_peer) |
static void | churn (void *cls) |
** More... | |
static void | churn_cb (void *cls, struct GNUNET_TESTBED_Operation *op, const char *emsg) |
Callback to be called when RPS service is started or stopped at peers. More... | |
static void | manage_service_wrapper (unsigned int i, unsigned int j, enum PEER_ONLINE_DELTA delta, double prob_go_on_off) |
Set the rps-service up or down for a specific peer. More... | |
static void | profiler_init_peer (struct RPSPeer *rps_peer) |
Initialise given RPSPeer. More... | |
static void | profiler_reply_handle (void *cls, uint64_t n, const struct GNUNET_PeerIdentity *recv_peers) |
Callback to call on receipt of a reply. More... | |
static void | profiler_cb (struct RPSPeer *rps_peer) |
static int | file_name_cb (void *cls, const char *filename) |
Function called from profiler_eval with a filename. More... | |
static int | profiler_eval (void) |
This is run after the test finished. More... | |
static int | is_in_view (uint32_t a, uint32_t b) |
is b in view of a? More... | |
static uint32_t | get_idx_of_pid (const struct GNUNET_PeerIdentity *pid) |
static uint32_t | count_containing_views (uint32_t a, uint32_t b) |
Counts number of peers in view of a that have b in their view. More... | |
static void | compute_probabilities (uint32_t peer_idx) |
Computes the probability for each other peer to be selected by the sampling process based on the views of all peers. More... | |
static uint32_t | count_peer_in_views_2 (uint32_t peer_idx) |
This counts the number of peers in which views a given peer occurs. More... | |
static uint32_t | cumulated_view_sizes () |
static void | count_peer_in_views (uint32_t *count_peers) |
void | compute_diversity () |
void | print_view_sizes () |
void | all_views_updated_cb () |
void | view_update_cb (void *cls, uint64_t view_size, const struct GNUNET_PeerIdentity *peers) |
static void | pre_profiler (struct RPSPeer *rps_peer, struct GNUNET_RPS_Handle *h) |
void | write_final_stats (void) |
void | post_test_shutdown_ready_cb (void *cls, int success) |
Continuation called by GNUNET_STATISTICS_get() functions. More... | |
int | stat_iterator (void *cls, const char *subsystem, const char *name, uint64_t value, int is_persistent) |
Callback function to process statistic values. More... | |
void | post_profiler (struct RPSPeer *rps_peer) |
static void | test_run (void *cls, struct GNUNET_TESTBED_RunHandle *h, unsigned int n_peers, struct GNUNET_TESTBED_Peer **peers, unsigned int links_succeeded, unsigned int links_failed) |
Actual "main" function for the testcase. More... | |
static void | run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) |
Entry point for the testcase, sets up the testbed. More... | |
int | main (int argc, char *argv[]) |
Entry point for the testcase, sets up the testbed. More... | |
Variables | |
static uint32_t | num_peers |
How many peers do we start? More... | |
static unsigned | bits_needed |
number of bits required to represent the largest peer id More... | |
static struct GNUNET_TIME_Relative | duration |
How long do we run the test? More... | |
static struct GNUNET_TIME_Relative | timeout |
When do we do a hard shutdown? More... | |
static unsigned int | mal_type = 0 |
Type of malicious peer to test. More... | |
static struct GNUNET_TESTBED_Peer ** | testbed_peers |
Handles to all of the running peers. More... | |
static char * | stat_type_strings [] |
static struct OpListEntry * | oplist_head |
OpList DLL head. More... | |
static struct OpListEntry * | oplist_tail |
OpList DLL tail. More... | |
static struct RPSPeer * | rps_peers |
Information for all the peers. More... | |
static struct GNUNET_CONTAINER_MultiPeerMap * | peer_map |
Peermap to get the index of a given peer ID quick. More... | |
static struct GNUNET_PeerIdentity * | rps_peer_ids |
IDs of the peers. More... | |
static struct GNUNET_PeerIdentity * | target_peer |
ID of the targeted peer. More... | |
static unsigned int | num_peers_online |
Number of online peers. More... | |
static unsigned int | view_sizes |
The added sizes of the peer's views. More... | |
static int | ok |
Return value from 'main'. More... | |
static struct GNUNET_SCHEDULER_Task * | post_test_task |
Identifier for the task that runs after the test to collect results. More... | |
static struct GNUNET_SCHEDULER_Task * | shutdown_task |
Identifier for the shutdown task. More... | |
static struct GNUNET_SCHEDULER_Task * | churn_task |
Identifier for the churn task that runs periodically. More... | |
struct SingleTestRun | cur_test_run |
static int | post_test |
Did we finish the test? More... | |
static int | in_shutdown |
Are we shutting down? More... | |
#define BIT | ( | n | ) | (1 << (n)) |
Definition at line 39 of file gnunet-rps-profiler.c.
#define tofile | ( | file_name, | |
... | |||
) |
This function is used to facilitate writing important information to disk.
Definition at line 922 of file gnunet-rps-profiler.c.
typedef void(* InitPeer) (struct RPSPeer *rps_peer) |
Called to initialise the given RPSPeer.
Definition at line 669 of file gnunet-rps-profiler.c.
typedef void(* PreTest) (struct RPSPeer *rps_peer, struct GNUNET_RPS_Handle *h) |
Called directly after connecting to the service.
rps_peer | Specific peer the function is called on |
h | the handle to the rps service |
Definition at line 677 of file gnunet-rps-profiler.c.
typedef void(* MainTest) (struct RPSPeer *rps_peer) |
Executes functions to test the api/service for a given peer.
Called from within rps_connect_complete_cb () Implemented by #churn_test_cb, profiler_cb, #mal_cb, #single_req_cb, #delay_req_cb, #seed_big_cb, #single_peer_seed_cb, #seed_cb, #req_cancel_cb
rps_peer | the peer the task runs on |
Definition at line 688 of file gnunet-rps-profiler.c.
typedef void(* ReplyHandle) (void *cls, uint64_t n, const struct GNUNET_PeerIdentity *recv_peers) |
Callback called once the requested random peers are available.
Definition at line 693 of file gnunet-rps-profiler.c.
Called directly before disconnecting from the service.
Definition at line 700 of file gnunet-rps-profiler.c.
typedef int(* EvaluationCallback) (void) |
Function called after disconnect to evaluate test success.
Definition at line 705 of file gnunet-rps-profiler.c.
enum STAT_TYPE |
Definition at line 77 of file gnunet-rps-profiler.c.
enum PEER_ONLINE_DELTA |
Indicates whether peer should go off- or online.
Enumerator | |
---|---|
PEER_GO_ONLINE | Indicates peer going online. |
PEER_GO_OFFLINE | Indicates peer going offline. |
Definition at line 379 of file gnunet-rps-profiler.c.
enum OPTION_CHURN |
Do we have Churn?
Enumerator | |
---|---|
HAVE_CHURN | If we have churn this is set. |
HAVE_NO_CHURN | If we have no churn this is set. |
Definition at line 710 of file gnunet-rps-profiler.c.
enum OPTION_QUICK_QUIT |
Is it ok to quit the test before the timeout?
Enumerator | |
---|---|
HAVE_QUICK_QUIT | It is ok for the test to quit before the timeout triggers. |
HAVE_NO_QUICK_QUIT | It is NOT ok for the test to quit before the timeout triggers. |
Definition at line 725 of file gnunet-rps-profiler.c.
Do we collect statistics at the end?
Enumerator | |
---|---|
COLLECT_STATISTICS | We collect statistics at the end. |
NO_COLLECT_STATISTICS | We do not collect statistics at the end. |
Definition at line 741 of file gnunet-rps-profiler.c.
enum OPTION_COLLECT_VIEW |
Do we collect views during run?
Enumerator | |
---|---|
COLLECT_VIEW | We collect view during run. |
NO_COLLECT_VIEW | We do not collect the view during run. |
Definition at line 757 of file gnunet-rps-profiler.c.
enum STAT_TYPE stat_str_2_type | ( | const char * | stat_str | ) |
Converts string representation to the corresponding STAT_TYPE enum.
stat_str | string representation of statistics specifier |
Definition at line 114 of file gnunet-rps-profiler.c.
Referenced by stat_iterator().
|
static |
Append arguments to file.
Definition at line 861 of file gnunet-rps-profiler.c.
References removetrailingwhitespace::f, file_name, GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_APPEND, GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_GROUP_READ, GNUNET_DISK_PERM_OTHER_READ, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_WARNING, GNUNET_log, GNUNET_YES, line, and size.
|
static |
Write the ids and their according index in the given array to a file Unused.
Test the success of a single test
Definition at line 958 of file gnunet-rps-profiler.c.
References GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, RPSPeer::num_ids_to_request, num_peers, RPSPeer::num_recv_ids, peer_id, and rps_peers.
Referenced by default_reply_handle(), and profiler_eval().
|
static |
Creates an oplist entry and adds it to the oplist DLL.
Definition at line 984 of file gnunet-rps-profiler.c.
References GNUNET_CONTAINER_DLL_insert_tail, GNUNET_new, oplist_head, and oplist_tail.
Referenced by manage_service_wrapper(), and test_run().
|
static |
Checks if given peer already received its statistics value from the statistics service.
rps_peer | the peer to check for |
Definition at line 1004 of file gnunet-rps-profiler.c.
References cur_test_run, GNUNET_NO, GNUNET_YES, SingleTestRun::stat_collect_flags, and RPSPeer::stat_collected_flags.
Referenced by check_statistics_collect_completed(), and post_test_shutdown_ready_cb().
|
static |
Checks if all peers already received their statistics value from the statistics service.
Definition at line 1025 of file gnunet-rps-profiler.c.
References check_statistics_collect_completed_single_peer(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_NO, GNUNET_YES, num_peers, and rps_peers.
Referenced by post_test_op(), and post_test_shutdown_ready_cb().
|
static |
Adapter function called to destroy connection to RPS service.
cls | closure |
op_result | service handle returned from the connect adapter |
Definition at line 1437 of file gnunet-rps-profiler.c.
References cancel_request(), GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_RPS_disconnect(), h, op_result(), and peer.
Referenced by clean_peer(), and test_run().
|
static |
Definition at line 1052 of file gnunet-rps-profiler.c.
References GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_SCHEDULER_cancel(), RPSPeer::num_pending_reqs, RPSPeer::pending_req_head, RPSPeer::pending_req_tail, PendingRequest::request_task, and PendingRequest::rps_peer.
Referenced by cancel_pending_req_rep(), and clean_peer().
|
static |
Definition at line 1069 of file gnunet-rps-profiler.c.
References GNUNET_assert, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_RPS_request_single_info_cancel(), RPSPeer::num_pending_reps, RPSPeer::pending_rep_head, RPSPeer::pending_rep_tail, PendingReply::req_handle, and PendingReply::rps_peer.
Referenced by cancel_pending_req_rep(), and rps_disconnect_adapter().
void clean_peer | ( | unsigned | peer_index | ) |
Definition at line 1089 of file gnunet-rps-profiler.c.
References cancel_pending_req(), GNUNET_ERROR_TYPE_WARNING, GNUNET_log, GNUNET_STATISTICS_get_cancel(), GNUNET_TESTBED_operation_done(), op, RPSPeer::op, RPSPeer::pending_req_head, rps_disconnect_adapter(), rps_handle, rps_peers, STAT_TYPE_MAX, STAT_TYPE_ROUNDS, and stat_type_strings.
Referenced by shutdown_op().
|
static |
Task run on timeout to shut everything down.
Definition at line 1126 of file gnunet-rps-profiler.c.
References churn_task, clean_peer(), close_all_files(), GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_INFO, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_log, GNUNET_SCHEDULER_cancel(), GNUNET_TESTBED_operation_done(), GNUNET_YES, in_shutdown, OpListEntry::index, num_peers, OpListEntry::op, oplist_head, oplist_tail, post_test_task, and shutdown_task.
Referenced by test_run().
|
static |
Definition at line 1171 of file gnunet-rps-profiler.c.
References GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_SCHEDULER_shutdown(), and shutdown_task.
Referenced by test_run().
|
static |
Task run after duration to collect statistics and potentially shut down.
Definition at line 1186 of file gnunet-rps-profiler.c.
References check_statistics_collect_completed(), churn_task, cur_test_run, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SCHEDULER_cancel(), GNUNET_SCHEDULER_shutdown(), GNUNET_TESTBED_operation_done(), GNUNET_YES, SingleTestRun::have_collect_statistics, OpListEntry::index, NO_COLLECT_STATISTICS, num_peers, op, RPSPeer::op, SingleTestRun::post_test, post_test, post_test_task, rps_peers, and shutdown_task.
Referenced by default_reply_handle(), and test_run().
void info_cb | ( | void * | cb_cls, |
struct GNUNET_TESTBED_Operation * | op, | ||
const struct GNUNET_TESTBED_PeerInformation * | pinfo, | ||
const char * | emsg | ||
) |
Get the id of peer i.
Definition at line 1235 of file gnunet-rps-profiler.c.
References GNUNET_assert, GNUNET_CONTAINER_DLL_remove, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY, GNUNET_CONTAINER_multipeermap_put(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_i2s(), GNUNET_i2s_full(), GNUNET_log, GNUNET_OK, GNUNET_TESTBED_operation_done(), GNUNET_YES, GNUNET_TESTBED_PeerInformation::id, in_shutdown, OpListEntry::index, op, OpListEntry::op, oplist_head, oplist_tail, RPSPeer::peer_id, peer_map, post_test, GNUNET_TESTBED_PeerInformation::result, rps_peer_ids, rps_peers, and tofile.
Referenced by test_run().
|
static |
Callback to be called when RPS service connect operation is completed.
cls | the callback closure from functions generating an operation |
op | the operation that has been finished |
ca_result | the RPS service handle returned from rps_connect_adapter |
emsg | error message in case the operation has failed; will be NULL if operation has executed successfully. |
Definition at line 1290 of file gnunet-rps-profiler.c.
References cur_test_run, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, GNUNET_SCHEDULER_shutdown(), GNUNET_YES, in_shutdown, RPSPeer::index, SingleTestRun::main_test, num_peers_online, ok, RPSPeer::online, op, RPSPeer::op, post_test, and RPSPeer::rps_handle.
Referenced by test_run().
|
static |
Adapter function called to establish a connection to the RPS service.
cls | closure |
cfg | configuration of the peer to connect to; will be available until GNUNET_TESTBED_operation_done() is called on the operation returned from GNUNET_TESTBED_service_connect() |
Definition at line 1337 of file gnunet-rps-profiler.c.
References cfg, cur_test_run, GNUNET_RPS_connect(), h, and SingleTestRun::pre_test.
Referenced by test_run().
|
static |
Called to open a connection to the peer's statistics.
cls | peer context |
cfg | configuration of the peer to connect to; will be available until GNUNET_TESTBED_operation_done() is called on the operation returned from GNUNET_TESTBED_service_connect() |
Definition at line 1361 of file gnunet-rps-profiler.c.
References cfg, GNUNET_STATISTICS_create(), and peer.
Referenced by test_run().
|
static |
Called to disconnect from peer's statistics service.
cls | peer context |
op_result | service handle returned from the connect adapter |
Definition at line 1378 of file gnunet-rps-profiler.c.
References GNUNET_NO, GNUNET_STATISTICS_destroy(), op_result(), and peer.
Referenced by test_run().
|
static |
Called after successfully opening a connection to a peer's statistics service; we register statistics monitoring for CORE and NSE here.
cls | the callback closure from functions generating an operation |
op | the operation that has been finished |
ca_result | the service handle returned from GNUNET_TESTBED_ConnectAdapter() |
emsg | error message in case the operation has failed; will be NULL if operation has executed successfully. |
Definition at line 1404 of file gnunet-rps-profiler.c.
References GNUNET_break, and op.
Referenced by test_run().
|
static |
Callback to call on receipt of a reply.
cls | closure |
n | number of peers |
recv_peers | the received peers |
Definition at line 1477 of file gnunet-rps-profiler.c.
References cur_test_run, evaluate(), GNUNET_assert, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_cancel(), GNUNET_YES, HAVE_QUICK_QUIT, SingleTestRun::have_quick_quit, RPSPeer::num_pending_reps, RPSPeer::num_recv_ids, RPSPeer::peer_id, RPSPeer::pending_rep_head, RPSPeer::pending_rep_tail, post_test, post_test_op(), post_test_task, and PendingReply::rps_peer.
Referenced by profiler_reply_handle(), and profiler_reply_handle_info().
|
static |
Callback to call on receipt of a reply.
cls | closure |
n | number of peers |
recv_peers | the received peers |
Definition at line 2007 of file gnunet-rps-profiler.c.
References bits_needed, default_reply_handle(), file_name, GNUNET_asprintf(), GNUNET_assert, GNUNET_CONTAINER_multipeermap_get(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_i2s_full(), GNUNET_log, RPSPeer::index, RPSPeer::peer_id, peer_map, PendingReply::req_handle, PendingReply::rps_peer, to_file_raw(), to_file_raw_unaligned(), and tofile.
Referenced by request_peers().
|
static |
Request random peers.
Definition at line 1531 of file gnunet-rps-profiler.c.
References GNUNET_assert, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_new, GNUNET_RPS_request_peer_info(), GNUNET_YES, in_shutdown, RPSPeer::num_pending_reps, RPSPeer::num_pending_reqs, RPSPeer::pending_rep_head, RPSPeer::pending_rep_tail, RPSPeer::pending_req_head, RPSPeer::pending_req_tail, post_test, profiler_reply_handle_info(), PendingReply::req_handle, RPSPeer::rps_handle, PendingReply::rps_peer, and PendingRequest::rps_peer.
Referenced by schedule_missing_requests().
void schedule_missing_requests | ( | struct RPSPeer * | rps_peer | ) |
Schedule requests for peer rps_peer that have neither been scheduled, nor issued, nor replied.
Definition at line 1568 of file gnunet-rps-profiler.c.
References cur_test_run, GNUNET_assert, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_new, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_UNIT_SECONDS, RPSPeer::num_ids_to_request, RPSPeer::num_pending_reps, RPSPeer::num_pending_reqs, RPSPeer::pending_req_head, RPSPeer::pending_req_tail, SingleTestRun::request_interval, request_peers(), PendingRequest::request_task, and PendingRequest::rps_peer.
Referenced by churn_cb(), and profiler_cb().
void cancel_pending_req_rep | ( | struct RPSPeer * | rps_peer | ) |
Definition at line 1598 of file gnunet-rps-profiler.c.
References cancel_pending_req(), cancel_request(), GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, RPSPeer::num_pending_reps, RPSPeer::num_pending_reqs, RPSPeer::pending_rep_head, RPSPeer::pending_req_head, and PendingRequest::rps_peer.
Referenced by manage_service_wrapper().
|
static |
**
**
Definition at line 1844 of file gnunet-rps-profiler.c.
References churn_task, GNUNET_CRYPTO_QUALITY_WEAK, GNUNET_CRYPTO_random_permute(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_NO, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_UNIT_SECONDS, GNUNET_YES, in_shutdown, manage_service_wrapper(), num_peers, num_peers_online, post_test, and rps_peers.
Referenced by profiler_cb().
|
static |
Callback to be called when RPS service is started or stopped at peers.
cls | NULL |
op | the operation handle |
emsg | NULL on success; otherwise an error description |
Definition at line 1707 of file gnunet-rps-profiler.c.
References cur_test_run, OpListEntry::delta, delta, RPSPeer::entry_op_manage, GNUNET_assert, GNUNET_break, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_i2s(), GNUNET_log, GNUNET_NO, GNUNET_SCHEDULER_shutdown(), GNUNET_TESTBED_operation_done(), GNUNET_YES, in_shutdown, OpListEntry::index, num_peers_online, RPSPeer::online, op, OpListEntry::op, oplist_head, oplist_tail, PEER_GO_OFFLINE, RPSPeer::peer_id, post_test, SingleTestRun::pre_test, RPSPeer::rps_handle, rps_peers, and schedule_missing_requests().
Referenced by manage_service_wrapper().
|
static |
Set the rps-service up or down for a specific peer.
i | index of action |
j | index of peer |
delta | (PEER_ONLINE_DELTA) down (-1) or up (1) |
prob_go_on_off | the probability of the action |
Definition at line 1798 of file gnunet-rps-profiler.c.
References cancel_pending_req_rep(), churn_cb(), OpListEntry::delta, delta, RPSPeer::entry_op_manage, GNUNET_CRYPTO_QUALITY_WEAK, GNUNET_CRYPTO_random_u32(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, GNUNET_TESTBED_peer_manage_service(), OpListEntry::index, make_oplist_entry(), OpListEntry::op, PEER_GO_OFFLINE, PEER_GO_ONLINE, peer_id, rps_peers, and testbed_peers.
Referenced by churn().
|
static |
Initialise given RPSPeer.
Definition at line 1918 of file gnunet-rps-profiler.c.
References cur_test_run, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, RPSPeer::num_ids_to_request, and SingleTestRun::num_requests.
Referenced by run().
|
static |
Callback to call on receipt of a reply.
cls | closure |
n | number of peers |
recv_peers | the received peers |
Definition at line 1934 of file gnunet-rps-profiler.c.
References bits_needed, default_reply_handle(), file_name, GNUNET_asprintf(), GNUNET_assert, GNUNET_CONTAINER_multipeermap_get(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_i2s_full(), GNUNET_log, RPSPeer::index, RPSPeer::peer_id, peer_map, PendingReply::req_handle, PendingReply::rps_peer, to_file_raw(), to_file_raw_unaligned(), and tofile.
Referenced by run().
|
static |
Definition at line 2070 of file gnunet-rps-profiler.c.
References churn(), churn_task, cur_test_run, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_UNIT_SECONDS, GNUNET_YES, HAVE_CHURN, SingleTestRun::have_churn, in_shutdown, RPSPeer::num_ids_to_request, post_test, PendingReply::rps_peer, and schedule_missing_requests().
Referenced by run().
|
static |
Function called from profiler_eval with a filename.
cls | closure |
filename | complete filename (absolute path) |
Definition at line 2111 of file gnunet-rps-profiler.c.
References filename, GNUNET_OK, num_peers, rps_peer_ids, RPS_sampler_elem_create(), RPS_sampler_elem_destroy(), RPS_sampler_elem_next(), RPS_sampler_elem_set(), string_to_auth_key(), and tofile.
Referenced by profiler_eval().
|
static |
This is run after the test finished.
Compute all perfect samples.
Definition at line 2144 of file gnunet-rps-profiler.c.
References evaluate(), file_name_cb(), GNUNET_DISK_directory_scan(), GNUNET_ERROR_TYPE_ERROR, and GNUNET_log.
Referenced by run().
|
static |
is b in view of a?
a | |
b |
Definition at line 2166 of file gnunet-rps-profiler.c.
References RPSPeer::cur_view_count, GNUNET_NO, GNUNET_YES, peer_id, and rps_peers.
Referenced by compute_probabilities(), and count_containing_views().
|
static |
Definition at line 2184 of file gnunet-rps-profiler.c.
References GNUNET_assert, GNUNET_ERROR_TYPE_ERROR, GNUNET_i2s_full(), GNUNET_log, num_peers, peer_id, pid, and rps_peers.
Referenced by count_containing_views().
|
static |
Counts number of peers in view of a that have b in their view.
a | |
b |
Definition at line 2214 of file gnunet-rps-profiler.c.
References RPSPeer::cur_view_count, get_idx_of_pid(), GNUNET_YES, is_in_view(), and rps_peers.
Referenced by compute_probabilities().
|
static |
Computes the probability for each other peer to be selected by the sampling process based on the views of all peers.
peer_idx | index of the peer that is about to sample |
Definition at line 2239 of file gnunet-rps-profiler.c.
References binom(), count_containing_views(), RPSPeer::cur_view_count, RPSPeer::eval_probs_cache, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_malloc, GNUNET_snprintf(), GNUNET_strndup, GNUNET_YES, is_in_view(), num_peers, rps_peers, and to_file_w_len.
Referenced by view_update_cb().
|
static |
This counts the number of peers in which views a given peer occurs.
It also stores this value in the rps peer.
peer_idx | the index of the peer to count the representation |
Definition at line 2410 of file gnunet-rps-profiler.c.
References RPSPeer::count_in_views, RPSPeer::cur_view_count, num_peers, peer_id, and rps_peers.
Referenced by view_update_cb().
|
static |
Definition at line 2434 of file gnunet-rps-profiler.c.
References RPSPeer::cur_view_count, num_peers, rps_peers, and view_sizes.
Referenced by view_update_cb().
|
static |
Definition at line 2448 of file gnunet-rps-profiler.c.
References RPSPeer::cur_view_count, num_peers, peer_id, and rps_peers.
Referenced by compute_diversity().
void compute_diversity | ( | ) |
Definition at line 2468 of file gnunet-rps-profiler.c.
References count_peer_in_views(), RPSPeer::cur_view_count, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_i2s(), GNUNET_log, GNUNET_new_array, num_peers, peer_id, and rps_peers.
Referenced by all_views_updated_cb().
void print_view_sizes | ( | ) |
Definition at line 2513 of file gnunet-rps-profiler.c.
References GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, num_peers, peer_id, and rps_peers.
Referenced by all_views_updated_cb().
void all_views_updated_cb | ( | ) |
Definition at line 2529 of file gnunet-rps-profiler.c.
References compute_diversity(), and print_view_sizes().
Referenced by view_update_cb().
void view_update_cb | ( | void * | cls, |
uint64_t | view_size, | ||
const struct GNUNET_PeerIdentity * | peers | ||
) |
Definition at line 2537 of file gnunet-rps-profiler.c.
References all_views_updated_cb(), compute_probabilities(), count_peer_in_views_2(), cumulated_view_sizes(), RPSPeer::cur_view, RPSPeer::cur_view_count, GNUNET_array_grow, GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, GNUNET_memcpy, RPSPeer::index, peers, to_file, and view_sizes.
Referenced by GNUNET_RPS_view_request(), and pre_profiler().
|
static |
Definition at line 2590 of file gnunet-rps-profiler.c.
References RPSPeer::eval_probs_cache, RPSPeer::file_name_probs, RPSPeer::file_name_probs_hist, GNUNET_new_array, GNUNET_RPS_view_request(), h, RPSPeer::index, num_peers, store_prefix_file_name(), and view_update_cb().
Referenced by run().
void write_final_stats | ( | void | ) |
Definition at line 2602 of file gnunet-rps-profiler.c.
References GNUNET_i2s(), num_peers, peer_id, rps_peers, STAT_TYPE_BLOCKS, STAT_TYPE_BLOCKS_MANY_PUSH, STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL, STAT_TYPE_BLOCKS_NO_PULL, STAT_TYPE_BLOCKS_NO_PUSH, STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL, STAT_TYPE_ISSUED_PULL_REP, STAT_TYPE_ISSUED_PULL_REQ, STAT_TYPE_ISSUED_PULL_REQ_MH, STAT_TYPE_ISSUED_PUSH_SEND, STAT_TYPE_ISSUED_PUSH_SEND_MH, STAT_TYPE_KNOWN_PEERS, STAT_TYPE_LEARND_PEERS, STAT_TYPE_MAX, STAT_TYPE_PEERS_IN_PULL_MAP, STAT_TYPE_PEERS_IN_PUSH_MAP, STAT_TYPE_PEERS_IN_VIEW, STAT_TYPE_PENDING_ONLINE_CHECKS, STAT_TYPE_RECV_PULL_REP, STAT_TYPE_RECV_PULL_REP_MH, STAT_TYPE_RECV_PULL_REQ, STAT_TYPE_RECV_PULL_REQ_MH, STAT_TYPE_RECV_PUSH_SEND, STAT_TYPE_RECV_PUSH_SEND_MH, STAT_TYPE_ROUNDS, STAT_TYPE_SENT_PULL_REP, STAT_TYPE_SENT_PULL_REQ, STAT_TYPE_SENT_PULL_REQ_MH, STAT_TYPE_SENT_PUSH_SEND, STAT_TYPE_UNREQUESTED_PULL_REPLIES, STAT_TYPE_VALID_PEERS, STAT_TYPE_VIEW_SIZE, STAT_TYPE_VIEW_SIZE_AIM, stats, RPSPeer::stats, and to_file.
Referenced by post_test_shutdown_ready_cb().
void post_test_shutdown_ready_cb | ( | void * | cls, |
int | success | ||
) |
Continuation called by GNUNET_STATISTICS_get() functions.
Remembers that this specific statistics value was received for this peer. Checks whether all peers received their statistics yet. Issues the shutdown.
cls | closure |
success | GNUNET_OK if statistics were successfully obtained, GNUNET_SYSERR if not. |
Definition at line 2735 of file gnunet-rps-profiler.c.
References BIT, check_statistics_collect_completed(), check_statistics_collect_completed_single_peer(), GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SCHEDULER_shutdown(), GNUNET_TESTBED_operation_done(), GNUNET_YES, RPSPeer::h_stat_get, RPSPeer::index, STATcls::rps_peer, RPSPeer::stat_collected_flags, RPSPeer::stat_op, STATcls::stat_type, and write_final_stats().
Referenced by post_profiler().
int stat_iterator | ( | void * | cls, |
const char * | subsystem, | ||
const char * | name, | ||
uint64_t | value, | ||
int | is_persistent | ||
) |
Callback function to process statistic values.
cls | closure |
subsystem | name of subsystem that created the statistic |
name | the name of the datum |
value | the current value |
is_persistent | GNUNET_YES if the value is persistent, GNUNET_NO if not |
Definition at line 2791 of file gnunet-rps-profiler.c.
References RPSPeer::file_name_stats, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_OK, RPSPeer::index, name, STATcls::rps_peer, stat_str_2_type(), STAT_TYPE_MAX, STAT_TYPE_ROUNDS, RPSPeer::stats, subsystem, to_file, and value.
Referenced by post_profiler().
void post_profiler | ( | struct RPSPeer * | rps_peer | ) |
Definition at line 2822 of file gnunet-rps-profiler.c.
References BIT, COLLECT_STATISTICS, cur_test_run, RPSPeer::eval_probs_cache, RPSPeer::file_name_stats, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_malloc, GNUNET_STATISTICS_get(), RPSPeer::h_stat_get, SingleTestRun::have_collect_statistics, RPSPeer::index, post_test_shutdown_ready_cb(), STATcls::rps_peer, SingleTestRun::stat_collect_flags, stat_iterator(), STATcls::stat_type, STAT_TYPE_MAX, STAT_TYPE_ROUNDS, stat_type_strings, RPSPeer::stats_h, and store_prefix_file_name().
Referenced by run().
|
static |
Actual "main" function for the testcase.
cls | closure |
h | the run handle |
n_peers | number of peers in 'peers' |
peers | handle to peers run in the testbed |
links_succeeded | the number of overlay link connection attempts that succeeded |
links_failed | the number of overlay link connection attempts that failed |
Definition at line 2882 of file gnunet-rps-profiler.c.
References churn_task, COLLECT_STATISTICS, cur_test_run, RPSPeer::cur_view, RPSPeer::cur_view_count, duration, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SCHEDULER_add_delayed(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_SCHEDULER_cancel(), GNUNET_SCHEDULER_shutdown(), GNUNET_TESTBED_peer_get_information(), GNUNET_TESTBED_PIT_IDENTITY, GNUNET_TESTBED_service_connect(), h, SingleTestRun::have_collect_statistics, SingleTestRun::have_collect_view, OpListEntry::index, RPSPeer::index, info_cb(), SingleTestRun::init_peer, make_oplist_entry(), NO_COLLECT_VIEW, num_peers, num_peers_online, ok, OpListEntry::op, RPSPeer::op, peers, post_test_op(), post_test_task, GNUNET_TIME_Relative::rel_value_us, rps_connect_adapter(), rps_connect_complete_cb(), rps_disconnect_adapter(), rps_peers, shutdown_op(), shutdown_task, stat_complete_cb(), stat_connect_adapter(), stat_disconnect_adapter(), RPSPeer::stat_op, testbed_peers, timeout, and trigger_shutdown().
Referenced by run().
|
static |
Entry point for the testcase, sets up the testbed.
argc | unused |
argv | unused |
Definition at line 2990 of file gnunet-rps-profiler.c.
References consensus-simulation::args, BIT, bits_needed, cfg, churn_task, COLLECT_STATISTICS, COLLECT_VIEW, cur_test_run, duration, SingleTestRun::eval_cb, GNUNET_assert, GNUNET_CONTAINER_multipeermap_create(), GNUNET_DISK_directory_create(), GNUNET_DISK_directory_remove(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_new_array, GNUNET_NO, GNUNET_TESTBED_run(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_UNIT_SECONDS, SingleTestRun::have_churn, SingleTestRun::have_collect_statistics, SingleTestRun::have_collect_view, HAVE_NO_CHURN, HAVE_QUICK_QUIT, SingleTestRun::have_quick_quit, SingleTestRun::init_peer, SingleTestRun::main_test, mal_type, SingleTestRun::name, num_peers, SingleTestRun::num_requests, ok, peer_map, post_profiler(), SingleTestRun::post_test, pre_profiler(), SingleTestRun::pre_test, profiler_cb(), profiler_eval(), profiler_init_peer(), profiler_reply_handle(), GNUNET_TIME_Relative::rel_value_us, SingleTestRun::reply_handle, SingleTestRun::request_interval, rps_peer_ids, rps_peers, SingleTestRun::stat_collect_flags, STAT_TYPE_BLOCKS, STAT_TYPE_BLOCKS_MANY_PUSH, STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL, STAT_TYPE_BLOCKS_NO_PULL, STAT_TYPE_BLOCKS_NO_PUSH, STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL, STAT_TYPE_ISSUED_PULL_REP, STAT_TYPE_ISSUED_PULL_REQ, STAT_TYPE_ISSUED_PULL_REQ_MH, STAT_TYPE_ISSUED_PUSH_SEND, STAT_TYPE_ISSUED_PUSH_SEND_MH, STAT_TYPE_KNOWN_PEERS, STAT_TYPE_LEARND_PEERS, STAT_TYPE_PEERS_IN_PULL_MAP, STAT_TYPE_PEERS_IN_PUSH_MAP, STAT_TYPE_PEERS_IN_VIEW, STAT_TYPE_PENDING_ONLINE_CHECKS, STAT_TYPE_RECV_PULL_REP, STAT_TYPE_RECV_PULL_REP_MH, STAT_TYPE_RECV_PULL_REQ, STAT_TYPE_RECV_PULL_REQ_MH, STAT_TYPE_RECV_PUSH_SEND, STAT_TYPE_RECV_PUSH_SEND_MH, STAT_TYPE_ROUNDS, STAT_TYPE_SENT_PULL_REP, STAT_TYPE_SENT_PULL_REQ, STAT_TYPE_SENT_PULL_REQ_MH, STAT_TYPE_SENT_PUSH_SEND, STAT_TYPE_UNREQUESTED_PULL_REPLIES, STAT_TYPE_VALID_PEERS, STAT_TYPE_VIEW_SIZE, STAT_TYPE_VIEW_SIZE_AIM, target_peer, test_run(), and timeout.
Referenced by main().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Entry point for the testcase, sets up the testbed.
argc | unused |
argv | unused |
Definition at line 3129 of file gnunet-rps-profiler.c.
References cur_test_run, RPSPeer::cur_view, RPSPeer::cur_view_count, duration, SingleTestRun::eval_cb, gettext_noop, GNUNET_array_grow, GNUNET_CONTAINER_multipeermap_destroy(), GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_relative_time(), GNUNET_GETOPT_option_uint(), GNUNET_log, GNUNET_OK, GNUNET_PROGRAM_run(), SingleTestRun::have_collect_view, NO_COLLECT_VIEW, num_peers, SingleTestRun::num_requests, options, peer_map, rps_peer_ids, rps_peers, run(), and timeout.
|
static |
How many peers do we start?
Definition at line 44 of file gnunet-rps-profiler.c.
Referenced by check_statistics_collect_completed(), churn(), compute_diversity(), compute_probabilities(), count_peer_in_views(), count_peer_in_views_2(), cumulated_view_sizes(), evaluate(), file_name_cb(), get_idx_of_pid(), main(), post_test_op(), pre_profiler(), print_view_sizes(), run(), shutdown_op(), test_run(), and write_final_stats().
|
static |
number of bits required to represent the largest peer id
Definition at line 49 of file gnunet-rps-profiler.c.
Referenced by profiler_reply_handle(), profiler_reply_handle_info(), run(), and to_file_raw_unaligned().
|
static |
How long do we run the test?
Definition at line 49 of file gnunet-rps-profiler.c.
Referenced by check_iteration_start(), consider_sending_fc(), do_directory_scan(), experiment_done_cb(), GNUNET_CURL_perform2(), main(), process_queue(), run(), shutdown_task(), solver_bandwidth_changed_cb(), and test_run().
|
static |
When do we do a hard shutdown?
Definition at line 49 of file gnunet-rps-profiler.c.
Referenced by main(), run(), and test_run().
|
static |
Type of malicious peer to test.
Definition at line 70 of file gnunet-rps-profiler.c.
Referenced by compute_rand_delay(), handle_peer_pull_request(), handle_peer_push(), and run().
|
static |
Handles to all of the running peers.
Definition at line 75 of file gnunet-rps-profiler.c.
Referenced by manage_service_wrapper(), test_master(), test_run(), and tmain().
|
static |
Definition at line 114 of file gnunet-rps-profiler.c.
Referenced by clean_peer(), and post_profiler().
|
static |
OpList DLL head.
Definition at line 426 of file gnunet-rps-profiler.c.
Referenced by churn_cb(), info_cb(), make_oplist_entry(), and shutdown_op().
|
static |
OpList DLL tail.
Definition at line 431 of file gnunet-rps-profiler.c.
Referenced by churn_cb(), info_cb(), make_oplist_entry(), and shutdown_op().
|
static |
Information for all the peers.
Definition at line 618 of file gnunet-rps-profiler.c.
Referenced by check_statistics_collect_completed(), churn(), churn_cb(), clean_peer(), compute_diversity(), compute_probabilities(), count_containing_views(), count_peer_in_views(), count_peer_in_views_2(), cumulated_view_sizes(), evaluate(), get_idx_of_pid(), info_cb(), is_in_view(), main(), manage_service_wrapper(), post_test_op(), print_view_sizes(), run(), test_run(), and write_final_stats().
|
static |
Peermap to get the index of a given peer ID quick.
Definition at line 623 of file gnunet-rps-profiler.c.
Referenced by check_peer_flag(), check_peer_known(), get_peer_ctx(), info_cb(), main(), profiler_reply_handle(), profiler_reply_handle_info(), and run().
|
static |
IDs of the peers.
Definition at line 628 of file gnunet-rps-profiler.c.
Referenced by file_name_cb(), info_cb(), main(), and run().
|
static |
|
static |
Number of online peers.
Definition at line 638 of file gnunet-rps-profiler.c.
Referenced by churn(), churn_cb(), rps_connect_complete_cb(), and test_run().
|
static |
The added sizes of the peer's views.
Definition at line 643 of file gnunet-rps-profiler.c.
Referenced by cumulated_view_sizes(), and view_update_cb().
|
static |
Return value from 'main'.
Definition at line 648 of file gnunet-rps-profiler.c.
Referenced by rps_connect_complete_cb(), run(), and test_run().
|
static |
Identifier for the task that runs after the test to collect results.
Definition at line 653 of file gnunet-rps-profiler.c.
Referenced by default_reply_handle(), post_test_op(), shutdown_op(), and test_run().
|
static |
Identifier for the shutdown task.
Definition at line 658 of file gnunet-rps-profiler.c.
Referenced by post_test_op(), shutdown_op(), test_run(), and trigger_shutdown().
|
static |
Identifier for the churn task that runs periodically.
Definition at line 664 of file gnunet-rps-profiler.c.
Referenced by churn(), post_test_op(), profiler_cb(), run(), shutdown_op(), and test_run().
struct SingleTestRun cur_test_run |
|
static |
Did we finish the test?
Definition at line 850 of file gnunet-rps-profiler.c.
Referenced by churn(), churn_cb(), default_reply_handle(), info_cb(), post_test_op(), profiler_cb(), request_peers(), and rps_connect_complete_cb().
|
static |
Are we shutting down?
Definition at line 855 of file gnunet-rps-profiler.c.
Referenced by churn(), churn_cb(), info_cb(), profiler_cb(), request_peers(), rps_connect_complete_cb(), and shutdown_op().