gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r19119 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r19119 - gnunet/src/ats
Date: Fri, 13 Jan 2012 15:49:41 +0100

Author: wachs
Date: 2012-01-13 15:49:41 +0100 (Fri, 13 Jan 2012)
New Revision: 19119

Modified:
   gnunet/src/ats/gnunet-service-ats_addresses.c
Log:
- more


Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c       2012-01-13 14:20:43 UTC 
(rev 19118)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c       2012-01-13 14:49:41 UTC 
(rev 19119)
@@ -37,8 +37,17 @@
 
 enum ATS_Mode
 {
-       SIMPLE,
-       MLP
+  /**
+   * Assign each peer an equal amount of bandwidth (bw)
+   *
+   * bw_per_peer = bw_total / #active addresses
+   */
+  SIMPLE,
+
+  /**
+   * Use MLP solver to assign bandwidth
+   */
+  MLP
 };
 
 static struct GNUNET_CONTAINER_MultiHashMap *addresses;
@@ -51,6 +60,7 @@
 
 static int ats_mode;
 
+
 /**
  * Update a bandwidth assignment for a peer.  This trivial method currently
  * simply assigns the same share to all active connections.
@@ -65,6 +75,8 @@
 {
   struct ATS_Address *aa = value;
 
+
+  /* Simple method */
   if (GNUNET_YES != aa->active)
     return GNUNET_OK;
   GNUNET_assert (active_addr_count > 0);
@@ -159,6 +171,12 @@
                  GNUNET_CONTAINER_multihashmap_remove (addresses,
                                                        &addr->peer.hashPubKey,
                                                        addr));
+
+#if HAVE_LIBGLPK
+  if (ats_mode == MLP)
+    GAS_mlp_address_delete (addresses, addr);
+#endif
+
   if (GNUNET_YES == addr->active)
   {
     active_addr_count--;
@@ -354,12 +372,21 @@
 
   /* session == 0 and addrlen == 0 : destroy address */
   if (aa->addr_len == 0)
+  {
     (void) destroy_address (aa);
+  }
+  else
+  {
+    /* session was set to 0, update address */
+#if HAVE_LIBGLPK
+  if (ats_mode == MLP)
+    GAS_mlp_address_update (addresses, aa);
+#endif
+  }
 
   return GNUNET_OK;
 }
 
-
 void
 GAS_addresses_destroy (const struct GNUNET_PeerIdentity *peer,
                        const char *plugin_name, const void *plugin_addr,




reply via email to

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