wifi: (fixes #2826) Use lowest basic rate for management frames
This commit is contained in:
@@ -53,8 +53,9 @@ Bugs fixed
|
||||
- Bug 2813 - wifi: OFDM 10 MHz and 5 MHz PHYs do not have correct subcarrier frequency spacings
|
||||
- Bug 2820 - wifi: segmentation fault when Rrpaa wifi manager is used
|
||||
- Bug 2824 - ICMP opcode fr fragment timeout drop is wrong
|
||||
- Bug 2828 - OLSR simple P2P example produces wrong results
|
||||
- Bug 2826 - wifi: Management frames should be sent using the lowest basic rate
|
||||
- Bug 2827 - wifi: Active scanning not working with 802.11n/ac/ax
|
||||
- Bug 2828 - OLSR simple P2P example produces wrong results
|
||||
- Bug 2831 - wifi: runtime channel width switch has no effect
|
||||
- Bug 2836 - wifi: Missing VHT information in radiotap header when A-MPDU is used
|
||||
- Bug 2838 - wifi: ht-wifi-network crashes with RTS/CTS enabled and frequency set to 2.4GHz
|
||||
|
||||
@@ -45,7 +45,7 @@ cpp_examples = [
|
||||
("he-wifi-network --simulationTime=0.25 --frequency=5 --useRts=0 --minExpectedThroughput=6 --maxExpectedThroughput=754", "True", "True"),
|
||||
("he-wifi-network --simulationTime=0.3 --frequency=5 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=639", "True", "True"),
|
||||
("he-wifi-network --simulationTime=0.25 --frequency=2.4 --useRts=0 --minExpectedThroughput=6 --maxExpectedThroughput=238", "True", "True"),
|
||||
("he-wifi-network --simulationTime=0.25 --frequency=2.4 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=224", "True", "True"),
|
||||
("he-wifi-network --simulationTime=0.3 --frequency=2.4 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=224", "True", "True"),
|
||||
("simple-ht-hidden-stations --simulationTime=1 --minExpectedThroughput=22 --maxExpectedThroughput=22.5", "True", "True"),
|
||||
("mixed-network --simulationTime=1", "True", "True"),
|
||||
("wifi-aggregation --simulationTime=1 --verifyResults=1", "True", "True"),
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -176,15 +176,17 @@ The following details pertain to the physical layer and channel models:
|
||||
* PLCP preamble reception is not modeled
|
||||
* PHY_RXSTART is not supported
|
||||
* The current implementation assumes that secondary channels are always higher than primary channels
|
||||
* Cases where RTS/CTS and ACK are transmitted using HT/VHT/HE formats are not supported
|
||||
|
||||
At the MAC layer, most of the main functions found in deployed Wi-Fi
|
||||
equipment for 802.11a/b/e/g/n/ac/ax are implemented, but there are scattered instances
|
||||
where some limitations in the models exist.Support for 802.11n and ac is evolving.
|
||||
Some additional details are as follows:
|
||||
where some limitations in the models exist. Support for 802.11n and ac is evolving.
|
||||
|
||||
Some implementation choices that are not imposed by the standard are listed below:
|
||||
|
||||
* BSSBasicRateSet for 802.11b has been assumed to be 1-2 Mbit/s
|
||||
* BSSBasicRateSet for 802.11a/g has been assumed to be 6-12-24 Mbit/s
|
||||
* cases where RTS/CTS and ACK are transmitted using HT/VHT/HE formats are not supported
|
||||
* The wifi manager always selects the lowest basic rate for management frames.
|
||||
|
||||
Design Details
|
||||
**************
|
||||
|
||||
@@ -859,7 +859,25 @@ WifiRemoteStationManager::GetDataTxVector (Mac48Address address, const WifiMacHe
|
||||
(void) found;
|
||||
return datatag.GetDataTxVector ();
|
||||
}
|
||||
return DoGetDataTxVector (Lookup (address, header));
|
||||
WifiTxVector txVector = DoGetDataTxVector (Lookup (address, header));
|
||||
if (header->IsMgt ())
|
||||
{
|
||||
//Use the lowest basic rate for management frames
|
||||
WifiMode mgtMode;
|
||||
if (GetNBasicModes () > 0)
|
||||
{
|
||||
mgtMode = GetBasicMode (0);
|
||||
}
|
||||
else
|
||||
{
|
||||
mgtMode = GetDefaultMode ();
|
||||
}
|
||||
txVector.SetMode (mgtMode);
|
||||
txVector.SetPreambleType (GetPreambleForTransmission (mgtMode, address));
|
||||
txVector.SetChannelWidth (GetChannelWidthForTransmission (mgtMode, m_wifiPhy->GetChannelWidth ()));
|
||||
txVector.SetGuardInterval (ConvertGuardIntervalToNanoSeconds (mgtMode, m_wifiPhy->GetShortGuardInterval (), m_wifiPhy->GetGuardInterval ()));
|
||||
}
|
||||
return txVector;
|
||||
}
|
||||
|
||||
WifiTxVector
|
||||
|
||||
Reference in New Issue
Block a user