diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 12dcc6f97..446f1b6c3 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -100,6 +100,7 @@ Bugs fixed - Bug 2286 - Support for SLL header (de)serialization. - Bug 2287 - FlowMonitor is confused by IP over IP. - Bug 2288 - Ipv4 broadcast and multicast packets are replicated on all the interfaces. +- Bug 2293 - Red Queue Estimator spins when trying to compute queue average size under long idle times. Known issues ------------ diff --git a/src/network/utils/red-queue.cc b/src/network/utils/red-queue.cc index db6408800..6f0993afc 100644 --- a/src/network/utils/red-queue.cc +++ b/src/network/utils/red-queue.cc @@ -421,14 +421,8 @@ double RedQueue::Estimator (uint32_t nQueued, uint32_t m, double qAvg, double qW) { NS_LOG_FUNCTION (this << nQueued << m << qAvg << qW); - double newAve; - newAve = qAvg; - while (--m >= 1) - { - newAve *= 1.0 - qW; - } - newAve *= 1.0 - qW; + double newAve = qAvg * pow(1.0-qW, m); newAve += qW * nQueued; // implement adaptive RED