gnunet-svn
[Top][All Lists]
Advanced

[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);
 
 
 /**




reply via email to

[Prev in Thread] Current Thread [Next in Thread]