GNUnet  0.11.x
Data Fields
NeighbourMapEntry Struct Reference

Entry in neighbours. More...

Collaboration diagram for NeighbourMapEntry:
[legend]

Data Fields

struct MessageQueuemessages_head
 Head of list of messages we would like to send to this peer; must contain at most one message per client. More...
 
struct MessageQueuemessages_tail
 Tail of list of messages we would like to send to this peer; must contain at most one message per client. More...
 
struct MessageQueueis_active
 Are we currently trying to send a message? If so, which one? More...
 
struct NeighbourAddress primary_address
 Primary address we currently use to communicate with the neighbour. More...
 
struct NeighbourAddress alternative_address
 Alternative address currently under consideration for communicating with the neighbour. More...
 
struct GNUNET_PeerIdentity id
 Identity of this neighbour. More...
 
struct GNUNET_SCHEDULER_Tasktask
 Main task that drives this peer (timeouts, keepalives, etc.). More...
 
struct GNUNET_SCHEDULER_Taskdelayed_disconnect_task
 Task to disconnect neighbour after we received a DISCONNECT message. More...
 
struct GNUNET_TIME_Absolute keep_alive_time
 At what time should we sent the next keep-alive message? More...
 
struct GNUNET_TIME_Absolute last_keep_alive_time
 At what time did we sent the last keep-alive message? Used to calculate round-trip time ("latency"). More...
 
struct GNUNET_TIME_Absolute connect_ack_timestamp
 Timestamp we should include in our next SYN_ACK message. More...
 
struct GNUNET_ATS_ConnectivitySuggestHandlesuggest_handle
 ATS address suggest handle. More...
 
struct GNUNET_TIME_Absolute timeout
 Time where we should cut the connection (timeout) if we don't make progress in the state machine (or get a KEEPALIVE_RESPONSE if we are in GNUNET_TRANSPORT_PS_CONNECTED). More...
 
struct GNUNET_BANDWIDTH_Tracker in_tracker
 Tracker for inbound bandwidth. More...
 
unsigned int quota_violation_count
 How often has the other peer (recently) violated the inbound traffic limit? Incremented by 10 per violation, decremented by 1 per non-violation (for each time interval). More...
 
struct GNUNET_BANDWIDTH_Value32NBO neighbour_receive_quota
 Latest quota the other peer send us in bytes per second. More...
 
enum GNUNET_TRANSPORT_PeerState state
 The current state of the peer. More...
 
int expect_latency_response
 Did we sent an KEEP_ALIVE message and are we expecting a response? More...
 
enum GST_ACK_State ack_state
 When a peer wants to connect we have to reply to the 1st SYN message with a SYN_ACK message. More...
 
uint32_t util_total_bytes_sent
 Tracking utilization of outbound bandwidth. More...
 
uint32_t util_total_bytes_recv
 Tracking utilization of inbound bandwidth. More...
 
struct GNUNET_TIME_Absolute last_util_transmission
 Date of last utilization transmission. More...
 

Detailed Description

Entry in neighbours.

Definition at line 322 of file gnunet-service-transport_neighbours.c.

Field Documentation

◆ messages_head

struct MessageQueue* NeighbourMapEntry::messages_head

Head of list of messages we would like to send to this peer; must contain at most one message per client.

Definition at line 328 of file gnunet-service-transport_neighbours.c.

Referenced by free_neighbour(), GST_neighbours_send(), and try_transmission_to_peer().

◆ messages_tail

struct MessageQueue* NeighbourMapEntry::messages_tail

Tail of list of messages we would like to send to this peer; must contain at most one message per client.

Definition at line 334 of file gnunet-service-transport_neighbours.c.

Referenced by free_neighbour(), GST_neighbours_send(), and try_transmission_to_peer().

◆ is_active

struct MessageQueue* NeighbourMapEntry::is_active

Are we currently trying to send a message? If so, which one?

Definition at line 339 of file gnunet-service-transport_neighbours.c.

Referenced by free_neighbour(), transmit_send_continuation(), and try_transmission_to_peer().

◆ primary_address

struct NeighbourAddress NeighbourMapEntry::primary_address

◆ alternative_address

struct NeighbourAddress NeighbourMapEntry::alternative_address

◆ id

struct GNUNET_PeerIdentity NeighbourMapEntry::id

◆ task

struct GNUNET_SCHEDULER_Task* NeighbourMapEntry::task

◆ delayed_disconnect_task

struct GNUNET_SCHEDULER_Task* NeighbourMapEntry::delayed_disconnect_task

Task to disconnect neighbour after we received a DISCONNECT message.

Definition at line 366 of file gnunet-service-transport_neighbours.c.

Referenced by delayed_disconnect(), free_neighbour(), and GST_neighbours_handle_disconnect_message().

