GNUnet  0.20.0
CadetPeer Struct Reference

Peer description. More...

Collaboration diagram for CadetPeer:
[legend]

Data Fields

struct GNUNET_TESTBED_Operationop
 Testbed Operation (to get peer id, etc). More...
 
struct GNUNET_PeerIdentity id
 Peer ID. More...
 
struct GNUNET_CADET_Handlecadet
 Cadet handle for the root peer. More...
 
struct GNUNET_CADET_Channelch
 Channel handle for the root peer. More...
 
struct GNUNET_CADET_Channelincoming_ch
 Channel handle for the dest peer. More...
 
struct GNUNET_CADET_Channelwarmup_ch
 Channel handle for a warmup channel. More...
 
int data_sent
 Number of payload packes sent. More...
 
int data_received
 Number of payload packets received. More...
 
int up
 Is peer up? More...
 
struct CadetPeerdest
 Destinaton to ping. More...
 
struct CadetPeerincoming
 Incoming channel for pings. More...
 
struct GNUNET_SCHEDULER_Taskping_task
 Task to do the next ping. More...
 
struct GNUNET_CADET_TransmitHandle * ping_ntr
 NTR operation for the next ping. More...
 
float mean [sizeof(rounds)/sizeof(rounds[0])]
 
float var [sizeof(rounds)/sizeof(rounds[0])]
 
unsigned int pongs [sizeof(rounds)/sizeof(rounds[0])]
 
unsigned int pings [sizeof(rounds)/sizeof(rounds[0])]
 
struct GNUNET_PeerIdentity pid
 ID of the peer. More...
 
struct GNUNET_TIME_Absolute last_connection_create
 Last time we heard from this peer (currently not used!) More...
 
struct CadetPeerPathEntry ** path_heads
 Array of DLLs of paths traversing the peer, organized by the offset of the peer on the larger path. More...
 
struct CadetPeerPathEntry ** path_tails
 Array of DLL of paths traversing the peer, organized by the offset of the peer on the larger path. More...
 
struct GCP_MessageQueueManagermqm_head
 Notifications to call when core_mq changes. More...
 
struct GCP_MessageQueueManagermqm_tail
 Notifications to call when core_mq changes. More...
 
struct GCP_MessageQueueManagermqm_ready_ptr
 Pointer to first "ready" entry in mqm_head. More...
 
struct GNUNET_CONTAINER_Heappath_heap
 MIN-heap of paths owned by this peer (they also end at this peer). More...
 
struct GCD_search_handlesearch_h
 Handle to stop the DHT search for paths to this peer. More...
 
struct GNUNET_SCHEDULER_Taskheap_cleanup_task
 Task to clean up path_heap asynchronously. More...
 
struct GNUNET_SCHEDULER_Taskdestroy_task
 Task to destroy this entry. More...
 
struct CadetTunnelt
 Tunnel to this peer, if any. More...
 
struct GNUNET_CONTAINER_MultiShortmapconnections
 Connections that go through this peer; indexed by tid. More...
 
struct GNUNET_MQ_Handlecore_mq
 Handle for core transmissions. More...
 
struct GNUNET_HELLO_Messagehello
 Hello message of the peer. More...
 
struct GNUNET_TRANSPORT_OfferHelloHandlehello_offer
 Handle to us offering the HELLO to the transport. More...
 
struct GNUNET_ATS_ConnectivitySuggestHandleconnectivity_suggestion
 Handle to our ATS request asking ATS to suggest an address to TRANSPORT for this peer (to establish a direct link). More...
 
unsigned int queue_n
 How many messages are in the queue to this peer. More...
 
unsigned int num_paths
 How many paths do we have to this peer (in all path_heads DLLs combined). More...
 
unsigned int off_sum
 Sum over all of the offsets of all of the paths in the path_heads DLLs. More...
 
unsigned int mqm_ready_counter
 Number of message queue managers of this peer that have a message in waiting. More...
 
unsigned int path_dll_length
 Current length of the path_heads and path_tails arrays. More...
 

Detailed Description

Peer description.

Struct containing all information regarding a given peer.

Definition at line 90 of file gnunet-cadet-profiler.c.

Field Documentation

◆ op

struct GNUNET_TESTBED_Operation* CadetPeer::op

Testbed Operation (to get peer id, etc).

