wifi, lte, dsr, examples: Optimize vector initialization

This commit is contained in:
Eduardo Almeida
2022-10-06 11:20:08 +00:00
parent e807d729db
commit b2af8bbe48
11 changed files with 811 additions and 737 deletions

View File

@@ -320,15 +320,16 @@ main (int argc, char *argv[])
// ======================================================================
// Define the list of valid PCAP taps
// ----------------------------------------------------------------------
std::vector<std::string> pcapTaps;
pcapTaps.push_back ("t2"); // multi-switch UDP echo client
pcapTaps.push_back ("t3"); // single-switch UDP echo server
pcapTaps.push_back ("b2"); // multi-switch UDP echo server
pcapTaps.push_back ("b3"); // single-switch UDP echo client
pcapTaps.push_back ("trlan"); // top router LAN side
pcapTaps.push_back ("trwan"); // top router WAN side
pcapTaps.push_back ("brlan"); // bottom router LAN side
pcapTaps.push_back ("brwan"); // bottom router WAN side
const std::vector<std::string> pcapTaps {
"t2", // multi-switch UDP echo client
"t3", // single-switch UDP echo server
"b2", // multi-switch UDP echo server
"b3", // single-switch UDP echo client
"trlan", // top router LAN side
"trwan", // top router WAN side
"brlan", // bottom router LAN side
"brwan", // bottom router WAN side
};
// ----------------------------------------------------------------------
// Parse the pcapLocations string into pcapLocationVec

View File

