GNUnet  0.11.x
Data Fields
Sub Struct Reference

One Sub. More...

Collaboration diagram for Sub:
[legend]

Data Fields

struct GNUNET_HashCode hash
 Hash of the shared value that defines Subs. More...
 
struct GNUNET_CADET_Portcadet_port
 Port to communicate to other peers. More...
 
struct GNUNET_CONTAINER_MultiPeerMapvalid_peers
 Hashmap of valid peers. More...
 
char * filename_valid_peers
 Filename of the file that stores the valid peers persistently. More...
 
struct GNUNET_CONTAINER_MultiPeerMappeer_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_Samplersampler
 Sampler used for the Brahms protocol itself. More...
 
uint32_t num_observed_peers
 Count the observed peers. More...
 
struct GNUNET_CONTAINER_MultiPeerMapobserved_unique_peers
 Multipeermap (ab-) used to count unique peer_ids. More...
 
struct CustomPeerMappush_map
 List to store peers received through pushes temporary. More...
 
struct CustomPeerMappull_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 Viewview
 The view. More...
 
struct GNUNET_SCHEDULER_Taskdo_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...
 

Detailed Description

One Sub.

Essentially one instance of brahms that only connects to other instances with the same (secret) value.

Definition at line 304 of file gnunet-service-rps.c.

Field Documentation

◆ hash

struct GNUNET_HashCode Sub::hash

Hash of the shared value that defines Subs.

Definition at line 309 of file gnunet-service-rps.c.

Referenced by get_channel(), handle_client_start_sub(), handle_client_stop_sub(), and new_sub().

◆ cadet_port

struct GNUNET_CADET_Port* Sub::cadet_port

Port to communicate to other peers.

Definition at line 314 of file gnunet-service-rps.c.

Referenced by destroy_sub(), and new_sub().

◆ valid_peers

struct GNUNET_CONTAINER_MultiPeerMap* Sub::valid_peers

◆ filename_valid_peers

char* Sub::filename_valid_peers

Filename of the file that stores the valid peers persistently.

Definition at line 324 of file gnunet-service-rps.c.

Referenced by new_sub(), peers_terminate(), restore_valid_peers(), and store_valid_peers().

◆ peer_map

struct GNUNET_CONTAINER_MultiPeerMap* Sub::peer_map

◆ sampler_size_est_min

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 336 of file gnunet-service-rps.c.

Referenced by handle_client_start_sub(), and new_sub().

◆ sampler_size_est_need

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 344 of file gnunet-service-rps.c.

Referenced by adapt_sizes(), and new_sub().

◆ round_interval

struct GNUNET_TIME_Relative Sub::round_interval

Time interval the do_round task runs in.

Definition at line 349 of file gnunet-service-rps.c.

Referenced by do_round(), new_sub(), and send_push().

◆ sampler

struct RPS_Sampler* Sub::sampler

Sampler used for the Brahms protocol itself.

Definition at line 354 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(), and remove_peer().

◆ num_observed_peers

uint32_t Sub::num_observed_peers

Count the observed peers.

Definition at line 374 of file gnunet-service-rps.c.

Referenced by insert_in_sampler(), and new_sub().

◆ observed_unique_peers

struct GNUNET_CONTAINER_MultiPeerMap* Sub::observed_unique_peers

Multipeermap (ab-) used to count unique peer_ids.

Definition at line 379 of file gnunet-service-rps.c.

Referenced by destroy_sub(), insert_in_sampler(), and new_sub().

◆ push_map

struct CustomPeerMap* Sub::push_map

List to store peers received through pushes temporary.

Definition at line 385 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().

◆ pull_map

struct CustomPeerMap* Sub::pull_map

List to store peers received through pulls temporary.

Definition at line 390 of file gnunet-service-rps.c.

Referenced by check_sending_channel_needed(), destroy_sub(), do_round(), handle_peer_pull_reply(), insert_in_pull_map(), new_sub(), and remove_peer().

◆ view_size_est_need

unsigned int Sub::view_size_est_need

This is the estimate used as view size.

It is initialised with the minimum

Definition at line 397 of file gnunet-service-rps.c.

Referenced by adapt_sizes(), and do_round().

◆ view_size_est_min

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 404 of file gnunet-service-rps.c.

Referenced by adapt_sizes(), and new_sub().

◆ view

struct View* Sub::view

◆ do_round_task

struct GNUNET_SCHEDULER_Task* Sub::do_round_task

Identifier for the main task that runs periodically.

Definition at line 414 of file gnunet-service-rps.c.

Referenced by destroy_sub(), do_round(), new_sub(), and send_push().

◆ num_rounds

uint32_t Sub::num_rounds

Counts the executed rounds.

Definition at line 421 of file gnunet-service-rps.c.

Referenced by do_round(), handle_peer_pull_reply(), and send_pull_request().

◆ push_recv

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 428 of file gnunet-service-rps.c.

Referenced by destroy_sub(), and do_round().

◆ push_delta

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 437 of file gnunet-service-rps.c.

Referenced by destroy_sub(), and do_round().

◆ pull_delays

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 445 of file gnunet-service-rps.c.

Referenced by destroy_sub(), and handle_peer_pull_reply().


The documentation for this struct was generated from the following file: