25#include "ns3/v4traceroute.h"
51 Ptr<Node> node = Names::Find<Node>(nodeName);
71 node->AddApplication(app);
81 for (
uint32_t i = 0; i < node->GetNApplications(); ++i)
83 trace = node->GetApplication(i)->GetObject<
V4TraceRoute>();
86 *stream->GetStream() <<
"Tracing Route from Node " << node->GetId() <<
"\n";
91 NS_ASSERT_MSG(
false,
"No V4TraceRoute application found in node " << node->GetId());
holds a vector of ns3::Application pointers.
void Add(ApplicationContainer other)
Append the contents of another ApplicationContainer to the end of this container.
Hold a value for an Attribute.
Ipv4 addresses are stored in host order in this class.
AttributeValue implementation for Ipv4Address.
keep track of a set of node pointers.
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
Iterator End() const
Get an iterator which indicates past-the-last Node in the container.
Iterator Begin() const
Get an iterator which refers to the first Node in the container.
Ptr< Object > Create() const
Create an Object instance of the configured TypeId.
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Smart pointer class similar to boost::intrusive_ptr.
static void PrintTraceRouteAt(Ptr< Node > node, Ptr< OutputStreamWrapper > stream)
Print the resulting trace routes from given node.
ApplicationContainer Install(NodeContainer nodes) const
Install a TraceRoute application on each Node in the provided NodeContainer.
ObjectFactory m_factory
Object factory.
Ptr< Application > InstallPriv(Ptr< Node > node) const
Do the actual application installation in the node.
V4TraceRouteHelper(Ipv4Address remote)
Create a V4TraceRouteHelper which is used to make life easier for people wanting to use TraceRoute.
void SetAttribute(std::string name, const AttributeValue &value)
Configure traceRoute applications attribute.
Traceroute application sends one ICMP ECHO request with TTL=1, and after receiving an ICMP TIME EXCEE...
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
Every class exported by the ns3 library is enclosed in the ns3 namespace.