A Discrete-Event Network Simulator
API
ns3::PointToPointHelper Class Reference

Build a set of PointToPointNetDevice objects. More...

#include "point-to-point-helper.h"

+ Inheritance diagram for ns3::PointToPointHelper:
+ Collaboration diagram for ns3::PointToPointHelper:

Public Member Functions

 PointToPointHelper ()
 Create a PointToPointHelper to make life easier when creating point to point networks. More...
 
virtual ~PointToPointHelper ()
 
void DisableFlowControl (void)
 Disable flow control only if you know what you are doing. More...
 
NetDeviceContainer Install (NodeContainer c)
 
NetDeviceContainer Install (Ptr< Node > a, Ptr< Node > b)
 
NetDeviceContainer Install (Ptr< Node > a, std::string bName)
 
NetDeviceContainer Install (std::string aName, Ptr< Node > b)
 
NetDeviceContainer Install (std::string aNode, std::string bNode)
 
void SetChannelAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each Channel created by the helper. More...
 
void SetDeviceAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each NetDevice created by the helper. More...
 
void SetQueue (std::string type, 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())
 Each point to point net device must have a queue to pass packets through. More...
 
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice. More...
 
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice. 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, 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, 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 (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type. 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 (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd)
 Enable ascii trace output on the indicated net device. 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 (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 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 (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 (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false)
 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 (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 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...
 
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...
 

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...
 

Private Attributes

ObjectFactory m_channelFactory
 Channel Factory. More...
 
ObjectFactory m_deviceFactory
 Device Factory. More...
 
bool m_enableFlowControl
 whether to enable flow control More...
 
ObjectFactory m_queueFactory
 Queue Factory. More...
 

Detailed Description

Build a set of PointToPointNetDevice objects.

Normally we eschew multiple inheritance, however, the classes PcapUserHelperForDevice and AsciiTraceUserHelperForDevice are "mixins".

Definition at line 43 of file point-to-point-helper.h.

Constructor & Destructor Documentation

◆ PointToPointHelper()

ns3::PointToPointHelper::PointToPointHelper ( )

Create a PointToPointHelper to make life easier when creating point to point networks.

Definition at line 45 of file point-to-point-helper.cc.

References m_channelFactory, m_deviceFactory, m_enableFlowControl, m_queueFactory, and ns3::ObjectFactory::SetTypeId().

+ Here is the call graph for this function:

◆ ~PointToPointHelper()

virtual ns3::PointToPointHelper::~PointToPointHelper ( )
inlinevirtual

Definition at line 52 of file point-to-point-helper.h.

Member Function Documentation

◆ DisableFlowControl()

void ns3::PointToPointHelper::DisableFlowControl ( void  )

Disable flow control only if you know what you are doing.

By disabling flow control, this NetDevice will be sent packets even if there is no room for them (such packets will be likely dropped by this NetDevice). Also, any queue disc installed on this NetDevice will have no effect, as every packet enqueued to the traffic control layer queue disc will be immediately dequeued.

Definition at line 82 of file point-to-point-helper.cc.

References m_enableFlowControl.

◆ EnableAsciiInternal()

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

◆ EnablePcapInternal()

void ns3::PointToPointHelper::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 88 of file point-to-point-helper.cc.

References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_PPP, create-module::file, ns3::PcapHelper::GetFilenameFromDevice(), ns3::Object::GetObject(), ns3::PcapHelper::HookDefaultSink(), and NS_LOG_INFO.

+ Here is the call graph for this function:

◆ Install() [1/5]

NetDeviceContainer ns3::PointToPointHelper::Install ( NodeContainer  c)
Parameters
ca set of nodes
Returns
a NetDeviceContainer for nodes

This method creates a ns3::PointToPointChannel with the attributes configured by PointToPointHelper::SetChannelAttribute, then, for each node in the input container, we create a ns3::PointToPointNetDevice with the requested attributes, a queue for this ns3::NetDevice, and associate the resulting ns3::NetDevice with the ns3::Node and ns3::PointToPointChannel.

Definition at line 229 of file point-to-point-helper.cc.

References ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and NS_ASSERT.

Referenced by ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), ns3::PointToPointDumbbellHelper::PointToPointDumbbellHelper(), ns3::PointToPointStarHelper::PointToPointStarHelper(), ns3::PointToPointEpcHelper::AddEnb(), ns3::NoBackhaulEpcHelper::AddX2Interface(), ns3::BriteTopologyHelper::ConstructTopology(), LteCellSelectionTestCase::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), BriteTopologyFunctionTestCase::DoRun(), EpcS1uDlTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpStateTestCase::DoRun(), experiment(), and Install().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Install() [2/5]

NetDeviceContainer ns3::PointToPointHelper::Install ( Ptr< Node a,
Ptr< Node b 
)
Parameters
afirst node
bsecond node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer. Also, if MPI is enabled, for distributed simulations, appropriate remote point-to-point channels are created.

Definition at line 236 of file point-to-point-helper.cc.

References ns3::NetDeviceContainer::Add(), ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), third::channel, ns3::ObjectFactory::Create(), ns3::MpiInterface::GetSystemId(), ns3::Node::GetSystemId(), ns3::MpiInterface::IsEnabled(), m_channelFactory, m_deviceFactory, m_enableFlowControl, m_queueFactory, ns3::MakeCallback(), ns3::PointToPointNetDevice::Receive(), and ns3::ObjectFactory::SetTypeId().

+ Here is the call graph for this function:

◆ Install() [3/5]

NetDeviceContainer ns3::PointToPointHelper::Install ( Ptr< Node a,
std::string  bName 
)
Parameters
afirst node
bNamename of second node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

Definition at line 307 of file point-to-point-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ Install() [4/5]

NetDeviceContainer ns3::PointToPointHelper::Install ( std::string  aName,
Ptr< Node b 
)
Parameters
aNameName of first node
bsecond node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

Definition at line 314 of file point-to-point-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ Install() [5/5]

NetDeviceContainer ns3::PointToPointHelper::Install ( std::string  aNode,
std::string  bNode 
)
Parameters
aNodeName of first node
bNodeName of second node
Returns
a NetDeviceContainer for nodes

Saves you from having to construct a temporary NodeContainer.

Definition at line 321 of file point-to-point-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ SetChannelAttribute()

void ns3::PointToPointHelper::SetChannelAttribute ( std::string  name,
const AttributeValue value 
)

◆ SetDeviceAttribute()

void ns3::PointToPointHelper::SetDeviceAttribute ( std::string  name,
const AttributeValue value 
)

Set an attribute value to be propagated to each NetDevice created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attributes on each ns3::PointToPointNetDevice created by PointToPointHelper::Install

Definition at line 70 of file point-to-point-helper.cc.

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

Referenced by ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), ns3::PointToPointEpcHelper::AddEnb(), ns3::NoBackhaulEpcHelper::AddX2Interface(), ns3::BriteTopologyHelper::ConstructTopology(), LteCellSelectionTestCase::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), BriteTopologyFunctionTestCase::DoRun(), EpcS1uDlTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpStateTestCase::DoRun(), and experiment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetQueue()

