create PHY objects More...
#include "wifi-helper.h"
Public Types | |
enum | SupportedPcapDataLinkTypes { DLT_IEEE802_11 = PcapHelper::DLT_IEEE802_11, DLT_PRISM_HEADER = PcapHelper::DLT_PRISM_HEADER, DLT_IEEE802_11_RADIO = PcapHelper::DLT_IEEE802_11_RADIO } |
An enumeration of the pcap data link types (DLTs) which this helper supports. More... | |
Public Member Functions | |
WifiPhyHelper () | |
virtual | ~WifiPhyHelper () |
virtual Ptr< WifiPhy > | Create (Ptr< Node > node, Ptr< NetDevice > device) const =0 |
PcapHelper::DataLinkType | GetPcapDataLinkType (void) const |
Get the data link type of PCAP traces to be used. More... | |
void | Set (std::string name, const AttributeValue &v) |
void | SetErrorRateModel (std::string name, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue()) |
void | SetPcapDataLinkType (SupportedPcapDataLinkTypes dlt) |
Set the data link type of PCAP traces to be used. More... | |
Public Member Functions inherited from ns3::PcapHelperForDevice | |
PcapHelperForDevice () | |
Construct a PcapHelperForDevice. More... | |
virtual | ~PcapHelperForDevice () |
Destroy a PcapHelperForDevice. More... | |
void | EnablePcap (std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false) |
Enable pcap output the indicated net device. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from ns3::AsciiTraceHelperForDevice | |
AsciiTraceHelperForDevice () | |
Construct an AsciiTraceHelperForDevice. More... | |
virtual | ~AsciiTraceHelperForDevice () |
Destroy an AsciiTraceHelperForDevice. More... | |
void | EnableAscii (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false) |
Enable ascii trace output on the indicated net device. More... | |
void | EnableAscii (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd) |
Enable ascii trace output on the indicated net device. More... | |
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. More... | |
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. More... | |
void | EnableAscii (std::string prefix, NetDeviceContainer d) |
Enable ascii trace output on each device in the container which is of the appropriate type. More... | |
void | EnableAscii (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d) |
Enable ascii trace output on each device in the container which is of the appropriate type. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Static Protected Member Functions | |
static void | PcapSniffRxEvent (Ptr< PcapFileWrapper > file, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise) |
static void | PcapSniffTxEvent (Ptr< PcapFileWrapper > file, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu) |
Protected Attributes | |
ObjectFactory | m_errorRateModel |
error rate model More... | |
ObjectFactory | m_phy |
PHY object. More... | |
Private Member Functions | |
virtual void | EnableAsciiInternal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename) |
Enable ascii trace output on the indicated net device. More... | |
virtual void | EnablePcapInternal (std::string prefix, Ptr< NetDevice > nd, bool promiscuous, bool explicitFilename) |
Enable pcap output the indicated net device. More... | |
Static Private Member Functions | |
static RadiotapHeader | GetRadiotapHeader (Ptr< Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu) |
Get the radiotap header. More... | |
Private Attributes | |
PcapHelper::DataLinkType | m_pcapDlt |
PCAP data link type. More... | |
create PHY objects
This base class must be implemented by new PHY implementation which wish to integrate with the ns3::WifiHelper class.
Definition at line 42 of file wifi-helper.h.
An enumeration of the pcap data link types (DLTs) which this helper supports.
See http://wiki.wireshark.org/Development/LibpcapFileFormat for more information on these formats.
Enumerator | |
---|---|
DLT_IEEE802_11 | IEEE 802.11 Wireless LAN headers on packets. |
DLT_PRISM_HEADER | Include Prism monitor mode information. |
DLT_IEEE802_11_RADIO | Include Radiotap link layer information. |
Definition at line 107 of file wifi-helper.h.
ns3::WifiPhyHelper::WifiPhyHelper | ( | ) |
Definition at line 124 of file wifi-helper.cc.
|
virtual |
Definition at line 129 of file wifi-helper.cc.
|
pure virtual |
node | the node on which the PHY object will reside |
device | the device within which the PHY object will reside |
Subclasses must implement this method to allow the ns3::WifiHelper class to create PHY objects from ns3::WifiHelper::Install.
Typically the device type will be of class WifiNetDevice but the type of the pointer is generalized so that this method may be used by other Wifi device variants such as WaveNetDevice.
Implemented in ns3::YansWifiPhyHelper, and ns3::SpectrumWifiPhyHelper.
Referenced by ns3::MeshHelper::CreateInterface(), ns3::WaveHelper::Install(), and ns3::WifiHelper::Install().
|
privatevirtual |
Enable ascii trace output on the indicated net device.
NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.
stream | The output stream object to use when logging ascii traces. |
prefix | Filename prefix to use for ascii trace files. |
nd | Net device for which you want to enable tracing. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::AsciiTraceHelperForDevice.
Reimplemented in ns3::YansWavePhyHelper.
Definition at line 514 of file wifi-helper.cc.
References ns3::AsciiPhyReceiveSinkWithContext(), ns3::AsciiPhyReceiveSinkWithoutContext(), ns3::AsciiPhyTransmitSinkWithContext(), ns3::AsciiPhyTransmitSinkWithoutContext(), ns3::Config::Connect(), ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::Packet::EnablePrinting(), ns3::AsciiTraceHelper::GetFilenameFromDevice(), ns3::MakeBoundCallback(), and NS_LOG_INFO.
|
privatevirtual |
Enable pcap output the indicated net device.
NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.
prefix | Filename prefix to use for pcap files. |
nd | Net device for which you want to enable tracing. |
promiscuous | If true capture all possible packets available at the device. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::PcapHelperForDevice.
Reimplemented in ns3::YansWavePhyHelper.
Definition at line 478 of file wifi-helper.cc.
References ns3::PcapHelper::CreateFile(), anonymous_namespace{print-introspected-doxygen.cc}::file, ns3::PcapHelper::GetFilenameFromDevice(), m_pcapDlt, ns3::MakeBoundCallback(), NS_ABORT_MSG_IF, NS_LOG_FUNCTION, NS_LOG_INFO, PcapSniffRxEvent(), PcapSniffTxEvent(), and third::phy.
PcapHelper::DataLinkType ns3::WifiPhyHelper::GetPcapDataLinkType | ( | void | ) | const |
Get the data link type of PCAP traces to be used.
Definition at line 472 of file wifi-helper.cc.
References m_pcapDlt.
Referenced by ns3::YansWavePhyHelper::EnablePcapInternal().
|
staticprivate |
Get the radiotap header.
packet | the packet |
channelFreqMhz | the channel frequency |
txVector | the TXVECTOR |
aMpdu | the A-MPDU information |
Definition at line 230 of file wifi-helper.cc.
References ns3::RadiotapHeader::A_MPDU_STATUS_LAST, ns3::RadiotapHeader::A_MPDU_STATUS_LAST_KNOWN, ns3::RadiotapHeader::A_MPDU_STATUS_NONE, ns3::RadiotapHeader::CHANNEL_FLAG_CCK, ns3::RadiotapHeader::CHANNEL_FLAG_OFDM, ns3::RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ, ns3::RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ, ns3::Packet::CreateFragment(), ns3::RadiotapHeader::FRAME_FLAG_FCS_INCLUDED, ns3::RadiotapHeader::FRAME_FLAG_NONE, ns3::RadiotapHeader::FRAME_FLAG_SHORT_GUARD, ns3::RadiotapHeader::FRAME_FLAG_SHORT_PREAMBLE, ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::AmpduSubframeHeader::GetEof(), ns3::WifiTxVector::GetGuardInterval(), ns3::AmpduSubframeHeader::GetLength(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiTxVector::GetNess(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::GetPreambleType(), ns3::RadiotapHeader::HE_DATA1_DATA_MCS_KNOWN, ns3::RadiotapHeader::HE_DATA1_FORMAT_EXT_SU, ns3::RadiotapHeader::HE_DATA1_FORMAT_MU, ns3::RadiotapHeader::HE_DATA1_FORMAT_TRIG, ns3::RadiotapHeader::HE_DATA1_STBC_KNOWN, ns3::RadiotapHeader::HE_DATA2_GI_KNOWN, ns3::RadiotapHeader::HE_DATA2_NUM_LTF_SYMS_KNOWN, ns3::RadiotapHeader::HE_DATA3_STBC, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_160MHZ, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_40MHZ, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_80MHZ, ns3::RadiotapHeader::HE_DATA5_GI_1_6, ns3::RadiotapHeader::HE_DATA5_GI_3_2, ns3::WifiTxVector::IsAggregation(), ns3::WifiTxVector::IsStbc(), ns3::LAST_MPDU_IN_AGGREGATE, ns3::RadiotapHeader::MCS_FLAGS_BANDWIDTH_40, ns3::RadiotapHeader::MCS_FLAGS_GUARD_INTERVAL, ns3::RadiotapHeader::MCS_FLAGS_HT_GREENFIELD, ns3::RadiotapHeader::MCS_FLAGS_NESS_BIT_0, ns3::RadiotapHeader::MCS_FLAGS_NONE, ns3::RadiotapHeader::MCS_FLAGS_STBC_STREAMS, ns3::RadiotapHeader::MCS_KNOWN_BANDWIDTH, ns3::RadiotapHeader::MCS_KNOWN_FEC_TYPE, ns3::RadiotapHeader::MCS_KNOWN_GUARD_INTERVAL, ns3::RadiotapHeader::MCS_KNOWN_HT_FORMAT, ns3::RadiotapHeader::MCS_KNOWN_INDEX, ns3::RadiotapHeader::MCS_KNOWN_NESS, ns3::RadiotapHeader::MCS_KNOWN_NESS_BIT_1, ns3::RadiotapHeader::MCS_KNOWN_NONE, ns3::RadiotapHeader::MCS_KNOWN_STBC, ns3::MpduInfo::mpduRefNumber, ns3::Simulator::Now(), ns3::Packet::RemoveHeader(), ns3::RadiotapHeader::SetAmpduStatus(), ns3::RadiotapHeader::SetChannelFrequencyAndFlags(), ns3::RadiotapHeader::SetFrameFlags(), ns3::RadiotapHeader::SetHeFields(), ns3::RadiotapHeader::SetMcsFields(), ns3::RadiotapHeader::SetRate(), ns3::RadiotapHeader::SetTsft(), ns3::RadiotapHeader::SetVhtFields(), ns3::MpduInfo::type, ns3::RadiotapHeader::VHT_FLAGS_GUARD_INTERVAL, ns3::RadiotapHeader::VHT_FLAGS_NONE, ns3::RadiotapHeader::VHT_FLAGS_STBC, ns3::RadiotapHeader::VHT_KNOWN_BANDWIDTH, ns3::RadiotapHeader::VHT_KNOWN_BEAMFORMED, ns3::RadiotapHeader::VHT_KNOWN_GUARD_INTERVAL, ns3::RadiotapHeader::VHT_KNOWN_NONE, ns3::RadiotapHeader::VHT_KNOWN_STBC, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_VHT, ns3::WIFI_PREAMBLE_HE_ER_SU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_HT_GF, and ns3::WIFI_PREAMBLE_SHORT.
Referenced by PcapSniffRxEvent(), and PcapSniffTxEvent().
|
staticprotected |
file | the pcap file wrapper |
packet | the packet |
channelFreqMhz | the channel frequency |
txVector | the TXVECTOR |
aMpdu | the A-MPDU information |
signalNoise | the rx signal and noise information |
Handle rx pcap.
Definition at line 195 of file wifi-helper.cc.
References ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::PcapHelper::DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, anonymous_namespace{print-introspected-doxygen.cc}::file, GetRadiotapHeader(), ns3::SignalNoiseDbm::noise, ns3::Simulator::Now(), NS_ABORT_MSG, NS_FATAL_ERROR, ns3::RadiotapHeader::SetAntennaNoisePower(), ns3::RadiotapHeader::SetAntennaSignalPower(), and ns3::SignalNoiseDbm::signal.
Referenced by ns3::YansWavePhyHelper::EnablePcapInternal(), and EnablePcapInternal().
|
staticprotected |
file | the pcap file wrapper |
packet | the packet |
channelFreqMhz | the channel frequency |
txVector | the TXVECTOR |
aMpdu | the A-MPDU information |
Handle tx pcap.
Definition at line 163 of file wifi-helper.cc.
References ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::PcapHelper::DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, anonymous_namespace{print-introspected-doxygen.cc}::file, GetRadiotapHeader(), ns3::Simulator::Now(), NS_ABORT_MSG, and NS_FATAL_ERROR.
Referenced by ns3::YansWavePhyHelper::EnablePcapInternal(), and EnablePcapInternal().
void ns3::WifiPhyHelper::Set | ( | std::string | name, |
const AttributeValue & | v | ||
) |
name | the name of the attribute to set |
v | the value of the attribute |
Set an attribute of the underlying PHY object.
Definition at line 134 of file wifi-helper.cc.
References m_phy, and ns3::ObjectFactory::Set().
Referenced by BatteryLifetimeTest::ConstantLoadTest(), Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), ChainRegressionTest::CreateDevices(), BasicEnergyDepletionTest::DepletionTestCase(), Bug2483TestCase::DoRun(), RoutingExperiment::Run(), VanetRoutingExperiment::SetupAdhocDevices(), BatteryLifetimeTest::VariableLoadTest(), and WifiInterferenceTestCase::WifiSimpleInterference().
void ns3::WifiPhyHelper::SetErrorRateModel | ( | std::string | name, |
std::string | n0 = "" , |
||
const AttributeValue & | v0 = EmptyAttributeValue () , |
||
std::string | n1 = "" , |
||
const AttributeValue & | v1 = EmptyAttributeValue () , |
||
std::string | n2 = "" , |
||
const AttributeValue & | v2 = EmptyAttributeValue () , |
||
std::string | n3 = "" , |
||
const AttributeValue & | v3 = EmptyAttributeValue () , |
||
std::string | n4 = "" , |
||
const AttributeValue & | v4 = EmptyAttributeValue () , |
||
std::string | n5 = "" , |
||
const AttributeValue & | v5 = EmptyAttributeValue () , |
||
std::string | n6 = "" , |
||
const AttributeValue & | v6 = EmptyAttributeValue () , |
||
std::string | n7 = "" , |
||
const AttributeValue & | v7 = EmptyAttributeValue () |
||
) |
name | the name of the error rate model to set. |
n0 | the name of the attribute to set |
v0 | the value of the attribute to set |
n1 | the name of the attribute to set |
v1 | the value of the attribute to set |
n2 | the name of the attribute to set |
v2 | the value of the attribute to set |
n3 | the name of the attribute to set |
v3 | the value of the attribute to set |
n4 | the name of the attribute to set |
v4 | the value of the attribute to set |
n5 | the name of the attribute to set |
v5 | the value of the attribute to set |
n6 | the name of the attribute to set |
v6 | the value of the attribute to set |
n7 | the name of the attribute to set |
v7 | the value of the attribute to set |
Set the error rate model and its attributes to use when Install is called.
Definition at line 140 of file wifi-helper.cc.
References m_errorRateModel, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), ChainRegressionTest::CreateDevices(), ns3::YansWavePhyHelper::Default(), ns3::SpectrumWifiPhyHelper::Default(), ns3::YansWifiPhyHelper::Default(), and Bug2483TestCase::DoRun().
void ns3::WifiPhyHelper::SetPcapDataLinkType | ( | SupportedPcapDataLinkTypes | dlt | ) |
Set the data link type of PCAP traces to be used.
This function has to be called before EnablePcap(), so that the header of the pcap file can be written correctly.
dlt | The data link type of the pcap file (and packets) to be used |
Definition at line 453 of file wifi-helper.cc.
References ns3::PcapHelper::DLT_IEEE802_11, DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, DLT_PRISM_HEADER, m_pcapDlt, and NS_ABORT_MSG.
Referenced by BatteryLifetimeTest::ConstantLoadTest(), WaveNetDeviceExample::CreateWaveNodes(), BasicEnergyDepletionTest::DepletionTestCase(), VanetRoutingExperiment::SetupAdhocDevices(), BatteryLifetimeTest::VariableLoadTest(), and WifiInterferenceTestCase::WifiSimpleInterference().
|
protected |
error rate model
Definition at line 168 of file wifi-helper.h.
Referenced by ns3::SpectrumWifiPhyHelper::Create(), ns3::YansWifiPhyHelper::Create(), and SetErrorRateModel().
|
private |
PCAP data link type.
Definition at line 219 of file wifi-helper.h.
Referenced by EnablePcapInternal(), GetPcapDataLinkType(), and SetPcapDataLinkType().
|
protected |
PHY object.
Definition at line 167 of file wifi-helper.h.
Referenced by ns3::SpectrumWifiPhyHelper::Create(), ns3::YansWifiPhyHelper::Create(), Set(), ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper(), and ns3::YansWifiPhyHelper::YansWifiPhyHelper().