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

aggregate IP/TCP/UDP functionality to existing Nodes. More...

#include <internet-stack-helper.h>

+ Inheritance diagram for ns3::InternetStackHelper:
+ Collaboration diagram for ns3::InternetStackHelper:

Public Member Functions

 InternetStackHelper (void)
 Create a new InternetStackHelper which uses a mix of static routing and global routing by default. More...
 
 InternetStackHelper (const InternetStackHelper &)
 Copy constructor. More...
 
virtual ~InternetStackHelper (void)
 Destroy the InternetStackHelper. More...
 
int64_t AssignStreams (NodeContainer c, int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
void Install (std::string nodeName) const
 Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provided node. More...
 
void Install (Ptr< Node > node) const
 Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provided node. More...
 
void Install (NodeContainer c) const
 For each node in the input container, aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and, ns3::Tcp classes. More...
 
void InstallAll (void) const
 Aggregate IPv4, IPv6, UDP, and TCP stacks to all nodes in the simulation. More...
 
InternetStackHelperoperator= (const InternetStackHelper &o)
 Copy constructor. More...
 
void Reset (void)
 Return helper internal state to that of a newly constructed one. More...
 
void SetIpv4ArpJitter (bool enable)
 Enable/disable IPv4 ARP Jitter. More...
 
void SetIpv4StackInstall (bool enable)
 Enable/disable IPv4 stack install. More...
 
void SetIpv6NsRsJitter (bool enable)
 Enable/disable IPv6 NS and RS Jitter. More...
 
void SetIpv6StackInstall (bool enable)
 Enable/disable IPv6 stack install. More...
 
void SetRoutingHelper (const Ipv4RoutingHelper &routing)
 
void SetRoutingHelper (const Ipv6RoutingHelper &routing)
 Set IPv6 routing helper. More...
 
void SetTcp (std::string tid)
 set the Tcp stack which will not need any other parameter. More...
 
void SetTcp (std::string tid, std::string attr, const AttributeValue &val)
 This function is used to setup the Network Simulation Cradle stack with library value. More...
 
- Public Member Functions inherited from ns3::PcapHelperForIpv4
 PcapHelperForIpv4 ()
 Construct a PcapHelperForIpv4. More...
 
virtual ~PcapHelperForIpv4 ()
 Destroy a PcapHelperForIpv4. More...
 
void EnablePcapIpv4 (std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename=false)
 Enable pcap output the indicated Ipv4 and interface pair. More...
 
void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false)
 Enable pcap output the indicated Ipv4 and interface pair using a Ptr<Ipv4> previously named using the ns-3 object name service. More...
 
void EnablePcapIpv4 (std::string prefix, Ipv4InterfaceContainer c)
 Enable pcap output on each Ipv4 and interface pair in the container. More...
 
void EnablePcapIpv4 (std::string prefix, NodeContainer n)
 Enable pcap output on all Ipv4 and interface pairs existing in the nodes provided in the container. More...
 
void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename)
 Enable pcap output on the Ipv4 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnablePcapIpv4All (std::string prefix)
 Enable pcap output on all Ipv4 and interface pairs existing in the set of all nodes created in the simulation. More...
 
- Public Member Functions inherited from ns3::PcapHelperForIpv6
 PcapHelperForIpv6 ()
 Construct a PcapHelperForIpv6. More...
 
virtual ~PcapHelperForIpv6 ()
 Destroy a PcapHelperForIpv6. More...
 
void EnablePcapIpv6 (std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename=false)
 Enable pcap output the indicated Ipv6 and interface pair. More...
 
void EnablePcapIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false)
 Enable pcap output the indicated Ipv6 and interface pair using a Ptr<Ipv6> previously named using the ns-3 object name service. More...
 
void EnablePcapIpv6 (std::string prefix, Ipv6InterfaceContainer c)
 Enable pcap output on each Ipv6 and interface pair in the container. More...
 
void EnablePcapIpv6 (std::string prefix, NodeContainer n)
 Enable pcap output on all Ipv6 and interface pairs existing in the nodes provided in the container. More...
 
void EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename)
 Enable pcap output on the Ipv6 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnablePcapIpv6All (std::string prefix)
 Enable pcap output on all Ipv6 and interface pairs existing in the set of all nodes created in the simulation. More...
 
- Public Member Functions inherited from ns3::AsciiTraceHelperForIpv4
 AsciiTraceHelperForIpv4 ()
 Construct an AsciiTraceHelperForIpv4. More...
 
virtual ~AsciiTraceHelperForIpv4 ()
 Destroy an AsciiTraceHelperForIpv4. More...
 
void EnableAsciiIpv4 (std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename=false)
 Enable ascii trace output on the indicated Ipv4 and interface pair. More...
 
void EnableAsciiIpv4 (Ptr< OutputStreamWrapper > stream, Ptr< Ipv4 > ipv4, uint32_t interface)
 Enable ascii trace output on the indicated Ipv4 and interface pair. More...
 
void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false)
 Enable ascii trace output the indicated Ipv4 and interface pair using an Ipv4 previously named using the ns-3 object name service. More...
 
void EnableAsciiIpv4 (Ptr< OutputStreamWrapper > stream, std::string ipv4Name, uint32_t interface)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. More...
 
void EnableAsciiIpv4 (std::string prefix, Ipv4InterfaceContainer c)
 Enable ascii trace output on each Ipv4 and interface pair in the container. More...
 
void EnableAsciiIpv4 (Ptr< OutputStreamWrapper > stream, Ipv4InterfaceContainer c)
 Enable ascii trace output on each device in the container which is of the appropriate type. More...
 
void EnableAsciiIpv4 (std::string prefix, NodeContainer n)
 Enable ascii trace output on all Ipv4 and interface pairs existing in the nodes provided in the container. More...
 
void EnableAsciiIpv4 (Ptr< OutputStreamWrapper > stream, NodeContainer n)
 Enable ascii trace output on all Ipv4 and interface pairs existing in the nodes provided in the container. More...
 
void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename)
 Enable ascii trace output on the Ipv4 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnableAsciiIpv4 (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t interface, bool explicitFilename)
 Enable ascii trace output on the Ipv4 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnableAsciiIpv4All (std::string prefix)
 Enable ascii trace output on all Ipv4 and interface pairs existing in the set of all nodes created in the simulation. More...
 
void EnableAsciiIpv4All (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...
 
- Public Member Functions inherited from ns3::AsciiTraceHelperForIpv6
 AsciiTraceHelperForIpv6 ()
 Construct an AsciiTraceHelperForIpv6. More...
 
virtual ~AsciiTraceHelperForIpv6 ()
 Destroy an AsciiTraceHelperForIpv6. More...
 
void EnableAsciiIpv6 (std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename=false)
 Enable ascii trace output on the indicated Ipv6 and interface pair. More...
 
void EnableAsciiIpv6 (Ptr< OutputStreamWrapper > stream, Ptr< Ipv6 > ipv6, uint32_t interface)
 Enable ascii trace output on the indicated Ipv6 and interface pair. More...
 
void EnableAsciiIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false)
 Enable ascii trace output the indicated Ipv6 and interface pair using an Ipv6 previously named using the ns-3 object name service. More...
 
void EnableAsciiIpv6 (Ptr< OutputStreamWrapper > stream, std::string ipv6Name, uint32_t interface)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service. More...
 
void EnableAsciiIpv6 (std::string prefix, Ipv6InterfaceContainer c)
 Enable ascii trace output on each Ipv6 and interface pair in the container. More...
 
void EnableAsciiIpv6 (Ptr< OutputStreamWrapper > stream, Ipv6InterfaceContainer c)
 Enable ascii trace output on each device in the container which is of the appropriate type. More...
 
void EnableAsciiIpv6 (std::string prefix, NodeContainer n)
 Enable ascii trace output on all Ipv6 and interface pairs existing in the nodes provided in the container. More...
 
