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

[ns] mac-802_11.cc error



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