GNUnet 0.21.1
Neighbour Struct Reference

A neighbour that at least one communicator is connected to. More...

Collaboration diagram for Neighbour:
[legend]

Data Fields

struct GNUNET_PeerIdentity pid
 Which peer is this about? More...
 
struct DistanceVectorHopdv_head
 Head of MDLL of DV hops that have this neighbour as next hop. More...
 
struct DistanceVectorHopdv_tail
 Tail of MDLL of DV hops that have this neighbour as next hop. More...
 
struct Queuequeue_head
 Head of DLL of queues to this peer. More...
 
struct Queuequeue_tail
 Tail of DLL of queues to this peer. More...
 
struct GNUNET_PEERSTORE_IterateContextget
 Handle for an operation to fetch last_dv_learn_monotime information from the PEERSTORE, or NULL. More...
 
struct GNUNET_PEERSTORE_StoreContextsc
 Handle to a PEERSTORE store operation to store this pid's last_dv_learn_monotime. More...
 
struct VirtualLinkvl
 Do we have a confirmed working queue and are thus visible to CORE? If so, this is the virtual link, otherwise NULL. More...
 
struct GNUNET_TIME_Absolute last_dv_learn_monotime
 Latest DVLearn monotonic time seen from this peer. More...
 
int dv_monotime_available
 Do we have the latest value for last_dv_learn_monotime from PEERSTORE yet, or are we still waiting for a reply of PEERSTORE? More...
 
struct GNUNET_CONTAINER_MultiPeerMapnatted_addresses
 Map of struct TransportGlobalNattedAddress for this neighbour. More...
 
unsigned int number_of_addresses
 Number of global natted addresses for this neighbour. More...
 
size_t size_of_global_addresses
 Size of all global natted addresses for this neighbour. More...
 
enum GNUNET_GenericReturnValue is_global_natted
 A queue of this neighbour has a global natted address. More...
 
struct GNUNET_PeerIdentity id
 Identity of this neighbour. More...
 
struct GNUNET_TRANSPORT_CoreHandleh
 Overall transport handle. More...
 
struct GNUNET_MQ_Handlemq
 Active message queue for the peer. More...
 
struct GNUNET_MQ_Envelopeenv
 Envelope with the message we are currently transmitting (or NULL). More...
 
void * handlers_cls
 Closure for mq handlers. More...
 
unsigned int ready_window
 How many messages can we still send to this peer before we should throttle? More...
 
int16_t awaiting_done
 Used to indicate our status if env is non-NULL. More...
 
uint16_t env_size
 Size of the message in env. More...
 

Detailed Description

A neighbour that at least one communicator is connected to.

Entry in hash table of all of our current (connected) neighbours.

Definition at line 2018 of file gnunet-service-transport.c.

Field Documentation

◆ pid

◆ dv_head

struct DistanceVectorHop* Neighbour::dv_head

Head of MDLL of DV hops that have this neighbour as next hop.

Must be purged if this neighbour goes down.

Definition at line 2029 of file gnunet-service-transport.c.

Referenced by free_distance_vector_hop(), free_neighbour(), learn_dv_path(), and transmit_on_queue().

◆ dv_tail

struct DistanceVectorHop* Neighbour::dv_tail

Tail of MDLL of DV hops that have this neighbour as next hop.

Must be purged if this neighbour goes down.

Definition at line 2035 of file gnunet-service-transport.c.

Referenced by free_distance_vector_hop(), and learn_dv_path().

◆ queue_head

◆ queue_tail

struct Queue* Neighbour::queue_tail

Tail of DLL of queues to this peer.

Definition at line 2045 of file gnunet-service-transport.c.

Referenced by free_queue(), and handle_add_queue_message().

◆ get

struct GNUNET_PEERSTORE_IterateContext* Neighbour::get

Handle for an operation to fetch last_dv_learn_monotime information from the PEERSTORE, or NULL.

Definition at line 2051 of file gnunet-service-transport.c.

Referenced by free_neighbour(), handle_add_queue_message(), and neighbour_dv_monotime_cb().

◆ sc

struct GNUNET_PEERSTORE_StoreContext* Neighbour::sc

Handle to a PEERSTORE store operation to store this pid's last_dv_learn_monotime.