void EnableAsciiIpv6 (Ptr< OutputStreamWrapper > stream, NodeContainer n)
 Enable ascii trace output on all Ipv6 and interface pairs existing in the nodes provided in the container. More...
 
void EnableAsciiIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename)
 Enable ascii trace output on the Ipv6 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnableAsciiIpv6 (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t interface)
 Enable ascii trace output on the Ipv6 and interface pair specified by a global node-id (of a previously created node) and interface. More...
 
void EnableAsciiIpv6All (std::string prefix)
 Enable ascii trace output on all Ipv6 and interface pairs existing in the set of all nodes created in the simulation. More...
 
void EnableAsciiIpv6All (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...
 

Private Member Functions

bool AsciiHooked (Ptr< Ipv4 > ipv4)
 checks if there is an hook to an ascii output stream More...
 
bool AsciiHooked (Ptr< Ipv6 > ipv6)
 checks if there is an hook to an ascii output stream More...
 
virtual void EnableAsciiIpv4Internal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename)
 Enable ascii trace output on the indicated Ipv4 and interface pair. More...
 
virtual void EnableAsciiIpv6Internal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename)
 Enable ascii trace output on the indicated Ipv6 and interface pair. More...
 
virtual void EnablePcapIpv4Internal (std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename)
 Enable pcap output the indicated Ipv4 and interface pair. More...
 
virtual void EnablePcapIpv6Internal (std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename)
 Enable pcap output the indicated Ipv6 and interface pair. More...
 
void Initialize (void)
 Initialize the helper to its default values. More...
 
bool PcapHooked (Ptr< Ipv4 > ipv4)
 checks if there is an hook to a Pcap wrapper More...
 
bool PcapHooked (Ptr< Ipv6 > ipv6)
 checks if there is an hook to a Pcap wrapper More...
 

Static Private Member Functions

static void Cleanup (void)
 
static void CreateAndAggregateObjectFromTypeId (Ptr< Node > node, const std::string typeId)
 create an object from its TypeId and aggregates it to the node More...
 

Private Attributes

bool m_ipv4ArpJitterEnabled
 IPv4 ARP Jitter state (enabled/disabled) ? More...
 
bool m_ipv4Enabled
 IPv4 install state (enabled/disabled) ? More...
 
bool m_ipv6Enabled
 IPv6 install state (enabled/disabled) ? More...
 
bool m_ipv6NsRsJitterEnabled
 IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ? More...
 
const Ipv4RoutingHelperm_routing
 IPv4 routing helper. More...
 
const Ipv6RoutingHelperm_routingv6
 IPv6 routing helper. More...
 
ObjectFactory m_tcpFactory
 TCP objects factory. More...
 

Detailed Description

aggregate IP/TCP/UDP functionality to existing Nodes.

This helper enables pcap and ascii tracing of events in the internet stack associated with a node. This is substantially similar to the tracing that happens in device helpers, but the important difference is that, well, there is no device. This means that the creation of output file names will change, and also the user-visible methods will not reference devices and therefore the number of trace enable methods is reduced.

Normally we avoid multiple inheritance in ns-3, however, the classes PcapUserHelperForIpv4 and AsciiTraceUserHelperForIpv4 are treated as "mixins". A mixin is a self-contained class that encapsulates a general attribute or a set of functionality that may be of interest to many other classes.

This class aggregates instances of these objects, by default, to each node:

Definition at line 64 of file internet-stack-helper.h.

Constructor & Destructor Documentation

ns3::InternetStackHelper::InternetStackHelper ( void  )

Create a new InternetStackHelper which uses a mix of static routing and global routing by default.

The static routing protocol (ns3::Ipv4StaticRouting) and the global routing protocol are stored in an ns3::Ipv4ListRouting protocol with priorities 0, and -10 by default. If you wish to use different priorites and different routing protocols, you need to use an adhoc ns3::Ipv4RoutingHelper, such as ns3::OlsrHelper

Definition at line 233 of file internet-stack-helper.cc.

References Initialize().

+ Here is the call graph for this function:

ns3::InternetStackHelper::~InternetStackHelper ( void  )
virtual

Destroy the InternetStackHelper.

Definition at line 262 of file internet-stack-helper.cc.

References m_routing, and m_routingv6.

ns3::InternetStackHelper::InternetStackHelper ( const InternetStackHelper o)

Member Function Documentation

bool ns3::InternetStackHelper::AsciiHooked ( Ptr< Ipv4 ipv4)
private

checks if there is an hook to an ascii output stream

Internal:
Parameters
ipv4pointer to the IPv4 object
Returns
true if a hook is found

Definition at line 879 of file internet-stack-helper.cc.

References ns3::g_interfaceStreamMapIpv4.

Referenced by EnableAsciiIpv4Internal(), and EnableAsciiIpv6Internal().

+ Here is the caller graph for this function:

bool ns3::InternetStackHelper::AsciiHooked ( Ptr< Ipv6 ipv6)
private

checks if there is an hook to an ascii output stream

Internal:
Parameters
ipv6pointer to the IPv6 object
Returns
true if a hook is found

Definition at line 1217 of file internet-stack-helper.cc.

References ns3::g_interfaceStreamMapIpv6.

int64_t ns3::InternetStackHelper::AssignStreams ( NodeContainer  c,
int64_t  stream 
)

Assign a fixed random variable stream number to the random variables used by this model.

Return the number of streams (possibly zero) that have been assigned. The Install() method should have previously been called by the user.

Parameters
streamfirst stream index to use
cNodeContainer of the set of nodes for which the internet models should be modified to use a fixed stream
Returns
the number of stream indices assigned by this helper

Definition at line 341 of file internet-stack-helper.cc.

References ns3::Ipv6Extension::AssignStreams(), ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Ipv6ExtensionFragment::EXT_NUMBER, ns3::Object::GetObject(), and NS_ASSERT.

Referenced by ns3::aodv::ChainRegressionTest::CreateDevices().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ns3::InternetStackHelper::Cleanup ( void  )
staticprivate
Internal:
void ns3::InternetStackHelper::CreateAndAggregateObjectFromTypeId ( Ptr< Node node,
const std::string  typeId 
)
staticprivate

create an object from its TypeId and aggregates it to the node

Internal:
Parameters
nodethe node
typeIdthe object TypeId

Definition at line 414 of file internet-stack-helper.cc.

References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), and ns3::ObjectFactory::SetTypeId().

Referenced by Install().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::EnableAsciiIpv4Internal ( Ptr< OutputStreamWrapper stream,
std::string  prefix,
Ptr< Ipv4 ipv4,
uint32_t  interface,
bool  explicitFilename 
)
privatevirtual

Enable ascii trace output on the indicated Ipv4 and interface pair.

Internal:
Parameters
streamAn OutputStreamWrapper representing an existing file to use when writing trace data.
prefixFilename prefix to use for ascii trace files.
ipv4Ptr to the Ipv4 interface on which you want to enable tracing.
interfaceInterface ID on the Ipv4 on which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::AsciiTraceHelperForIpv4.

Definition at line 894 of file internet-stack-helper.cc.

References AsciiHooked(), ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::AsciiTraceHelper::DefaultDropSinkWithContext(), ns3::Packet::EnablePrinting(), ns3::g_interfaceStreamMapIpv4, ns3::AsciiTraceHelper::GetFilenameFromInterfacePair(), ns3::Node::GetId(), ns3::AsciiTraceHelper::HookDefaultDropSinkWithoutContext(), ns3::Ipv4L3ProtocolDropSinkWithContext(), ns3::Ipv4L3ProtocolDropSinkWithoutContext(), ns3::Ipv4L3ProtocolRxSinkWithContext(), ns3::Ipv4L3ProtocolRxSinkWithoutContext(), ns3::Ipv4L3ProtocolTxSinkWithContext(), ns3::Ipv4L3ProtocolTxSinkWithoutContext(), m_ipv4Enabled, ns3::MakeBoundCallback(), NS_ASSERT_MSG, NS_LOG_INFO, and ns3::ObjectBase::TraceConnectWithoutContext().

