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

RE: [ns] mac-802_11.cc ACKTimeout looks incorrect & sifs/difs used incorectly?



In the current NS, it always perform RTS/CTS exchange 
because MAC_RTSThreshold is set to 0 in mac-802_11.cc.

Few other confusions I had is:
1) In RetransmitRTS() and RetransmitDATA() of mac-802_11.cc,
   it resets ssrc when ssrc exceeds the ShortRetryLimit. I can't
   find it anywhere in the standard where it specify this. Can 
   anyone please point it out to me?
2) When transmitting CTS, it sets a timeout which is defined in 
   check_pktCTRL() in mac-802_11.cc. If one were to trace the code, 
   this cts timeout value is:
	CTS + sifs + Data + sifs + Ack 
   I don't understand why does it include the ACK transmission time. 
   Wouldn't (CTS + sifs + Data + sifs) do? 

Thank you.
Susan 

-----Original Message-----
From: Xue Yang [mailto:[email protected]]
Sent: Monday, October 08, 2001 4:25 PM
To: Susan Tsao
Cc: Ns-Users (E-mail)
Subject: Re: [ns] mac-802_11.cc ACKTimeout looks incorrect & sifs/difs
used incorectly?


I believe this is bug in ns. It doesn't differentiate data packet
sending 
with RTS/CTS handshake or not. 
If we use RTS/CTS handshake(packet size above RTS-threshold), then those
two locations you point out should be change to SIFS according to 802.11
standard.

On Fri, 5 Oct 2001, Susan Tsao wrote:

> Hello,
> 
> I have 2 quesiton relating to NS implementation of the Mac 802.11
> protocol.
> 
> 1) In mac-802_11.h, it defines ACKTimeout to be:
> 
> 	#define ACKTimeout(len) (DATA_Time(len) + ACK_Time + sifs_ +
> difs_)
> 
>     But according to standard, it should be:
> 	#define ACKTimeout(len) (DATA_Time(len) + ACK_Time + sifs_ +
> sifs_)
> 
> 2) In mac-802_11.cc:
> 		
> 	void Mac802_11::tx_resume()  
> 	{
> 	      .........
> 	    else if(pktTx_) {
>                	 if(mhBackoff_.busy() == 0)
>                         	mhDefer_.start(difs_);	
> 	   .........
> 	}  
> 
> According to standards:  Upon receiving a CTS frame, station will wait
> for SIFS period before sending DATA
> However, according to the above code, station waits for DIFS period
> before sending DATA.
> Can someone please explain to me whether this is a bug in the code or
> did I misinterpret the standard.
> Thank you.
> Susan 
>