GNUnet  0.10.x
Data Fields
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 GNUNET_CONTAINER_MultiHashMap32reassembly_map
 Map with struct ReassemblyContext structs for fragments under reassembly. More...
 
struct GNUNET_CONTAINER_Heapreassembly_heap
 Heap with struct ReassemblyContext structs for fragments under reassembly. More...
 
struct GNUNET_SCHEDULER_Taskreassembly_timeout_task
 Task to free old entries from the reassembly_heap and reassembly_map. 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 lastest 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 readyness 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

struct GNUNET_TESTBED_Controller* Neighbour::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

struct NeighbourConnectNotification* Neighbour::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

struct GNUNET_PeerIdentity Neighbour::pid

◆ reassembly_map

struct GNUNET_CONTAINER_MultiHashMap32* Neighbour::reassembly_map

Map with struct ReassemblyContext structs for fragments under reassembly.

May be NULL if we currently have no fragments from this pid (lazy initialization).

Definition at line 1908 of file gnunet-service-tng.c.

Referenced by free_neighbour(), and free_reassembly_context().

◆ reassembly_heap

struct GNUNET_CONTAINER_Heap* Neighbour::reassembly_heap

Heap with struct ReassemblyContext structs for fragments under reassembly.

May be NULL if we currently have no fragments from this pid (lazy initialization).

Definition at line 1915 of file gnunet-service-tng.c.

Referenced by free_neighbour(), and reassembly_cleanup_task().

◆ reassembly_timeout_task

struct GNUNET_SCHEDULER_Task* Neighbour::reassembly_timeout_task

Task to free old entries from the reassembly_heap and reassembly_map.

Definition at line 1920 of file gnunet-service-tng.c.

Referenced by free_neighbour(), and reassembly_cleanup_task().

◆ 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 1926 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 1932 of file gnunet-service-tng.c.

Referenced by free_distance_vector_hop(), and learn_dv_path().

◆ queue_head

struct Queue* Neighbour::queue_head

◆ queue_tail

struct Queue* Neighbour::queue_tail

Tail of DLL of queues to this peer.

Definition at line 1942 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 1948 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 1954 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 1960 of file gnunet-service-tng.c.

Referenced by check_link_down(), 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 1966 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 lastest value for last_dv_learn_monotime from PEERSTORE yet, or are we still waiting for a reply of PEERSTORE?

Definition at line 1972 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 62 of file transport_api2_core.c.

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

◆ h

struct GNUNET_TRANSPORT_CoreHandle * Neighbour::h

◆ mq

struct GNUNET_MQ_Handle * Neighbour::mq

◆ env

struct GNUNET_MQ_Envelope * Neighbour::env

Envelope with the message we are currently transmitting (or NULL).

Definition at line 77 of file transport_api2_core.c.

Referenced by do_send(), GNUNET_TRANSPORT_core_disconnect(), GNUNET_TRANSPORT_core_get_mq(), handle_send_ok(), mq_cancel_impl(), mq_send_impl(), neighbour_delete(), notify_send_done(), and reconnect().

◆ handlers_cls

void * Neighbour::handlers_cls

Closure for mq handlers.

Definition at line 82 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 88 of file transport_api2_core.c.

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

◆ 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 97 of file transport_api2_core.c.

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

◆ env_size

uint16_t Neighbour::env_size

Size of the message in env.

Definition at line 102 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 82 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 readyness 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: