[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] mac-802_11.cc error
Hi,
Just a suggestion...I agree that's a bug
in the code. But I think what needs to be
modified is the if(pktTx_) statement
instead of the if(pktRTS_) statement.
Regards,
Alan
On Thu, 20 Sep 2001, Stefan Rank wrote:
> Hi,
>
> in the specification 9.2.5.4 after successful RTS/CTS, the transmission
> of data has to be deferred for an interval of sifs_. In my simulation
> results data transmission is always deferred for an interval of difs_
>
> void
> Mac802_11::tx_resume()
> {
> assert(mhSend_.busy() == 0);
> assert(mhDefer_.busy() == 0);
>
> if(pktCTRL_) {
> /*
> * Need to send a CTS or ACK.
> */
> mhDefer_.start(sifs_);
> } else if(pktRTS_) {
> if(mhBackoff_.busy() == 0)
>
> //
> //After successful RTS/CTS this sould be mhDefer_.start(sifs_);
> //
> mhDefer_.start(difs_);
>
>
> } else if(pktTx_) {
> if(mhBackoff_.busy() == 0)
> mhDefer_.start(difs_);
> } else if(callback_) {
> Handler *h = callback_;
> callback_ = 0;
> h->handle((Event*) 0);
> }
> SET_TX_STATE(MAC_IDLE);
> }
>
> Changing this line only results in Data always being transmitted after
> an interval of sifs_ even if there is no preceding RTS/CTS.
>
> Could anybody please fix this?
>
> Thanks
>
> Stefan
>