NULL if no PEERSTORE operation is pending.

Definition at line 2057 of file gnunet-service-transport.c.

Referenced by free_neighbour(), handle_dv_learn(), and neighbour_store_dvmono_cb().

◆ vl

struct VirtualLink* Neighbour::vl

Do we have a confirmed working queue and are thus visible to CORE? If so, this is the virtual link, otherwise NULL.

Definition at line 2063 of file gnunet-service-transport.c.

Referenced by check_link_down(), check_vl_transmission(), consider_sending_fc(), forward_dv_box(), free_neighbour(), handle_validation_response(), and transmit_on_queue().

◆ last_dv_learn_monotime

struct GNUNET_TIME_Absolute Neighbour::last_dv_learn_monotime

Latest DVLearn monotonic time seen from this peer.

Initialized only if dl_monotime_available is GNUNET_YES.

Definition at line 2069 of file gnunet-service-transport.c.

Referenced by handle_dv_learn(), and neighbour_dv_monotime_cb().

◆ dv_monotime_available

int Neighbour::dv_monotime_available

Do we have the latest value for last_dv_learn_monotime from PEERSTORE yet, or are we still waiting for a reply of PEERSTORE?

Definition at line 2075 of file gnunet-service-transport.c.

Referenced by handle_dv_learn(), and neighbour_dv_monotime_cb().

◆ natted_addresses

struct GNUNET_CONTAINER_MultiPeerMap* Neighbour::natted_addresses

Map of struct TransportGlobalNattedAddress for this neighbour.

Definition at line 2080 of file gnunet-service-transport.c.

Referenced by check_for_global_natted(), free_neighbour(), and handle_add_queue_message().

◆ number_of_addresses

unsigned int Neighbour::number_of_addresses

Number of global natted addresses for this neighbour.

Definition at line 2085 of file gnunet-service-transport.c.

Referenced by check_for_global_natted(), and consider_sending_fc().

◆ size_of_global_addresses

size_t Neighbour::size_of_global_addresses

Size of all global natted addresses for this neighbour.

Definition at line 2090 of file gnunet-service-transport.c.

Referenced by check_for_global_natted().

◆ is_global_natted

enum GNUNET_GenericReturnValue Neighbour::is_global_natted

A queue of this neighbour has a global natted address.

Definition at line 2095 of file gnunet-service-transport.c.

◆ id

struct GNUNET_PeerIdentity Neighbour::id

Identity of this neighbour.

Definition at line 60 of file transport_api2_core.c.

Referenced by do_send(), handle_connect(), mq_send_impl(), neighbour_delete(), and peer_mq_error_handler().

◆ h

struct GNUNET_TRANSPORT_CoreHandle* Neighbour::h

Overall transport handle.

Definition at line 65 of file transport_api2_core.c.

Referenced by do_send(), handle_connect(), and peer_mq_error_handler().

◆ mq

struct GNUNET_MQ_Handle* Neighbour::mq

◆ env

struct GNUNET_MQ_Envelope* Neighbour::env

◆ handlers_cls

void* Neighbour::handlers_cls

Closure for mq handlers.

Definition at line 80 of file transport_api2_core.c.

Referenced by handle_connect(), and neighbour_delete().

◆ ready_window

unsigned int Neighbour::ready_window

How many messages can we still send to this peer before we should throttle?

Definition at line 86 of file transport_api2_core.c.

Referenced by do_send(), handle_connect(), handle_send_ok(), mq_cancel_impl(), mq_send_impl(), and notify_send_done().

◆ awaiting_done

int16_t Neighbour::awaiting_done

Used to indicate our status if env is non-NULL.

Set to GNUNET_YES if we did pass a message to the MQ and are waiting for the call to notify_send_done(). Set to GNUNET_NO if the ready_window is 0 and env is waiting for a GNUNET_MESSAGE_TYPE_TRANSPORT_RECV_OK?

Definition at line 95 of file transport_api2_core.c.

Referenced by do_send(), handle_send_ok(), mq_cancel_impl(), and notify_send_done().

◆ env_size

uint16_t Neighbour::env_size

Size of the message in env.

Definition at line 100 of file transport_api2_core.c.

Referenced by mq_send_impl().


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