GNUnet  0.20.0
gnunet_transport_manipulation_service.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2009-2014, 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 
38 #ifndef GNUNET_TRANSPORT_MANIPULATION_SERVICE_H
39 #define GNUNET_TRANSPORT_MANIPULATION_SERVICE_H
40 
41 
42 #ifdef __cplusplus
43 extern "C"
44 {
45 #if 0 /* keep Emacsens' auto-indent happy */
46 }
47 #endif
48 #endif
49 
50 
51 #include "gnunet_util_lib.h"
52 #include "gnunet_ats_service.h"
53 
57 #define GNUNET_TRANSPORT_MANIPULATION_VERSION 0x00000003
58 
63 
64 
75 
76 
82 void
85  handle);
86 
87 
100 void
103  const struct GNUNET_PeerIdentity *peer,
104  const struct GNUNET_ATS_Properties *prop,
107 
108 
109 #if 0 /* keep Emacsens' auto-indent happy */
110 {
111 #endif
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 /* ifndef GNUNET_TRANSPORT_MANIPULATION_SERVICE_H */
117 #endif
118  /* end of group */
120  /* end of group addition */
122 
123 /* end of gnunet_transport_manipulation_service.h */
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
Definition: gnunet-abd.c:36
static struct GNUNET_DNS_Handle * handle
Handle to transport service.
static struct GNUNET_TIME_Relative delay_out
Outbound delay to apply to all peers.
static struct GNUNET_TIME_Relative delay_in
Inbound delay to apply to all peers.
Automatic transport selection and outbound bandwidth determination.
void GNUNET_TRANSPORT_manipulation_set(struct GNUNET_TRANSPORT_ManipulationHandle *handle, const struct GNUNET_PeerIdentity *peer, const struct GNUNET_ATS_Properties *prop, struct GNUNET_TIME_Relative delay_in, struct GNUNET_TIME_Relative delay_out)
Set transport metrics for a peer and a direction.
struct GNUNET_TRANSPORT_ManipulationHandle * GNUNET_TRANSPORT_manipulation_connect(const struct GNUNET_CONFIGURATION_Handle *cfg)
Connect to the transport service.
void GNUNET_TRANSPORT_manipulation_disconnect(struct GNUNET_TRANSPORT_ManipulationHandle *handle)
Disconnect from the transport service.
ATS performance characteristics for an address.
The identity of the host (wraps the signing key of the peer).
Time for relative time used by GNUnet, in microseconds.
Handle for the transport service (includes all of the state for the transport service).
struct GNUNET_TESTBED_Peer * peer
The peer associated with this model.