Make it easy to create and manage PHY objects for the YANS model. More...
#include "yans-wifi-helper.h"
Inheritance diagram for ns3::YansWifiPhyHelper:
Collaboration diagram for ns3::YansWifiPhyHelper:Public Member Functions | |
| YansWifiPhyHelper () | |
| Create a PHY helper. | |
| void | SetChannel (Ptr< YansWifiChannel > channel) |
| void | SetChannel (std::string channelName) |
Public Member Functions inherited from ns3::WifiPhyHelper | |
| WifiPhyHelper (uint8_t nLinks=1) | |
| Constructor. | |
| ~WifiPhyHelper () override | |
| void | DisablePreambleDetectionModel () |
| Disable the preamble detection model on all links. | |
| PcapCaptureType | GetPcapCaptureType () const |
| Get the PCAP capture type to be used. | |
| PcapHelper::DataLinkType | GetPcapDataLinkType () const |
| Get the data link type of PCAP traces to be used. | |
| void | Set (std::string name, const AttributeValue &v) |
| void | Set (uint8_t linkId, std::string name, const AttributeValue &v) |
| template<typename... Args> | |
| void | SetErrorRateModel (std::string type, Args &&... args) |
| Helper function used to set the error rate model. | |
| template<typename... Args> | |
| void | SetErrorRateModel (uint8_t linkId, std::string type, Args &&... args) |
| template<typename... Args> | |
| void | SetFrameCaptureModel (std::string type, Args &&... args) |
| Helper function used to set the frame capture model. | |
| template<typename... Args> | |
| void | SetFrameCaptureModel (uint8_t linkId, std::string type, Args &&... args) |
| template<typename... Args> | |
| void | SetInterferenceHelper (std::string type, Args &&... args) |
| Helper function used to set the interference helper. | |
| void | SetPcapCaptureType (PcapCaptureType type) |
| Set the PCAP capture type to be used. | |
| void | SetPcapDataLinkType (SupportedPcapDataLinkTypes dlt) |
| Set the data link type of PCAP traces to be used. | |
| template<typename... Args> | |
| void | SetPreambleDetectionModel (std::string type, Args &&... args) |
| Helper function used to set the preamble detection model. | |
| template<typename... Args> | |
| void | SetPreambleDetectionModel (uint8_t linkId, std::string type, Args &&... args) |
Public Member Functions inherited from ns3::PcapHelperForDevice | |
| PcapHelperForDevice () | |
| Construct a PcapHelperForDevice. | |
| virtual | ~PcapHelperForDevice () |
| Destroy a PcapHelperForDevice. | |
| void | EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscuous=false) |
| Enable pcap output on each device in the container which is of the appropriate type. | |
| void | EnablePcap (std::string prefix, NodeContainer n, bool promiscuous=false) |
| Enable pcap output on each device (which is of the appropriate type) in the nodes provided in the container. | |
| void | EnablePcap (std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false) |
| Enable pcap output the indicated net device. | |
| void | EnablePcap (std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false) |
| Enable pcap output the indicated net device using a device previously named using the ns-3 object name service. | |
| void | EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool promiscuous=false) |
| Enable pcap output on the device specified by a global node-id (of a previously created node) and associated device-id. | |
| void | EnablePcapAll (std::string prefix, bool promiscuous=false) |
| Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. | |
Public Member Functions inherited from ns3::AsciiTraceHelperForDevice | |
| AsciiTraceHelperForDevice () | |
| Construct an AsciiTraceHelperForDevice. | |
| virtual | ~AsciiTraceHelperForDevice () |
| Destroy an AsciiTraceHelperForDevice. | |
| void | EnableAscii (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d) |
| Enable ascii trace output on each device in the container which is of the appropriate type. | |
| void | EnableAscii (Ptr< OutputStreamWrapper > stream, NodeContainer n) |
| Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container. | |
| void | EnableAscii (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd) |
| Enable ascii trace output on the indicated net device. | |
| void | EnableAscii (Ptr< OutputStreamWrapper > stream, std::string ndName) |
| Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. | |
| void | EnableAscii (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t deviceid) |
| Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id. | |
| void | EnableAscii (std::string prefix, NetDeviceContainer d) |
| Enable ascii trace output on each device in the container which is of the appropriate type. | |
| void | EnableAscii (std::string prefix, NodeContainer n) |
| Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container. | |
| void | EnableAscii (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false) |
| Enable ascii trace output on the indicated net device. | |
| void | EnableAscii (std::string prefix, std::string ndName, bool explicitFilename=false) |
| Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. | |
| void | EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename) |
| Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id. | |
| void | EnableAsciiAll (Ptr< OutputStreamWrapper > stream) |
| Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. | |
| void | EnableAsciiAll (std::string prefix) |
| Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation. | |
Private Member Functions | |
| std::vector< Ptr< WifiPhy > > | Create (Ptr< Node > node, Ptr< WifiNetDevice > device) const override |
Private Attributes | |
| Ptr< YansWifiChannel > | m_channel |
| YANS wifi channel. | |
Additional Inherited Members | |
Public Types inherited from ns3::WifiPhyHelper | |
| enum class | PcapCaptureType { PCAP_PER_DEVICE , PCAP_PER_PHY , PCAP_PER_LINK } |
| An enumeration of the PCAP capture types. More... | |
| enum | SupportedPcapDataLinkTypes { DLT_IEEE802_11 , DLT_PRISM_HEADER , DLT_IEEE802_11_RADIO } |
| An enumeration of the pcap data link types (DLTs) which this helper supports. More... | |
Static Protected Member Functions inherited from ns3::WifiPhyHelper | |
| static void | PcapSniffRxEvent (const std::shared_ptr< PcapFilesInfo > &info, uint8_t phyId, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId=SU_STA_ID) |
| static void | PcapSniffTxEvent (const std::shared_ptr< PcapFilesInfo > &info, uint8_t phyId, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId=SU_STA_ID) |
Protected Attributes inherited from ns3::WifiPhyHelper | |
| std::vector< ObjectFactory > | m_errorRateModel |
| error rate model | |
| std::vector< ObjectFactory > | m_frameCaptureModel |
| frame capture model | |
| ObjectFactory | m_interferenceHelper |
| interference helper | |
| std::vector< ObjectFactory > | m_phys |
| PHY objects. | |
| std::vector< ObjectFactory > | m_preambleDetectionModel |
| preamble detection model | |
Make it easy to create and manage PHY objects for the YANS model.
The YANS PHY model is described in "Yet Another Network Simulator", published in WNS2 2006; an author-prepared version of this paper is at: https://hal.inria.fr/file/index/docid/78318/filename/yans-rr.pdf
The Pcap and ASCII traces generated by the EnableAscii and EnablePcap methods defined in this class correspond to PHY-level traces and come to us via WifiPhyHelper
Definition at line 108 of file yans-wifi-helper.h.
| ns3::YansWifiPhyHelper::YansWifiPhyHelper | ( | ) |
Create a PHY helper.
Definition at line 70 of file yans-wifi-helper.cc.
References ns3::WifiPhyHelper::m_phys, ns3::WifiPhyHelper::SetErrorRateModel(), and ns3::WifiPhyHelper::SetInterferenceHelper().
Here is the call graph for this function:
|
overrideprivatevirtual |
| node | the node on which we wish to create a wifi PHY |
| device | the device within which this PHY will be created |
This method implements the pure virtual method defined in ns3::WifiPhyHelper.
Implements ns3::WifiPhyHelper.
Definition at line 93 of file yans-wifi-helper.cc.
References ns3::ObjectFactory::Create(), Create(), m_channel, ns3::WifiPhyHelper::m_errorRateModel, ns3::WifiPhyHelper::m_frameCaptureModel, ns3::WifiPhyHelper::m_interferenceHelper, ns3::WifiPhyHelper::m_phys, and ns3::WifiPhyHelper::m_preambleDetectionModel.
Referenced by visualizer.ipython_view.ConsoleView::__init__(), show_last_packets.ShowLastPackets.PacketList::__init__(), visualizer.ipython_view.ConsoleView::_write(), test-ns3.NS3BaseTestCase::config_ok(), Create(), visualizer.svgitem.SvgItem::do_set_property(), SetChannel(), test-ns3.NS3StyleTestCase::setUp(), test-ns3.NS3BaseTestCase::setUp(), test-ns3.NS3ExpectedUseTestCase::setUp(), test-ns3.NS3BuildBaseTestCase::test_01_BuildExistingTargets(), test-ns3.NS3ExpectedUseTestCase::test_01_BuildProject(), test-ns3.NS3StyleTestCase::test_01_CheckCMakeFormat(), test-ns3.NS3QualityControlTestCase::test_01_CheckForDeadLinksInSources(), test-ns3.NS3DependenciesTestCase::test_01_CheckIfIncludedHeadersMatchLinkedModules(), test-ns3.NS3ConfigureBuildProfileTestCase::test_01_Debug(), test-ns3.NS3CommonSettingsTestCase::test_01_NoOption(), test-ns3.NS3UnusedSourcesTestCase::test_01_UnusedExampleSources(), test-ns3.NS3ExpectedUseTestCase::test_02_BuildAndRunExistingExecutableTarget(), test-ns3.NS3BuildBaseTestCase::test_02_BuildNonExistingTargets(), test-ns3.NS3QualityControlTestCase::test_02_MemoryCheckWithSanitizers(), test-ns3.NS3CommonSettingsTestCase::test_02_NoTaskLines(), test-ns3.NS3ConfigureBuildProfileTestCase::test_02_Release(), test-ns3.NS3ConfigureTestCase::test_02_Tests(), test-ns3.NS3UnusedSourcesTestCase::test_02_UnusedModuleSources(), test-ns3.NS3ExpectedUseTestCase::test_03_BuildAndRunExistingLibraryTarget(), test-ns3.NS3BuildBaseTestCase::test_03_BuildProject(), test-ns3.NS3CommonSettingsTestCase::test_03_CheckConfig(), test-ns3.NS3QualityControlTestCase::test_03_CheckImageBrightness(), test-ns3.NS3ConfigureBuildProfileTestCase::test_03_Optimized(), test-ns3.NS3UnusedSourcesTestCase::test_03_UnusedUtilsSources(), test-ns3.NS3ExpectedUseTestCase::test_04_BuildAndRunNonExistingTarget(), test-ns3.NS3BuildBaseTestCase::test_04_BuildProjectNoTaskLines(), test-ns3.NS3QualityControlTestCase::test_04_CheckForBrokenLogs(), test-ns3.NS3CommonSettingsTestCase::test_04_CheckProfile(), test-ns3.NS3ConfigureTestCase::test_04_DisableModules(), test-ns3.NS3ConfigureBuildProfileTestCase::test_04_Typo(), test-ns3.NS3BuildBaseTestCase::test_05_BreakBuild(), test-ns3.NS3CommonSettingsTestCase::test_05_CheckVersion(), test-ns3.NS3ConfigureTestCase::test_05_EnableModulesComma(), test-ns3.NS3ExpectedUseTestCase::test_05_RunNoBuildExistingExecutableTarget(), test-ns3.NS3ConfigureBuildProfileTestCase::test_05_TYPO(), test-ns3.NS3ConfigureTestCase::test_06_DisableModulesComma(), test-ns3.NS3ConfigureBuildProfileTestCase::test_06_OverwriteDefaultSettings(), test-ns3.NS3ExpectedUseTestCase::test_06_RunNoBuildExistingLibraryTarget(), test-ns3.NS3BuildBaseTestCase::test_06_TestVersionFile(), test-ns3.NS3BuildBaseTestCase::test_07_OutputDirectory(), test-ns3.NS3ExpectedUseTestCase::test_07_RunNoBuildNonExistingExecutableTarget(), test-ns3.NS3ConfigureTestCase::test_08_DryRun(), test-ns3.NS3BuildBaseTestCase::test_08_InstallationAndUninstallation(), test-ns3.NS3ExpectedUseTestCase::test_08_RunNoBuildGdb(), test-ns3.NS3ConfigureTestCase::test_09_PropagationOfReturnCode(), test-ns3.NS3ExpectedUseTestCase::test_09_RunNoBuildValgrind(), test-ns3.NS3BuildBaseTestCase::test_09_Scratches(), test-ns3.NS3BuildBaseTestCase::test_10_AmbiguityCheck(), test-ns3.NS3ConfigureTestCase::test_10_CheckConfig(), test-ns3.NS3ExpectedUseTestCase::test_10_DoxygenWithBuild(), test-ns3.NS3ConfigureTestCase::test_11_CheckProfile(), test-ns3.NS3ExpectedUseTestCase::test_11_DoxygenWithoutBuild(), test-ns3.NS3BuildBaseTestCase::test_11_StaticBuilds(), test-ns3.NS3ConfigureTestCase::test_12_CheckVersion(), test-ns3.NS3BuildBaseTestCase::test_12_CppyyBindings(), test-ns3.NS3ExpectedUseTestCase::test_12_SphinxDocumentation(), test-ns3.NS3ExpectedUseTestCase::test_13_Documentation(), test-ns3.NS3BuildBaseTestCase::test_13_FetchOptionalComponents(), test-ns3.NS3ConfigureTestCase::test_13_Scratches(), test-ns3.NS3ExpectedUseTestCase::test_14_EnableSudo(), test-ns3.NS3BuildBaseTestCase::test_14_LinkContribModuleToSrcModule(), test-ns3.NS3ConfigureTestCase::test_14_MpiCommandTemplate(), test-ns3.NS3ExpectedUseTestCase::test_15_CommandTemplate(), test-ns3.NS3ConfigureTestCase::test_15_InvalidLibrariesToLink(), test-ns3.NS3ExpectedUseTestCase::test_16_ForwardArgumentsToRunTargets(), test-ns3.NS3ConfigureTestCase::test_16_LibrariesContainingLib(), test-ns3.NS3ConfigureTestCase::test_17_CMakePerformanceTracing(), test-ns3.NS3ExpectedUseTestCase::test_17_RunNoBuildLldb(), test-ns3.NS3ConfigureTestCase::test_18_CheckBuildVersionAndVersionCache(), test-ns3.NS3ExpectedUseTestCase::test_18_CpmAndVcpkgManagers(), test-ns3.NS3ConfigureTestCase::test_19_FilterModuleExamplesAndTests(), test-ns3.NS3ConfigureTestCase::test_20_CheckFastLinkers(), test-ns3.NS3ConfigureTestCase::test_21_ClangTimeTrace(), test-ns3.NS3ConfigureTestCase::test_22_NinjaTrace(), test-ns3.NS3ConfigureTestCase::test_23_PrecompiledHeaders(), test-ns3.NS3ConfigureTestCase::test_24_CheckTestSettings(), python-unit-tests.TestSimulator::testAttributes(), python-unit-tests.TestSimulator::testCommandLine(), python-unit-tests.TestSimulator::testIdentity(), python-unit-tests.TestSimulator::testSchedule(), python-unit-tests.TestSimulator::testScheduleDestroy(), python-unit-tests.TestSimulator::testSubclass(), python-unit-tests.TestSimulator::testTimeComparison(), python-unit-tests.TestSimulator::testTimeNumericOperations(), python-unit-tests.TestSimulator::testTypeId(), and visualizer.core.Node::tooltip_query().
Here is the call graph for this function:| void ns3::YansWifiPhyHelper::SetChannel | ( | Ptr< YansWifiChannel > | channel | ) |
| channel | the channel to associate to this helper |
Every PHY created by a call to Install is associated to this channel.
Definition at line 80 of file yans-wifi-helper.cc.
References m_channel.
Referenced by experiment().
Here is the caller graph for this function:| void ns3::YansWifiPhyHelper::SetChannel | ( | std::string | channelName | ) |
| channelName | The name of the channel to associate to this helper |
Every PHY created by a call to Install is associated to this channel.
Definition at line 86 of file yans-wifi-helper.cc.
References Create(), and m_channel.
Here is the call graph for this function:
|
private |
YANS wifi channel.
Definition at line 139 of file yans-wifi-helper.h.
Referenced by Create(), SetChannel(), and SetChannel().