#include "network_private.h"
#include "xbt/dict.h"
+#define SG_TCP_CTE_GAMMA 20000.0
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(network, surf,
"Logging specific to the SURF network module");
lmm_update_constraint_bound(maxmin_system, nw_link->constraint,
nw_link->bw_current);
} else if (event_type == nw_link->lat_event) {
+ xbt_maxmin_float_t delta = value - nw_link->lat_current;
+ lmm_variable_t var = NULL;
+ surf_action_network_t action = NULL;
+
nw_link->lat_current = value;
+ while(lmm_get_var_from_cnst(maxmin_system, nw_link->constraint, &var)) {
+ action = lmm_variable_id(var);
+ action->lat_current+=delta;
+ lmm_update_variable_bound(maxmin_system, var,
+ 1/(action->lat_current));
+ }
} else if (event_type == nw_link->state_event) {
if (value > 0)
nw_link->state_current = SURF_NETWORK_LINK_ON;
action->latency = 0.0;
for(i=0; i<route_size; i++)
action->latency += route[i]->lat_current;
+ action->lat_current = action->latency;
+ lmm_update_variable_bound(maxmin_system, action->variable,
+ SG_TCP_CTE_GAMMA/action->lat_current);
return (surf_action_t) action;
}
printf("%s : %p\n", surf_network_resource->common_public->get_resource_name(cardB), cardB);
/* Let's do something on it */
- commAB = surf_network_resource->extension_public->communicate(cardA, cardB, 132.0);
+ commAB = surf_network_resource->extension_public->communicate(cardA, cardB, 150.0);
surf_solve(); /* Takes traces into account. Returns 0.0 */
do {