[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r32338 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r32338 - gnunet/src/ats |
Date: |
Thu, 13 Feb 2014 16:38:20 +0100 |
Author: oehlmann
Date: 2014-02-13 16:38:20 +0100 (Thu, 13 Feb 2014)
New Revision: 32338
Modified:
gnunet/src/ats/plugin_ats_ril.c
Log:
- fixed warning about missing return values
Modified: gnunet/src/ats/plugin_ats_ril.c
===================================================================
--- gnunet/src/ats/plugin_ats_ril.c 2014-02-13 14:44:22 UTC (rev 32337)
+++ gnunet/src/ats/plugin_ats_ril.c 2014-02-13 15:38:20 UTC (rev 32338)
@@ -35,14 +35,14 @@
#define RIL_INTERVAL_EXPONENT 10
#define RIL_UTILITY_DELAY_MAX 1000
-#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 300)
+#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 200)
#define RIL_DEFAULT_STEP_TIME_MAX GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 2000)
#define RIL_DEFAULT_ALGORITHM RIL_ALGO_SARSA
#define RIL_DEFAULT_SELECT RIL_SELECT_SOFTMAX
#define RIL_DEFAULT_WELFARE RIL_WELFARE_NASH
#define RIL_DEFAULT_DISCOUNT_BETA 0.6
#define RIL_DEFAULT_DISCOUNT_GAMMA 0.5
-#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.001
+#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.01
#define RIL_DEFAULT_TRACE_DECAY 0.5
#define RIL_DEFAULT_EXPLORE_RATIO 1
#define RIL_DEFAULT_EXPLORE_DECAY 0.95
@@ -557,7 +557,7 @@
break;
case RIL_ACTION_BW_IN_DEC:
case RIL_ACTION_BW_IN_HLV:
- if (agent->bw_in <= RIL_MIN_BW)
+ if (agent->bw_in <= 0)
return GNUNET_NO;
else
return GNUNET_YES;
@@ -571,7 +571,7 @@
break;
case RIL_ACTION_BW_OUT_DEC:
case RIL_ACTION_BW_OUT_HLV:
- if (agent->bw_out <= RIL_MIN_BW)
+ if (agent->bw_out <= 0)
return GNUNET_NO;
else
return GNUNET_YES;
@@ -673,6 +673,7 @@
}
GNUNET_assert(GNUNET_NO);
+ return RIL_ACTION_INVALID;
}
@@ -782,6 +783,16 @@
solver->plugin_envi->info_cb (solver->plugin_envi->info_cb_cls, op, stat,
GAS_INFO_NONE);
}
+/**
+ * Calculates the maximum bandwidth an agent can assign in a network scope
+ *
+ * @param net
+ */
+static unsigned long long
+ril_get_max_bw (struct RIL_Scope *net)
+{
+ return GNUNET_MIN(2 * GNUNET_MAX(net->bw_in_available,
net->bw_out_available), GNUNET_ATS_MaxBandwidth);
+}
/**
* Changes the active assignment suggestion of the handler and invokes the
bw_changed callback to
@@ -895,7 +906,7 @@
state = GNUNET_malloc (sizeof(double) * agent->m);
- max_bw = RIL_MAX_BW;
+ max_bw = ril_get_max_bw((struct RIL_Scope *)
agent->address_inuse->solver_information);
y[0] = (double) agent->bw_out;
y[1] = (double) agent->bw_in;
@@ -964,7 +975,8 @@
pref_match = preferences[GNUNET_ATS_PREFERENCE_LATENCY] * delay_norm;
pref_match += preferences[GNUNET_ATS_PREFERENCE_BANDWIDTH] *
- sqrt((double) (ril_get_atsi (agent->address_inuse,
GNUNET_ATS_UTILIZATION_IN)/RIL_MIN_BW) * (double) (ril_get_atsi
(agent->address_inuse, GNUNET_ATS_UTILIZATION_OUT)/RIL_MIN_BW));
+ sqrt((double) (agent->bw_in/RIL_MIN_BW) * (double)
(agent->bw_out/RIL_MIN_BW));
+// sqrt((double) (ril_get_atsi (agent->address_inuse,
GNUNET_ATS_UTILIZATION_IN)/RIL_MIN_BW) * (double) (ril_get_atsi
(agent->address_inuse, GNUNET_ATS_UTILIZATION_OUT)/RIL_MIN_BW));
// return (double) (agent->bw_in/RIL_MIN_BW);
// return sqrt((double) (agent->bw_in/RIL_MIN_BW) * (double)
(agent->bw_out/RIL_MIN_BW));
@@ -1098,20 +1110,23 @@
int direction_in)
{
unsigned long long new_bw;
+ unsigned long long max_bw;
+ max_bw = ril_get_max_bw((struct RIL_Scope *)
agent->address_inuse->solver_information);
+
if (direction_in)
{
new_bw = agent->bw_in * 2;
- if (new_bw < agent->bw_in || new_bw > RIL_MAX_BW)
- new_bw = RIL_MAX_BW;
+ if (new_bw < agent->bw_in || new_bw > max_bw)
+ new_bw = max_bw;
envi_set_active_suggestion (solver, agent, agent->address_inuse, new_bw,
agent->bw_out, GNUNET_NO);
}
else
{
new_bw = agent->bw_out * 2;
- if (new_bw < agent->bw_out || new_bw > RIL_MAX_BW)
- new_bw = RIL_MAX_BW;
+ if (new_bw < agent->bw_out || new_bw > max_bw)
+ new_bw = max_bw;
envi_set_active_suggestion (solver, agent, agent->address_inuse,
agent->bw_in,
new_bw, GNUNET_NO);
}
@@ -1136,16 +1151,16 @@
if (direction_in)
{
new_bw = agent->bw_in / 2;
- if (new_bw < RIL_MIN_BW || new_bw > agent->bw_in)
- new_bw = RIL_MIN_BW;
+ if (new_bw <= 0 || new_bw > agent->bw_in)
+ new_bw = 0;
envi_set_active_suggestion (solver, agent, agent->address_inuse, new_bw,
agent->bw_out,
GNUNET_NO);
}
else
{
new_bw = agent->bw_out / 2;
- if (new_bw < RIL_MIN_BW || new_bw > agent->bw_out)
- new_bw = RIL_MIN_BW;
+ if (new_bw <= 0 || new_bw > agent->bw_out)
+ new_bw = 0;
envi_set_active_suggestion (solver, agent, agent->address_inuse,
agent->bw_in, new_bw,
GNUNET_NO);
}
@@ -1163,20 +1178,23 @@
envi_action_bw_inc (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent
*agent, int direction_in)
{
unsigned long long new_bw;
+ unsigned long long max_bw;
+ max_bw = ril_get_max_bw((struct RIL_Scope *)
agent->address_inuse->solver_information);
+
if (direction_in)
{
new_bw = agent->bw_in + (RIL_INC_DEC_STEP_SIZE * RIL_MIN_BW);
- if (new_bw < agent->bw_in || new_bw > RIL_MAX_BW)
- new_bw = RIL_MAX_BW;
+ if (new_bw < agent->bw_in || new_bw > max_bw)
+ new_bw = max_bw;
envi_set_active_suggestion (solver, agent, agent->address_inuse, new_bw,
agent->bw_out, GNUNET_NO);
}
else
{
new_bw = agent->bw_out + (RIL_INC_DEC_STEP_SIZE * RIL_MIN_BW);
- if (new_bw < agent->bw_out || new_bw > RIL_MAX_BW)
- new_bw = RIL_MAX_BW;
+ if (new_bw < agent->bw_out || new_bw > max_bw)
+ new_bw = max_bw;
envi_set_active_suggestion (solver, agent, agent->address_inuse,
agent->bw_in,
new_bw, GNUNET_NO);
}
@@ -1199,16 +1217,16 @@
if (direction_in)
{
new_bw = agent->bw_in - (RIL_INC_DEC_STEP_SIZE * RIL_MIN_BW);
- if (new_bw < RIL_MIN_BW || new_bw > agent->bw_in)
- new_bw = RIL_MIN_BW;
+ if (new_bw <= 0 || new_bw > agent->bw_in)
+ new_bw = 0;
envi_set_active_suggestion (solver, agent, agent->address_inuse, new_bw,
agent->bw_out,
GNUNET_NO);
}
else
{
new_bw = agent->bw_out - (RIL_INC_DEC_STEP_SIZE * RIL_MIN_BW);
- if (new_bw < RIL_MIN_BW || new_bw > agent->bw_out)
- new_bw = RIL_MIN_BW;
+ if (new_bw <= 0 || new_bw > agent->bw_out)
+ new_bw = 0;
envi_set_active_suggestion (solver, agent, agent->address_inuse,
agent->bw_in, new_bw,
GNUNET_NO);
}
@@ -1398,6 +1416,7 @@
sum += p[i];
}
GNUNET_assert(GNUNET_NO);
+ return RIL_ACTION_INVALID;
}
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r32338 - gnunet/src/ats,
gnunet <=