@@ -211,12 +211,13 @@ Experiment::Run (const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy,
int main (int argc, char *argv[])
{
std::ofstream outfile ("clear-channel.plt");
std::vector <std::string> modes;
modes.push_back ("DsssRate1Mbps");
modes.push_back ("DsssRate2Mbps");
modes.push_back ("DsssRate5_5Mbps");
modes.push_back ("DsssRate11Mbps");
const std::vector <std::string> modes {
"DsssRate1Mbps",
"DsssRate2Mbps",
"DsssRate5_5Mbps",
"DsssRate11Mbps",
};
CommandLine cmd (__FILE__);
cmd.Parse (argc, argv);

View File

@@ -36,12 +36,13 @@ int main (int argc, char *argv[])
{
uint32_t FrameSize = 1500; //bytes
std::ofstream file ("frame-success-rate-dsss.plt");
std::vector <std::string> modes;
modes.push_back ("DsssRate1Mbps");
modes.push_back ("DsssRate2Mbps");
modes.push_back ("DsssRate5_5Mbps");
modes.push_back ("DsssRate11Mbps");
const std::vector <std::string> modes {
"DsssRate1Mbps",
"DsssRate2Mbps",
"DsssRate5_5Mbps",
"DsssRate11Mbps",
};
CommandLine cmd (__FILE__);
cmd.AddValue ("FrameSize", "The frame size in bytes", FrameSize);

View File

@@ -123,10 +123,12 @@ void
DsrRreqHeaderTest::DoRun ()
{
dsr::DsrOptionRreqHeader h;
std::vector<Ipv4Address> nodeList;
nodeList.push_back (Ipv4Address ("1.1.1.0"));
nodeList.push_back (Ipv4Address ("1.1.1.1"));
nodeList.push_back (Ipv4Address ("1.1.1.2"));
const std::vector<Ipv4Address> nodeList {
Ipv4Address ("1.1.1.0"),
Ipv4Address ("1.1.1.1"),
Ipv4Address ("1.1.1.2"),
};
h.SetTarget (Ipv4Address ("1.1.1.3"));
NS_TEST_EXPECT_MSG_EQ (h.GetTarget (), Ipv4Address ("1.1.1.3"), "trivial");
@@ -175,10 +177,12 @@ DsrRrepHeaderTest::DoRun ()
{
dsr::DsrOptionRrepHeader h;
std::vector<Ipv4Address> nodeList;
nodeList.push_back (Ipv4Address ("1.1.1.0"));
nodeList.push_back (Ipv4Address ("1.1.1.1"));
nodeList.push_back (Ipv4Address ("1.1.1.2"));
const std::vector<Ipv4Address> nodeList {
Ipv4Address ("1.1.1.0"),
Ipv4Address ("1.1.1.1"),
Ipv4Address ("1.1.1.2"),
};
h.SetNodesAddress (nodeList);
NS_TEST_EXPECT_MSG_EQ (h.GetNodeAddress (0), Ipv4Address ("1.1.1.0"), "trivial");
NS_TEST_EXPECT_MSG_EQ (h.GetNodeAddress (1), Ipv4Address ("1.1.1.1"), "trivial");
@@ -221,10 +225,13 @@ void
DsrSRHeaderTest::DoRun ()
{
dsr::DsrOptionSRHeader h;
std::vector<Ipv4Address> nodeList;
nodeList.push_back (Ipv4Address ("1.1.1.0"));
nodeList.push_back (Ipv4Address ("1.1.1.1"));
nodeList.push_back (Ipv4Address ("1.1.1.2"));
const std::vector<Ipv4Address> nodeList {
Ipv4Address ("1.1.1.0"),
Ipv4Address ("1.1.1.1"),
Ipv4Address ("1.1.1.2"),
};
h.SetNodesAddress (nodeList);
NS_TEST_EXPECT_MSG_EQ (h.GetNodeAddress (0), Ipv4Address ("1.1.1.0"), "trivial");
NS_TEST_EXPECT_MSG_EQ (h.GetNodeAddress (1), Ipv4Address ("1.1.1.1"), "trivial");
@@ -405,9 +412,12 @@ void
DsrCacheEntryTest::DoRun ()
{
Ptr<dsr::DsrRouteCache> rcache = CreateObject<dsr::DsrRouteCache> ();
std::vector<Ipv4Address> ip;
ip.push_back (Ipv4Address ("0.0.0.0"));
ip.push_back (Ipv4Address ("0.0.0.1"));
std::vector<Ipv4Address> ip {
Ipv4Address ("0.0.0.0"),
Ipv4Address ("0.0.0.1"),
};
Ipv4Address dst = Ipv4Address ("0.0.0.1");
dsr::DsrRouteCacheEntry entry (ip, dst, Seconds (1));
NS_TEST_EXPECT_MSG_EQ (entry.GetVector ().size (), 2, "trivial");
@@ -424,9 +434,11 @@ DsrCacheEntryTest::DoRun ()
NS_TEST_EXPECT_MSG_EQ (rcache->AddRoute (entry), true, "trivial");
std::vector<Ipv4Address> ip2;
ip2.push_back (Ipv4Address ("1.1.1.0"));
ip2.push_back (Ipv4Address ("1.1.1.1"));
std::vector<Ipv4Address> ip2 {
Ipv4Address ("1.1.1.0"),
Ipv4Address ("1.1.1.1"),
};
Ipv4Address dst2 = Ipv4Address ("1.1.1.1");
dsr::DsrRouteCacheEntry entry2 (ip2, dst2, Seconds (2));
dsr::DsrRouteCacheEntry newEntry;

View File

@@ -71,21 +71,15 @@ LteCellSelectionTestSuite::LteCellSelectionTestSuite ()
// REAL RRC PROTOCOL
w.clear ();
// x y csgMember
// checkPoint cell1, cell2
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.0, 0.55, false,
MilliSeconds (283), 1, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.0, 0.45, false,
MilliSeconds (283), 1, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.5, 0.45, false,
MilliSeconds (363), 1, 3));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.5, 0.0, true,
MilliSeconds (283), 2, 4));
w.push_back (LteCellSelectionTestCase::UeSetup_t (1.0, 0.55, true,
MilliSeconds (283), 3, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (1.0, 0.45, true,
MilliSeconds (283), 4, 0));
w = {
// x, y, csgMember, checkPoint, cell1, cell2
LteCellSelectionTestCase::UeSetup_t (0.0, 0.55, false, MilliSeconds (283), 1, 0),
LteCellSelectionTestCase::UeSetup_t (0.0, 0.45, false, MilliSeconds (283), 1, 0),
LteCellSelectionTestCase::UeSetup_t (0.5, 0.45, false, MilliSeconds (363), 1, 3),
LteCellSelectionTestCase::UeSetup_t (0.5, 0.0, true, MilliSeconds (283), 2, 4),
LteCellSelectionTestCase::UeSetup_t (1.0, 0.55, true, MilliSeconds (283), 3, 0),
LteCellSelectionTestCase::UeSetup_t (1.0, 0.45, true, MilliSeconds (283), 4, 0),
};
AddTestCase (new LteCellSelectionTestCase ("EPC, real RRC",
true, false, 60.0 /* isd */, w),
@@ -93,21 +87,15 @@ LteCellSelectionTestSuite::LteCellSelectionTestSuite ()
// IDEAL RRC PROTOCOL
w.clear ();
// x y csgMember
// checkPoint cell1, cell2
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.0, 0.55, false,
MilliSeconds (266), 1, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.0, 0.45, false,
MilliSeconds (266), 1, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.5, 0.45, false,
MilliSeconds (346), 1, 3));
w.push_back (LteCellSelectionTestCase::UeSetup_t (0.5, 0.0, true,
MilliSeconds (266), 2, 4));
w.push_back (LteCellSelectionTestCase::UeSetup_t (1.0, 0.55, true,
MilliSeconds (266), 3, 0));
w.push_back (LteCellSelectionTestCase::UeSetup_t (1.0, 0.45, true,
MilliSeconds (266), 4, 0));
w = {
// x, y, csgMember, checkPoint, cell1, cell2
LteCellSelectionTestCase::UeSetup_t (0.0, 0.55, false, MilliSeconds (266), 1, 0),
LteCellSelectionTestCase::UeSetup_t (0.0, 0.45, false, MilliSeconds (266), 1, 0),
LteCellSelectionTestCase::UeSetup_t (0.5, 0.45, false, MilliSeconds (346), 1, 3),
LteCellSelectionTestCase::UeSetup_t (0.5, 0.0, true, MilliSeconds (266), 2, 4),
LteCellSelectionTestCase::UeSetup_t (1.0, 0.55, true, MilliSeconds (266), 3, 0),
LteCellSelectionTestCase::UeSetup_t (1.0, 0.45, true, MilliSeconds (266), 4, 0),
};
AddTestCase (new LteCellSelectionTestCase ("EPC, ideal RRC",
true, true, 60.0 /* isd */, w),

View File

@@ -221,8 +221,9 @@ LteRlcHeaderTestSuite::LteRlcHeaderTestSuite ()
{
SequenceNumber10 ackSn (2);
std::list<SequenceNumber10> nackSnList;
nackSnList.push_back (SequenceNumber10 (873));
const std::list<SequenceNumber10> nackSnList {
SequenceNumber10 (873),
};
std::string hex ("000bb480");
AddTestCase (new RlcAmStatusPduTestCase (ackSn, nackSnList, hex), TestCase::QUICK);
}
@@ -230,9 +231,10 @@ LteRlcHeaderTestSuite::LteRlcHeaderTestSuite ()
{
SequenceNumber10 ackSn (2);
std::list<SequenceNumber10> nackSnList;
nackSnList.push_back (SequenceNumber10 (1021));
nackSnList.push_back (SequenceNumber10 (754));
const std::list<SequenceNumber10> nackSnList {
SequenceNumber10 (1021),
SequenceNumber10 (754),
};
std::string hex ("000bfed790");
AddTestCase (new RlcAmStatusPduTestCase (ackSn, nackSnList, hex), TestCase::QUICK);
}
@@ -240,10 +242,11 @@ LteRlcHeaderTestSuite::LteRlcHeaderTestSuite ()
{
SequenceNumber10 ackSn (2);
std::list<SequenceNumber10> nackSnList;
nackSnList.push_back (SequenceNumber10 (1021));
nackSnList.push_back (SequenceNumber10 (754));
nackSnList.push_back (SequenceNumber10 (947));
const std::list<SequenceNumber10> nackSnList {
SequenceNumber10 (1021),
SequenceNumber10 (754),
SequenceNumber10 (947),
};
std::string hex ("000bfed795d980");
AddTestCase (new RlcAmStatusPduTestCase (ackSn, nackSnList, hex), TestCase::QUICK);
}
@@ -251,11 +254,12 @@ LteRlcHeaderTestSuite::LteRlcHeaderTestSuite ()
{
SequenceNumber10 ackSn (2);
std::list<SequenceNumber10> nackSnList;
nackSnList.push_back (SequenceNumber10 (1021));
nackSnList.push_back (SequenceNumber10 (754));
nackSnList.push_back (SequenceNumber10 (947));
nackSnList.push_back (SequenceNumber10 (347));
const std::list<SequenceNumber10> nackSnList {
SequenceNumber10 (1021),
SequenceNumber10 (754),
SequenceNumber10 (947),
SequenceNumber10 (347),
};
std::string hex ("000bfed795d9cad8");
AddTestCase (new RlcAmStatusPduTestCase (ackSn, nackSnList, hex), TestCase::QUICK);
}

View File

@@ -706,22 +706,25 @@ LteX2HandoverMeasuresTestSuite::LteX2HandoverMeasuresTestSuite ()
Time checkInterval = Seconds (1);
std::string cel1name ("ho: 0 -> 1");
std::list<CheckPointEvent> cel1;
cel1.push_back (CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0));
cel1.push_back (CheckPointEvent (Seconds (11), Seconds (17), checkInterval, 0, 1));
const std::list<CheckPointEvent> cel1 {
CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0),
CheckPointEvent (Seconds (11), Seconds (17), checkInterval, 0, 1),
};
std::string cel2name ("ho: 0 -> 1 -> 2");
std::list<CheckPointEvent> cel2;
cel2.push_back (CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0));
cel2.push_back (CheckPointEvent (Seconds (11), Seconds (17.1), checkInterval, 0, 1));
cel2.push_back (CheckPointEvent (Seconds (18), Seconds (24), checkInterval, 0, 2));
const std::list<CheckPointEvent> cel2 {
CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0),
CheckPointEvent (Seconds (11), Seconds (17.1), checkInterval, 0, 1),
CheckPointEvent (Seconds (18), Seconds (24), checkInterval, 0, 2),
};
std::string cel3name ("ho: 0 -> 1 -> 2 -> 3");
std::list<CheckPointEvent> cel3;
cel3.push_back (CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0));
cel3.push_back (CheckPointEvent (Seconds (11), Seconds (17.1), checkInterval, 0, 1));
cel3.push_back (CheckPointEvent (Seconds (18), Seconds (24.1), checkInterval, 0, 2));
cel3.push_back (CheckPointEvent (Seconds (25), Seconds (37), checkInterval, 0, 3));
const std::list<CheckPointEvent> cel3 {
CheckPointEvent (Seconds (1), Seconds (10.1), checkInterval, 0, 0),
CheckPointEvent (Seconds (11), Seconds (17.1), checkInterval, 0, 1),
CheckPointEvent (Seconds (18), Seconds (24.1), checkInterval, 0, 2),
CheckPointEvent (Seconds (25), Seconds (37), checkInterval, 0, 3),
};
int32_t useIdealRrc;

