[Ns-developers] Ack Timeout bug

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Fri Apr 24 00:26:05 PDT 2009


On Thu, 2009-04-23 at 20:04 +0400, kirillano wrote:
> Hi All,
> I have tested multple queues (DcaTxops) in wifi and have faced with a
> bug:
>   when MacLow sends a packet while ACK timeout has not expired (In
> 802.11 standard in chapter 9.2.8 was said, that we must wait ack
> timeout before next transmission).

Unless, of course, a higher-priority queue has been granted access to
the medium which is the whole point of having multiple tx queues in a
device.

> I have added NS_ASSERT(false) after line, which cancels ACK timeout in
> CancelAllEvents () method in MacLow, which is called from
> StartTransmission () and my simulation has failed with tis assert.
> When I have looked through output more detailed - I have seen that a
> packet from another queue (beacon queue) has accessed the medium
> before ACK timeout of data packet has expired after crash of ACK. I

Yes, and this is perfectly fine I think.

>  think, that the problem may be resolved by adding a moment of time
> when AckTimeout expires in DcfManager. Now DcfManager knows nothing
> about AckTimeout and can grant access before ACK timeout has expired.

Yes, and that is precisely the expected behavior.

> This problem seems serious to me, because when AckTimeout is
> cancelled, the m_currentPacket in DcaTxop shall never be zero - so,
> the queue is blocked and no data packets can be sent.

I am not sure I understand the problem you describe here. I think that
the DcfManager behavior is precisely what needs to be done to support
properly multiple tx queues with different priorities. It might be that
there is a bug somewhere else (say, in DcaTxop) which makes the priority
preemption problematic and, if so, describing precisely the problem you
observe when this happens would help fix it. Another way to handle that
issue would be produce a testcase which can be used to reproduce your
problem with ns-3-dev so that I can look at it myself.

I hope this helps,
Mathieu



More information about the Ns-developers mailing list