GNUnet  0.19.4
Neighbour Struct Reference

A connected controller which is not our child. More...

Collaboration diagram for Neighbour:
[legend]

Data Fields

struct GNUNET_TESTBED_Controllercontroller
 The controller handle. More...
 
struct GNUNET_TESTBED_Operationconn_op
 Operation handle for opening a lateral connection to another controller. More...
 
struct NeighbourConnectNotificationnl_head
 DLL head for the list of notification requests. More...
 
struct NeighbourConnectNotificationnl_tail
 DLL tail for the list of notification requests. More...
 
struct GNUNET_SCHEDULER_Tasknotify_task
 Task id for the task to call notifications from the notification list. More...
 
unsigned int reference_cnt
 How many references are present currently to this neighbour's connection. More...
 
unsigned int inactive
 Is the conn_op inactivated? More...
 
uint32_t host_id
 The id of the host this controller is running on. More...
 
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_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...
 
struct GNUNET_BANDWIDTH_Tracker out_tracker
 Outbound bandwidh tracker. More...
 
struct GNUNET_CONTAINER_HeapNodehn
 Entry in our readiness heap (which is sorted by next_ready value). More...
 
struct GNUNET_SCHEDULER_Tasktimeout_task
 Task to trigger MQ when we have enough bandwidth for the next transmission. More...
 
unsigned long long traffic_overhead
 Sending consumed more bytes on wire than payload was announced This overhead is added to the delay of next sending operation. More...
 
int is_ready
 Is this peer currently ready to receive a message? More...
 

Detailed Description

A connected controller which is not our child.

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

A neighbour that at least one communicator is connected to.

Definition at line 171 of file gnunet-service-testbed_links.c.

Field Documentation

◆ controller

◆ conn_op

struct GNUNET_TESTBED_Operation* Neighbour::conn_op

Operation handle for opening a lateral connection to another controller.

Will be NULL if the slave controller is started by this controller

Definition at line 182 of file gnunet-service-testbed_links.c.

Referenced by GST_neighbour_get_connection(), GST_neighbour_get_connection_cancel(), GST_neighbour_list_clean(), GST_neighbour_release_connection(), oprelease_neighbour_conn(), opstart_neighbour_conn(), and trigger_notifications().

◆ nl_head

◆ nl_tail

struct NeighbourConnectNotification* Neighbour::nl_tail

DLL tail for the list of notification requests.

Definition at line 192 of file gnunet-service-testbed_links.c.

Referenced by GST_neighbour_get_connection(), GST_neighbour_get_connection_cancel(), and neighbour_connect_notify_task().

◆ notify_task

struct GNUNET_SCHEDULER_Task* Neighbour::notify_task

Task id for the task to call notifications from the notification list.

Definition at line 197 of file gnunet-service-testbed_links.c.

Referenced by GST_neighbour_get_connection_cancel(), neighbour_connect_notify_task(), oprelease_neighbour_conn(), and trigger_notifications().

◆ reference_cnt

unsigned int Neighbour::reference_cnt

How many references are present currently to this neighbour's connection.

Definition at line 202 of file gnunet-service-testbed_links.c.

Referenced by GST_neighbour_get_connection_cancel(), GST_neighbour_release_connection(), oprelease_neighbour_conn(), and trigger_notifications().

◆ inactive

unsigned int Neighbour::inactive

◆ host_id

uint32_t Neighbour::host_id

The id of the host this controller is running on.

Definition at line 212 of file gnunet-service-testbed_links.c.

Referenced by GST_create_neighbour(), GST_neighbour_get_connection(), neighbour_list_add(), oprelease_neighbour_conn(), and opstart_neighbour_conn().

◆ 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 1980 of file gnunet-service-tng.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 1986 of file gnunet-service-tng.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 1996 of file gnunet-service-tng.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 2002 of file gnunet-service-tng.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 2008 of file gnunet-service-tng.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 2014 of file gnunet-service-tng.c.

Referenced by check_link_down(), check_vl_transmission(), 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 2014 of file gnunet-service-tng.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 2026 of file gnunet-service-tng.c.

Referenced by handle_dv_learn(), and neighbour_dv_monotime_cb().

◆ id

struct GNUNET_PeerIdentity Neighbour::id

Identity of this neighbour.

Definition at line 687 of file transport_api2_core.c.

Referenced by do_send(), handle_connect(), mq_send_impl(), neighbour_delete(), notify_excess_cb(), and gnunet_testing.Peer::start().

◆ h

struct GNUNET_TRANSPORT_CoreHandle * Neighbour::h

Overall transport handle.

Definition at line 66 of file transport_api2_core.c.

Referenced by do_send(), handle_connect(), mq_send_impl(), and notify_excess_cb().

◆ mq

◆ env

struct GNUNET_MQ_Envelope * Neighbour::env

◆ handlers_cls

void * Neighbour::handlers_cls

Closure for mq handlers.

Definition at line 81 of file transport_api2_core.c.

Referenced by handle_connect(), neighbour_delete(), and notify_excess_cb().

◆ ready_window

unsigned int Neighbour::ready_window

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

Definition at line 87 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 96 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 101 of file transport_api2_core.c.

Referenced by mq_send_impl(), and notify_send_done().

◆ out_tracker

struct GNUNET_BANDWIDTH_Tracker Neighbour::out_tracker

Outbound bandwidh tracker.

Definition at line 72 of file transport_api_core.c.

Referenced by handle_connect(), handle_set_quota(), neighbour_delete(), notify_send_done(), and outbound_bw_tracker_update().

◆ hn

struct GNUNET_CONTAINER_HeapNode* Neighbour::hn

Entry in our readiness heap (which is sorted by next_ready value).

NULL if there is no pending transmission request for this neighbour or if we're waiting for is_ready to become true AFTER the out_tracker suggested that this peer's quota has been satisfied (so once is_ready goes to GNUNET_YES, we should immediately go back into the heap).

Definition at line 92 of file transport_api_core.c.

◆ timeout_task

struct GNUNET_SCHEDULER_Task* Neighbour::timeout_task

Task to trigger MQ when we have enough bandwidth for the next transmission.

Definition at line 98 of file transport_api_core.c.

Referenced by mq_send_impl(), neighbour_delete(), notify_send_done(), notify_send_done_fin(), and outbound_bw_tracker_update().

◆ traffic_overhead

unsigned long long Neighbour::traffic_overhead

Sending consumed more bytes on wire than payload was announced This overhead is added to the delay of next sending operation.

Definition at line 104 of file transport_api_core.c.

Referenced by handle_connect(), handle_send_ok(), and notify_send_done().

◆ is_ready

int Neighbour::is_ready

Is this peer currently ready to receive a message?

Definition at line 109 of file transport_api_core.c.

Referenced by handle_connect(), mq_cancel_impl(), mq_send_impl(), notify_send_done(), and notify_send_done_fin().


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