View File

@@ -667,44 +667,53 @@ LteX2HandoverTestSuite::LteX2HandoverTestSuite ()
std::list<HandoverEvent> hel0;
std::string hel1name ("1 fwd");
std::list<HandoverEvent> hel1;
hel1.push_back (ue1fwd);
const std::list<HandoverEvent> hel1 {
ue1fwd,
};
std::string hel2name ("1 fwd & bwd");
std::list<HandoverEvent> hel2;
hel2.push_back (ue1fwd);
hel2.push_back (ue1bwd);
const std::list<HandoverEvent> hel2 {
ue1fwd,
ue1bwd,
};
std::string hel3name ("1 fwd & bwd & fwd");
std::list<HandoverEvent> hel3;
hel3.push_back (ue1fwd);
hel3.push_back (ue1bwd);
hel3.push_back (ue1fwdagain);
const std::list<HandoverEvent> hel3 {
ue1fwd,
ue1bwd,
ue1fwdagain,
};
std::string hel4name ("1+2 fwd");
std::list<HandoverEvent> hel4;
hel4.push_back (ue1fwd);
hel4.push_back (ue2fwd);
const std::list<HandoverEvent> hel4 {
ue1fwd,
ue2fwd,
};
std::string hel5name ("1+2 fwd & bwd");
std::list<HandoverEvent> hel5;
hel5.push_back (ue1fwd);
hel5.push_back (ue1bwd);
hel5.push_back (ue2fwd);
hel5.push_back (ue2bwd);
const std::list<HandoverEvent> hel5 {
ue1fwd,
ue1bwd,
ue2fwd,
ue2bwd,
};
std::string hel6name ("2 fwd");
std::list<HandoverEvent> hel6;
hel6.push_back (ue2fwd);
const std::list<HandoverEvent> hel6 {
ue2fwd,
};
std::string hel7name ("2 fwd & bwd");
std::list<HandoverEvent> hel7;
hel7.push_back (ue2fwd);
hel7.push_back (ue2bwd);
const std::list<HandoverEvent> hel7 {
ue2fwd,
ue2bwd,
};
std::vector<std::string> schedulers {
"ns3::RrFfMacScheduler",
"ns3::PfFfMacScheduler",
};
std::vector<std::string> schedulers;
schedulers.push_back ("ns3::RrFfMacScheduler");
schedulers.push_back ("ns3::PfFfMacScheduler");
for (std::vector<std::string>::iterator schedIt = schedulers.begin (); schedIt != schedulers.end (); ++schedIt)
{
for (int32_t useIdealRrc = 1; useIdealRrc >= 0; --useIdealRrc)

View File

@@ -199,9 +199,10 @@ WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (uint32_t centerFreque
uint32_t stop2 = start2 + 26 - 1;
//Build transmit spectrum mask
std::vector <WifiSpectrumBand> subBands;
subBands.push_back (std::make_pair (start1, stop1));
subBands.push_back (std::make_pair (start2, stop2));
std::vector <WifiSpectrumBand> subBands {
std::make_pair (start1, stop1),
std::make_pair (start2, stop2),
};
WifiSpectrumBand maskBand (0, nAllocatedBands + nGuardBands);
CreateSpectrumMaskForOfdm (c, subBands, maskBand,
txPowerPerBandW, nGuardBands,

View File

@@ -314,29 +314,33 @@ int main (int argc, char *argv[])
// The first number is channel width, second is minimum SNR, third is maximum
// SNR, fourth and fifth provide xrange axis limits, and sixth the yaxis
// maximum
serverStandards.push_back (StandardInfo ("802.11a", WIFI_STANDARD_80211a, WIFI_PHY_BAND_5GHZ, 20, 3, 27, 0, 30, 60));
serverStandards.push_back (StandardInfo ("802.11b", WIFI_STANDARD_80211b, WIFI_PHY_BAND_2_4GHZ, 22, -5, 11, -6, 15, 15));
serverStandards.push_back (StandardInfo ("802.11g", WIFI_STANDARD_80211g, WIFI_PHY_BAND_2_4GHZ, 20, -5, 27, -6, 30, 60));
serverStandards.push_back (StandardInfo ("802.11n-5GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
serverStandards.push_back (StandardInfo ("802.11n-2.4GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_2_4GHZ, serverChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
serverStandards.push_back (StandardInfo ("802.11ac", WIFI_STANDARD_80211ac, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor));
serverStandards.push_back (StandardInfo ("802.11p-10MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 10, 3, 27, 0, 30, 60));
serverStandards.push_back (StandardInfo ("802.11p-5MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 5, 3, 27, 0, 30, 60));
serverStandards.push_back (StandardInfo ("802.11ax-6GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_6GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor));
serverStandards.push_back (StandardInfo ("802.11ax-5GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor));
serverStandards.push_back (StandardInfo ("802.11ax-2.4GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_2_4GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor));
serverStandards = {
StandardInfo ("802.11a", WIFI_STANDARD_80211a, WIFI_PHY_BAND_5GHZ, 20, 3, 27, 0, 30, 60),
StandardInfo ("802.11b", WIFI_STANDARD_80211b, WIFI_PHY_BAND_2_4GHZ, 22, -5, 11, -6, 15, 15),
StandardInfo ("802.11g", WIFI_STANDARD_80211g, WIFI_PHY_BAND_2_4GHZ, 20, -5, 27, -6, 30, 60),
StandardInfo ("802.11n-5GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor),
StandardInfo ("802.11n-2.4GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_2_4GHZ, serverChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor),
StandardInfo ("802.11ac", WIFI_STANDARD_80211ac, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor),
StandardInfo ("802.11p-10MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 10, 3, 27, 0, 30, 60),
StandardInfo ("802.11p-5MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 5, 3, 27, 0, 30, 60),
StandardInfo ("802.11ax-6GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_6GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor),
StandardInfo ("802.11ax-5GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_5GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor),
StandardInfo ("802.11ax-2.4GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_2_4GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor),
};
clientStandards.push_back (StandardInfo ("802.11a", WIFI_STANDARD_80211a, WIFI_PHY_BAND_5GHZ, 20, 3, 27, 0, 30, 60));
clientStandards.push_back (StandardInfo ("802.11b", WIFI_STANDARD_80211b, WIFI_PHY_BAND_2_4GHZ, 22, -5, 11, -6, 15, 15));
clientStandards.push_back (StandardInfo ("802.11g", WIFI_STANDARD_80211g, WIFI_PHY_BAND_2_4GHZ, 20, -5, 27, -6, 30, 60));
clientStandards.push_back (StandardInfo ("802.11n-5GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
clientStandards.push_back (StandardInfo ("802.11n-2.4GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_2_4GHZ, clientChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
clientStandards.push_back (StandardInfo ("802.11ac", WIFI_STANDARD_80211ac, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor));
clientStandards.push_back (StandardInfo ("802.11p-10MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 10, 3, 27, 0, 30, 60));
clientStandards.push_back (StandardInfo ("802.11p-5MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 5, 3, 27, 0, 30, 60));
clientStandards.push_back (StandardInfo ("802.11ax-6GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_6GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor));
clientStandards.push_back (StandardInfo ("802.11ax-5GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor));
clientStandards.push_back (StandardInfo ("802.11ax-2.4GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_2_4GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor));
clientStandards = {
StandardInfo ("802.11a", WIFI_STANDARD_80211a, WIFI_PHY_BAND_5GHZ, 20, 3, 27, 0, 30, 60),
StandardInfo ("802.11b", WIFI_STANDARD_80211b, WIFI_PHY_BAND_2_4GHZ, 22, -5, 11, -6, 15, 15),
StandardInfo ("802.11g", WIFI_STANDARD_80211g, WIFI_PHY_BAND_2_4GHZ, 20, -5, 27, -6, 30, 60),
StandardInfo ("802.11n-5GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor),
StandardInfo ("802.11n-2.4GHz", WIFI_STANDARD_80211n, WIFI_PHY_BAND_2_4GHZ, clientChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor),
StandardInfo ("802.11ac", WIFI_STANDARD_80211ac, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor),
StandardInfo ("802.11p-10MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 10, 3, 27, 0, 30, 60),
StandardInfo ("802.11p-5MHz", WIFI_STANDARD_80211p, WIFI_PHY_BAND_5GHZ, 5, 3, 27, 0, 30, 60),
StandardInfo ("802.11ax-6GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_6GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor),
StandardInfo ("802.11ax-5GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_5GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor),
StandardInfo ("802.11ax-2.4GHz", WIFI_STANDARD_80211ax, WIFI_PHY_BAND_2_4GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor),
};
for (std::vector<StandardInfo>::size_type i = 0; i != serverStandards.size (); i++)
{

File diff suppressed because it is too large Load Diff