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

an application which sends one ICMP ECHO request, waits for a REPLYs and reports the calculated RTT. More...

#include <v4ping.h>

+ Inheritance diagram for ns3::V4Ping:
+ Collaboration diagram for ns3::V4Ping:

Public Member Functions

 V4Ping ()
virtual ~V4Ping ()
- Public Member Functions inherited from ns3::Application
 Application ()
virtual ~Application ()
Ptr< NodeGetNode () const
void SetNode (Ptr< Node > node)
void SetStartTime (Time start)
 Specify application start time.
void SetStopTime (Time stop)
 Specify application stop time.
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::V4Ping.

Private Member Functions

virtual void DoDispose (void)
uint32_t GetApplicationId (void) const
void Read32 (const uint8_t *buffer, uint32_t &data)
void Receive (Ptr< Socket > socket)
void Send ()
virtual void StartApplication (void)
virtual void StopApplication (void)
void Write32 (uint8_t *buffer, const uint32_t data)

Private Attributes

Average< double > m_avgRtt
 Average rtt is ms.
Time m_interval
 Wait interval seconds between sending each packet.
EventId m_next
 Next packet will be sent.
uint32_t m_recv
 received packets counter
Ipv4Address m_remote
 Remote address.
std::map< uint16_t, Timem_sent
 All sent but not answered packets. Map icmp seqno -> when sent.
uint16_t m_seq
uint32_t m_size
Ptr< Socketm_socket
Time m_started
 Start time to report total ping time.
TracedCallback< Timem_traceRtt
bool m_verbose
 produce ping-style output if true

Additional Inherited Members

- Protected Member Functions inherited from ns3::Application
virtual void DoDispose (void)
virtual void DoStart (void)
- Protected Attributes inherited from ns3::Application
Ptr< Nodem_node
EventId m_startEvent
Time m_startTime
EventId m_stopEvent
Time m_stopTime

Detailed Description

an application which sends one ICMP ECHO request, waits for a REPLYs and reports the calculated RTT.

Note: The RTT calculated is reported through a trace source.

Definition at line 36 of file v4ping.h.

Constructor & Destructor Documentation

ns3::V4Ping::V4Ping ( )

create a pinger applications

Definition at line 64 of file v4ping.cc.

ns3::V4Ping::~V4Ping ( )
virtual

Definition at line 73 of file v4ping.cc.

Member Function Documentation

void ns3::V4Ping::DoDispose ( void  )
privatevirtual

Definition at line 78 of file v4ping.cc.

References m_socket, and NS_LOG_FUNCTION.

uint32_t ns3::V4Ping::GetApplicationId ( void  ) const
private

Definition at line 86 of file v4ping.cc.

References ns3::Node::GetApplication(), ns3::Node::GetNApplications(), ns3::Application::GetNode(), and NS_ASSERT_MSG.

Referenced by Receive(), and Send().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TypeId ns3::V4Ping::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::V4Ping.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/ApplicationList/[i]/$ns3::V4Ping

Attributes defined for this type:

  • Remote: The address of the machine we want to ping.
  • Verbose: Produce usual output.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • Interval: Wait interval seconds between sending each packet.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +1000000000.0ns
    • Flags: construct write read
  • Size: The number of data bytes to be sent, real packet will be 8 (ICMP) + 20 (IP) bytes longer.

Attributes defined in parent class ns3::Application:

  • StartTime: Time at which the application will start
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read
  • StopTime: Time at which the application will stop
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read

TraceSources defined for this type:

  • Rtt: The rtt calculated by the ping.

Reimplemented from ns3::Application.

Definition at line 34 of file v4ping.cc.

References m_interval, m_remote, m_size, m_traceRtt, m_verbose, ns3::MakeTraceSourceAccessor(), ns3::Seconds(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

void ns3::V4Ping::Read32 ( const uint8_t *  buffer,
uint32_t &  data 
)
private

Definition at line 176 of file v4ping.cc.

Referenced by Receive().

+ Here is the caller graph for this function:

void ns3::V4Ping::StopApplication ( void  )
privatevirtual
void ns3::V4Ping::Write32 ( uint8_t *  buffer,
const uint32_t  data 
)
private

Definition at line 166 of file v4ping.cc.

Referenced by Send().

+ Here is the caller graph for this function:

Member Data Documentation

Average<double> ns3::V4Ping::m_avgRtt
private

Average rtt is ms.

Definition at line 78 of file v4ping.h.

Referenced by Receive(), and StopApplication().

Time ns3::V4Ping::m_interval
private

Wait interval seconds between sending each packet.

Definition at line 62 of file v4ping.h.

Referenced by GetTypeId(), and Send().

EventId ns3::V4Ping::m_next
private

Next packet will be sent.

Definition at line 80 of file v4ping.h.

Referenced by Send(), and StopApplication().

uint32_t ns3::V4Ping::m_recv
private

received packets counter

Definition at line 74 of file v4ping.h.

Referenced by Receive(), and StopApplication().

Ipv4Address ns3::V4Ping::m_remote
private

Remote address.

Definition at line 60 of file v4ping.h.

Referenced by GetTypeId(), StartApplication(), and StopApplication().

std::map<uint16_t, Time> ns3::V4Ping::m_sent
private

All sent but not answered packets. Map icmp seqno -> when sent.

Definition at line 82 of file v4ping.h.

Referenced by Receive(), and Send().

uint16_t ns3::V4Ping::m_seq
private

Definition at line 69 of file v4ping.h.

Referenced by Send(), and StopApplication().

uint32_t ns3::V4Ping::m_size
private

Specifies the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.

Definition at line 67 of file v4ping.h.

Referenced by GetTypeId(), Receive(), and Send().

Ptr<Socket> ns3::V4Ping::m_socket
private

Definition at line 68 of file v4ping.h.

Referenced by DoDispose(), Receive(), Send(), StartApplication(), and StopApplication().

Time ns3::V4Ping::m_started
private

Start time to report total ping time.

Definition at line 76 of file v4ping.h.

Referenced by StartApplication(), and StopApplication().

TracedCallback<Time> ns3::V4Ping::m_traceRtt
private

Definition at line 70 of file v4ping.h.

Referenced by GetTypeId(), and Receive().

bool ns3::V4Ping::m_verbose
private

produce ping-style output if true

Definition at line 72 of file v4ping.h.

Referenced by GetTypeId(), Receive(), StartApplication(), and StopApplication().


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