[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] mac-802_11.cc error
Hi Alan,
you are right!
Thanks,
Stefan
Alan Wang wrote:
>
> 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
> >