bug 1969: Support short guard interval durations in 802.11n
This commit is contained in:
@@ -493,7 +493,7 @@ WifiPhy::CalculateTxDuration (uint32_t size, WifiTxVector txvector, WifiPreamble
|
||||
+ GetPlcpHtSigHeaderDurationMicroSeconds (payloadMode, preamble)
|
||||
+ GetPlcpHtTrainingSymbolDurationMicroSeconds (payloadMode, preamble,txvector)
|
||||
+ GetPayloadDurationMicroSeconds (size, txvector, frequency);
|
||||
return MicroSeconds (duration);
|
||||
return NanoSeconds (duration*1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ private:
|
||||
*
|
||||
* @param size size of payload in octets (includes everything after the PLCP header)
|
||||
* @param payloadMode the WifiMode used
|
||||
* @param knownDurationMicroSeconds the known payload size
|
||||
* @param knownDurationMicroSeconds the known duration value of the transmission in microseconds
|
||||
*
|
||||
* @return true if values correspond, false otherwise
|
||||
*/
|
||||
@@ -59,7 +59,7 @@ private:
|
||||
* @param size size of payload in octets (includes everything after the PLCP header)
|
||||
* @param payloadMode the WifiMode used
|
||||
* @param preamble the WifiPreamble used
|
||||
* @param knownDurationMicroSeconds the known value of the transmission
|
||||
* @param knownDurationMicroSeconds the known duration value of the transmission in microseconds
|
||||
*
|
||||
* @return true if values correspond, false otherwise
|
||||
*/
|
||||
@@ -89,7 +89,7 @@ TxDurationTest::CheckPayloadDuration (uint32_t size, WifiMode payloadMode, uint3
|
||||
{
|
||||
testedFrequency = CHANNEL_36_MHZ;
|
||||
}
|
||||
uint32_t calculatedDurationMicroSeconds = WifiPhy::GetPayloadDurationMicroSeconds (size, txVector, testedFrequency);
|
||||
double calculatedDurationMicroSeconds = WifiPhy::GetPayloadDurationMicroSeconds (size, txVector, testedFrequency);
|
||||
if (calculatedDurationMicroSeconds != knownDurationMicroSeconds)
|
||||
{
|
||||
std::cerr << " size=" << size
|
||||
@@ -131,7 +131,7 @@ TxDurationTest::CheckTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamb
|
||||
{
|
||||
testedFrequency = CHANNEL_36_MHZ;
|
||||
}
|
||||
double calculatedDurationMicroSeconds = WifiPhy::CalculateTxDuration (size, txVector, preamble, testedFrequency).GetMicroSeconds ();
|
||||
double calculatedDurationMicroSeconds = ((double)WifiPhy::CalculateTxDuration (size, txVector, preamble, testedFrequency).GetNanoSeconds ())/1000;
|
||||
if (calculatedDurationMicroSeconds != knownDurationMicroSeconds)
|
||||
{
|
||||
std::cerr << " size=" << size
|
||||
@@ -146,7 +146,7 @@ TxDurationTest::CheckTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamb
|
||||
{
|
||||
// Durations vary depending on frequency; test also 2.4 GHz (bug 1971)
|
||||
testedFrequency = CHANNEL_1_MHZ;
|
||||
calculatedDurationMicroSeconds = WifiPhy::CalculateTxDuration (size, txVector, preamble, testedFrequency).GetMicroSeconds ();
|
||||
calculatedDurationMicroSeconds = ((double)WifiPhy::CalculateTxDuration (size, txVector, preamble, testedFrequency).GetNanoSeconds ())/1000;
|
||||
if (calculatedDurationMicroSeconds != knownDurationMicroSeconds + 6)
|
||||
{
|
||||
std::cerr << " size=" << size
|
||||
@@ -245,10 +245,9 @@ TxDurationTest::DoRun (void)
|
||||
&& CheckTxDuration (1536,WifiPhy::GetOfdmRate65MbpsBW20MHz (), WIFI_PREAMBLE_HT_MF,228)
|
||||
&& CheckTxDuration (76, WifiPhy::GetOfdmRate65MbpsBW20MHz (), WIFI_PREAMBLE_HT_MF,48)
|
||||
&& CheckTxDuration (14, WifiPhy::GetOfdmRate65MbpsBW20MHz (), WIFI_PREAMBLE_HT_MF,40 )
|
||||
//should be 218.8, 38,8 and 31.6 but microseconds are only represented as integers will have to change Time to change that
|
||||
&& CheckTxDuration (1536, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,218)
|
||||
&& CheckTxDuration (76, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,38)
|
||||
&& CheckTxDuration (14, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,31);
|
||||
&& CheckTxDuration (1536, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,218.8)
|
||||
&& CheckTxDuration (76, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,38.8)
|
||||
&& CheckTxDuration (14, WifiPhy::GetOfdmRate65MbpsBW20MHzShGi (), WIFI_PREAMBLE_HT_GF,31.6);
|
||||
|
||||
NS_TEST_EXPECT_MSG_EQ (retval, true, "an 802.11n duration failed");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user