+ Here is the call graph for this function:

void ns3::InternetStackHelper::EnableAsciiIpv6Internal ( Ptr< OutputStreamWrapper stream,
std::string  prefix,
Ptr< Ipv6 ipv6,
uint32_t  interface,
bool  explicitFilename 
)
privatevirtual

Enable ascii trace output on the indicated Ipv6 and interface pair.

Internal:
Parameters
streamAn OutputStreamWrapper representing an existing file to use when writing trace data.
prefixFilename prefix to use for ascii trace files.
ipv6Ptr to the Ipv6 interface on which you want to enable tracing.
interfaceInterface ID on the Ipv6 on which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::AsciiTraceHelperForIpv6.

Definition at line 1232 of file internet-stack-helper.cc.

References AsciiHooked(), ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::Packet::EnablePrinting(), ns3::g_interfaceStreamMapIpv6, ns3::AsciiTraceHelper::GetFilenameFromInterfacePair(), ns3::Node::GetId(), ns3::Ipv6L3ProtocolDropSinkWithContext(), ns3::Ipv6L3ProtocolDropSinkWithoutContext(), ns3::Ipv6L3ProtocolRxSinkWithContext(), ns3::Ipv6L3ProtocolRxSinkWithoutContext(), ns3::Ipv6L3ProtocolTxSinkWithContext(), ns3::Ipv6L3ProtocolTxSinkWithoutContext(), m_ipv6Enabled, ns3::MakeBoundCallback(), NS_ASSERT_MSG, and NS_LOG_INFO.

+ Here is the call graph for this function:

void ns3::InternetStackHelper::EnablePcapIpv4Internal ( std::string  prefix,
Ptr< Ipv4 ipv4,
uint32_t  interface,
bool  explicitFilename 
)
privatevirtual

Enable pcap output the indicated Ipv4 and interface pair.

Internal:
Parameters
prefixFilename prefix to use for pcap files.
ipv4Ptr to the Ipv4 interface on which you want to enable tracing.
interfaceInterface ID on the Ipv4 on which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::PcapHelperForIpv4.

Definition at line 537 of file internet-stack-helper.cc.

