GNUnet 0.28.0-dev.5-89-ga1e177ed4
 
Loading...
Searching...
No Matches
GNUNET_TRANSPORT_LinkInformation Struct Reference

State of one virtual link, the abstraction CORE sits on top of. More...

#include <gnunet_transport_monitor_service.h>

Collaboration diagram for GNUNET_TRANSPORT_LinkInformation:
[legend]

Data Fields

const char * communicators
 Comma-separated address prefixes of the communicators currently carrying the link ("tcp", "udp", ...), never NULL but possibly the empty string.
 
enum GNUNET_TRANSPORT_LinkRoute route
 How the link is routed.
 
int confirmed
 GNUNET_YES if the link is confirmed, i.e.
 
unsigned int distance
 Hops of the shortest DV path, excluding the next hop and the target itself; so 0 already means two hops.
 
unsigned int num_queues
 Number of queues to the neighbour carrying the link.
 
int core_recv_window
 How many more messages we may hand to CORE before it must acknowledge them.
 
unsigned int stalled
 Number of messages whose flow control ACK transport is withholding because core_recv_window is exhausted.
 
unsigned int pending
 Number of messages queued for transmission to the target.
 
unsigned int fc_retransmit_count
 Number of flow control retransmissions of the running task.
 
uint64_t available_fc_window_size
 RAM transport is willing to spend on this link.
 
uint64_t incoming_fc_window_size_ram
 RAM currently held for this link.
 
uint64_t incoming_fc_window_size
 Window we last granted the other peer.
 
uint64_t incoming_fc_window_size_used
 How much of incoming_fc_window_size the other peer used.
 
int64_t incoming_fc_window_size_loss
 Current estimate of the message loss rate for the sender.
 
uint64_t outbound_fc_window_size
 Window the other peer granted us.
 
uint64_t outbound_fc_window_size_used
 How much of outbound_fc_window_size we used.
 
struct GNUNET_TIME_Relative last_fc_rtt
 RTT of the last flow control exchange.
 
struct GNUNET_TIME_Relative other_rtt
 RTT over all DV paths, as calculated by the target.
 
struct GNUNET_TIME_Absolute last_fc_transmission
 When did we last send a flow control message?
 

Detailed Description

State of one virtual link, the abstraction CORE sits on top of.

Definition at line 203 of file gnunet_transport_monitor_service.h.

Field Documentation

◆ communicators

const char* GNUNET_TRANSPORT_LinkInformation::communicators

Comma-separated address prefixes of the communicators currently carrying the link ("tcp", "udp", ...), never NULL but possibly the empty string.

For a DV link these are the communicators to the next hop of the shortest path, not to the target.

Definition at line 211 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), link_cb(), and print_link_verbose().

◆ route

enum GNUNET_TRANSPORT_LinkRoute GNUNET_TRANSPORT_LinkInformation::route

How the link is routed.

Definition at line 216 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and route_to_string().

◆ confirmed

int GNUNET_TRANSPORT_LinkInformation::confirmed

GNUNET_YES if the link is confirmed, i.e.

established.

Definition at line 221 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ distance

unsigned int GNUNET_TRANSPORT_LinkInformation::distance

Hops of the shortest DV path, excluding the next hop and the target itself; so 0 already means two hops.

Meaningless if route is GNUNET_TRANSPORT_LINK_ROUTE_DIRECT.

Definition at line 228 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and route_to_string().

◆ num_queues

unsigned int GNUNET_TRANSPORT_LinkInformation::num_queues

Number of queues to the neighbour carrying the link.

Definition at line 233 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ core_recv_window

int GNUNET_TRANSPORT_LinkInformation::core_recv_window

How many more messages we may hand to CORE before it must acknowledge them.

At or below zero exactly when transport is withholding flow control credit from the communicators; combined with a non-zero stalled that is a link CORE has stopped draining.

Definition at line 241 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), link_cb(), and print_link_verbose().

◆ stalled

unsigned int GNUNET_TRANSPORT_LinkInformation::stalled

Number of messages whose flow control ACK transport is withholding because core_recv_window is exhausted.

Definition at line 247 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), link_cb(), and print_link_verbose().

◆ pending

unsigned int GNUNET_TRANSPORT_LinkInformation::pending

Number of messages queued for transmission to the target.

Definition at line 252 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), link_cb(), and print_link_verbose().

◆ fc_retransmit_count

unsigned int GNUNET_TRANSPORT_LinkInformation::fc_retransmit_count

Number of flow control retransmissions of the running task.

Definition at line 257 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ available_fc_window_size

uint64_t GNUNET_TRANSPORT_LinkInformation::available_fc_window_size

RAM transport is willing to spend on this link.

Definition at line 262 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ incoming_fc_window_size_ram

uint64_t GNUNET_TRANSPORT_LinkInformation::incoming_fc_window_size_ram

RAM currently held for this link.

Definition at line 267 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ incoming_fc_window_size

uint64_t GNUNET_TRANSPORT_LinkInformation::incoming_fc_window_size

Window we last granted the other peer.

Definition at line 272 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ incoming_fc_window_size_used

uint64_t GNUNET_TRANSPORT_LinkInformation::incoming_fc_window_size_used

How much of incoming_fc_window_size the other peer used.

Definition at line 277 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ incoming_fc_window_size_loss

int64_t GNUNET_TRANSPORT_LinkInformation::incoming_fc_window_size_loss

Current estimate of the message loss rate for the sender.

May be negative on out-of-order delivery.

Definition at line 283 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ outbound_fc_window_size

uint64_t GNUNET_TRANSPORT_LinkInformation::outbound_fc_window_size

Window the other peer granted us.

Definition at line 288 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ outbound_fc_window_size_used

uint64_t GNUNET_TRANSPORT_LinkInformation::outbound_fc_window_size_used

How much of outbound_fc_window_size we used.

Definition at line 293 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ last_fc_rtt

struct GNUNET_TIME_Relative GNUNET_TRANSPORT_LinkInformation::last_fc_rtt

RTT of the last flow control exchange.

Definition at line 298 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), link_cb(), and print_link_verbose().

◆ other_rtt

struct GNUNET_TIME_Relative GNUNET_TRANSPORT_LinkInformation::other_rtt

RTT over all DV paths, as calculated by the target.

Definition at line 303 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().

◆ last_fc_transmission

struct GNUNET_TIME_Absolute GNUNET_TRANSPORT_LinkInformation::last_fc_transmission

When did we last send a flow control message?

Definition at line 308 of file gnunet_transport_monitor_service.h.

Referenced by handle_link_list_response(), and print_link_verbose().


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