Definition at line 95 of file gnunet-cadet-profiler.c.

Referenced by peer_id_cb(), and tmain().

◆ id

struct GNUNET_PeerIdentity CadetPeer::id

Peer ID.

Definition at line 95 of file gnunet-cadet-profiler.c.

Referenced by peer_id_cb(), and gnunet_testing.Peer::start().

◆ cadet

struct GNUNET_CADET_Handle* CadetPeer::cadet

Cadet handle for the root peer.

Definition at line 105 of file gnunet-cadet-profiler.c.

Referenced by tmain().

◆ ch

struct GNUNET_CADET_Channel* CadetPeer::ch

Channel handle for the root peer.

Definition at line 110 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers(), and start_test().

◆ incoming_ch

struct GNUNET_CADET_Channel* CadetPeer::incoming_ch

Channel handle for the dest peer.

Definition at line 115 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers(), disconnect_cadet_peers(), and incoming_channel().

◆ warmup_ch

struct GNUNET_CADET_Channel* CadetPeer::warmup_ch

Channel handle for a warmup channel.

Definition at line 120 of file gnunet-cadet-profiler.c.

Referenced by disconnect_cadet_peers(), and warmup().

◆ data_sent

int CadetPeer::data_sent

Number of payload packes sent.

Definition at line 125 of file gnunet-cadet-profiler.c.

◆ data_received

int CadetPeer::data_received

Number of payload packets received.

Definition at line 130 of file gnunet-cadet-profiler.c.

◆ up

int CadetPeer::up

Is peer up?

Definition at line 135 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers(), disconnect_cadet_peers(), and tmain().

◆ dest

struct CadetPeer* CadetPeer::dest

Destinaton to ping.

Definition at line 140 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers(), and start_test().

◆ incoming

struct CadetPeer* CadetPeer::incoming

Incoming channel for pings.

Definition at line 145 of file gnunet-cadet-profiler.c.

Referenced by incoming_channel(), and select_random_peer().

◆ ping_task

struct GNUNET_SCHEDULER_Task* CadetPeer::ping_task

Task to do the next ping.

Definition at line 150 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers(), and start_test().

◆ ping_ntr

struct GNUNET_CADET_TransmitHandle* CadetPeer::ping_ntr

NTR operation for the next ping.

Definition at line 155 of file gnunet-cadet-profiler.c.

Referenced by adjust_running_peers().

◆ mean

float CadetPeer::mean[sizeof(rounds)/sizeof(rounds[0])]

Definition at line 157 of file gnunet-cadet-profiler.c.

◆ var

float CadetPeer::var[sizeof(rounds)/sizeof(rounds[0])]

Definition at line 158 of file gnunet-cadet-profiler.c.

◆ pongs

unsigned int CadetPeer::pongs[sizeof(rounds)/sizeof(rounds[0])]

Definition at line 159 of file gnunet-cadet-profiler.c.

◆ pings

unsigned int CadetPeer::pings[sizeof(rounds)/sizeof(rounds[0])]

Definition at line 160 of file gnunet-cadet-profiler.c.

◆ pid

◆ last_connection_create

struct GNUNET_TIME_Absolute CadetPeer::last_connection_create

Last time we heard from this peer (currently not used!)

Definition at line 104 of file gnunet-service-cadet_peer.c.

◆ path_heads

struct CadetPeerPathEntry** CadetPeer::path_heads

Array of DLLs of paths traversing the peer, organized by the offset of the peer on the larger path.

Definition at line 127 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_get_desirability_of_path(), GCP_iterate_indirect_paths(), GCP_iterate_paths(), GCP_iterate_paths_at(), GCP_path_entry_add(), and GCP_path_entry_remove().

◆ path_tails

struct CadetPeerPathEntry** CadetPeer::path_tails

Array of DLL of paths traversing the peer, organized by the offset of the peer on the larger path.

Definition at line 133 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_path_entry_add(), and GCP_path_entry_remove().

◆ mqm_head

struct GCP_MessageQueueManager* CadetPeer::mqm_head

Notifications to call when core_mq changes.

Definition at line 138 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_request_mq(), GCP_request_mq_cancel(), GCP_send(), GCP_set_mq(), and mqm_execute().

◆ mqm_tail

struct GCP_MessageQueueManager* CadetPeer::mqm_tail

Notifications to call when core_mq changes.