References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_RAW, ns3::g_interfaceFileMapIpv4, ns3::PcapHelper::GetFilenameFromInterfacePair(), ns3::Ipv4L3ProtocolRxTxSink(), m_ipv4Enabled, ns3::MakeCallback(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, and PcapHooked().

+ Here is the call graph for this function:

void ns3::InternetStackHelper::EnablePcapIpv6Internal ( std::string  prefix,
Ptr< Ipv6 ipv6,
uint32_t  interface,
bool  explicitFilename 
)
privatevirtual

Enable pcap output the indicated Ipv6 and interface pair.

Internal:
Parameters
prefixFilename prefix to use for pcap files.
ipv6Ptr to the Ipv6 interface on which you want to enable tracing.
interfaceInterface ID on the Ipv6 on which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::PcapHelperForIpv6.

Definition at line 635 of file internet-stack-helper.cc.

References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_RAW, ns3::g_interfaceFileMapIpv6, ns3::PcapHelper::GetFilenameFromInterfacePair(), ns3::Ipv6L3ProtocolRxTxSink(), m_ipv6Enabled, ns3::MakeCallback(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, and PcapHooked().

+ Here is the call graph for this function:

void ns3::InternetStackHelper::Initialize ( void  )
private

Initialize the helper to its default values.

Definition at line 247 of file internet-stack-helper.cc.

References ns3::Ipv4ListRoutingHelper::Add(), ns3::Ipv6ListRoutingHelper::Add(), SetRoutingHelper(), and SetTcp().

Referenced by InternetStackHelper(), and Reset().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::Install ( std::string  nodeName) const

Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provided node.

This method will assert if called on a node that already has an Ipv4 object aggregated to it.

Parameters
nodeNameThe name of the node on which to install the stack.

Definition at line 487 of file internet-stack-helper.cc.

Referenced by ns3::PointToPointEpcHelper::AddEnb(), ns3::BriteTopologyHelper::BuildBriteTopology(), ns3::aodv::Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), ns3::aodv::ChainRegressionTest::CreateDevices(), ns3::olsr::Bug780Test::CreateNodes(), ns3::olsr::HelloRegressionTest::CreateNodes(), ns3::olsr::TcRegressionTest::CreateNodes(), IpAddressHelperTestCasev6::DoRun(), ns3::aodv::LoopbackTestCase::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), WifiMsduAggregatorThroughputTest::DoRun(), StaticRoutingSlash32TestCase::DoRun(), UdpClientServerTestCase::DoRun(), DynamicGlobalRoutingTestCase::DoRun(), CsmaBridgeTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LteHandoverDelayTestCase::DoRun(), ns3::EpcS1uDlTestCase::DoRun(), ns3::LteX2HandoverMeasuresTestCase::DoRun(), Ns3TcpInteroperabilityTestCase::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), ns3::LteCellSelectionTestCase::DoRun(), ns3::BriteTopologyFunctionTestCase::DoRun(), ns3::LteHandoverTargetTestCase::DoRun(), UdpTraceClientServerTestCase::DoRun(), CsmaBroadcastTestCase::DoRun(), Ns3TcpCwndTestCase1::DoRun(), UdpEchoClientSetFillTestCase::DoRun(), ns3::EpcS1uUlTestCase::DoRun(), CsmaMulticastTestCase::DoRun(), GlobalRoutingSlash32TestCase::DoRun(), ns3::LteUeMeasurementsHandoverTestCase::DoRun(), CsmaOneSubnetTestCase::DoRun(), CsmaPingTestCase::DoRun(), CsmaRawIpSocketTestCase::DoRun(), CsmaStarTestCase::DoRun(), Ns3WimaxSchedulingTestCase::DoRunOnce(), Ns3WimaxSFTypeTestCase::DoRunOnce(), experiment(), Install(), InstallAll(), AodvExample::InstallInternetStack(), DsdvManetExample::InstallInternetStack(), MeshTest::InstallInternetStack(), ns3::PointToPointGridHelper::InstallStack(), ns3::PointToPointStarHelper::InstallStack(), ns3::CsmaStarHelper::InstallStack(), ns3::PointToPointDumbbellHelper::InstallStack(), main(), ns3::PointToPointEpcHelper::PointToPointEpcHelper(), ns3::AnimationInterfaceTestCase::PrepareNetwork(), Experiment::Run(), RoutingExperiment::Run(), RunSimulation(), and WifiInterferenceTestCase::WifiSimpleInterference().

void ns3::InternetStackHelper::Install ( Ptr< Node node) const

Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provided node.

This method will assert if called on a node that already has an Ipv4 object aggregated to it.

Parameters
nodeThe node on which to install the stack.

Definition at line 423 of file internet-stack-helper.cc.

References ns3::Object::AggregateObject(), ns3::Ipv4RoutingHelper::Create(), ns3::Ipv6RoutingHelper::Create(), ns3::ObjectFactory::Create(), CreateAndAggregateObjectFromTypeId(), ns3::Object::GetObject(), m_ipv4ArpJitterEnabled, m_ipv4Enabled, m_ipv6Enabled, m_ipv6NsRsJitterEnabled, m_routing, m_routingv6, m_tcpFactory, NS_ASSERT, and NS_FATAL_ERROR.

+ Here is the call graph for this function:

void ns3::InternetStackHelper::Install ( NodeContainer  c) const

For each node in the input container, aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and, ns3::Tcp classes.

The program will assert if this method is called on a container with a node that already has an Ipv4 object aggregated to it.

Parameters
cNodeContainer that holds the set of nodes on which to install the new stacks.

Definition at line 399 of file internet-stack-helper.cc.

References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().

+ Here is the call graph for this function:

void ns3::InternetStackHelper::InstallAll ( void  ) const

Aggregate IPv4, IPv6, UDP, and TCP stacks to all nodes in the simulation.

Definition at line 408 of file internet-stack-helper.cc.

References ns3::NodeContainer::GetGlobal(), and Install().

