A ping6 application. More...
#include "ping6.h"
 Inheritance diagram for ns3::Ping6:
 Collaboration diagram for ns3::Ping6:Public Member Functions | |
| Ping6 () | |
| Constructor.  More... | |
| virtual | ~Ping6 () | 
| Destructor.  More... | |
| void | SetIfIndex (uint32_t ifIndex) | 
| Set the out interface index.  More... | |
| void | SetLocal (Ipv6Address ipv6) | 
| Set the local address.  More... | |
| void | SetRemote (Ipv6Address ipv6) | 
| Set the remote peer.  More... | |
| void | SetRouters (std::vector< Ipv6Address > routers) | 
| Set routers for routing type 0 (loose routing).  More... | |
  Public Member Functions inherited from ns3::Application | |
| Application () | |
| virtual | ~Application () | 
| Ptr< Node > | GetNode () const | 
| void | SetNode (Ptr< Node > node) | 
| void | SetStartTime (Time start) | 
| Specify application start time.  More... | |
| void | SetStopTime (Time stop) | 
| Specify application stop time.  More... | |
  Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor.  More... | |
| virtual | ~Object () | 
| Destructor.  More... | |
| void | AggregateObject (Ptr< Object > other) | 
| Aggregate two Objects together.  More... | |
| void | Dispose (void) | 
| Dispose of this Object.  More... | |
| AggregateIterator | GetAggregateIterator (void) const | 
| Get an iterator to the Objects aggregated to this one.  More... | |
| virtual TypeId | GetInstanceTypeId (void) const | 
| Get the most derived TypeId for this Object.  More... | |
| template<typename T > | |
| Ptr< T > | GetObject (void) const | 
| Get a pointer to the requested aggregated Object.  More... | |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const | 
| Get a pointer to the requested aggregated Object by TypeId.  More... | |
| void | Initialize (void) | 
| Invoke DoInitialize on all Objects aggregated to this one.  More... | |
| bool | IsInitialized (void) const | 
| Check if the object has been initialized.  More... | |
  Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| Default constructor.  More... | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor.  More... | |
| uint32_t | GetReferenceCount (void) const | 
| Get the reference count of the object.  More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) | 
| Assignment operator.  More... | |
| void | Ref (void) const | 
| Increment the reference count.  More... | |
| void | Unref (void) const | 
| Decrement the reference count.  More... | |
  Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () | 
| Virtual destructor.  More... | |
| void | GetAttribute (std::string name, AttributeValue &value) const | 
| Get the value of an attribute, raising fatal errors if unsuccessful.  More... | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const | 
| Get the value of an attribute without raising erros.  More... | |
| void | SetAttribute (std::string name, const AttributeValue &value) | 
| Set a single attribute, raising fatal errors if unsuccessful.  More... | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) | 
| Set a single attribute without raising errors.  More... | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) | 
| Connect a TraceSource to a Callback with a context.  More... | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) | 
| Connect a TraceSource to a Callback without a context.  More... | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) | 
| Disconnect from a TraceSource a Callback previously connected with a context.  More... | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) | 
| Disconnect from a TraceSource a Callback previously connected without a context.  More... | |
Static Public Member Functions | |
| static TypeId | GetTypeId () | 
| Get the type ID.  More... | |
  Static Public Member Functions inherited from ns3::Application | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
  Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId (void) | 
| Register this type.  More... | |
  Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
Protected Member Functions | |
| virtual void | DoDispose () | 
| Dispose this object;.  More... | |
  Protected Member Functions inherited from ns3::Application | |
| virtual void | DoInitialize (void) | 
| Initialize() implementation.  More... | |
  Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object.  More... | |
| virtual void | NotifyNewAggregate (void) | 
| Notify all Objects aggregated to this one of a new Object being aggregated.  More... | |
  Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) | 
