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

Class that monitors flows at the IPv4 layer of a Node. More...

#include <ipv4-flow-probe.h>

+ Inheritance diagram for ns3::Ipv4FlowProbe:

Public Types

enum  DropReason {
  DROP_NO_ROUTE = 0, DROP_TTL_EXPIRE, DROP_BAD_CHECKSUM, DROP_QUEUE,
  DROP_INTERFACE_DOWN, DROP_ROUTE_ERROR, DROP_FRAGMENT_TIMEOUT, DROP_INVALID_REASON
}
 enumeration of possible reasons why a packet may be dropped More...
 
- Public Types inherited from ns3::FlowProbe
typedef std::map< FlowId,
FlowStats
Stats
 

Public Member Functions

 Ipv4FlowProbe (Ptr< FlowMonitor > monitor, Ptr< Ipv4FlowClassifier > classifier, Ptr< Node > node)
 
- Public Member Functions inherited from ns3::FlowProbe
void AddPacketDropStats (FlowId flowId, uint32_t packetSize, uint32_t reasonCode)
 
void AddPacketStats (FlowId flowId, uint32_t packetSize, Time delayFromFirstProbe)
 
Stats GetStats () const
 
void SerializeToXmlStream (std::ostream &os, int indent, uint32_t index) const
 
- Public Member Functions inherited from ns3::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 Initialize (void)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 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
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)
 

Protected Member Functions

virtual void DoDispose (void)
 
- Protected Member Functions inherited from ns3::FlowProbe
 FlowProbe (Ptr< FlowMonitor > flowMonitor)
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Private Member Functions

void DropLogger (const Ipv4Header &ipHeader, Ptr< const Packet > ipPayload, Ipv4L3Protocol::DropReason reason, Ptr< Ipv4 > ipv4, uint32_t ifIndex)
 
void ForwardLogger (const Ipv4Header &ipHeader, Ptr< const Packet > ipPayload, uint32_t interface)
 
void ForwardUpLogger (const Ipv4Header &ipHeader, Ptr< const Packet > ipPayload, uint32_t interface)
 
void QueueDropLogger (Ptr< const Packet > ipPayload)
 
void SendOutgoingLogger (const Ipv4Header &ipHeader, Ptr< const Packet > ipPayload, uint32_t interface)
 

Private Attributes

Ptr< Ipv4FlowClassifierm_classifier
 

Additional Inherited Members

- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 
- Protected Attributes inherited from ns3::FlowProbe
Ptr< FlowMonitorm_flowMonitor
 
Stats m_stats
 

Detailed Description

Class that monitors flows at the IPv4 layer of a Node.

For each node in the simulation, one instance of the class Ipv4FlowProbe is created to monitor that node. Ipv4FlowProbe accomplishes this by connecting callbacks to trace sources in the Ipv4L3Protocol interface of the node.

Definition at line 39 of file ipv4-flow-probe.h.

Member Enumeration Documentation

enumeration of possible reasons why a packet may be dropped

Enumerator
DROP_NO_ROUTE 

Packet dropped due to missing route to the destination.

DROP_TTL_EXPIRE 

Packet dropped due to TTL decremented to zero during IPv4 forwarding.

DROP_BAD_CHECKSUM 

Packet dropped due to invalid checksum in the IPv4 header.

DROP_QUEUE 

Packet dropped due to queue overflow. Note: only works for NetDevices that provide a TxQueue attribute of type Queue with a Drop trace source. It currently works with Csma and PointToPoint devices, but not with WiFi or WiMax.

DROP_INTERFACE_DOWN 

Interface is down so can not send packet

DROP_ROUTE_ERROR 

Route error

DROP_FRAGMENT_TIMEOUT 

Fragment timeout exceeded

Definition at line 47 of file ipv4-flow-probe.h.

Member Function Documentation

void ns3::Ipv4FlowProbe::DoDispose ( void  )
protectedvirtual

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::FlowProbe.

Definition at line 191 of file ipv4-flow-probe.cc.

References ns3::FlowProbe::DoDispose().


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