Referenced by Ns3TcpNoDelayTestCase::DoRun(), Ns3TcpSocketTestCase1::DoRun(), NscTcpLossTestCase1::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpStateTestCase::DoRun(), Ns3TcpSocketTestCase2::DoRun(), NscTcpLossTestCase2::DoRun(), Ns3TcpCwndTestCase2::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

InternetStackHelper & ns3::InternetStackHelper::operator= ( const InternetStackHelper o)

Copy constructor.

Definition at line 280 of file internet-stack-helper.cc.

References ns3::Ipv4RoutingHelper::Copy(), ns3::Ipv6RoutingHelper::Copy(), m_routing, and m_routingv6.

+ Here is the call graph for this function:

bool ns3::InternetStackHelper::PcapHooked ( Ptr< Ipv4 ipv4)
private

checks if there is an hook to a Pcap wrapper

Internal:
Parameters
ipv4pointer to the IPv4 object
Returns
true if a hook is found

Definition at line 522 of file internet-stack-helper.cc.

References ns3::g_interfaceFileMapIpv4.

Referenced by EnablePcapIpv4Internal(), and EnablePcapIpv6Internal().

+ Here is the caller graph for this function:

bool ns3::InternetStackHelper::PcapHooked ( Ptr< Ipv6 ipv6)
private

checks if there is an hook to a Pcap wrapper

Internal:
Parameters
ipv6pointer to the IPv6 object
Returns
true if a hook is found

Definition at line 620 of file internet-stack-helper.cc.

References ns3::g_interfaceFileMapIpv6.

void ns3::InternetStackHelper::Reset ( void  )

Return helper internal state to that of a newly constructed one.

Definition at line 292 of file internet-stack-helper.cc.

References Initialize(), m_ipv4ArpJitterEnabled, m_ipv4Enabled, m_ipv6Enabled, m_ipv6NsRsJitterEnabled, m_routing, and m_routingv6.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::SetIpv4ArpJitter ( bool  enable)

Enable/disable IPv4 ARP Jitter.

Parameters
enableenable state

Definition at line 330 of file internet-stack-helper.cc.

References m_ipv4ArpJitterEnabled.

void ns3::InternetStackHelper::SetIpv4StackInstall ( bool  enable)

Enable/disable IPv4 stack install.

Parameters
enableenable state

Definition at line 320 of file internet-stack-helper.cc.

References m_ipv4Enabled.

Referenced by IpAddressHelperTestCasev6::DoRun(), and main().

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::SetIpv6NsRsJitter ( bool  enable)

Enable/disable IPv6 NS and RS Jitter.

Parameters
enableenable state

Definition at line 335 of file internet-stack-helper.cc.

References m_ipv6NsRsJitterEnabled.

void ns3::InternetStackHelper::SetIpv6StackInstall ( bool  enable)

Enable/disable IPv6 stack install.

Parameters
enableenable state

Definition at line 325 of file internet-stack-helper.cc.

References m_ipv6Enabled.

void ns3::InternetStackHelper::SetRoutingHelper ( const Ipv4RoutingHelper routing)
Parameters
routinga new routing helper

Set the routing helper to use during Install. The routing helper is really an object factory which is used to create an object of type ns3::Ipv4RoutingProtocol per node. This routing object is then associated to a single ns3::Ipv4 object through its ns3::Ipv4::SetRoutingProtocol.

Definition at line 306 of file internet-stack-helper.cc.

References ns3::Ipv4RoutingHelper::Copy(), and m_routing.

Referenced by ns3::aodv::Bug772ChainTest::CreateDevices(), ns3::aodv::ChainRegressionTest::CreateDevices(), ns3::olsr::Bug780Test::CreateNodes(), ns3::olsr::HelloRegressionTest::CreateNodes(), ns3::olsr::TcRegressionTest::CreateNodes(), ns3::aodv::LoopbackTestCase::DoRun(), Initialize(), AodvExample::InstallInternetStack(), DsdvManetExample::InstallInternetStack(), main(), Experiment::Run(), and RoutingExperiment::Run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::SetRoutingHelper ( const Ipv6RoutingHelper routing)

