[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?
- To: "Xue Yang" <[email protected]>
- Subject: RE: [ns] mac-802_11.cc ACKTimeout looks incorrect & sifs/difs used incorectly?
- From: "Susan Tsao" <[email protected]>
- Date: Mon, 8 Oct 2001 19:24:04 -0700
- Cc: "Ns-Users (E-mail)" <[email protected]>
- Sender: [email protected]
- Thread-Index: AcFQUHPGDZCKjY08S+Kaosaiphpc/QAFqfAQ
- Thread-Topic: [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
>