|
|
| |
#include "diffusion/diff_header.h" | #include "diffusion/diff_header.h" |
| |
#define max(a,b) (((a)<(b))?(b):(a)) |
#define MAX(a,b) (((a)<(b))?(b):(a)) |
| |
void Idle_Timer::expire(Event *) { | void Idle_Timer::expire(Event *) { |
a_->UpdateIdleEnergy(); | a_->UpdateIdleEnergy(); |
|
|
if (em()->energy() > 0) { | if (em()->energy() > 0) { |
//double txtime = (8.*hdr_cmn::access(p)->size())/bandwidth_; | //double txtime = (8.*hdr_cmn::access(p)->size())/bandwidth_; |
double txtime = hdr_cmn::access(p)->txtime(); | double txtime = hdr_cmn::access(p)->txtime(); |
double start_time = max(channel_idle_time_, NOW); |
double start_time = MAX(channel_idle_time_, NOW); |
double end_time = max(channel_idle_time_, NOW+txtime); |
double end_time = MAX(channel_idle_time_, NOW+txtime); |
double actual_txtime = end_time-start_time; | double actual_txtime = end_time-start_time; |
| |
if (start_time > update_energy_time_) { | if (start_time > update_energy_time_) { |
|
|
*/ | */ |
| |
// Sanity check | // Sanity check |
double temp = max(NOW,last_send_time_); |
double temp = MAX(NOW,last_send_time_); |
| |
/* | /* |
if (NOW < last_send_time_) { | if (NOW < last_send_time_) { |
|
|
} | } |
*/ | */ |
| |
double begin_adjust_time = min(channel_idle_time_, temp); |
double begin_adjust_time = MIN(channel_idle_time_, temp); |
double finish_adjust_time = min(channel_idle_time_, NOW+txtime); |
double finish_adjust_time = MIN(channel_idle_time_, NOW+txtime); |
double gap_adjust_time = finish_adjust_time - begin_adjust_time; | double gap_adjust_time = finish_adjust_time - begin_adjust_time; |
if (gap_adjust_time < 0.0) { | if (gap_adjust_time < 0.0) { |
fprintf(stderr,"What the heck ! negative gap time.\n"); | fprintf(stderr,"What the heck ! negative gap time.\n"); |
|
|
em()->DecrRcvEnergy(rcvtime,Pr_consume_); | em()->DecrRcvEnergy(rcvtime,Pr_consume_); |
*/ | */ |
| |
double start_time = max(channel_idle_time_, NOW); |
double start_time = MAX(channel_idle_time_, NOW); |
double end_time = max(channel_idle_time_, NOW+rcvtime); |
double end_time = MAX(channel_idle_time_, NOW+rcvtime); |
double actual_rcvtime = end_time-start_time; | double actual_rcvtime = end_time-start_time; |
| |
if (start_time > update_energy_time_) { | if (start_time > update_energy_time_) { |