Hi
I am testing the rates values for MCS0 and MCS7 in ns-3.20 with the example ht-wifi-network.cc and I cant get the theoretical values. The simulator gives:
MCS0 6.5Mbps --> 5.2644 Mbps
MCS7 65Mbps --> 22.7268
when using the default paramters in WifiMac::Configure80211n_2_4Ghz()
However I have noticed that the timeslot in 802.11n es 9ns so I have changed the parameters to:
SetSifs (MicroSeconds (10)); //should I change to 2 us, as same as RIFS??
SetSlot (MicroSeconds (9));
SetEifsNoDifs (MicroSeconds (10 + 79)); //Sifs + acktimeout
SetPifs (MicroSeconds (10 + 9)); //sifs + timeslot
SetRifs(MicroSeconds (2)); //replacing sifs?
SetCtsTimeout (MicroSeconds (10 + 45 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
SetAckTimeout (MicroSeconds (10 + 45 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
//SIFS+(timeslot+2*Txtimeack)+plpc+2xTprop
But the results are not good enough in my opinion
MCS0 6.5Mbps --> 5.54 Mbps
MCS7 65Mbps --> 29.24 Mbps
Since the expected throughput is 5.67Mbps and for MCS7 is 36.8 Mbps I think that is quite far to the expected values. What is happening?Am I forgetting something? No frame aggregation and no block ack are being used, so which could I change to improve the values?
What about AIFSN? I have checked with
PointerValue ptr2;
Ptr<NetDevice> n2;
Ptr<WifiNetDevice> wd2;
n2 = apDevice.Get(0);
wd2 = n2->GetObject<WifiNetDevice>();
wd2->GetMac()->GetAttribute("DcaTxop", ptr2);
Ptr<DcaTxop> dca2 = ptr2.Get<DcaTxop>();
std::cout << "AIFSN " << dca2->GetAifsn() << std::endl;
and a AIFSN of is 2us being used. Should I be change it?Or should I look over in EdcaTxopN insead of DcaTxop?
Thanks
Kind regards