aggregate IP/TCP/UDP functionality to existing Nodes. More...
#include "internet-stack-helper.h"
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 &o) | |
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... | |
InternetStackHelper & | operator= (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 | 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 Ipv4RoutingHelper * | m_routing |
IPv4 routing helper. More... | |
const Ipv6RoutingHelper * | m_routingv6 |
IPv6 routing helper. More... | |
ObjectFactory | m_tcpFactory |
TCP objects factory. More... | |
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 86 of file internet-stack-helper.h.
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 104 of file internet-stack-helper.cc.
References Initialize().
|
virtual |
Destroy the InternetStackHelper.
Definition at line 131 of file internet-stack-helper.cc.
References m_routing, and m_routingv6.
ns3::InternetStackHelper::InternetStackHelper | ( | const InternetStackHelper & | o | ) |
Copy constructor.
o | Object to copy from. |
Definition at line 137 of file internet-stack-helper.cc.
References ns3::Ipv4RoutingHelper::Copy(), ns3::Ipv6RoutingHelper::Copy(), m_ipv4ArpJitterEnabled, m_ipv4Enabled, m_ipv6Enabled, m_ipv6NsRsJitterEnabled, m_routing, m_routingv6, and m_tcpFactory.
checks if there is an hook to an ascii output stream
ipv4 | pointer to the IPv4 object |
Definition at line 758 of file internet-stack-helper.cc.
References ns3::g_interfaceStreamMapIpv4.
Referenced by EnableAsciiIpv4Internal(), and EnableAsciiIpv6Internal().
checks if there is an hook to an ascii output stream
ipv6 | pointer to the IPv6 object |
Definition at line 1096 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.
stream | first stream index to use |
c | NodeContainer of the set of nodes for which the internet models should be modified to use a fixed stream |
Definition at line 210 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 Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), and ChainRegressionTest::CreateDevices().
|
staticprivate |
create an object from its TypeId and aggregates it to the node
node | the node |
typeId | the object TypeId |
Definition at line 283 of file internet-stack-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), and ns3::ObjectFactory::SetTypeId().
Referenced by Install().
|
privatevirtual |
Enable ascii trace output on the indicated Ipv4 and interface pair.
stream | An OutputStreamWrapper representing an existing file to use when writing trace data. |
prefix | Filename prefix to use for ascii trace files. |
ipv4 | Ptr to the Ipv4 interface on which you want to enable tracing. |
interface | Interface ID on the Ipv4 on which you want to enable tracing. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::AsciiTraceHelperForIpv4.
Definition at line 773 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().
|
privatevirtual |
Enable ascii trace output on the indicated Ipv6 and interface pair.
stream | An OutputStreamWrapper representing an existing file to use when writing trace data. |
prefix | Filename prefix to use for ascii trace files. |
ipv6 | Ptr to the Ipv6 interface on which you want to enable tracing. |
interface | Interface ID on the Ipv6 on which you want to enable tracing. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::AsciiTraceHelperForIpv6.
Definition at line 1111 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.
|
privatevirtual |
Enable pcap output the indicated Ipv4 and interface pair.
prefix | Filename prefix to use for pcap files. |
ipv4 | Ptr to the Ipv4 interface on which you want to enable tracing. |
interface | Interface ID on the Ipv4 on which you want to enable tracing. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::PcapHelperForIpv4.
Definition at line 416 of file internet-stack-helper.cc.
References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_RAW, anonymous_namespace{print-introspected-doxygen.cc}::file, ns3::g_interfaceFileMapIpv4, ns3::PcapHelper::GetFilenameFromInterfacePair(), ns3::Ipv4L3ProtocolRxTxSink(), m_ipv4Enabled, ns3::MakeCallback(), NS_ASSERT_MSG(), NS_LOG_FUNCTION, NS_LOG_INFO, and PcapHooked().
|
privatevirtual |
Enable pcap output the indicated Ipv6 and interface pair.
prefix | Filename prefix to use for pcap files. |
ipv6 | Ptr to the Ipv6 interface on which you want to enable tracing. |
interface | Interface ID on the Ipv6 on which you want to enable tracing. |
explicitFilename | Treat the prefix as an explicit filename if true |
Implements ns3::PcapHelperForIpv6.
Definition at line 514 of file internet-stack-helper.cc.
References ns3::PcapHelper::CreateFile(), ns3::PcapHelper::DLT_RAW, anonymous_namespace{print-introspected-doxygen.cc}::file, ns3::g_interfaceFileMapIpv6, ns3::PcapHelper::GetFilenameFromInterfacePair(), ns3::Ipv6L3ProtocolRxTxSink(), m_ipv6Enabled, ns3::MakeCallback(), NS_ASSERT_MSG(), NS_LOG_FUNCTION, NS_LOG_INFO, and PcapHooked().
|
private |
Initialize the helper to its default values.
Definition at line 118 of file internet-stack-helper.cc.
References ns3::Ipv4ListRoutingHelper::Add(), SetRoutingHelper(), and SetTcp().
Referenced by InternetStackHelper(), and Reset().
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.
nodeName | The name of the node on which to install the stack. |
Definition at line 366 of file internet-stack-helper.cc.
Referenced by ns3::PointToPointEpcHelper::AddEnb(), ns3::EmuEpcHelper::AddEnb(), Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), ChainRegressionTest::CreateDevices(), ns3::olsr::Bug780Test::CreateNodes(), ns3::olsr::HelloRegressionTest::CreateNodes(), ns3::olsr::TcRegressionTest::CreateNodes(), ThreeGppHttpObjectTestCase::CreateSimpleInternetNode(), ns3::EmuEpcHelper::DoInitialize(), IpAddressHelperTestCasev6::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), UdpClientServerTestCase::DoRun(), DhcpTestCase::DoRun(), CsmaBridgeTestCase::DoRun(), SixlowpanFragmentationTest::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), SixlowpanHc1ImplTest::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), UdpSocketLoopbackTest::DoRun(), Ipv6ForwardingTest::DoRun(), Ipv6RipngTest::DoRun(), Ipv4RipTest::DoRun(), LteSecondaryCellSelectionTestCase::DoRun(), SixlowpanIphcImplTest::DoRun(), Ipv4StaticRoutingSlash32TestCase::DoRun(), TcpEndPointBug2211Test::DoRun(), ns3::aodv::LoopbackTestCase::DoRun(), Ipv6RawSocketImplTest::DoRun(), Ipv4HeaderTest::DoRun(), LteHandoverDelayTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), Ipv4RawSocketImplTest::DoRun(), LteIpv6RoutingTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), EpcS1uDlTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), Ipv4FragmentationTest::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteEpcE2eDataTestCase::DoRun(), Udp6SocketLoopbackTest::DoRun(), LteHandoverTargetTestCase::DoRun(), Ipv6FragmentationTest::DoRun(), UdpTraceClientServerTestCase::DoRun(), CsmaBroadcastTestCase::DoRun(), UdpSocketImplTest::DoRun(), UdpEchoClientSetFillTestCase::DoRun(), CsmaMulticastTestCase::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), Ipv4RipCountToInfinityTest::DoRun(), EpcS1uUlTestCase::DoRun(), ns3::TcpGeneralTest::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), CsmaOneSubnetTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), Udp6SocketImplTest::DoRun(), Ipv6RipngSplitHorizonStrategyTest::DoRun(), Ipv4RipSplitHorizonStrategyTest::DoRun(), CsmaPingTestCase::DoRun(), CsmaRawIpSocketTestCase::DoRun(), Ipv4DynamicGlobalRoutingTestCase::DoRun(), CsmaStarTestCase::DoRun(), Ipv4GlobalRoutingSlash32TestCase::DoRun(), LinkTest::DoSetup(), LanTest::DoSetup(), TwoLinkTest::DoSetup(), TwoLanTest::DoSetup(), BridgeTest::DoSetup(), TwoBridgeTest::DoSetup(), experiment(), LteAggregationThroughputScaleTestCase::GetThroughput(), Install(), InstallAll(), MeshTest::InstallInternetStack(), ns3::PointToPointEpcHelper::PointToPointEpcHelper(), Experiment::Run(), RoutingExperiment::Run(), RunSimulation(), UanExperiment::SetupCommunications(), RoutingHelper::SetupRoutingProtocol(), and WifiInterferenceTestCase::WifiSimpleInterference().
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.
node | The node on which to install the stack. |
Definition at line 292 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.
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.
c | NodeContainer that holds the set of nodes on which to install the new stacks. |
Definition at line 268 of file internet-stack-helper.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().
void ns3::InternetStackHelper::InstallAll | ( | void | ) | const |
Aggregate IPv4, IPv6, UDP, and TCP stacks to all nodes in the simulation.
Definition at line 277 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(), and Ns3TcpCwndTestCase2::DoRun().
InternetStackHelper & ns3::InternetStackHelper::operator= | ( | const InternetStackHelper & | o | ) |
Copy constructor.
o | Object to copy from. |
Definition at line 149 of file internet-stack-helper.cc.
References ns3::Ipv4RoutingHelper::Copy(), ns3::Ipv6RoutingHelper::Copy(), m_routing, and m_routingv6.
checks if there is an hook to a Pcap wrapper
ipv4 | pointer to the IPv4 object |
Definition at line 401 of file internet-stack-helper.cc.
References ns3::g_interfaceFileMapIpv4.
Referenced by EnablePcapIpv4Internal(), and EnablePcapIpv6Internal().
checks if there is an hook to a Pcap wrapper
ipv6 | pointer to the IPv6 object |
Definition at line 499 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 161 of file internet-stack-helper.cc.
References Initialize(), m_ipv4ArpJitterEnabled, m_ipv4Enabled, m_ipv6Enabled, m_ipv6NsRsJitterEnabled, m_routing, and m_routingv6.
void ns3::InternetStackHelper::SetIpv4ArpJitter | ( | bool | enable | ) |
Enable/disable IPv4 ARP Jitter.
enable | enable state |
Definition at line 199 of file internet-stack-helper.cc.
References m_ipv4ArpJitterEnabled.
void ns3::InternetStackHelper::SetIpv4StackInstall | ( | bool | enable | ) |
Enable/disable IPv4 stack install.
enable | enable state |
Definition at line 189 of file internet-stack-helper.cc.
References m_ipv4Enabled.
Referenced by IpAddressHelperTestCasev6::DoRun(), SixlowpanFragmentationTest::DoRun(), SixlowpanHc1ImplTest::DoRun(), SixlowpanIphcImplTest::DoRun(), Ipv6PacketInfoTagTest::DoRun(), and Ipv6FragmentationTest::DoRun().
void ns3::InternetStackHelper::SetIpv6NsRsJitter | ( | bool | enable | ) |
Enable/disable IPv6 NS and RS Jitter.
enable | enable state |
Definition at line 204 of file internet-stack-helper.cc.
References m_ipv6NsRsJitterEnabled.
void ns3::InternetStackHelper::SetIpv6StackInstall | ( | bool | enable | ) |
Enable/disable IPv6 stack install.
enable | enable state |
Definition at line 194 of file internet-stack-helper.cc.
References m_ipv6Enabled.
Referenced by Ipv4PacketInfoTagTest::DoRun(), Ipv4ForwardingTest::DoRun(), and Ipv4HeaderTest::DoRun().
void ns3::InternetStackHelper::SetRoutingHelper | ( | const Ipv4RoutingHelper & | routing | ) |
routing | a 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 175 of file internet-stack-helper.cc.
References ns3::Ipv4RoutingHelper::Copy(), and m_routing.
Referenced by Bug772ChainTest::CreateDevices(), ChainRegressionTest::CreateDevices(), ns3::olsr::Bug780Test::CreateNodes(), ns3::olsr::HelloRegressionTest::CreateNodes(), ns3::olsr::TcRegressionTest::CreateNodes(), Ipv6RipngTest::DoRun(), Ipv4RipTest::DoRun(), ns3::aodv::LoopbackTestCase::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), Ipv4RipCountToInfinityTest::DoRun(), Ipv6RipngSplitHorizonStrategyTest::DoRun(), Ipv4RipSplitHorizonStrategyTest::DoRun(), LinkTest::DoSetup(), LanTest::DoSetup(), TwoLinkTest::DoSetup(), TwoLanTest::DoSetup(), BridgeTest::DoSetup(), TwoBridgeTest::DoSetup(), Initialize(), Experiment::Run(), RoutingExperiment::Run(), and RoutingHelper::SetupRoutingProtocol().
void ns3::InternetStackHelper::SetRoutingHelper | ( | const Ipv6RoutingHelper & | routing | ) |
Set IPv6 routing helper.
routing | IPv6 routing helper |
Definition at line 182 of file internet-stack-helper.cc.
References ns3::Ipv6RoutingHelper::Copy(), and m_routingv6.
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".
tid | the type id, typically it is set to "ns3::TcpL4Protocol" |
Definition at line 255 of file internet-stack-helper.cc.
References m_tcpFactory, and ns3::ObjectFactory::SetTypeId().
Referenced by NscTcpLossTestCase1::DoRun(), NscTcpLossTestCase2::DoRun(), and Initialize().
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.
tid | The type id, for the case of nsc it would be "ns3::NscTcpL4Protocol" |
attr | The attribute name that must be setup, for example "Library" |
val | The attribute value, which will be in fact the shared library name (example:"liblinux2.6.26.so") |
Definition at line 261 of file internet-stack-helper.cc.
References m_tcpFactory, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
|
private |
IPv4 ARP Jitter state (enabled/disabled) ?
Definition at line 366 of file internet-stack-helper.h.
Referenced by Install(), InternetStackHelper(), Reset(), and SetIpv4ArpJitter().
|
private |
IPv4 install state (enabled/disabled) ?
Definition at line 356 of file internet-stack-helper.h.
Referenced by EnableAsciiIpv4Internal(), EnablePcapIpv4Internal(), Install(), InternetStackHelper(), Reset(), and SetIpv4StackInstall().
|
private |
IPv6 install state (enabled/disabled) ?
Definition at line 361 of file internet-stack-helper.h.
Referenced by EnableAsciiIpv6Internal(), EnablePcapIpv6Internal(), Install(), InternetStackHelper(), Reset(), and SetIpv6StackInstall().
|
private |
IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ?
Definition at line 371 of file internet-stack-helper.h.
Referenced by Install(), InternetStackHelper(), Reset(), and SetIpv6NsRsJitter().
|
private |
IPv4 routing helper.
Definition at line 311 of file internet-stack-helper.h.
Referenced by Install(), InternetStackHelper(), operator=(), Reset(), SetRoutingHelper(), and ~InternetStackHelper().
|
private |
IPv6 routing helper.
Definition at line 316 of file internet-stack-helper.h.
Referenced by Install(), InternetStackHelper(), operator=(), Reset(), SetRoutingHelper(), and ~InternetStackHelper().
|
private |
TCP objects factory.
Definition at line 306 of file internet-stack-helper.h.
Referenced by Install(), InternetStackHelper(), and SetTcp().