| Complete construction of ObjectBase; invoked by derived classes.  More... | |
| virtual void | NotifyConstructionCompleted (void) | 
| Notifier called once the ObjectBase is fully constructed.  More... | |
Private Member Functions | |
| void | HandleRead (Ptr< Socket > socket) | 
| Receive method.  More... | |
| void | ScheduleTransmit (Time dt) | 
| Schedule sending a packet.  More... | |
| void | Send () | 
| Send a packet.  More... | |
| virtual void | StartApplication () | 
| Start the application.  More... | |
| virtual void | StopApplication () | 
| Stop the application.  More... | |
Private Attributes | |
| Ipv6Address | m_address | 
| Peer IPv6 address.  More... | |
| uint32_t | m_count | 
| Number of "Echo request" packets that will be sent.  More... | |
| uint32_t | m_ifIndex | 
| Out interface (i.e.  More... | |
| Time | m_interval | 
| Intervall between packets sent.  More... | |
| Ipv6Address | m_localAddress | 
| Local address.  More... | |
| Ipv6Address | m_peerAddress | 
| Peer address.  More... | |
| std::vector< Ipv6Address > | m_routers | 
| Routers addresses for routing type 0.  More... | |
| EventId | m_sendEvent | 
| Event ID.  More... | |
| uint32_t | m_sent | 
| Number of packets sent.  More... | |
| uint16_t | m_seq | 
| Sequence number.  More... | |
| uint32_t | m_size | 
| Size of the packet.  More... | |
| Ptr< Socket > | m_socket | 
| Local socket.  More... | |
Additional Inherited Members | |
  Protected Attributes inherited from ns3::Application | |
| Ptr< Node > | m_node | 
| The node that this application is installed on.  More... | |
| EventId | m_startEvent | 
| The event that will fire at m_startTime to start the application.  More... | |
| Time | m_startTime | 
| The simulation time that the application will start.  More... | |
| EventId | m_stopEvent | 
| The event that will fire at m_stopTime to end the application.  More... | |
| Time | m_stopTime | 
| The simulation time that the application will end.  More... | |
  Related Functions inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid (void) | 
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly.  More... | |
A ping6 application.
ns3::Ping6 is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
 Size of this type is 248 bytes (on a 64-bit architecture). 
| ns3::Ping6::Ping6 | ( | ) | 
Constructor.
Definition at line 80 of file ping6.cc.
References m_sendEvent, m_sent, m_seq, m_socket, and NS_LOG_FUNCTION_NOARGS.
      
  | 
  virtual | 
Destructor.
Definition at line 89 of file ping6.cc.
References m_socket, and NS_LOG_FUNCTION_NOARGS.
      
  | 
  protectedvirtual | 
Dispose this object;.
Reimplemented from ns3::Application.
Definition at line 95 of file ping6.cc.
References ns3::Application::DoDispose(), and NS_LOG_FUNCTION_NOARGS.
 Here is the call graph for this function:
      
  | 
  static | 
Get the type ID.
Definition at line 45 of file ping6.cc.
References m_count, m_interval, m_localAddress, m_peerAddress, m_size, ns3::MakeIpv6AddressAccessor(), ns3::MakeIpv6AddressChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeUintegerAccessor(), ns3::Seconds(), and ns3::TypeId::SetParent().
Referenced by ns3::Ping6Helper::Ping6Helper().
 Here is the call graph for this function:
 Here is the caller graph for this function:Receive method.
| socket | socket that receive a packet | 
Definition at line 243 of file ping6.cc.
References first::address, ns3::Inet6SocketAddress::ConvertFrom(), ns3::Packet::CopyData(), ns3::Ipv6Header::GetHopLimit(), ns3::Icmpv6Echo::GetId(), ns3::Inet6SocketAddress::GetIpv6(), ns3::Icmpv6Echo::GetSeq(), ns3::Packet::GetSize(), ns3::Icmpv6Header::ICMPV6_ECHO_REPLY, ns3::Icmpv6Header::ICMPV6_ERROR_DESTINATION_UNREACHABLE, ns3::Icmpv6Header::ICMPV6_ERROR_TIME_EXCEEDED, ns3::Inet6SocketAddress::IsMatchingType(), NS_LOG_FUNCTION, NS_LOG_INFO, ns3::Socket::RecvFrom(), and ns3::Packet::RemoveHeader().
Referenced by StartApplication().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  private | 
Schedule sending a packet.
| dt | interval between packet | 
Definition at line 149 of file ping6.cc.
References m_sendEvent, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and Send().
Referenced by Send(), and StartApplication().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  private | 
Send a packet.
Definition at line 160 of file ping6.cc.
References ns3::Packet::AddHeader(), ns3::Socket::Bind(), data, ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Application::GetNode(), ns3::Object::GetObject(), ns3::Packet::GetSize(), ns3::Ipv6Header::IPV6_EXT_ROUTING, ns3::Ipv6Header::IPV6_ICMPV6, ns3::EventId::IsExpired(), ns3::Ipv6InterfaceAddress::IsInSameSubnet(), m_count, m_ifIndex, m_interval, m_localAddress, m_peerAddress, m_routers, m_sendEvent, m_sent, m_seq, m_size, m_socket, NS_ASSERT, NS_LOG_FUNCTION_NOARGS, NS_LOG_INFO, NS_LOG_WARN, ScheduleTransmit(), ns3::Socket::SendTo(), ns3::ObjectBase::SetAttribute(), ns3::Ipv6ExtensionHeader::SetNextHeader(), ns3::Ipv6ExtensionLooseRoutingHeader::SetRoutersAddress(), ns3::Ipv6ExtensionRoutingHeader::SetSegmentsLeft(), and ns3::Ipv6ExtensionRoutingHeader::SetTypeRouting().
Referenced by ScheduleTransmit().
 Here is the call graph for this function:
 Here is the caller graph for this function:| void ns3::Ping6::SetIfIndex | ( | uint32_t | ifIndex | ) | 
| void ns3::Ping6::SetLocal | ( | Ipv6Address | ipv6 | ) | 
Set the local address.
| ipv6 | the local IPv6 address | 
Definition at line 120 of file ping6.cc.
References m_localAddress, and NS_LOG_FUNCTION.
| void ns3::Ping6::SetRemote | ( | Ipv6Address | ipv6 | ) | 
Set the remote peer.
| ipv6 | IPv6 address of the peer | 
Definition at line 126 of file ping6.cc.
References m_peerAddress, and NS_LOG_FUNCTION.
| void ns3::Ping6::SetRouters | ( | std::vector< Ipv6Address > | routers | ) | 
      
  | 
  privatevirtual | 
Start the application.
Reimplemented from ns3::Application.
Definition at line 101 of file ping6.cc.
References ns3::Socket::Bind(), ns3::Socket::CreateSocket(), ns3::Application::GetNode(), HandleRead(), ns3::Ipv6Header::IPV6_ICMPV6, ns3::TypeId::LookupByName(), m_localAddress, m_socket, ns3::MakeCallback(), NS_ASSERT, NS_LOG_FUNCTION_NOARGS, ScheduleTransmit(), ns3::Seconds(), ns3::ObjectBase::SetAttribute(), and ns3::Socket::SetRecvCallback().
 Here is the call graph for this function:
      
  | 
  privatevirtual | 
Stop the application.
Reimplemented from ns3::Application.
Definition at line 132 of file ping6.cc.
References ns3::Simulator::Cancel(), m_sendEvent, m_socket, ns3::MakeNullCallback(), NS_LOG_FUNCTION_NOARGS, and ns3::Socket::SetRecvCallback().
 Here is the call graph for this function:
      
  | 
  private | 
      
  | 
  private | 
Number of "Echo request" packets that will be sent.
Definition at line 131 of file ping6.h.
Referenced by GetTypeId(), and Send().
      
  | 
  private | 
Out interface (i.e.
for link-local communication).
Definition at line 176 of file ping6.h.
Referenced by Send(), and SetIfIndex().
      
  | 
  private | 
Intervall between packets sent.
Definition at line 146 of file ping6.h.
Referenced by GetTypeId(), and Send().
      
  | 
  private | 
Local address.
Definition at line 151 of file ping6.h.
Referenced by GetTypeId(), Send(), SetLocal(), and StartApplication().
      
  | 
  private | 
Peer address.
Definition at line 156 of file ping6.h.
Referenced by GetTypeId(), Send(), and SetRemote().
      
  | 
  private | 
Routers addresses for routing type 0.
Definition at line 181 of file ping6.h.
Referenced by Send(), and SetRouters().
      
  | 
  private | 
Event ID.
Definition at line 171 of file ping6.h.
Referenced by Ping6(), ScheduleTransmit(), Send(), and StopApplication().
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
Local socket.
Definition at line 161 of file ping6.h.
Referenced by Ping6(), Send(), StartApplication(), StopApplication(), and ~Ping6().