wifi: Extend HE-SIG-B duration tests for MU-MIMO
This commit is contained in:
committed by
Sébastien Deronne
parent
6ef37422c3
commit
e85f1621d5
@@ -30,11 +30,12 @@
|
||||
#include "ns3/wifi-psdu.h"
|
||||
#include "ns3/yans-wifi-phy.h"
|
||||
|
||||
#include <list>
|
||||
#include <numeric>
|
||||
|
||||
using namespace ns3;
|
||||
|
||||
NS_LOG_COMPONENT_DEFINE("InterferenceHelperTxDurationTest");
|
||||
NS_LOG_COMPONENT_DEFINE("TxDurationTest");
|
||||
|
||||
/**
|
||||
* \ingroup wifi-test
|
||||
@@ -1303,12 +1304,22 @@ TxDurationTest::DoRun()
|
||||
class HeSigBDurationTest : public TestCase
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* OFDMA or MU-MIMO
|
||||
*/
|
||||
enum MuType
|
||||
{
|
||||
OFDMA = 0,
|
||||
MU_MIMO
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* \param userInfos the HE MU specific per-user information to use for the test
|
||||
* \param sigBMode the mode to transmit HE-SIG-B for the test
|
||||
* \param channelWidth the channel width in MHz to select for the test
|
||||
* \param expectedMuType the expected MU type (OFDMA or MU-MIMO)
|
||||
* \param expectedRuAllocation the expected RU_ALLOCATION
|
||||
* \param expectedNumUsersPerCc the expected number of users per content channel
|
||||
* \param expectedSigBDuration the expected duration of the HE-SIG-B header
|
||||
@@ -1316,6 +1327,7 @@ class HeSigBDurationTest : public TestCase
|
||||
HeSigBDurationTest(const std::list<HeMuUserInfo>& userInfos,
|
||||
const WifiMode& sigBMode,
|
||||
uint16_t channelWidth,
|
||||
MuType expectedMuType,
|
||||
const RuAllocation& expectedRuAllocation,
|
||||
const std::pair<std::size_t, std::size_t>& expectedNumUsersPerCc,
|
||||
Time expectedSigBDuration);
|
||||
@@ -1333,6 +1345,7 @@ class HeSigBDurationTest : public TestCase
|
||||
std::list<HeMuUserInfo> m_userInfos; ///< HE MU specific per-user information
|
||||
WifiMode m_sigBMode; ///< Mode used to transmit HE-SIG-B
|
||||
uint16_t m_channelWidth; ///< Channel width in MHz
|
||||
MuType m_expectedMuType; ///< Expected MU type (OFDMA or MU-MIMO)
|
||||
RuAllocation m_expectedRuAllocation; ///< Expected RU_ALLOCATION
|
||||
std::pair<std::size_t, std::size_t>
|
||||
m_expectedNumUsersPerCc; ///< Expected number of users per content channel
|
||||
@@ -1343,6 +1356,7 @@ HeSigBDurationTest::HeSigBDurationTest(
|
||||
const std::list<HeMuUserInfo>& userInfos,
|
||||
const WifiMode& sigBMode,
|
||||
uint16_t channelWidth,
|
||||
MuType expectedMuType,
|
||||
const RuAllocation& expectedRuAllocation,
|
||||
const std::pair<std::size_t, std::size_t>& expectedNumUsersPerCc,
|
||||
Time expectedSigBDuration)
|
||||
@@ -1350,6 +1364,7 @@ HeSigBDurationTest::HeSigBDurationTest(
|
||||
m_userInfos{userInfos},
|
||||
m_sigBMode{sigBMode},
|
||||
m_channelWidth{channelWidth},
|
||||
m_expectedMuType{expectedMuType},
|
||||
m_expectedRuAllocation{expectedRuAllocation},
|
||||
m_expectedNumUsersPerCc{expectedNumUsersPerCc},
|
||||
m_expectedSigBDuration{expectedSigBDuration}
|
||||
@@ -1373,6 +1388,7 @@ HeSigBDurationTest::BuildTxVector() const
|
||||
staIds.push_back(staId++);
|
||||
}
|
||||
txVector.SetSigBMode(m_sigBMode);
|
||||
NS_ASSERT(m_expectedMuType == OFDMA ? txVector.IsDlOfdma() : txVector.IsDlMuMimo());
|
||||
return txVector;
|
||||
}
|
||||
|
||||
@@ -1393,11 +1409,11 @@ HeSigBDurationTest::DoRun()
|
||||
"Incorrect RU_ALLOCATION");
|
||||
|
||||
// Verify number of users for content channels 1 and 2
|
||||
const auto& numUsersPerCc =
|
||||
HePpdu::GetNumRusPerHeSigBContentChannel(txVector.GetChannelWidth(),
|
||||
txVector.GetRuAllocation(0),
|
||||
false,
|
||||
0);
|
||||
const auto& numUsersPerCc = HePpdu::GetNumRusPerHeSigBContentChannel(
|
||||
txVector.GetChannelWidth(),
|
||||
txVector.GetRuAllocation(0),
|
||||
txVector.IsSigBCompression(),
|
||||
txVector.IsSigBCompression() ? txVector.GetHeMuUserInfoMap().size() : 0);
|
||||
const auto contentChannels = HePpdu::GetHeSigBContentChannels(txVector, 0);
|
||||
NS_TEST_EXPECT_MSG_EQ(numUsersPerCc.first,
|
||||
m_expectedNumUsersPerCc.first,
|
||||
@@ -1790,17 +1806,18 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
|
||||
AddTestCase(new PhyHeaderSectionsTest, TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, even number of users per HE-SIG-B content channel
|
||||
// 20 MHz band, HeSigBDurationTest::OFDMA, even number of users per HE-SIG-B content channel
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_106_TONE, 1, true}, 11, 1}, {{HeRu::RU_106_TONE, 2, true}, 10, 4}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
20,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{96},
|
||||
std::make_pair(2, 0), // both users in HE-SIG-B content channel 1
|
||||
MicroSeconds(4)), // one OFDM symbol;
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, even number of users per HE-SIG-B content channel
|
||||
// 40 MHz band, HeSigBDurationTest::OFDMA, even number of users per HE-SIG-B content channel
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_106_TONE, 1, true}, 11, 1},
|
||||
{{HeRu::RU_106_TONE, 2, true}, 10, 4},
|
||||
@@ -1810,13 +1827,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_52_TONE, 8, true}, 6, 2}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
40,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{96, 112},
|
||||
std::make_pair(2, 4), // two users in HE-SIG-B content channel 1 and
|
||||
// four users in HE-SIG-B content channel 2
|
||||
MicroSeconds(4)), // one OFDM symbol;
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, odd number of users per HE-SIG-B content channel
|
||||
// 40 MHz band, HeSigBDurationTest::OFDMA, odd number of users per HE-SIG-B content channel
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_106_TONE, 1, true}, 11, 1},
|
||||
{{HeRu::RU_106_TONE, 2, true}, 10, 4},
|
||||
@@ -1827,13 +1845,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_26_TONE, 14, true}, 3, 1}},
|
||||
VhtPhy::GetVhtMcs3(),
|
||||
40,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{96, 15},
|
||||
std::make_pair(2, 5), // two users in HE-SIG-B content channel 1 and
|
||||
// five users in HE-SIG-B content channel 2
|
||||
MicroSeconds(8)), // two OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band
|
||||
// 80 MHz band, OFDMA
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_106_TONE, 1, true}, 11, 1},
|
||||
{{HeRu::RU_106_TONE, 2, true}, 10, 4},
|
||||
@@ -1846,13 +1865,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_242_TONE, 4, true}, 4, 1}},
|
||||
VhtPhy::GetVhtMcs1(),
|
||||
80,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{96, 15, 192, 192},
|
||||
std::make_pair(3, 6), // three users in HE-SIG-B content channel 1
|
||||
// and six users in HE-SIG-B content channel 2
|
||||
MicroSeconds(16)), // four OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band
|
||||
// 160 MHz band, OFDMA
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_106_TONE, 1, true}, 11, 1},
|
||||
{{HeRu::RU_106_TONE, 2, true}, 10, 4},
|
||||
@@ -1866,13 +1886,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_996_TONE, 1, false}, 1, 1}},
|
||||
VhtPhy::GetVhtMcs1(),
|
||||
160,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{96, 15, 192, 192, 208, 208, 208, 208},
|
||||
std::make_pair(4, 7), // four users in HE-SIG-B content channel 1 and
|
||||
// seven users in HE-SIG-B content channel 2
|
||||
MicroSeconds(20)), // five OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, one unallocated RU at the middle
|
||||
// 20 MHz band, HeSigBDurationTest::OFDMA, one unallocated RU at the middle
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_26_TONE, 1, true}, 11, 1},
|
||||
{{HeRu::RU_26_TONE, 2, true}, 11, 1},
|
||||
@@ -1884,13 +1905,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_26_TONE, 9, true}, 11, 1}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
20,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{0},
|
||||
std::make_pair(9, 0), // 9 users in HE-SIG-B content channel 1
|
||||
MicroSeconds(8)), // two OFDM symbols;
|
||||
MicroSeconds(8)), // two OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, unallocated RUs at the begin and at the end of the first 20 MHz subband and in
|
||||
// the middle of the second 20 MHz subband
|
||||
// 40 MHz band, HeSigBDurationTest::OFDMA, unallocated RUs at the begin and at the end of the
|
||||
// first 20 MHz subband and in the middle of the second 20 MHz subband
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_52_TONE, 2, true}, 10, 1},
|
||||
{{HeRu::RU_52_TONE, 3, true}, 10, 2},
|
||||
@@ -1898,13 +1920,14 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_52_TONE, 8, true}, 11, 2}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
40,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{112, 112},
|
||||
std::make_pair(4, 4), // 4 users in both HE-SIG-B content channels
|
||||
MicroSeconds(4)), // two OFDM symbols;
|
||||
MicroSeconds(4)), // two OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, one unallocated RUs in the first 20 MHz subband and two unallocated RUs in
|
||||
// second 20 MHz subband
|
||||
// 40 MHz band, HeSigBDurationTest::OFDMA, one unallocated RUs in the first 20 MHz subband and
|
||||
// two unallocated RUs in second 20 MHz subband
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_52_TONE, 1, true}, 10, 1},
|
||||
{{HeRu::RU_52_TONE, 2, true}, 10, 2},
|
||||
@@ -1913,10 +1936,303 @@ TxDurationTestSuite::TxDurationTestSuite()
|
||||
{{HeRu::RU_52_TONE, 6, true}, 11, 3}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
40,
|
||||
HeSigBDurationTest::OFDMA,
|
||||
{112, 112},
|
||||
std::make_pair(4, 4), // 4 users in both HE-SIG-B content channels
|
||||
MicroSeconds(4)), // two OFDM symbols;
|
||||
MicroSeconds(4)), // two OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, MU-MIMO, 2 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_242_TONE, 1, true}, 11, 1}, {{HeRu::RU_242_TONE, 1, true}, 10, 4}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
20,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{192},
|
||||
std::make_pair(2, 0), // both users in HE-SIG-B content channel 1
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, MU-MIMO, 3 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_242_TONE, 1, true}, 4, 3},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 6, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
20,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{192},
|
||||
std::make_pair(3, 0), // all users in HE-SIG-B content channel 1
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, MU-MIMO, 4 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_242_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 6, 3},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 7, 2}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
20,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{192},
|
||||
std::make_pair(4, 0), // all users in HE-SIG-B content channel 1
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, MU-MIMO, 6 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_242_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 6, 2},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 7, 2},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 9, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
20,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{192},
|
||||
std::make_pair(6, 0), // all users in HE-SIG-B content channel 1
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 20 MHz band, MU-MIMO, 8 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest({{{HeRu::RU_242_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 6, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 7, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 9, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 10, 1},
|
||||
{{HeRu::RU_242_TONE, 1, true}, 11, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
20,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{192},
|
||||
std::make_pair(8, 0), // all users in HE-SIG-B content channel 1
|
||||
MicroSeconds(8)), // two OFDM symbols
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, MU-MIMO, 2 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_484_TONE, 1, true}, 11, 1}, {{HeRu::RU_484_TONE, 1, true}, 10, 4}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
40,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{200, 200},
|
||||
std::make_pair(1, 1), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, MU-MIMO, 3 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest(
|
||||
{{{HeRu::RU_484_TONE, 1, true}, 4, 3},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 6, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
40,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{200, 200},
|
||||
std::make_pair(2, 1), // 2 users in content channel 1 and 1 user in content channel 2
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, MU-MIMO, 4 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_484_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 6, 3},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 7, 2}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
40,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{200, 200},
|
||||
std::make_pair(2, 2), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, MU-MIMO, 6 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_484_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 6, 2},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 7, 2},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 9, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
40,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{200, 200},
|
||||
std::make_pair(3, 3), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 40 MHz band, MU-MIMO, 8 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_484_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 6, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 7, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 9, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 10, 1},
|
||||
{{HeRu::RU_484_TONE, 1, true}, 11, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
40,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{200, 200},
|
||||
std::make_pair(4, 4), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band, MU-MIMO, 2 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_996_TONE, 1, true}, 11, 1}, {{HeRu::RU_996_TONE, 1, true}, 10, 4}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
80,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208},
|
||||
std::make_pair(1, 1), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band, MU-MIMO, 3 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest(
|
||||
{{{HeRu::RU_996_TONE, 1, true}, 4, 3},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 6, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
80,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208},
|
||||
std::make_pair(2, 1), // 2 users in content channel 1 and 1 user in content channel 2
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band, MU-MIMO, 4 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 6, 3},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 7, 2}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
80,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208},
|
||||
std::make_pair(2, 2), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band, MU-MIMO, 6 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 6, 2},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 7, 2},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 9, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
80,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208},
|
||||
std::make_pair(3, 3), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 80 MHz band, MU-MIMO, 8 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 6, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 7, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 9, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 10, 1},
|
||||
{{HeRu::RU_996_TONE, 1, true}, 11, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
80,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208},
|
||||
std::make_pair(4, 4), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band, MU-MIMO, 2 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest(
|
||||
{{{HeRu::RU_2x996_TONE, 1, true}, 11, 1}, {{HeRu::RU_2x996_TONE, 1, true}, 10, 4}},
|
||||
VhtPhy::GetVhtMcs5(),
|
||||
160,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208, 208, 208, 208, 208},
|
||||
std::make_pair(1, 1), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band, MU-MIMO, 3 users
|
||||
AddTestCase(
|
||||
new HeSigBDurationTest(
|
||||
{{{HeRu::RU_2x996_TONE, 1, true}, 4, 3},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 6, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
160,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208, 208, 208, 208, 208},
|
||||
std::make_pair(2, 1), // 2 users in content channel 1 and 1 user in content channel 2
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band, MU-MIMO, 4 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_2x996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 5, 2},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 6, 3},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 7, 2}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
160,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208, 208, 208, 208, 208},
|
||||
std::make_pair(2, 2), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band, MU-MIMO, 6 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_2x996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 6, 2},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 7, 2},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 9, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
160,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208, 208, 208, 208, 208},
|
||||
std::make_pair(3, 3), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
|
||||
// 160 MHz band, MU-MIMO, 8 users
|
||||
AddTestCase(new HeSigBDurationTest(
|
||||
{{{HeRu::RU_2x996_TONE, 1, true}, 4, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 5, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 6, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 7, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 8, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 9, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 10, 1},
|
||||
{{HeRu::RU_2x996_TONE, 1, true}, 11, 1}},
|
||||
VhtPhy::GetVhtMcs4(),
|
||||
160,
|
||||
HeSigBDurationTest::MU_MIMO,
|
||||
{208, 208, 208, 208, 208, 208, 208, 208},
|
||||
std::make_pair(4, 4), // users equally split between the two content channels
|
||||
MicroSeconds(4)), // one OFDM symbol
|
||||
TestCase::QUICK);
|
||||
}
|
||||
|
||||
static TxDurationTestSuite g_txDurationTestSuite; ///< the test suite
|
||||
|
||||
Reference in New Issue
Block a user