GNUnet 0.28.1-dev.2-13-g57ceb9dfb
 
Loading...
Searching...
No Matches
gnunet_transport_monitor_service.h
Go to the documentation of this file.
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2009-2016 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
20
37#ifndef GNUNET_TRANSPORT_MONITOR_SERVICE_H
38#define GNUNET_TRANSPORT_MONITOR_SERVICE_H
39
40#ifdef __cplusplus
41extern "C"
42{
43#if 0 /* keep Emacsens' auto-indent happy */
44}
45#endif
46#endif
47
48
49#include "gnunet_util_lib.h"
51
52
56#define GNUNET_TRANSPORT_MONITOR_VERSION 0x00000000
57
58
109
110
127typedef void
129 const struct GNUNET_PeerIdentity *peer,
130 const struct
132
133
138
139
168 const struct GNUNET_PeerIdentity *peer,
169 int one_shot,
171 void *cb_cls);
172
173
179void
181
182
198
199
310
311
320typedef void
322 void *cls,
323 const struct GNUNET_PeerIdentity *peer,
324 const struct GNUNET_TRANSPORT_LinkInformation *li);
325
326
331
332
350 const struct GNUNET_PeerIdentity *peer,
353 void *cb_cls);
354
355
362void
365
366
367#if 0 /* keep Emacsens' auto-indent happy */
368{
369#endif
370#ifdef __cplusplus
371}
372#endif
373
374/* ifndef GNUNET_TRANSPORT_MONITOR_SERVICE_H */
375#endif
376
/* end of group */
378
/* end of group addition */
380
381/* end of gnunet_transport_monitor_service.h */
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
Definition gnunet-arm.c:108
static struct GNUNET_TESTBED_Controller * mc
Handle to the master controller.
static struct GNUNET_TRANSPORT_LinkListContext * llc
Handle to the running listing, NULL once it completed.
static int include_unconfirmed
Option -a: also show links that are not established yet.
API of the transport service towards the communicator processes.
void(* GNUNET_TRANSPORT_MonitorCallback)(void *cls, const struct GNUNET_PeerIdentity *peer, const struct GNUNET_TRANSPORT_MonitorInformation *mi)
Function to call with information about a peer.
void(* GNUNET_TRANSPORT_LinkCallback)(void *cls, const struct GNUNET_PeerIdentity *peer, const struct GNUNET_TRANSPORT_LinkInformation *li)
Function called once per virtual link, and a final time with peer and li both NULL to signal the end ...
void GNUNET_TRANSPORT_links_list_cancel(struct GNUNET_TRANSPORT_LinkListContext *llc)
Cancel a request to list virtual links.
struct GNUNET_TRANSPORT_MonitorContext * GNUNET_TRANSPORT_monitor(const struct GNUNET_CONFIGURATION_Handle *cfg, const struct GNUNET_PeerIdentity *peer, int one_shot, GNUNET_TRANSPORT_MonitorCallback cb, void *cb_cls)
Return information about a specific peer or all peers currently known to transport service once or in...
struct GNUNET_TRANSPORT_LinkListContext * GNUNET_TRANSPORT_links_list(const struct GNUNET_CONFIGURATION_Handle *cfg, const struct GNUNET_PeerIdentity *peer, int include_unconfirmed, GNUNET_TRANSPORT_LinkCallback cb, void *cb_cls)
Ask the transport service for the virtual links it currently has.
void GNUNET_TRANSPORT_monitor_cancel(struct GNUNET_TRANSPORT_MonitorContext *mc)
Cancel request to monitor peers.
GNUNET_TRANSPORT_LinkRoute
How is a virtual link routed?
GNUNET_TRANSPORT_ConnectionStatus
Possible states of a connection.
@ GNUNET_TRANSPORT_LINK_ROUTE_DV
Over a distance vector path.
@ GNUNET_TRANSPORT_LINK_ROUTE_DIRECT
Over one or more queues to a directly connected neighbour.
GNUNET_NetworkType
Types of networks (with separate quotas) we support.
The identity of the host (wraps the signing key of the peer).
Time for absolute times used by GNUnet, in microseconds.
Time for relative time used by GNUnet, in microseconds.
State of one virtual link, the abstraction CORE sits on top of.
unsigned int pending
Number of messages queued for transmission to the target.
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 incoming_fc_window_size_used
How much of incoming_fc_window_size the other peer used.
uint64_t incoming_fc_window_size_ram
RAM currently held for this link.
uint64_t outbound_fc_window_size_used
How much of outbound_fc_window_size we used.
unsigned int distance
Hops of the shortest DV path, excluding the next hop and the target itself; so 0 already means two ho...
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.
enum GNUNET_TRANSPORT_LinkRoute route
How the link is routed.
struct GNUNET_TIME_Relative other_rtt
RTT over all DV paths, as calculated by the target.
int confirmed
GNUNET_YES if the link is confirmed, i.e.
unsigned int fc_retransmit_count
Number of flow control retransmissions of the running task.
const char * communicators
Comma-separated address prefixes of the communicators currently carrying the link ("tcp",...
uint64_t available_fc_window_size
RAM transport is willing to spend on this link.
unsigned int stalled
Number of messages whose flow control ACK transport is withholding because core_recv_window is exhaus...
struct GNUNET_TIME_Absolute last_fc_transmission
When did we last send a flow control message?
uint64_t incoming_fc_window_size
Window we last granted the other peer.
struct GNUNET_TIME_Relative last_fc_rtt
RTT of the last flow control exchange.
Opaque handle for a GNUNET_TRANSPORT_links_list() operation.
GNUNET_TRANSPORT_LinkCallback cb
Function to call with each link, and once with NULL at the end.
Opaque handle to the transport service for monitors.
GNUNET_TRANSPORT_MonitorCallback cb
Function to call with monitor data.
int one_shot
GNUNET_YES to return the current state and then end.
struct GNUNET_PeerIdentity peer
Peer we monitor, all zeros for "all".
Information about another peer's address.
struct GNUNET_TIME_Absolute next_validation
Time of the next validation operation.
struct GNUNET_TIME_Absolute last_validation
When was this address last validated.
uint32_t num_msg_pending
Number of messages pending transmission for this address.
enum GNUNET_NetworkType nt
Network type of the address.
const char * address
Address we have for the peer, human-readable, 0-terminated, in UTF-8.
uint32_t num_bytes_pending
Number of bytes pending transmission for this address.
struct GNUNET_TIME_Absolute valid_until
When does this address expire.
struct GNUNET_TIME_Relative rtt
Current estimate of the RTT.
enum GNUNET_TRANSPORT_ConnectionStatus cs
Connection status.