◆ keep_alive_time

struct GNUNET_TIME_Absolute NeighbourMapEntry::keep_alive_time

At what time should we sent the next keep-alive message?

Definition at line 371 of file gnunet-service-transport_neighbours.c.

Referenced by master_task(), and send_keepalive().

◆ last_keep_alive_time

struct GNUNET_TIME_Absolute NeighbourMapEntry::last_keep_alive_time

At what time did we sent the last keep-alive message? Used to calculate round-trip time ("latency").

Definition at line 377 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_keepalive_response(), and send_keepalive().

◆ connect_ack_timestamp

struct GNUNET_TIME_Absolute NeighbourMapEntry::connect_ack_timestamp

Timestamp we should include in our next SYN_ACK message.

(only valid if 'send_connect_ack' is GNUNET_YES). Used to build our SYN_ACK message.

Definition at line 384 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_handle_disconnect_message(), GST_neighbours_handle_session_syn(), and switch_address_bl_check_cont().

◆ suggest_handle

struct GNUNET_ATS_ConnectivitySuggestHandle* NeighbourMapEntry::suggest_handle

ATS address suggest handle.

Definition at line 389 of file gnunet-service-transport_neighbours.c.

Referenced by free_neighbour(), and setup_neighbour().

◆ timeout

struct GNUNET_TIME_Absolute NeighbourMapEntry::timeout

Time where we should cut the connection (timeout) if we don't make progress in the state machine (or get a KEEPALIVE_RESPONSE if we are in GNUNET_TRANSPORT_PS_CONNECTED).

Definition at line 396 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_session_terminated(), master_task(), neighbours_iterate(), set_primary_address(), set_state_and_timeout(), switch_address_bl_check_cont(), and unset_primary_address().

◆ in_tracker

struct GNUNET_BANDWIDTH_Tracker NeighbourMapEntry::in_tracker

Tracker for inbound bandwidth.

Definition at line 401 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_calculate_receive_delay(), set_incoming_quota(), and setup_neighbour().

◆ quota_violation_count

unsigned int NeighbourMapEntry::quota_violation_count

How often has the other peer (recently) violated the inbound traffic limit? Incremented by 10 per violation, decremented by 1 per non-violation (for each time interval).

Definition at line 408 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_calculate_receive_delay().

◆ neighbour_receive_quota

struct GNUNET_BANDWIDTH_Value32NBO NeighbourMapEntry::neighbour_receive_quota

Latest quota the other peer send us in bytes per second.

We should not send more, least the other peer throttle receiving our traffic.

Definition at line 415 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_handle_quota_message(), neighbours_connect_notification(), send_outbound_quota_to_clients(), and setup_neighbour().

◆ state

enum GNUNET_TRANSPORT_PeerState NeighbourMapEntry::state

◆ expect_latency_response

int NeighbourMapEntry::expect_latency_response

Did we sent an KEEP_ALIVE message and are we expecting a response?

Definition at line 425 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_keepalive_response(), GST_neighbours_session_terminated(), and send_keepalive().

◆ ack_state

enum GST_ACK_State NeighbourMapEntry::ack_state

When a peer wants to connect we have to reply to the 1st SYN message with a SYN_ACK message.

But sometime we cannot send this message immediately since we do not have an address and then we have to remember to send this message as soon as we have an address.

Flag to set if we still need to send a SYN_ACK message to the other peer (once we have an address to use and the peer has been allowed by our blacklist). Initially set to ACK_UNDEFINED. Set to ACK_SEND_SYN_ACK if we need to send a SYN_ACK. Set to ACK_SEND_ACK if we did send a SYN_ACK and should go to #S_CONNECTED upon receiving a 'ACK' (regardless of what our own state machine might say).

Definition at line 440 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_handle_session_ack(), GST_neighbours_handle_session_syn(), GST_neighbours_handle_session_syn_ack(), send_session_syn_ack_cont(), send_syn_ack_message(), setup_neighbour(), and switch_address_bl_check_cont().

◆ util_total_bytes_sent

uint32_t NeighbourMapEntry::util_total_bytes_sent

Tracking utilization of outbound bandwidth.

Definition at line 445 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_notify_data_sent(), and send_utilization_data().

◆ util_total_bytes_recv

uint32_t NeighbourMapEntry::util_total_bytes_recv

Tracking utilization of inbound bandwidth.

Definition at line 450 of file gnunet-service-transport_neighbours.c.

Referenced by GST_neighbours_notify_data_recv(), and send_utilization_data().

◆ last_util_transmission

struct GNUNET_TIME_Absolute NeighbourMapEntry::last_util_transmission

Date of last utilization transmission.

Definition at line 455 of file gnunet-service-transport_neighbours.c.

Referenced by send_utilization_data(), and setup_neighbour().


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