A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::YansWifiPhyHelper Class Reference

Make it easy to create and manage PHY objects for the yans model. More...

#include <yans-wifi-helper.h>

+ Inheritance diagram for ns3::YansWifiPhyHelper:

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 }
 

Public Member Functions

 YansWifiPhyHelper ()
 
void Set (std::string name, const AttributeValue &v)
 
void SetChannel (Ptr< YansWifiChannel > channel)
 
void SetChannel (std::string channelName)
 
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 (enum SupportedPcapDataLinkTypes dlt)
 
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice.
 
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice.
 
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.
 
virtual ~AsciiTraceHelperForDevice ()
 Destroy an AsciiTraceHelperForDevice.
 
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 Public Member Functions

static YansWifiPhyHelper Default (void)
 

Private Member Functions

virtual Ptr< WifiPhyCreate (Ptr< Node > node, Ptr< WifiNetDevice > device) const
 
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...
 

Private Attributes

Ptr< YansWifiChannelm_channel
 
ObjectFactory m_errorRateModel
 
uint32_t m_pcapDlt
 
ObjectFactory m_phy
 

Detailed Description

Make it easy to create and manage PHY objects for the yans model.

The yans PHY model is described in "Yet Another Network Simulator", http://cutebugs.net/files/wns2-yans.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 158 of file yans-wifi-helper.h.

Member Enumeration Documentation

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 229 of file yans-wifi-helper.h.

Constructor & Destructor Documentation

ns3::YansWifiPhyHelper::YansWifiPhyHelper ( )

Create a phy helper without any parameter set. The user must set them all to be able to call Install later.

Definition at line 181 of file yans-wifi-helper.cc.

References ns3::ObjectFactory::SetTypeId().

Member Function Documentation

Ptr< WifiPhy > ns3::YansWifiPhyHelper::Create ( Ptr< Node node,
Ptr< WifiNetDevice device 
) const
privatevirtual
Parameters
nodethe node on which we wish to create a wifi PHY
devicethe device within which this PHY will be created
Returns
a newly-created PHY object.

This method implements the pure virtual method defined in ns3::WifiPhyHelper.

Implements ns3::WifiPhyHelper.

Definition at line 237 of file yans-wifi-helper.cc.

References ns3::ObjectFactory::Create().

void ns3::YansWifiPhyHelper::EnableAsciiInternal ( Ptr< OutputStreamWrapper stream,
std::string  prefix,
Ptr< NetDevice nd,
bool  explicitFilename 
)
privatevirtual

Enable ascii trace output on the indicated net device.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
streamThe output stream object to use when logging ascii traces.
prefixFilename prefix to use for ascii trace files.
ndNet device for which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::AsciiTraceHelperForDevice.

Definition at line 457 of file yans-wifi-helper.cc.

References ns3::Config::Connect(), ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::Packet::EnablePrinting(), ns3::AsciiTraceHelper::GetFilenameFromDevice(), and NS_LOG_INFO.

void ns3::YansWifiPhyHelper::EnablePcapInternal ( std::string  prefix,
Ptr< NetDevice nd,
bool  promiscuous,
bool  explicitFilename 
)
privatevirtual

Enable pcap output the indicated net device.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
prefixFilename prefix to use for pcap files.
ndNet device for which you want to enable tracing.
promiscuousIf true capture all possible packets available at the device.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::PcapHelperForDevice.

Definition at line 421 of file yans-wifi-helper.cc.

References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::GetFilenameFromDevice(), NS_ABORT_MSG_IF, NS_LOG_INFO, and ns3::ObjectBase::TraceConnectWithoutContext().

void ns3::YansWifiPhyHelper::Set ( std::string  name,
const AttributeValue v 
)
Parameters
namethe name of the attribute to set
vthe value of the attribute

Set an attribute of the underlying PHY object.

Definition at line 208 of file yans-wifi-helper.cc.

References ns3::ObjectFactory::Set().

Referenced by BatteryLifetimeTest::ConstantLoadTest(), ns3::olsr::Bug780Test::CreateNodes(), BasicEnergyDepletionTest::DepletionTestCase(), and BatteryLifetimeTest::VariableLoadTest().

void ns3::YansWifiPhyHelper::SetChannel ( std::string  channelName)
Parameters
channelNameThe 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 202 of file yans-wifi-helper.cc.

void ns3::YansWifiPhyHelper::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 () 
)
Parameters
namethe name of the error rate model to set.
n0the name of the attribute to set
v0the value of the attribute to set
n1the name of the attribute to set
v1the value of the attribute to set
n2the name of the attribute to set
v2the value of the attribute to set
n3the name of the attribute to set
v3the value of the attribute to set
n4the name of the attribute to set
v4the value of the attribute to set
n5the name of the attribute to set
v5the value of the attribute to set
n6the name of the attribute to set
v6the value of the attribute to set
n7the name of the attribute to set
v7the value of the attribute to set

Set the error rate model and its attributes to use when Install is called.

Definition at line 214 of file yans-wifi-helper.cc.

References ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

Referenced by ns3::aodv::Bug772ChainTest::CreateDevices(), ns3::aodv::ChainRegressionTest::CreateDevices(), ns3::olsr::TcRegressionTest::CreateNodes(), and Default().

void ns3::YansWifiPhyHelper::SetPcapDataLinkType ( enum 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.

See Also
SupportedPcapDataLinkTypes
Parameters
dltThe data link type of the pcap file (and packets) to be used

Definition at line 402 of file yans-wifi-helper.cc.

References DLT_IEEE802_11, DLT_IEEE802_11_RADIO, DLT_PRISM_HEADER, and NS_ABORT_MSG.

Referenced by BatteryLifetimeTest::ConstantLoadTest(), BasicEnergyDepletionTest::DepletionTestCase(), and BatteryLifetimeTest::VariableLoadTest().


The documentation for this class was generated from the following files: