[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
> >