Data Fields | |
struct GNUNET_HashCode | hash |
Hash of the shared value that defines Subs. More... | |
struct GNUNET_CADET_Port * | cadet_port |
Port to communicate to other peers. More... | |
struct GNUNET_CONTAINER_MultiPeerMap * | valid_peers |
Hashmap of valid peers. More... | |
char * | filename_valid_peers |
Filename of the file that stores the valid peers persistently. More... | |
struct GNUNET_CONTAINER_MultiPeerMap * | peer_map |
Set of all peers to keep track of them. More... | |
unsigned int | sampler_size_est_min |
This is the minimum estimate used as sampler size. More... | |
unsigned int | sampler_size_est_need |
The size of sampler we need to be able to satisfy the Brahms protocol's need of random peers. More... | |
struct GNUNET_TIME_Relative | round_interval |
Time interval the do_round task runs in. More... | |
struct RPS_Sampler * | sampler |
Sampler used for the Brahms protocol itself. More... | |
uint32_t | num_observed_peers |
Count the observed peers. More... | |
struct GNUNET_CONTAINER_MultiPeerMap * | observed_unique_peers |
Multipeermap (ab-) used to count unique peer_ids. More... | |
struct CustomPeerMap * | push_map |
List to store peers received through pushes temporary. More... | |
struct CustomPeerMap * | pull_map |
List to store peers received through pulls temporary. More... | |
unsigned int | view_size_est_need |
This is the estimate used as view size. More... | |
unsigned int | view_size_est_min |
This is the minimum estimate used as view size. More... | |
struct View * | view |
The view. More... | |
struct GNUNET_SCHEDULER_Task * | do_round_task |
Identifier for the main task that runs periodically. More... | |
uint32_t | num_rounds |
Counts the executed rounds. More... | |
uint32_t | push_recv [32] |
This array accumulates the number of received pushes per round. More... | |
uint32_t | push_delta [32] |
Histogram of deltas between the expected and actual number of received pushes. More... | |
uint32_t | pull_delays [32] |
Number of pull replies with this delay measured in rounds. More... | |
One Sub.
Essentially one instance of brahms that only connects to other instances with the same (secret) value.
Definition at line 305 of file gnunet-service-rps.c.
struct GNUNET_HashCode Sub::hash |
Hash of the shared value that defines Subs.
Definition at line 310 of file gnunet-service-rps.c.
Referenced by get_channel(), handle_client_start_sub(), handle_client_stop_sub(), and new_sub().
struct GNUNET_CADET_Port* Sub::cadet_port |
Port to communicate to other peers.
Definition at line 315 of file gnunet-service-rps.c.
Referenced by destroy_sub(), and new_sub().
struct GNUNET_CONTAINER_MultiPeerMap* Sub::valid_peers |
Hashmap of valid peers.
Definition at line 320 of file gnunet-service-rps.c.
Referenced by add_valid_peer(), handle_inbound_channel(), handle_peer_pull_reply(), mq_online_check_successful(), new_sub(), peers_terminate(), restore_valid_peers(), run(), and store_valid_peers().
char* Sub::filename_valid_peers |
Filename of the file that stores the valid peers persistently.
Definition at line 325 of file gnunet-service-rps.c.
Referenced by new_sub(), peers_terminate(), restore_valid_peers(), and store_valid_peers().
struct GNUNET_CONTAINER_MultiPeerMap* Sub::peer_map |
Set of all peers to keep track of them.
Definition at line 330 of file gnunet-service-rps.c.
Referenced by check_connected(), check_peer_pull_reply(), check_removable(), check_sending_channel_exists(), check_sending_channel_needed(), clean_peer(), create_or_get_peer_ctx(), create_peer_ctx(), destroy_peer(), destroy_sending_channel(), do_round(), got_peer(), handle_inbound_channel(), handle_peer_pull_reply(), handle_peer_pull_request(), handle_peer_push(), hist_update(), indicate_sending_intention(), insert_in_view(), insert_peer(), issue_peer_online_check(), new_sub(), peermap_clear_iterator(), peers_terminate(), remove_peer(), schedule_operation(), and send_pull_request().
unsigned int Sub::sampler_size_est_min |
This is the minimum estimate used as sampler size.
It is configured by the user.
Definition at line 337 of file gnunet-service-rps.c.
Referenced by handle_client_start_sub(), and new_sub().
unsigned int Sub::sampler_size_est_need |
The size of sampler we need to be able to satisfy the Brahms protocol's need of random peers.
This is one minimum size the sampler grows to.
Definition at line 345 of file gnunet-service-rps.c.
Referenced by adapt_sizes(), and new_sub().
struct GNUNET_TIME_Relative Sub::round_interval |
Time interval the do_round task runs in.
Definition at line 350 of file gnunet-service-rps.c.
Referenced by do_round(), and new_sub().
struct RPS_Sampler* Sub::sampler |
Sampler used for the Brahms protocol itself.
Definition at line 355 of file gnunet-service-rps.c.
Referenced by adapt_sizes(), check_sending_channel_needed(), clean_peer(), destroy_sub(), do_round(), insert_in_sampler(), new_sub(), remove_peer(), and resize_wrapper().
uint32_t Sub::num_observed_peers |
Count the observed peers.
Definition at line 375 of file gnunet-service-rps.c.
Referenced by insert_in_sampler(), and new_sub().
struct GNUNET_CONTAINER_MultiPeerMap* Sub::observed_unique_peers |
Multipeermap (ab-) used to count unique peer_ids.
Definition at line 380 of file gnunet-service-rps.c.
Referenced by destroy_sub(), insert_in_sampler(), and new_sub().
struct CustomPeerMap* Sub::push_map |
List to store peers received through pushes temporary.
Definition at line 386 of file gnunet-service-rps.c.
Referenced by check_sending_channel_needed(), clean_peer(), destroy_sub(), do_round(), handle_peer_push(), new_sub(), and remove_peer().
struct CustomPeerMap* Sub::pull_map |
List to store peers received through pulls temporary.
Definition at line 391 of file gnunet-service-rps.c.
Referenced by check_sending_channel_needed(), clean_peer(), destroy_sub(), do_round(), handle_peer_pull_reply(), insert_in_pull_map(), new_sub(), and remove_peer().
unsigned int Sub::view_size_est_need |
This is the estimate used as view size.
It is initialised with the minimum
Definition at line 398 of file gnunet-service-rps.c.
Referenced by adapt_sizes(), and do_round().
unsigned int Sub::view_size_est_min |
This is the minimum estimate used as view size.
It is configured by the user.
Definition at line 405 of file gnunet-service-rps.c.
Referenced by adapt_sizes(), and new_sub().
struct View* Sub::view |
The view.
Definition at line 410 of file gnunet-service-rps.c.
Referenced by adapt_sizes(), check_sending_channel_needed(), clean_peer(), clients_notify_view_update(), destroy_sub(), do_round(), handle_peer_pull_request(), insert_in_view(), new_sub(), remove_peer(), and send_view().
struct GNUNET_SCHEDULER_Task* Sub::do_round_task |
Identifier for the main task that runs periodically.
Definition at line 415 of file gnunet-service-rps.c.
Referenced by destroy_sub(), do_round(), and new_sub().
uint32_t Sub::num_rounds |
Counts the executed rounds.
Definition at line 422 of file gnunet-service-rps.c.
Referenced by do_round(), handle_peer_pull_reply(), and send_pull_request().
uint32_t Sub::push_recv[32] |
This array accumulates the number of received pushes per round.
Number at index i represents the number of rounds with i observed pushes.
Definition at line 429 of file gnunet-service-rps.c.
Referenced by do_round().
uint32_t Sub::push_delta[32] |
Histogram of deltas between the expected and actual number of received pushes.
As half of the entries are expected to be negative, this is shifted by HISTOGRAM_FILE_SLOTS/2.
Definition at line 438 of file gnunet-service-rps.c.
Referenced by do_round().
uint32_t Sub::pull_delays[32] |
Number of pull replies with this delay measured in rounds.
Number at index i represents the number of pull replies with a delay of i rounds.
Definition at line 446 of file gnunet-service-rps.c.
Referenced by handle_peer_pull_reply().