void ns3::PointToPointHelper::SetQueue ( std::string  type,
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 () 
)

Each point to point net device must have a queue to pass packets through.

This method allows one to set the type of the queue that is automatically created when the device is created and attached to a node.

Parameters
typethe type of queue
n1the name of the attribute to set on the queue
v1the value of the attribute to set on the queue
n2the name of the attribute to set on the queue
v2the value of the attribute to set on the queue
n3the name of the attribute to set on the queue
v3the value of the attribute to set on the queue
n4the name of the attribute to set on the queue
v4the value of the attribute to set on the queue

Set the type of queue to create and associated to each PointToPointNetDevice created through PointToPointHelper::Install.

Definition at line 54 of file point-to-point-helper.cc.

References ns3::QueueBase::AppendItemTypeIfNotPresent(), m_queueFactory, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_channelFactory

ObjectFactory ns3::PointToPointHelper::m_channelFactory
private

Channel Factory.

Definition at line 195 of file point-to-point-helper.h.

Referenced by PointToPointHelper(), Install(), and SetChannelAttribute().

◆ m_deviceFactory

ObjectFactory ns3::PointToPointHelper::m_deviceFactory
private

Device Factory.

Definition at line 196 of file point-to-point-helper.h.

Referenced by PointToPointHelper(), Install(), and SetDeviceAttribute().

◆ m_enableFlowControl

bool ns3::PointToPointHelper::m_enableFlowControl
private

whether to enable flow control

Definition at line 197 of file point-to-point-helper.h.

Referenced by PointToPointHelper(), DisableFlowControl(), and Install().

◆ m_queueFactory

ObjectFactory ns3::PointToPointHelper::m_queueFactory
private

Queue Factory.

Definition at line 194 of file point-to-point-helper.h.

Referenced by PointToPointHelper(), Install(), and SetQueue().


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