gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r27474 - gnunet/src/ats
Date: Wed, 19 Jun 2013 06:59:00 +0200

Author: wachs
Date: 2013-06-19 06:59:00 +0200 (Wed, 19 Jun 2013)
New Revision: 27474

Modified:
   gnunet/src/ats/Makefile.am
   gnunet/src/ats/gnunet-service-ats-solver_proportional.c
   gnunet/src/ats/gnunet-service-ats-solver_proportional.h
   gnunet/src/ats/gnunet-service-ats_addresses.c
   gnunet/src/ats/gnunet-service-ats_addresses.h
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
Log:
remove normalization from solvers, use in address only


Modified: gnunet/src/ats/Makefile.am
===================================================================
--- gnunet/src/ats/Makefile.am  2013-06-19 04:21:51 UTC (rev 27473)
+++ gnunet/src/ats/Makefile.am  2013-06-19 04:59:00 UTC (rev 27474)
@@ -17,7 +17,7 @@
 
 if HAVE_LIBGLPK
   GN_LIBGLPK = -lglpk
-  GN_MLP_SRC = gnunet-service-ats_addresses_mlp.c 
gnunet-service-ats_addresses_mlp.h gnunet-service-ats_normalization.c 
gnunet-service-ats_normalization.h
+  GN_MLP_SRC = gnunet-service-ats_addresses_mlp.c 
gnunet-service-ats_addresses_mlp.h
   GN_MLP_TEST = test_ats_mlp
   GN_MLP_TEST_UPDATE = test_ats_mlp_update
   GN_MLP_TEST_AVG = test_ats_mlp_averaging

Modified: gnunet/src/ats/gnunet-service-ats-solver_proportional.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats-solver_proportional.c     2013-06-19 
04:21:51 UTC (rev 27473)
+++ gnunet/src/ats/gnunet-service-ats-solver_proportional.c     2013-06-19 
04:59:00 UTC (rev 27474)
@@ -27,7 +27,6 @@
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet-service-ats_addresses.h"
-#include "gnunet-service-ats_normalization.h"
 #include "gnunet_statistics_service.h"
 
 #define LOG(kind,...) GNUNET_log_from (kind, "ats-proportional",__VA_ARGS__)
@@ -255,6 +254,16 @@
    */
   void *bw_changed_cls;
 
+  /**
+   * ATS function to get preferences
+   */
+  GAS_get_preferences get_preferences;
+
+  /**
+   * Closure for ATS function to get preferences
+   */
+  void *get_preferences_cls;
+
   struct GNUNET_CONTAINER_MultiHashMap *prefs;
 
   struct PreferenceClient *pc_head;
@@ -432,7 +441,7 @@
   {
       if (GNUNET_YES == cur->addr->active)
       {
-        GNUNET_assert (NULL != (t = GAS_normalization_get_preferences 
(&cur->addr->peer)));
+        GNUNET_assert (NULL != (t = s->get_preferences 
(s->get_preferences_cls, &cur->addr->peer)));
 
                                peer_prefs = 0.0;
                                for (c = 0; c < GNUNET_ATS_PreferenceCount; c++)
@@ -451,7 +460,7 @@
      if (GNUNET_YES == cur->addr->active)
      {
        cur_pref = 0.0;
-       GNUNET_assert (NULL != (t = GAS_normalization_get_preferences 
(&cur->addr->peer)));
+       GNUNET_assert (NULL != (t = s->get_preferences (s->get_preferences_cls, 
&cur->addr->peer)));
 
                         for (c = 0; c < GNUNET_ATS_PreferenceCount; c++)
                         {
@@ -1226,7 +1235,9 @@
                        unsigned long long *in_quota,
                        int dest_length,
                        GAS_bandwidth_changed_cb bw_changed_cb,
-                       void *bw_changed_cb_cls)
+                       void *bw_changed_cb_cls,
+                       GAS_get_preferences get_preference,
+                       void *get_preference_cls)
 {
   int c;
   struct GAS_PROPORTIONAL_Handle *s = GNUNET_malloc (sizeof (struct 
GAS_PROPORTIONAL_Handle));
@@ -1237,6 +1248,8 @@
   s->stats = (struct GNUNET_STATISTICS_Handle *) stats;
   s->bw_changed = bw_changed_cb;
   s->bw_changed_cls = bw_changed_cb_cls;
+  s->get_preferences = get_preference;
+  s->get_preferences_cls = get_preference_cls;
   s->networks = dest_length;
   s->network_entries = GNUNET_malloc (dest_length * sizeof (struct Network));
   s->active_addresses = 0;

Modified: gnunet/src/ats/gnunet-service-ats-solver_proportional.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats-solver_proportional.h     2013-06-19 
04:21:51 UTC (rev 27473)
+++ gnunet/src/ats/gnunet-service-ats-solver_proportional.h     2013-06-19 
04:59:00 UTC (rev 27474)
@@ -83,7 +83,9 @@
                      unsigned long long *in_quota,
                      int dest_length,
                      GAS_bandwidth_changed_cb bw_changed_cb,
-                     void *bw_changed_cb_cls);
+                     void *bw_changed_cb_cls,
+                     GAS_get_preferences get_preference,
+                     void *get_preference_cls);
 
 
 /**

Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c       2013-06-19 04:21:51 UTC 
(rev 27473)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c       2013-06-19 04:59:00 UTC 
(rev 27474)
@@ -739,6 +739,8 @@
 }
 
 
+
+
 /**
  * Add a new address for a peer.
  *
@@ -1297,9 +1299,9 @@
 
 static void
 normalized_preference_changed_cb (void *cls,
-                                                                               
                                                        const struct 
GNUNET_PeerIdentity *peer,
-                                                                               
                                                enum GNUNET_ATS_PreferenceKind 
kind,
-                                                                               
                                                double pref_rel)
+                                                                 const struct 
GNUNET_PeerIdentity *peer,
+                                                                 enum 
GNUNET_ATS_PreferenceKind kind,
+                                                                 double 
pref_rel)
 {
        GNUNET_assert (NULL != cls);
        struct GAS_Addresses_Handle *handle = cls;
@@ -1307,7 +1309,13 @@
   handle->s_pref (handle->solver, handle->addresses, peer, kind, pref_rel);
 }
 
+const double *
+get_preferences_cb (void *cls, struct GNUNET_PeerIdentity *id)
+{
+       return GAS_normalization_get_preferences (id);
+}
 
+
 /**
  * Change the preference for a peer
  *
@@ -1610,7 +1618,10 @@
   GAS_normalization_start (&normalized_preference_changed_cb, ah);
   quota_count = load_quotas(cfg, quotas_in, quotas_out, 
GNUNET_ATS_NetworkTypeCount);
 
-  ah->solver = ah->s_init (cfg, stats, quotas, quotas_in, quotas_out, 
quota_count, &bandwidth_changed_cb, ah);
+  ah->solver = ah->s_init (cfg, stats,
+                 quotas, quotas_in, quotas_out, quota_count,
+                 &bandwidth_changed_cb, ah,
+                 &get_preferences_cb, NULL);
   if (NULL == ah->solver)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to initialize solver!\n");

Modified: gnunet/src/ats/gnunet-service-ats_addresses.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.h       2013-06-19 04:21:51 UTC 
(rev 27473)
+++ gnunet/src/ats/gnunet-service-ats_addresses.h       2013-06-19 04:59:00 UTC 
(rev 27474)
@@ -354,6 +354,10 @@
 typedef void
  (*GAS_bandwidth_changed_cb) (void *cls, struct ATS_Address *address);
 
+typedef const double *
+ (*GAS_get_preferences) (void *cls, struct GNUNET_PeerIdentity *id);
+
+
 /*
  * Solver API
  * ----------
@@ -389,7 +393,9 @@
                      unsigned long long *in_quota,
                      int dest_length,
                      GAS_bandwidth_changed_cb bw_changed_cb,
-                     void *bw_changed_cb_cls);
+                     void *bw_changed_cb_cls,
+                     GAS_get_preferences get_preference,
+                     void *get_preference_cls);
 
 
 /**

Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-06-19 04:21:51 UTC 
(rev 27473)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-06-19 04:59:00 UTC 
(rev 27474)
@@ -27,7 +27,6 @@
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet-service-ats_addresses.h"
-#include "gnunet-service-ats_normalization.h"
 #include "gnunet-service-ats_addresses_mlp.h"
 #include "gnunet_statistics_service.h"
 #include "glpk.h"
@@ -1438,12 +1437,12 @@
 }
 
 
-static double get_peer_pref_value (const struct GNUNET_PeerIdentity *peer)
+static double get_peer_pref_value (struct GAS_MLP_Handle *mlp, struct 
GNUNET_PeerIdentity *peer)
 {
        double res;
   const double *preferences = NULL;
   int c;
-  preferences = GAS_normalization_get_preferences ((struct GNUNET_PeerIdentity 
*) peer);
+  preferences = mlp->get_preferences (mlp->get_preferences_cls, peer);
 
   res = 0.0;
        for (c = 0; c < GNUNET_ATS_PreferenceCount; c++)
@@ -1491,7 +1490,7 @@
 
          p = GNUNET_malloc (sizeof (struct ATS_Peer));
          p->id = (*peer);
-         p->f = get_peer_pref_value (peer);;
+         p->f = get_peer_pref_value (mlp, peer);
          GNUNET_CONTAINER_multihashmap_put (mlp->peers, &peer->hashPubKey, p, 
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);
 
          /* Added new peer, we have to rebuild problem before solving */
@@ -1570,7 +1569,7 @@
     LOG (GNUNET_ERROR_TYPE_ERROR, "Updating preference for unknown peer `%s' 
\n", GNUNET_i2s(peer));
        return;
   }
-  p->f = get_peer_pref_value (peer);
+  p->f = get_peer_pref_value (mlp, peer);
   mlp_create_problem_set_value (&mlp->p, p->r_c9, mlp->p.c_r, -p->f, __LINE__);
 
 
@@ -1642,7 +1641,9 @@
               unsigned long long *in_dest,
               int dest_length,
               GAS_bandwidth_changed_cb bw_changed_cb,
-              void *bw_changed_cb_cls)
+              void *bw_changed_cb_cls,
+              GAS_get_preferences get_preference,
+              void *get_preference_cls)
 {
   struct GAS_MLP_Handle * mlp = GNUNET_malloc (sizeof (struct GAS_MLP_Handle));
 
@@ -1846,6 +1847,8 @@
   mlp->stats = (struct GNUNET_STATISTICS_Handle *) stats;
   mlp->bw_changed_cb = bw_changed_cb;
   mlp->bw_changed_cb_cls = bw_changed_cb_cls;
+  mlp->get_preferences = get_preference;
+  mlp->get_preferences_cls = get_preference_cls;
   /* Setting MLP Input variables */
   mlp->pv.co_D = D;
   mlp->pv.co_R = R;

Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-06-19 04:21:51 UTC 
(rev 27473)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-06-19 04:59:00 UTC 
(rev 27474)
@@ -228,6 +228,10 @@
    */
   void *bw_changed_cb_cls;
 
+  GAS_get_preferences get_preferences;
+
+  void *get_preferences_cls;
+
   struct MLP_Problem p;
 
   struct MLP_Variables pv;
@@ -359,7 +363,9 @@
               unsigned long long *in_dest,
               int dest_length,
               GAS_bandwidth_changed_cb bw_changed_cb,
-              void *bw_changed_cb_cls);
+              void *bw_changed_cb_cls,
+              GAS_get_preferences get_preference,
+              void *get_preference_cls);
 
 
 /**




reply via email to

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