[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r31885 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r31885 - gnunet/src/ats |
Date: |
Mon, 13 Jan 2014 17:56:42 +0100 |
Author: wachs
Date: 2014-01-13 17:56:41 +0100 (Mon, 13 Jan 2014)
New Revision: 31885
Modified:
gnunet/src/ats/ats.h
gnunet/src/ats/ats_api_scheduling.c
gnunet/src/ats/gnunet-service-ats_addresses.c
gnunet/src/ats/gnunet-service-ats_addresses.h
gnunet/src/ats/gnunet-service-ats_performance.c
gnunet/src/ats/gnunet-service-ats_scheduling.c
gnunet/src/ats/gnunet-service-ats_scheduling.h
Log:
implementing 0003268
Modified: gnunet/src/ats/ats.h
===================================================================
--- gnunet/src/ats/ats.h 2014-01-13 16:56:29 UTC (rev 31884)
+++ gnunet/src/ats/ats.h 2014-01-13 16:56:41 UTC (rev 31885)
@@ -79,12 +79,15 @@
struct GNUNET_PeerIdentity peer;
+
uint16_t address_length GNUNET_PACKED;
uint16_t plugin_name_length GNUNET_PACKED;
uint32_t session_id GNUNET_PACKED;
+ uint32_t address_local_info GNUNET_PACKED;
+
/* followed by:
* - struct GNUNET_ATS_Information [ats_count];
* - char address[address_length]
@@ -107,6 +110,8 @@
uint32_t session_id GNUNET_PACKED;
+ uint32_t address_local_info GNUNET_PACKED;
+
/* followed by:
* - char address[address_length]
* - char plugin_name[plugin_name_length] (including '\0'-termination).
@@ -129,6 +134,8 @@
uint32_t session_id GNUNET_PACKED;
+ uint32_t address_local_info GNUNET_PACKED;
+
/* followed by:
* - char address[address_length]
* - char plugin_name[plugin_name_length] (including '\0'-termination).
@@ -151,6 +158,8 @@
uint32_t session_id GNUNET_PACKED;
+ uint32_t address_local_info GNUNET_PACKED;
+
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out;
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in;
Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2014-01-13 16:56:29 UTC (rev 31884)
+++ gnunet/src/ats/ats_api_scheduling.c 2014-01-13 16:56:41 UTC (rev 31885)
@@ -643,6 +643,7 @@
address.address = plugin_address;
address.address_length = plugin_address_length;
address.transport_name = plugin_name;
+ address.local_info = ntohl(m->address_local_info);
if ((s == NULL) && (0 == address.address_length))
{
@@ -1200,11 +1201,9 @@
return GNUNET_SYSERR;
}
- namelen =
- (address->transport_name ==
- NULL) ? 0 : strlen (address->transport_name) + 1;
- msize =
- sizeof (struct AddressUpdateMessage) + address->address_length +
+ namelen = (address->transport_name == NULL) ? 0 : strlen
(address->transport_name) + 1;
+
+ msize = sizeof (struct AddressUpdateMessage) + address->address_length +
ats_count * sizeof (struct GNUNET_ATS_Information) + namelen;
if ((msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) ||
(address->address_length >= GNUNET_SERVER_MAX_MESSAGE_SIZE) ||
@@ -1236,6 +1235,7 @@
m->ats_count = htonl (ats_count);
m->peer = address->peer;
m->address_length = htons (address->address_length);
+ m->address_local_info = htonl ((uint32_t) address->local_info);
m->plugin_name_length = htons (namelen);
m->session_id = htonl (s);
@@ -1330,6 +1330,7 @@
m->ats_count = htonl (ats_count);
m->peer = address->peer;
m->address_length = htons (address->address_length);
+ m->address_local_info = htonl ((uint32_t) address->local_info);
m->plugin_name_length = htons (namelen);
m->session_id = htonl (s);
@@ -1413,6 +1414,7 @@
m->peer = address->peer;
m->in_use = htons (in_use);
m->address_length = htons (address->address_length);
+ m->address_local_info = htonl ((uint32_t) address->local_info);
m->plugin_name_length = htons (namelen);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1488,6 +1490,7 @@
m->reserved = htonl (0);
m->peer = address->peer;
m->address_length = htons (address->address_length);
+ m->address_local_info = htonl ((uint32_t) address->local_info);
m->plugin_name_length = htons (namelen);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c 2014-01-13 16:56:29 UTC
(rev 31884)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c 2014-01-13 16:56:41 UTC
(rev 31885)
@@ -476,8 +476,12 @@
* @return the ATS_Address
*/
static struct ATS_Address *
-create_address (const struct GNUNET_PeerIdentity *peer, const char
*plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id)
+create_address (const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id)
{
struct ATS_Address *aa = NULL;
int c1;
@@ -490,6 +494,7 @@
memcpy (&aa[1], plugin_addr, plugin_addr_len);
aa->plugin = GNUNET_strdup (plugin_name);
aa->session_id = session_id;
+ aa->local_address_info = local_address_info;
aa->active = GNUNET_NO;
aa->used = GNUNET_NO;
aa->solver_information = NULL;
@@ -642,14 +647,18 @@
static struct ATS_Address *
find_exact_address (struct GAS_Addresses_Handle *handle,
- const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id)
+ const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id)
{
struct ATS_Address *aa;
struct ATS_Address *ea;
aa = create_address (peer, plugin_name, plugin_addr, plugin_addr_len,
- session_id);
+ local_address_info, session_id);
/* Get existing address or address with session == 0 */
ea = find_equivalent_address (handle, peer, aa);
@@ -727,9 +736,14 @@
*/
void
GAS_addresses_add (struct GAS_Addresses_Handle *handle,
- const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
- const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count)
+ const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
+ const struct GNUNET_ATS_Information *atsi,
+ uint32_t atsi_count)
{
struct ATS_Address *new_address;
struct ATS_Address *existing_address;
@@ -748,7 +762,7 @@
GNUNET_assert(NULL != handle->addresses);
new_address = create_address (peer, plugin_name, plugin_addr,
plugin_addr_len,
- session_id);
+ local_address_info, session_id);
atsi_delta = NULL;
disassemble_ats_information (new_address, atsi, atsi_count, &atsi_delta,
&atsi_delta_count);
@@ -891,9 +905,14 @@
*/
void
GAS_addresses_update (struct GAS_Addresses_Handle *handle,
- const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
- const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count)
+ const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
+ const struct GNUNET_ATS_Information *atsi,
+ uint32_t atsi_count)
{
struct ATS_Address *aa;
struct GNUNET_ATS_Information *atsi_delta;
@@ -908,7 +927,7 @@
/* Get existing address */
aa = find_exact_address (handle, peer, plugin_name, plugin_addr,
- plugin_addr_len, session_id);
+ plugin_addr_len, local_address_info, session_id);
if (aa == NULL )
return;
if (NULL == aa->solver_information)
@@ -1080,8 +1099,12 @@
*/
void
GAS_addresses_destroy (struct GAS_Addresses_Handle *handle,
- const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id)
+ const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id)
{
struct ATS_Address *ea;
struct DestroyContext dc;
@@ -1090,7 +1113,7 @@
/* Get existing address */
ea = find_exact_address (handle, peer, plugin_name, plugin_addr,
- plugin_addr_len, session_id);
+ plugin_addr_len, local_address_info, session_id);
if (ea == NULL )
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
@@ -1106,7 +1129,7 @@
GNUNET_break(0 < strlen (plugin_name));
dc.handle = handle;
dc.aa = create_address (peer, plugin_name, plugin_addr, plugin_addr_len,
- session_id);
+ local_address_info, session_id);
GNUNET_CONTAINER_multipeermap_get_multiple (handle->addresses,
peer,
@@ -1138,7 +1161,9 @@
int
GAS_addresses_in_use (struct GAS_Addresses_Handle *handle,
const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
+ const void *plugin_addr, size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
int in_use)
{
struct ATS_Address *ea;
@@ -1149,7 +1174,7 @@
return GNUNET_SYSERR;
ea = find_exact_address (handle, peer, plugin_name, plugin_addr,
- plugin_addr_len, session_id);
+ plugin_addr_len, local_address_info, session_id);
if (NULL == ea)
{
GNUNET_log(GNUNET_ERROR_TYPE_WARNING,
@@ -1261,7 +1286,8 @@
aa, GNUNET_i2s (peer));
GAS_scheduling_transmit_address_suggestion (peer, aa->plugin, aa->addr,
- aa->addr_len, aa->session_id, aa->atsi, aa->atsi_count,
+ aa->addr_len, aa->local_address_info, aa->session_id,
+ aa->atsi, aa->atsi_count,
aa->assigned_bw_out, aa->assigned_bw_in);
aa->block_interval = GNUNET_TIME_relative_add (aa->block_interval,
@@ -2073,7 +2099,8 @@
/* *Notify scheduling clients about suggestion */
GAS_scheduling_transmit_address_suggestion (&address->peer, address->plugin,
- address->addr, address->addr_len, address->session_id, address->atsi,
+ address->addr, address->addr_len, address->local_address_info,
+ address->session_id, address->atsi,
address->atsi_count, address->assigned_bw_out, address->assigned_bw_in);
}
Modified: gnunet/src/ats/gnunet-service-ats_addresses.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.h 2014-01-13 16:56:29 UTC
(rev 31884)
+++ gnunet/src/ats/gnunet-service-ats_addresses.h 2014-01-13 16:56:41 UTC
(rev 31885)
@@ -312,6 +312,8 @@
*/
uint32_t session_id;
+ uint32_t local_address_info;
+
/**
* Address
*/
@@ -427,9 +429,14 @@
*/
void
GAS_addresses_add (struct GAS_Addresses_Handle *handle,
- const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
- const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count);
+ const struct GNUNET_PeerIdentity *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
+ const struct GNUNET_ATS_Information *atsi,
+ uint32_t atsi_count);
/**
* Notification about active use of an address.
@@ -453,7 +460,9 @@
int
GAS_addresses_in_use (struct GAS_Addresses_Handle *handle,
const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
+ const void *plugin_addr, size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
int in_use);
/**
@@ -474,7 +483,8 @@
void
GAS_addresses_update (struct GAS_Addresses_Handle *handle,
const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
+ const void *plugin_addr, size_t plugin_addr_len,
+ uint32_t local_address_info, uint32_t session_id,
const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count);
/**
@@ -490,7 +500,8 @@
void
GAS_addresses_destroy (struct GAS_Addresses_Handle *handle,
const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
- const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id);
+ const void *plugin_addr, size_t plugin_addr_len,
+ uint32_t local_address_info, uint32_t session_id);
/**
* Remove all addresses
Modified: gnunet/src/ats/gnunet-service-ats_performance.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_performance.c 2014-01-13 16:56:29 UTC
(rev 31884)
+++ gnunet/src/ats/gnunet-service-ats_performance.c 2014-01-13 16:56:41 UTC
(rev 31885)
@@ -507,52 +507,42 @@
void
GAS_handle_performance_update (struct GNUNET_PeerIdentity *peer,
-
const char *plugin_name,
-
const void *plugin_addr,
-
size_t plugin_addr_len,
-
const int active,
-
struct GNUNET_ATS_Information *ats,
-
uint32_t ats_count,
-
struct GNUNET_BANDWIDTH_Value32NBO
-
bandwidth_out,
-
struct GNUNET_BANDWIDTH_Value32NBO
-
bandwidth_in)
+ const char *plugin_name, const void *plugin_addr, size_t plugin_addr_len,
+ const int active, struct GNUNET_ATS_Information *ats, uint32_t ats_count,
+ struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
+ struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
{
-/* Notify here */
- GAS_performance_notify_all_clients (peer,
-
plugin_name,
-
plugin_addr, plugin_addr_len,
-
active,
-
ats,
ats_count,
-
bandwidth_out, bandwidth_in);
+ /* Notify here */
+ GAS_performance_notify_all_clients (peer, plugin_name, plugin_addr,
+ plugin_addr_len, active, ats, ats_count, bandwidth_out, bandwidth_in);
#if 0
- struct PerformanceClient *cur;
- struct PerformanceMonitorClient *curm;
- struct MonitorResponseMessage *mrm;
- size_t msglen;
+ struct PerformanceClient *cur;
+ struct PerformanceMonitorClient *curm;
+ struct MonitorResponseMessage *mrm;
+ size_t msglen;
- msglen = sizeof (struct MonitorResponseMessage) +
- ats_count * sizeof (struct
GNUNET_ATS_Information);
- mrm = GNUNET_malloc (msglen);
+ msglen = sizeof (struct MonitorResponseMessage) +
+ ats_count * sizeof (struct GNUNET_ATS_Information);
+ mrm = GNUNET_malloc (msglen);
- mrm->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_MONITOR_RESPONSE);
- mrm->header.size = htons (msglen);
- mrm->ats_count = htonl (ats_count);
- mrm->peer = *peer;
- memcpy (&mrm[1], ats, ats_count * sizeof (struct
GNUNET_ATS_Information));
+ mrm->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_MONITOR_RESPONSE);
+ mrm->header.size = htons (msglen);
+ mrm->ats_count = htonl (ats_count);
+ mrm->peer = *peer;
+ memcpy (&mrm[1], ats, ats_count * sizeof (struct GNUNET_ATS_Information));
- for (cur = pc_head; NULL != cur; cur = cur->next)
- for (curm = cur->pm_head; NULL != curm; curm = curm->next)
- {
- /* Notify client about update */
- mrm->id = htonl (curm->id);
- GNUNET_SERVER_notification_context_unicast (nc,
- cur->client,
- (struct GNUNET_MessageHeader *) mrm,
- GNUNET_YES);
- }
- GNUNET_free (mrm);
+ for (cur = pc_head; NULL != cur; cur = cur->next)
+ for (curm = cur->pm_head; NULL != curm; curm = curm->next)
+ {
+ /* Notify client about update */
+ mrm->id = htonl (curm->id);
+ GNUNET_SERVER_notification_context_unicast (nc,
+ cur->client,
+ (struct GNUNET_MessageHeader *) mrm,
+ GNUNET_YES);
+ }
+ GNUNET_free (mrm);
#endif
}
Modified: gnunet/src/ats/gnunet-service-ats_scheduling.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.c 2014-01-13 16:56:29 UTC
(rev 31884)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.c 2014-01-13 16:56:41 UTC
(rev 31885)
@@ -100,16 +100,16 @@
*/
void
GAS_scheduling_transmit_address_suggestion (const struct GNUNET_PeerIdentity
- *peer, const char *plugin_name,
- const void *plugin_addr,
- size_t plugin_addr_len,
- uint32_t session_id,
- const struct GNUNET_ATS_Information
- *atsi, uint32_t atsi_count,
- struct GNUNET_BANDWIDTH_Value32NBO
- bandwidth_out,
- struct GNUNET_BANDWIDTH_Value32NBO
- bandwidth_in)
+ *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
+ const struct GNUNET_ATS_Information *atsi,
+ uint32_t atsi_count,
+ struct GNUNET_BANDWIDTH_Value32NBO
bandwidth_out,
+ struct GNUNET_BANDWIDTH_Value32NBO
bandwidth_in)
{
struct AddressSuggestionMessage *msg;
size_t plugin_name_length = strlen (plugin_name) + 1;
@@ -136,6 +136,7 @@
msg->peer = *peer;
msg->address_length = htons (plugin_addr_len);
msg->plugin_name_length = htons (plugin_name_length);
+ msg->address_local_info = htonl (local_address_info);
msg->session_id = htonl (session_id);
msg->bandwidth_out = bandwidth_out;
msg->bandwidth_in = bandwidth_in;
@@ -278,7 +279,7 @@
GNUNET_STATISTICS_update (GSA_stats, "# address updates received", 1,
GNUNET_NO);
GAS_addresses_add (address_handle, &m->peer, plugin_name, address,
address_length,
- ntohl (m->session_id), atsi, ats_count);
+ ntohl(m->address_local_info), ntohl (m->session_id), atsi, ats_count);
GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
@@ -337,6 +338,7 @@
GNUNET_STATISTICS_update (GSA_stats, "# address updates received", 1,
GNUNET_NO);
GAS_addresses_update (address_handle, &m->peer, plugin_name, address,
address_length,
+ ntohl (m->address_local_info),
ntohl (m->session_id), atsi, ats_count);
GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
@@ -397,6 +399,7 @@
plugin_name,
address,
address_length,
+ ntohl (m->address_local_info),
ntohl (m->session_id),
in_use);
@@ -465,6 +468,7 @@
GNUNET_STATISTICS_update (GSA_stats, "# addresses destroyed", 1, GNUNET_NO);
GAS_addresses_destroy (address_handle, &m->peer, plugin_name,
address, address_length,
+ ntohl (m->address_local_info),
ntohl (m->session_id));
if (0 != ntohl (m->session_id))
{
Modified: gnunet/src/ats/gnunet-service-ats_scheduling.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.h 2014-01-13 16:56:29 UTC
(rev 31884)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.h 2014-01-13 16:56:41 UTC
(rev 31885)
@@ -79,16 +79,16 @@
*/
void
GAS_scheduling_transmit_address_suggestion (const struct GNUNET_PeerIdentity
- *peer, const char *plugin_name,
- const void *plugin_addr,
- size_t plugin_addr_len,
- uint32_t session_id,
- const struct GNUNET_ATS_Information
- *atsi, uint32_t atsi_count,
- struct GNUNET_BANDWIDTH_Value32NBO
- bandwidth_out,
- struct GNUNET_BANDWIDTH_Value32NBO
- bandwidth_in);
+ *peer,
+ const char *plugin_name,
+ const void *plugin_addr,
+ size_t plugin_addr_len,
+ uint32_t local_address_info,
+ uint32_t session_id,
+ const struct GNUNET_ATS_Information *atsi,
+ uint32_t atsi_count,
+ struct GNUNET_BANDWIDTH_Value32NBO
bandwidth_out,
+ struct GNUNET_BANDWIDTH_Value32NBO
bandwidth_in);
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31885 - gnunet/src/ats,
gnunet <=