Set IPv6 routing helper.

Parameters
routingIPv6 routing helper

Definition at line 313 of file internet-stack-helper.cc.

References ns3::Ipv6RoutingHelper::Copy(), and m_routingv6.

+ Here is the call graph for this function:

void ns3::InternetStackHelper::SetTcp ( std::string  tid)

set the Tcp stack which will not need any other parameter.

This function sets up the tcp stack to the given TypeId. It should not be used for NSC stack setup because the nsc stack needs the Library attribute to be setup, please use instead the version that requires an attribute and a value. If you choose to use this function anyways to set nsc stack the default value for the linux library will be used: "liblinux2.6.26.so".

Parameters
tidthe type id, typically it is set to "ns3::TcpL4Protocol"

Definition at line 386 of file internet-stack-helper.cc.

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

Referenced by NscTcpLossTestCase1::DoRun(), Ns3TcpInteroperabilityTestCase::DoRun(), NscTcpLossTestCase2::DoRun(), Ns3TcpCwndTestCase1::DoRun(), Initialize(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::InternetStackHelper::SetTcp ( std::string  tid,
std::string  attr,
const AttributeValue val 
)

This function is used to setup the Network Simulation Cradle stack with library value.

Give the NSC stack a shared library file name to use when creating the stack implementation. The attr string is actually the attribute name to be setup and val is its value. The attribute is the stack implementation to be used and the value is the shared library name.

Parameters
tidThe type id, for the case of nsc it would be "ns3::NscTcpL4Protocol"
attrThe attribute name that must be setup, for example "Library"
valThe attribute value, which will be in fact the shared library name (example:"liblinux2.6.26.so")

Definition at line 392 of file internet-stack-helper.cc.

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

+ Here is the call graph for this function:

Member Data Documentation

bool ns3::InternetStackHelper::m_ipv4ArpJitterEnabled
private

IPv4 ARP Jitter state (enabled/disabled) ?

Internal:

Definition at line 369 of file internet-stack-helper.h.

Referenced by Install(), InternetStackHelper(), Reset(), and SetIpv4ArpJitter().

bool ns3::InternetStackHelper::m_ipv4Enabled
private

IPv4 install state (enabled/disabled) ?

Internal:

Definition at line 355 of file internet-stack-helper.h.

Referenced by EnableAsciiIpv4Internal(), EnablePcapIpv4Internal(), Install(), InternetStackHelper(), Reset(), and SetIpv4StackInstall().

bool ns3::InternetStackHelper::m_ipv6Enabled
private

IPv6 install state (enabled/disabled) ?

Internal:

Definition at line 362 of file internet-stack-helper.h.

Referenced by EnableAsciiIpv6Internal(), EnablePcapIpv6Internal(), Install(), InternetStackHelper(), Reset(), and SetIpv6StackInstall().

bool ns3::InternetStackHelper::m_ipv6NsRsJitterEnabled
private

IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ?

Internal:

Definition at line 376 of file internet-stack-helper.h.

Referenced by Install(), InternetStackHelper(), Reset(), and SetIpv6NsRsJitter().

const Ipv4RoutingHelper* ns3::InternetStackHelper::m_routing
private

IPv4 routing helper.

Internal:

Definition at line 292 of file internet-stack-helper.h.

Referenced by Install(), InternetStackHelper(), operator=(), Reset(), SetRoutingHelper(), and ~InternetStackHelper().

const Ipv6RoutingHelper* ns3::InternetStackHelper::m_routingv6
private

IPv6 routing helper.

Internal:

Definition at line 298 of file internet-stack-helper.h.

Referenced by Install(), InternetStackHelper(), operator=(), Reset(), SetRoutingHelper(), and ~InternetStackHelper().

ObjectFactory ns3::InternetStackHelper::m_tcpFactory
private

TCP objects factory.

Internal:

Definition at line 286 of file internet-stack-helper.h.

Referenced by Install(), InternetStackHelper(), and SetTcp().


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