[Ns-developers] 802.11: ACK tx duration

Ludovico Cavedon cavedon at sssup.it
Mon Feb 6 03:25:57 PST 2006


We are four students working with ns 2.29.

We noticed that the ACK tx duration is usually calculated as:

txtime(phymib_.getACKlen(), basicRate_)

where txtime() in defined in file mac-802_11.cc as 
01398 Mac802_11::txtime(double psz, double drt)
01399 {
01400         double dsz = psz - phymib_.getPLCPhdrLen();
01401         int plcp_hdr = phymib_.getPLCPhdrLen() << 3;    
01402         int datalen = (int)dsz << 3;
01403         double t = (((double)plcp_hdr)/phymib_.getPLCPDataRate())
01404                                        + (((double)datalen)/drt);
01405         return(t);
01406 }

(so Preamble and PLCPHeader at PLCPDataRate, and the rest at basicRate_)

On the contrary, the expression to compute an EIFS length is 

00143         inline double getEIFS() {
00144                 // see (802.11-1999, 9.2.10)
00145                 return(SIFSTime + getDIFS()
00146                        + (8 *  getACKlen())/PLCPDataRate);
00147         }

(so the whole ACK is sent at PLCPDataRate)

Why this difference when PLCPDataRate != basicRate_? Is it a bug or is there a reason we do not catch?

Thank you for your attention,
Ludovico Cavedon
Claudio Gangemi
Francesco la Torre
Carlo Todaro




More information about the Ns-developers mailing list