Update powerqcn variables in rdma-hw and rdma-queue-pair classes
This commit is contained in:
parent
b0ad890be2
commit
3ac195043f
|
@ -2197,11 +2197,11 @@ RdmaHw::HandleAckPowerQcn(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch
|
|||
std::random_device rd;
|
||||
std::mt19937 gen(rd());
|
||||
std::uniform_int_distribution<> distr(0, 1000);
|
||||
uint64_t prev_rtt = powerqcn_prev_rtt == 0 ? rtt : powerqcn_prev_rtt;
|
||||
if (powerqcn_last_update < ch.ack.ih.GetTs())
|
||||
uint64_t prev_rtt = qp->powerqcn.prev_rtt == 0 ? rtt : qp->powerqcn.prev_rtt;
|
||||
if (qp->powerqcn.prev_rtt < ch.ack.ih.GetTs())
|
||||
{
|
||||
powerqcn_prev_rtt = rtt;
|
||||
powerqcn_last_update = Simulator::Now().GetTimeStep();
|
||||
qp->powerqcn.prev_rtt = rtt;
|
||||
qp->powerqcn.last_update = Simulator::Now().GetTimeStep();
|
||||
}
|
||||
double rtt_gradient = (rtt - prev_rtt) / rtt_qcn_tmin;
|
||||
|
||||
|
@ -2222,7 +2222,7 @@ RdmaHw::HandleAckPowerQcn(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch
|
|||
}
|
||||
|
||||
bool gradient_ecn = false;
|
||||
if (rtt_gradient <= -0.25)
|
||||
if (rtt_gradient <= 0.25)
|
||||
{
|
||||
gradient_ecn = false;
|
||||
}
|
||||
|
|
|
@ -239,8 +239,6 @@ class RdmaHw : public Object
|
|||
* PowerQCN
|
||||
* Improve RTT-QCN by using gradient alongside RTT
|
||||
********************/
|
||||
uint64_t powerqcn_prev_rtt = 0; // previous RTT, used to calculate gradient
|
||||
uint64_t powerqcn_last_update = 0; // last time we update prev_rtt
|
||||
void HandleAckPowerQcn(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch);
|
||||
};
|
||||
|
||||
|
|
|
@ -88,6 +88,9 @@ RdmaQueuePair::RdmaQueuePair(uint16_t pg,
|
|||
swift.m_real_win = 10000.0;
|
||||
|
||||
rttqcn.curr_win = 50000.0;
|
||||
|
||||
powerqcn.last_update = 0;
|
||||
powerqcn.prev_rtt = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -154,6 +154,11 @@ class RdmaQueuePair : public Object
|
|||
double curr_win;
|
||||
} rttqcn;
|
||||
|
||||
struct {
|
||||
uint64_t prev_rtt;// previous RTT, used to calculate gradient
|
||||
uint64_t last_update;// last time we update prev_rtt
|
||||
} powerqcn;
|
||||
|
||||
/***********
|
||||
* methods
|
||||
**********/
|
||||
|
|
Loading…
Reference in New Issue