Definition at line 143 of file gnunet-service-cadet_peer.c.

Referenced by GCP_request_mq(), GCP_request_mq_cancel(), and mqm_execute().

◆ mqm_ready_ptr

struct GCP_MessageQueueManager* CadetPeer::mqm_ready_ptr

Pointer to first "ready" entry in mqm_head.

Definition at line 148 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_request_mq_cancel(), GCP_send(), mqm_execute(), and send_next_ready().

◆ path_heap

struct GNUNET_CONTAINER_Heap* CadetPeer::path_heap

MIN-heap of paths owned by this peer (they also end at this peer).

Ordered by desirability.

Definition at line 154 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_destroy(), destroy_peer(), drop_paths(), GCP_attach_path(), GCP_drop_owned_paths(), GCP_get(), and path_heap_cleanup().

◆ search_h

struct GCD_search_handle* CadetPeer::search_h

Handle to stop the DHT search for paths to this peer.

Definition at line 159 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_activate(), destroy_peer(), GCP_path_entry_add(), and GCP_path_entry_remove().

◆ heap_cleanup_task

struct GNUNET_SCHEDULER_Task* CadetPeer::heap_cleanup_task

Task to clean up path_heap asynchronously.

Definition at line 164 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_attach_path(), and path_heap_cleanup().

◆ destroy_task

◆ t

◆ connections

struct GNUNET_CONTAINER_MultiShortmap* CadetPeer::connections

Connections that go through this peer; indexed by tid.

Definition at line 179 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_activate(), consider_peer_destroy(), destroy_peer(), GCP_add_connection(), GCP_get(), and GCP_remove_connection().

◆ core_mq

◆ hello

struct GNUNET_HELLO_Message* CadetPeer::hello

Hello message of the peer.

Definition at line 189 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_destroy(), destroy_peer(), dht_get_id_handler(), GCP_set_hello(), and got_hello().

◆ hello_offer

struct GNUNET_TRANSPORT_OfferHelloHandle* CadetPeer::hello_offer

Handle to us offering the HELLO to the transport.

Definition at line 194 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_set_hello(), and hello_offer_done().

◆ connectivity_suggestion

struct GNUNET_ATS_ConnectivitySuggestHandle* CadetPeer::connectivity_suggestion

Handle to our ATS request asking ATS to suggest an address to TRANSPORT for this peer (to establish a direct link).

Definition at line 200 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_activate(), and destroy_peer().

◆ queue_n

unsigned int CadetPeer::queue_n

How many messages are in the queue to this peer.

Definition at line 205 of file gnunet-service-cadet_peer.c.

◆ num_paths

unsigned int CadetPeer::num_paths

How many paths do we have to this peer (in all path_heads DLLs combined).

Definition at line 210 of file gnunet-service-cadet_peer.c.

Referenced by consider_peer_activate(), consider_peer_destroy(), destroy_peer(), GCP_attach_path(), GCP_count_paths(), GCP_get_desirability_of_path(), GCP_path_entry_add(), and GCP_path_entry_remove().

◆ off_sum

unsigned int CadetPeer::off_sum

Sum over all of the offsets of all of the paths in the path_heads DLLs.

Used to speed-up GCP_get_desirability_of_path() calculation.

Definition at line 216 of file gnunet-service-cadet_peer.c.

Referenced by GCP_get_desirability_of_path(), GCP_path_entry_add(), and GCP_path_entry_remove().

◆ mqm_ready_counter

unsigned int CadetPeer::mqm_ready_counter

Number of message queue managers of this peer that have a message in waiting.

Used to quickly see if we need to bother scanning the msm_head DLL. TODO: could be replaced by another DLL that would then allow us to avoid the O(n)-scan of the DLL for ready entries!

Definition at line 225 of file gnunet-service-cadet_peer.c.

Referenced by GCP_send(), mqm_execute(), and send_next_ready().

◆ path_dll_length

unsigned int CadetPeer::path_dll_length

Current length of the path_heads and path_tails arrays.

The arrays should be grown as needed.

Definition at line 231 of file gnunet-service-cadet_peer.c.

Referenced by destroy_peer(), GCP_get_desirability_of_path(), GCP_iterate_indirect_paths(), GCP_iterate_paths(), GCP_iterate_paths_at(), and GCP_path_entry_add().


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