wifi, wave: Remove 5 MHz and 10 MHz standard and introduce 802.11p standard instead
This commit is contained in:
@@ -62,13 +62,9 @@ WifiPhyStandard ConvertStringToStandard (std::string version)
|
||||
{
|
||||
standard = WIFI_PHY_STANDARD_80211g;
|
||||
}
|
||||
else if (version == "80211_10MHZ")
|
||||
else if (version == "80211p")
|
||||
{
|
||||
standard = WIFI_PHY_STANDARD_80211_10MHZ;
|
||||
}
|
||||
else if (version == "80211_5MHZ")
|
||||
{
|
||||
standard = WIFI_PHY_STANDARD_80211_5MHZ;
|
||||
standard = WIFI_PHY_STANDARD_80211p;
|
||||
}
|
||||
else if (version == "holland")
|
||||
{
|
||||
@@ -106,7 +102,7 @@ int main (int argc, char *argv[])
|
||||
|
||||
CommandLine cmd (__FILE__);
|
||||
cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime);
|
||||
cmd.AddValue ("apVersion", "The standard version used by the AP: 80211a, 80211b, 80211g, 80211_10MHZ, 80211_5MHZ, holland, 80211n_2_4GHZ, 80211n_5GHZ or 80211ac", apVersion);
|
||||
cmd.AddValue ("apVersion", "The standard version used by the AP: 80211a, 80211b, 80211g, 80211p, holland, 80211n_2_4GHZ, 80211n_5GHZ or 80211ac", apVersion);
|
||||
cmd.AddValue ("staVersion", "The standard version used by the station: 80211a, 80211b, 80211g, 80211_10MHZ, 80211_5MHZ, holland, 80211n_2_4GHZ, 80211n_5GHZ or 80211ac", staVersion);
|
||||
cmd.AddValue ("apRaa", "Rate adaptation algorithm used by the AP", apRaa);
|
||||
cmd.AddValue ("staRaa", "Rate adaptation algorithm used by the station", staRaa);
|
||||
|
||||
@@ -412,7 +412,7 @@ WaveHelper::Install (const WifiPhyHelper &phyHelper, const WifiMacHelper &macHe
|
||||
for (uint32_t j = 0; j != m_physNumber; ++j)
|
||||
{
|
||||
Ptr<WifiPhy> phy = phyHelper.Create (node, device);
|
||||
phy->ConfigureStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
phy->ConfigureStandard (WIFI_PHY_STANDARD_80211p);
|
||||
phy->SetChannelNumber (ChannelManager::GetCch ());
|
||||
device->AddPhy (phy);
|
||||
}
|
||||
@@ -424,8 +424,8 @@ WaveHelper::Install (const WifiPhyHelper &phyHelper, const WifiMacHelper &macHe
|
||||
Ptr<OcbWifiMac> ocbMac = DynamicCast<OcbWifiMac> (wifiMac);
|
||||
// we use WaveMacLow to replace original MacLow
|
||||
ocbMac->EnableForWave (device);
|
||||
ocbMac->SetWifiRemoteStationManager ( m_stationManager.Create<WifiRemoteStationManager> ());
|
||||
ocbMac->ConfigureStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
ocbMac->SetWifiRemoteStationManager (m_stationManager.Create<WifiRemoteStationManager> ());
|
||||
ocbMac->ConfigureStandard (WIFI_PHY_STANDARD_80211p);
|
||||
// Install ack policy selector
|
||||
BooleanValue qosSupported;
|
||||
PointerValue ptr;
|
||||
|
||||
@@ -42,7 +42,7 @@ Wifi80211pHelper
|
||||
Wifi80211pHelper::Default (void)
|
||||
{
|
||||
Wifi80211pHelper helper;
|
||||
helper.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
helper.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
helper.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
|
||||
"DataMode", StringValue ("OfdmRate6MbpsBW10MHz"),
|
||||
"ControlMode",StringValue ("OfdmRate6MbpsBW10MHz"),
|
||||
@@ -53,13 +53,13 @@ Wifi80211pHelper::Default (void)
|
||||
void
|
||||
Wifi80211pHelper::SetStandard (enum WifiPhyStandard standard)
|
||||
{
|
||||
if ((standard == WIFI_PHY_STANDARD_80211a) || (standard == WIFI_PHY_STANDARD_80211_10MHZ))
|
||||
if (standard == WIFI_PHY_STANDARD_80211p)
|
||||
{
|
||||
WifiHelper::SetStandard (standard);
|
||||
}
|
||||
else
|
||||
{
|
||||
NS_FATAL_ERROR ("802.11p only use 802.11 standard with 10MHz or 20MHz");
|
||||
NS_FATAL_ERROR ("wrong standard selected!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -374,8 +374,7 @@ void
|
||||
OcbWifiMac::ConfigureStandard (enum WifiPhyStandard standard)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << standard);
|
||||
NS_ASSERT ((standard == WIFI_PHY_STANDARD_80211_10MHZ)
|
||||
|| (standard == WIFI_PHY_STANDARD_80211a));
|
||||
NS_ASSERT (standard == WIFI_PHY_STANDARD_80211p);
|
||||
|
||||
uint32_t cwmin = 15;
|
||||
uint32_t cwmax = 1023;
|
||||
|
||||
@@ -260,7 +260,7 @@ OcbWifiMacTestCase::ConfigureApStaMode (Ptr<Node> static_node, Ptr<Node> mobile_
|
||||
wifiApMac.SetType ("ns3::ApWifiMac","Ssid", SsidValue (ssid));
|
||||
|
||||
WifiHelper wifi;
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
|
||||
"DataMode", StringValue ("OfdmRate6MbpsBW10MHz"),
|
||||
"ControlMode",StringValue ("OfdmRate6MbpsBW10MHz"));
|
||||
@@ -279,7 +279,7 @@ OcbWifiMacTestCase::ConfigureAdhocMode (Ptr<Node> static_node, Ptr<Node> mobile_
|
||||
wifiMac.SetType ("ns3::AdhocWifiMac");
|
||||
|
||||
WifiHelper wifi;
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
|
||||
"DataMode", StringValue ("OfdmRate6MbpsBW10MHz"),
|
||||
"ControlMode",StringValue ("OfdmRate6MbpsBW10MHz"));
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
// By default, the 802.11a standard using IdealWifiManager is plotted. Several command line
|
||||
// arguments can change the following options:
|
||||
// --wifiManager (Aarf, Aarfcd, Amrr, Arf, Cara, Ideal, Minstrel, MinstrelHt, Onoe, Rraa)
|
||||
// --standard (802.11a, 802.11b, 802.11g, 802.11n-5GHz, 802.11n-2.4GHz, 802.11ac, 802.11-holland, 802.11-10MHz, 802.11-5MHz)
|
||||
// --standard (802.11a, 802.11b, 802.11g, 802.11n-5GHz, 802.11n-2.4GHz, 802.11ac, 802.11-holland, 802.11p-10MHz, 802.11p-5MHz)
|
||||
// --serverShortGuardInterval and --clientShortGuardInterval (for 802.11n/ac)
|
||||
// --serverNss and --clientNss (for 802.11n/ac)
|
||||
// --serverChannelWidth and --clientChannelWidth (for 802.11n/ac)
|
||||
@@ -186,7 +186,7 @@ int main (int argc, char *argv[])
|
||||
cmd.AddValue ("clientNss", "Set nss of the client (valid only for 802.11n or ac)", clientNss);
|
||||
cmd.AddValue ("serverShortGuardInterval", "Set short guard interval of the server (802.11n/ac/ax) in nanoseconds", serverShortGuardInterval);
|
||||
cmd.AddValue ("clientShortGuardInterval", "Set short guard interval of the client (802.11n/ac/ax) in nanoseconds", clientShortGuardInterval);
|
||||
cmd.AddValue ("standard", "Set standard (802.11a, 802.11b, 802.11g, 802.11n-5GHz, 802.11n-2.4GHz, 802.11ac, 802.11-holland, 802.11-10MHz, 802.11-5MHz, 802.11ax-5GHz, 802.11ax-2.4GHz)", standard);
|
||||
cmd.AddValue ("standard", "Set standard (802.11a, 802.11b, 802.11g, 802.11n-5GHz, 802.11n-2.4GHz, 802.11ac, 802.11-holland, 802.11p-10MHz, 802.11p-5MHz, 802.11ax-5GHz, 802.11ax-2.4GHz)", standard);
|
||||
cmd.AddValue ("wifiManager", "Set wifi rate manager (Aarf, Aarfcd, Amrr, Arf, Cara, Ideal, Minstrel, MinstrelHt, Onoe, Rraa)", wifiManager);
|
||||
cmd.AddValue ("infrastructure", "Use infrastructure instead of adhoc", infrastructure);
|
||||
cmd.Parse (argc,argv);
|
||||
@@ -253,8 +253,8 @@ int main (int argc, char *argv[])
|
||||
serverStandards.push_back (StandardInfo ("802.11n-2.4GHz", WIFI_PHY_STANDARD_80211n_2_4GHZ, serverChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
|
||||
serverStandards.push_back (StandardInfo ("802.11ac", WIFI_PHY_STANDARD_80211ac, serverChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor));
|
||||
serverStandards.push_back (StandardInfo ("802.11-holland", WIFI_PHY_STANDARD_holland, 20, 3, 27, 0, 30, 60));
|
||||
serverStandards.push_back (StandardInfo ("802.11-10MHz", WIFI_PHY_STANDARD_80211_10MHZ, 10, 3, 27, 0, 30, 60));
|
||||
serverStandards.push_back (StandardInfo ("802.11-5MHz", WIFI_PHY_STANDARD_80211_5MHZ, 5, 3, 27, 0, 30, 60));
|
||||
serverStandards.push_back (StandardInfo ("802.11p-10MHz", WIFI_PHY_STANDARD_80211p, 10, 3, 27, 0, 30, 60));
|
||||
serverStandards.push_back (StandardInfo ("802.11p-5MHz", WIFI_PHY_STANDARD_80211p, 5, 3, 27, 0, 30, 60));
|
||||
serverStandards.push_back (StandardInfo ("802.11ax-5GHz", WIFI_PHY_STANDARD_80211ax_5GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor));
|
||||
serverStandards.push_back (StandardInfo ("802.11ax-2.4GHz", WIFI_PHY_STANDARD_80211ax_2_4GHZ, serverChannelWidth, 5, 55, 0, 60, 120 * channelRateFactor));
|
||||
|
||||
@@ -265,8 +265,8 @@ int main (int argc, char *argv[])
|
||||
clientStandards.push_back (StandardInfo ("802.11n-2.4GHz", WIFI_PHY_STANDARD_80211n_2_4GHZ, clientChannelWidth, 3, 30, 0, 35, 80 * channelRateFactor));
|
||||
clientStandards.push_back (StandardInfo ("802.11ac", WIFI_PHY_STANDARD_80211ac, clientChannelWidth, 5, 50, 0, 55, 120 * channelRateFactor));
|
||||
clientStandards.push_back (StandardInfo ("802.11-holland", WIFI_PHY_STANDARD_holland, 20, 3, 27, 0, 30, 60));
|
||||
clientStandards.push_back (StandardInfo ("802.11-10MHz", WIFI_PHY_STANDARD_80211_10MHZ, 10, 3, 27, 0, 30, 60));
|
||||
clientStandards.push_back (StandardInfo ("802.11-5MHz", WIFI_PHY_STANDARD_80211_5MHZ, 5, 3, 27, 0, 30, 60));
|
||||
clientStandards.push_back (StandardInfo ("802.11p-10MHz", WIFI_PHY_STANDARD_80211p, 10, 3, 27, 0, 30, 60));
|
||||
clientStandards.push_back (StandardInfo ("802.11p-5MHz", WIFI_PHY_STANDARD_80211p, 5, 3, 27, 0, 30, 60));
|
||||
clientStandards.push_back (StandardInfo ("802.11ax-5GHz", WIFI_PHY_STANDARD_80211ax_5GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor));
|
||||
clientStandards.push_back (StandardInfo ("802.11ax-2.4GHz", WIFI_PHY_STANDARD_80211ax_2_4GHZ, clientChannelWidth, 5, 55, 0, 60, 160 * channelRateFactor));
|
||||
|
||||
|
||||
@@ -180,7 +180,8 @@ int main (int argc, char *argv[])
|
||||
PrintAttributesIfEnabled (printAttributes);
|
||||
break;
|
||||
case 7:
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
phy.Set ("ChannelWidth", UintegerValue (10));
|
||||
staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0));
|
||||
apDevice = wifi.Install (phy, macAp, wifiApNode.Get (0));
|
||||
phySta = GetYansWifiPhyPtr (staDevice);
|
||||
@@ -191,13 +192,13 @@ int main (int argc, char *argv[])
|
||||
PrintAttributesIfEnabled (printAttributes);
|
||||
break;
|
||||
case 8:
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_5MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
phy.Set ("ChannelWidth", UintegerValue (5));
|
||||
staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0));
|
||||
apDevice = wifi.Install (phy, macAp, wifiApNode.Get (0));
|
||||
phySta = GetYansWifiPhyPtr (staDevice);
|
||||
// We expect channel 0, width 5, frequency 5860
|
||||
// Channel 0 because 5MHz channels are not officially defined
|
||||
NS_ASSERT (phySta->GetChannelNumber () == 0);
|
||||
// We expect channel 171, width 5, frequency 5860
|
||||
NS_ASSERT (phySta->GetChannelNumber () == 171);
|
||||
NS_ASSERT (phySta->GetChannelWidth () == 5);
|
||||
NS_ASSERT (phySta->GetFrequency () == 5860);
|
||||
PrintAttributesIfEnabled (printAttributes);
|
||||
|
||||
@@ -59,7 +59,7 @@ int main (int argc, char** argv)
|
||||
bool verbose = false;
|
||||
CommandLine cmd (__FILE__);
|
||||
cmd.AddValue ("standard",
|
||||
"OFDM-based Wi-Fi standard [11a, 11_10MHZ, 11_5MHZ, 11n_2_4GHZ, 11n_5GHZ, 11ac, 11ax_2_4GHZ, 11ax_5GHZ]",
|
||||
"OFDM-based Wi-Fi standard [11a, 11p_10MHZ, 11p_5MHZ, 11n_2_4GHZ, 11n_5GHZ, 11ac, 11ax_2_4GHZ, 11ax_5GHZ]",
|
||||
standard);
|
||||
cmd.AddValue ("bw", "Bandwidth (consistent with standard, in MHz)", bw);
|
||||
cmd.AddValue ("txPower", "Transmit power (dBm)", pow);
|
||||
@@ -84,10 +84,10 @@ int main (int argc, char** argv)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (standard == "11_10MHZ")
|
||||
else if (standard == "11p_10MHZ")
|
||||
{
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
ssid = Ssid ("ns380211_10MHZ");
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
ssid = Ssid ("ns380211p_10MHZ");
|
||||
dataRate = "OfdmRate3MbpsBW10MHz";
|
||||
freq = 5860;
|
||||
dataStartTime = MicroSeconds (1400);
|
||||
@@ -98,10 +98,10 @@ int main (int argc, char** argv)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (standard == "11_5MHZ")
|
||||
else if (standard == "11p_5MHZ")
|
||||
{
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_5MHZ);
|
||||
ssid = Ssid ("ns380211_5MHZ");
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
ssid = Ssid ("ns380211p_5MHZ");
|
||||
dataRate = "OfdmRate1_5MbpsBW5MHz";
|
||||
freq = 5860;
|
||||
dataStartTime = MicroSeconds (2500);
|
||||
|
||||
@@ -1108,8 +1108,7 @@ RegularWifiMac::ConfigureStandard (WifiPhyStandard standard)
|
||||
SetErpSupported (true);
|
||||
case WIFI_PHY_STANDARD_holland:
|
||||
case WIFI_PHY_STANDARD_80211a:
|
||||
case WIFI_PHY_STANDARD_80211_10MHZ:
|
||||
case WIFI_PHY_STANDARD_80211_5MHZ:
|
||||
case WIFI_PHY_STANDARD_80211p:
|
||||
cwmin = 15;
|
||||
cwmax = 1023;
|
||||
break;
|
||||
|
||||
@@ -349,13 +349,17 @@ SpectrumWifiPhy::GetBandBandwidth (void) const
|
||||
// Use OFDM subcarrier width of 312.5 KHz as band granularity
|
||||
bandBandwidth = 312500;
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_10MHZ:
|
||||
// Use OFDM subcarrier width of 156.25 KHz as band granularity
|
||||
bandBandwidth = 156250;
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_5MHZ:
|
||||
// Use OFDM subcarrier width of 78.125 KHz as band granularity
|
||||
bandBandwidth = 78125;
|
||||
case WIFI_PHY_STANDARD_80211p:
|
||||
if (GetChannelWidth () == 5)
|
||||
{
|
||||
// Use OFDM subcarrier width of 78.125 KHz as band granularity
|
||||
bandBandwidth = 78125;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use OFDM subcarrier width of 156.25 KHz as band granularity
|
||||
bandBandwidth = 156250;
|
||||
}
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211ax_2_4GHZ:
|
||||
case WIFI_PHY_STANDARD_80211ax_5GHZ:
|
||||
|
||||
@@ -35,10 +35,8 @@ enum WifiPhyStandard
|
||||
WIFI_PHY_STANDARD_80211b,
|
||||
/** ERP-OFDM PHY (Clause 19, Section 19.5) */
|
||||
WIFI_PHY_STANDARD_80211g,
|
||||
/** OFDM PHY for the 5 GHz band (Clause 17 with 10 MHz channel bandwidth) */
|
||||
WIFI_PHY_STANDARD_80211_10MHZ,
|
||||
/** OFDM PHY for the 5 GHz band (Clause 17 with 5 MHz channel bandwidth) */
|
||||
WIFI_PHY_STANDARD_80211_5MHZ,
|
||||
/** OFDM PHY (Clause 17 - amendment for 10 MHz and 5 MHz channels) */
|
||||
WIFI_PHY_STANDARD_80211p,
|
||||
/** This is intended to be the configuration used in this paper:
|
||||
* Gavin Holland, Nitin Vaidya and Paramvir Bahl, "A Rate-Adaptive
|
||||
* MAC Protocol for Multi-Hop Wireless Networks", in Proc. of
|
||||
|
||||
@@ -148,14 +148,23 @@ WifiPhy::ChannelToFrequencyWidthMap WifiPhy::m_channelToFrequencyWidth =
|
||||
{ std::make_pair (114, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5570, 160) },
|
||||
{ std::make_pair (163, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5815, 160) },
|
||||
|
||||
// 802.11p (10 MHz channels at the 5.855-5.925 band
|
||||
{ std::make_pair (172, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5860, 10) },
|
||||
{ std::make_pair (174, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5870, 10) },
|
||||
{ std::make_pair (176, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5880, 10) },
|
||||
{ std::make_pair (178, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5890, 10) },
|
||||
{ std::make_pair (180, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5900, 10) },
|
||||
{ std::make_pair (182, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5910, 10) },
|
||||
{ std::make_pair (184, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5920, 10) }
|
||||
// 802.11p 10 MHz channels at the 5.855-5.925 band
|
||||
{ std::make_pair (172, WIFI_PHY_STANDARD_80211p), std::make_pair (5860, 10) },
|
||||
{ std::make_pair (174, WIFI_PHY_STANDARD_80211p), std::make_pair (5870, 10) },
|
||||
{ std::make_pair (176, WIFI_PHY_STANDARD_80211p), std::make_pair (5880, 10) },
|
||||
{ std::make_pair (178, WIFI_PHY_STANDARD_80211p), std::make_pair (5890, 10) },
|
||||
{ std::make_pair (180, WIFI_PHY_STANDARD_80211p), std::make_pair (5900, 10) },
|
||||
{ std::make_pair (182, WIFI_PHY_STANDARD_80211p), std::make_pair (5910, 10) },
|
||||
{ std::make_pair (184, WIFI_PHY_STANDARD_80211p), std::make_pair (5920, 10) },
|
||||
|
||||
// 802.11p 5 MHz channels at the 5.855-5.925 band (for simplification, we consider the same center frequencies as the 10 MHz channels)
|
||||
{ std::make_pair (171, WIFI_PHY_STANDARD_80211p), std::make_pair (5860, 5) },
|
||||
{ std::make_pair (173, WIFI_PHY_STANDARD_80211p), std::make_pair (5870, 5) },
|
||||
{ std::make_pair (175, WIFI_PHY_STANDARD_80211p), std::make_pair (5880, 5) },
|
||||
{ std::make_pair (177, WIFI_PHY_STANDARD_80211p), std::make_pair (5890, 5) },
|
||||
{ std::make_pair (179, WIFI_PHY_STANDARD_80211p), std::make_pair (5900, 5) },
|
||||
{ std::make_pair (181, WIFI_PHY_STANDARD_80211p), std::make_pair (5910, 5) },
|
||||
{ std::make_pair (183, WIFI_PHY_STANDARD_80211p), std::make_pair (5920, 5) }
|
||||
};
|
||||
|
||||
TypeId
|
||||
@@ -882,17 +891,14 @@ WifiPhy::ConfigureDefaultsForStandard (WifiPhyStandard standard)
|
||||
// Channel number should be aligned by SetFrequency () to 1
|
||||
NS_ASSERT (GetChannelNumber () == 1);
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_10MHZ:
|
||||
SetChannelWidth (10);
|
||||
case WIFI_PHY_STANDARD_80211p:
|
||||
if (GetChannelWidth () > 10)
|
||||
{
|
||||
SetChannelWidth (10);
|
||||
}
|
||||
SetFrequency (5860);
|
||||
// Channel number should be aligned by SetFrequency () to 172
|
||||
NS_ASSERT (GetChannelNumber () == 172);
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_5MHZ:
|
||||
SetChannelWidth (5);
|
||||
SetFrequency (5860);
|
||||
// Channel number should be aligned by SetFrequency () to 0
|
||||
NS_ASSERT (GetChannelNumber () == 0);
|
||||
// Channel number should be aligned by SetFrequency () to either 172 or 171
|
||||
NS_ASSERT ((GetChannelWidth () == 10 && GetChannelNumber () == 172) || (GetChannelWidth () == 5 && GetChannelNumber () == 171)) ;
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_holland:
|
||||
SetChannelWidth (20);
|
||||
@@ -1049,45 +1055,47 @@ WifiPhy::Configure80211g (void)
|
||||
}
|
||||
|
||||
void
|
||||
WifiPhy::Configure80211_10Mhz (void)
|
||||
WifiPhy::Configure80211p (void)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
if (GetChannelWidth () == 10)
|
||||
{
|
||||
// See Table 17-21 "OFDM PHY characteristics" of 802.11-2016
|
||||
SetSifs (MicroSeconds (32));
|
||||
SetSlot (MicroSeconds (13));
|
||||
SetPifs (GetSifs () + GetSlot ());
|
||||
m_ackTxTime = MicroSeconds (88);
|
||||
|
||||
// See Table 17-21 "OFDM PHY characteristics" of 802.11-2016
|
||||
SetSifs (MicroSeconds (32));
|
||||
SetSlot (MicroSeconds (13));
|
||||
SetPifs (GetSifs () + GetSlot ());
|
||||
m_ackTxTime = MicroSeconds (88);
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate27MbpsBW10MHz ());
|
||||
}
|
||||
else if (GetChannelWidth () == 5)
|
||||
{
|
||||
// See Table 17-21 "OFDM PHY characteristics" of 802.11-2016
|
||||
SetSifs (MicroSeconds (64));
|
||||
SetSlot (MicroSeconds (21));
|
||||
SetPifs (GetSifs () + GetSlot ());
|
||||
m_ackTxTime = MicroSeconds (176);
|
||||
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24MbpsBW10MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate27MbpsBW10MHz ());
|
||||
}
|
||||
|
||||
void
|
||||
WifiPhy::Configure80211_5Mhz (void)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
|
||||
// See Table 17-21 "OFDM PHY characteristics" of 802.11-2016
|
||||
SetSifs (MicroSeconds (64));
|
||||
SetSlot (MicroSeconds (21));
|
||||
SetPifs (GetSifs () + GetSlot ());
|
||||
m_ackTxTime = MicroSeconds (176);
|
||||
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate1_5MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate2_25MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate13_5MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate1_5MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate2_25MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW5MHz ());
|
||||
m_deviceRateSet.push_back (WifiPhy::GetOfdmRate13_5MbpsBW5MHz ());
|
||||
}
|
||||
else
|
||||
{
|
||||
NS_FATAL_ERROR ("802.11p configured with a wrong channel width!");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1394,11 +1402,8 @@ WifiPhy::ConfigureStandard (WifiPhyStandard standard)
|
||||
case WIFI_PHY_STANDARD_80211g:
|
||||
Configure80211g ();
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_10MHZ:
|
||||
Configure80211_10Mhz ();
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_5MHZ:
|
||||
Configure80211_5Mhz ();
|
||||
case WIFI_PHY_STANDARD_80211p:
|
||||
Configure80211p ();
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_holland:
|
||||
ConfigureHolland ();
|
||||
|
||||
@@ -1822,14 +1822,9 @@ private:
|
||||
void Configure80211g (void);
|
||||
/**
|
||||
* Configure WifiPhy with appropriate channel frequency and
|
||||
* supported rates for 802.11a standard with 10MHz channel spacing.
|
||||
* supported rates for 802.11p standard.
|
||||
*/
|
||||
void Configure80211_10Mhz (void);
|
||||
/**
|
||||
* Configure WifiPhy with appropriate channel frequency and
|
||||
* supported rates for 802.11a standard with 5MHz channel spacing.
|
||||
*/
|
||||
void Configure80211_5Mhz ();
|
||||
void Configure80211p (void);
|
||||
/**
|
||||
* Configure WifiPhy with appropriate channel frequency and
|
||||
* supported rates for Holland.
|
||||
|
||||
@@ -33,70 +33,70 @@ cpp_examples = [
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarf --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Aarfcd --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Amrr --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Arf --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Cara --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Onoe --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Rraa --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11a --rtsThreshold=0 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11a --maxSlrc=1 --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Minstrel --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11a --stepTime=0.1", "True", "True"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11n-5GHz --serverChannelWidth=20 --clientChannelWidth=20 --serverShortGuardInterval=800 --clientShortGuardInterval=800 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11n-5GHz --serverChannelWidth=20 --clientChannelWidth=20 --serverShortGuardInterval=400 --clientShortGuardInterval=400 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=MinstrelHt --standard=802.11n-5GHz --serverChannelWidth=40 --clientChannelWidth=40 --serverShortGuardInterval=800 --clientShortGuardInterval=800 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
@@ -165,8 +165,8 @@ cpp_examples = [
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11b --serverChannelWidth=22 --clientChannelWidth=22 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11g --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11-holland --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11p-10MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11p-5MHz --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11n-5GHz --serverChannelWidth=20 --clientChannelWidth=20 --serverShortGuardInterval=800 --clientShortGuardInterval=800 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11n-5GHz --serverChannelWidth=20 --clientChannelWidth=20 --serverShortGuardInterval=400 --clientShortGuardInterval=400 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
("wifi-manager-example --wifiManager=Ideal --standard=802.11n-5GHz --serverChannelWidth=40 --clientChannelWidth=40 --serverShortGuardInterval=800 --clientShortGuardInterval=800 --serverNss=1 --clientNss=1 --stepTime=0.1", "True", "False"),
|
||||
|
||||
@@ -998,23 +998,25 @@ SetChannelFrequencyTest::DoRun ()
|
||||
// case 7
|
||||
WifiHelper wifi;
|
||||
wifi.SetRemoteStationManager ("ns3::IdealWifiManager");
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
phy.Set ("ChannelWidth", UintegerValue (10));
|
||||
staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0));
|
||||
phySta = GetYansWifiPhyPtr (staDevice);
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 172, "802.11 10Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 10, "802.11 10Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11 10Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 172, "802.11p 10Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 10, "802.11p 10Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11p 10Mhz configuration");
|
||||
}
|
||||
{
|
||||
// case 8
|
||||
WifiHelper wifi;
|
||||
wifi.SetRemoteStationManager ("ns3::IdealWifiManager");
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211_5MHZ);
|
||||
wifi.SetStandard (WIFI_PHY_STANDARD_80211p);
|
||||
phy.Set ("ChannelWidth", UintegerValue (5));
|
||||
staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0));
|
||||
phySta = GetYansWifiPhyPtr (staDevice);
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 5, "802.11 5Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11 5Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 171, "802.11p 5Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 5, "802.11p 5Mhz configuration");
|
||||
NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11p 5Mhz configuration");
|
||||
}
|
||||
{
|
||||
// case 9
|
||||
|
||||
@@ -100,13 +100,8 @@ WifiOfdmMaskSlopesTestCase::WifiOfdmMaskSlopesTestCase (const char* str, WifiPhy
|
||||
|
||||
switch (standard)
|
||||
{
|
||||
case WIFI_PHY_STANDARD_80211_5MHZ:
|
||||
NS_ASSERT (bw == 5);
|
||||
freq = 5860;
|
||||
m_actualSpectrum = WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (freq, bw, refTxPowerW, bw);
|
||||
break;
|
||||
case WIFI_PHY_STANDARD_80211_10MHZ:
|
||||
NS_ASSERT (bw == 10);
|
||||
case WIFI_PHY_STANDARD_80211p:
|
||||
NS_ASSERT ((bw == 5) || (bw == 10));
|
||||
freq = 5860;
|
||||
m_actualSpectrum = WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (freq, bw, refTxPowerW, bw);
|
||||
break;
|
||||
@@ -257,8 +252,8 @@ WifiTransmitMaskTestSuite::WifiTransmitMaskTestSuite ()
|
||||
double tol = 0.001; // in dB
|
||||
|
||||
// ============================================================================================
|
||||
// 11 5MHz
|
||||
NS_LOG_FUNCTION ("Check slopes for 11 5MHz");
|
||||
// 11p 5MHz
|
||||
NS_LOG_FUNCTION ("Check slopes for 11p 5MHz");
|
||||
maskSlopesLeft.push_back (std::make_pair (0, -40.0)); // Outer band left (start)
|
||||
maskSlopesLeft.push_back (std::make_pair (31, -28.375)); // Outer band left (stop)
|
||||
maskSlopesLeft.push_back (std::make_pair (32, -28.000)); // Middle band left (start)
|
||||
@@ -275,12 +270,12 @@ WifiTransmitMaskTestSuite::WifiTransmitMaskTestSuite ()
|
||||
maskSlopesRight.push_back (std::make_pair (160, -28.000)); // Middle band right (stop)
|
||||
maskSlopesRight.push_back (std::make_pair (161, -28.375)); // Outer band right (start)
|
||||
maskSlopesRight.push_back (std::make_pair (192, -40.0)); // Outer band right (stop)
|
||||
AddTestCase (new WifiOfdmMaskSlopesTestCase ("11 5MHz", WIFI_PHY_STANDARD_80211_5MHZ, 5,
|
||||
AddTestCase (new WifiOfdmMaskSlopesTestCase ("11p 5MHz", WIFI_PHY_STANDARD_80211p, 5,
|
||||
maskSlopesLeft, maskSlopesRight, tol),
|
||||
TestCase::QUICK);
|
||||
|
||||
// 11 10MHz
|
||||
NS_LOG_FUNCTION ("Check slopes for 11 10MHz");
|
||||
// 11p 10MHz
|
||||
NS_LOG_FUNCTION ("Check slopes for 11p 10MHz");
|
||||
maskSlopesLeft.clear ();
|
||||
maskSlopesRight.clear ();
|
||||
maskSlopesLeft.push_back (std::make_pair (0, -40.0)); // Outer band left (start)
|
||||
@@ -299,7 +294,7 @@ WifiTransmitMaskTestSuite::WifiTransmitMaskTestSuite ()
|
||||
maskSlopesRight.push_back (std::make_pair (160, -28.000)); // Middle band right (stop)
|
||||
maskSlopesRight.push_back (std::make_pair (161, -28.375)); // Outer band right (start)
|
||||
maskSlopesRight.push_back (std::make_pair (192, -40.0)); // Outer band right (stop)
|
||||
AddTestCase (new WifiOfdmMaskSlopesTestCase ("11 10MHz", WIFI_PHY_STANDARD_80211_10MHZ, 10,
|
||||
AddTestCase (new WifiOfdmMaskSlopesTestCase ("11p 10MHz", WIFI_PHY_STANDARD_80211p, 10,
|
||||
maskSlopesLeft, maskSlopesRight, tol),
|
||||
TestCase::QUICK);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user