[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] Q2 about Nortel patch



Hi, Guangming

In previous routers, they don't support ECN(explicit congestion
notification) and dropping
packets when they think congestion does or will occur so that inform the
end point protocols,
such as TCP to slow down the transmission speed. And if in routers
supporting ECN, they
mark the packets in ECN bit of the packets when congestion happens. In
this way, end point
protocols will react to ECN bit,just like dropping---half the windows to
slow down the rate.

So for RED, when qmin<qave<qmax, it works in early detection phase,when
it supports ECN,
packets are marked randomly(PKT_MARKED)  and if not, packets are early
dropped according
to the dropping probability (PKT_EDROPPED). And when qave>qmax, all
packets are dropped
(not support ecn,PKT_DROPPED) or marked (ecn supported,PKT_MARKED).

Wei Wu

Zhang Guangming wrote:

> hi there,
> I am puzzled by some of the detail of
> the dsredq.cc
> In the file's function of
> int redQueue::enque(Packet *pkt, int prec, int ecn)
>    //if the avg is greater than the min threshold,
>         ...
>          //if avg queue isn't  greater than max. threshold
>          u = Random::uniform(0.0, 1.0);
>          //drop it
>                         if (u <= pa) {
>             if (ecn) return PKT_MARKED;  ???
>             return PKT_EDROPPED;
>          }
>       } else { //if avg queue is greater than max. threshold
>                         qParam_[prec].edv_.count = 0;
>          if (ecn) return PKT_MARKED;
>          return PKT_DROPPED;
>
> then:
> Can u help me to understand what's the difference
> between PKT_MARKED,PKT_EDROPPEDand PKT_DROPPED
> thx.