ns-3
|
An object that monitors and reports back packet flows observed during a simulation. More...
#include <flow-monitor.h>
Classes | |
struct | FlowStats |
Structure that represents the measured metrics of an individual packet flow. More... | |
struct | TrackedPacket |
Public Member Functions | |
TypeId | GetInstanceTypeId () const |
void | SetFlowClassifier (Ptr< FlowClassifier > classifier) |
Set the FlowClassifier to be used by the flow monitor. | |
void | Start (const Time &time) |
Set the time, counting from the current time, from which to start monitoring flows. | |
void | Stop (const Time &time) |
Set the time, counting from the current time, from which to stop monitoring flows. | |
void | StartRightNow () |
Begin monitoring flows right now | |
void | StopRightNow () |
End monitoring flows right now | |
void | AddProbe (Ptr< FlowProbe > probe) |
void | ReportFirstTx (Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize) |
void | ReportForwarding (Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize) |
void | ReportLastRx (Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize) |
void | ReportDrop (Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode) |
void | CheckForLostPackets () |
Check right now for packets that appear to be lost. | |
void | CheckForLostPackets (Time maxDelay) |
std::map< FlowId, FlowStats > | GetFlowStats () const |
std::vector< Ptr< FlowProbe > > | GetAllProbes () const |
Get a list of all FlowProbe's associated with this FlowMonitor. | |
void | SerializeToXmlStream (std::ostream &os, int indent, bool enableHistograms, bool enableProbes) |
std::string | SerializeToXmlString (int indent, bool enableHistograms, bool enableProbes) |
void | SerializeToXmlFile (std::string fileName, bool enableHistograms, bool enableProbes) |
![]() | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Dispose (void) |
void | AggregateObject (Ptr< Object > other) |
AggregateIterator | GetAggregateIterator (void) const |
void | Start (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
uint32_t | GetReferenceCount (void) const |
![]() | |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
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 () |
This method returns the TypeId associated to ns3::FlowMonitor. |
Protected Member Functions | |
virtual void | NotifyConstructionCompleted () |
![]() | |
virtual void | NotifyNewAggregate (void) |
virtual void | DoStart (void) |
virtual void | DoDispose (void) |
Object (const Object &o) |
An object that monitors and reports back packet flows observed during a simulation.
The FlowMonitor class is responsible forcoordinating efforts regarding probes, and collects end-to-end flowstatistics.
void ns3::FlowMonitor::CheckForLostPackets | ( | Time | maxDelay | ) |
Check right now for packets that appear to be lost, considering packets as lost if not seen in the network for a time larger than maxDelay
References ns3::Now(), and NS_ASSERT.
std::map< FlowId, FlowMonitor::FlowStats > ns3::FlowMonitor::GetFlowStats | ( | ) | const |
Retrieve all collected the flow statistics. Note, if the FlowMonitor has not stopped monitoring yet, you should call CheckForLostPackets() to make sure all possibly lost packets are accounted for.
|
virtual |
This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.
Reimplemented from ns3::Object.
References GetTypeId().
|
static |
This method returns the TypeId associated to ns3::FlowMonitor.
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::Object.
References ns3::Seconds(), ns3::TypeId::SetParent(), and ns3::Object::Start().
Referenced by GetInstanceTypeId().
|
protectedvirtual |
This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.
Reimplemented from ns3::ObjectBase.
References ns3::Simulator::Schedule().
void ns3::FlowMonitor::ReportDrop | ( | Ptr< FlowProbe > | probe, |
FlowId | flowId, | ||
FlowPacketId | packetId, | ||
uint32_t | packetSize, | ||
uint32_t | reasonCode | ||
) |
FlowProbe implementations are supposed to call this method to report that a known packet is being dropped due to some reason.
References ns3::FlowMonitor::FlowStats::bytesDropped, ns3::FlowMonitor::FlowStats::lostPackets, NS_LOG_DEBUG, and ns3::FlowMonitor::FlowStats::packetsDropped.
void ns3::FlowMonitor::ReportFirstTx | ( | Ptr< FlowProbe > | probe, |
FlowId | flowId, | ||
FlowPacketId | packetId, | ||
uint32_t | packetSize | ||
) |
FlowProbe implementations are supposed to call this method to report that a new packet was transmitted (but keep in mind the distinction between a new packet entering the system and a packet that is already known and is only being forwarded).
References ns3::Now(), NS_LOG_DEBUG, ns3::Seconds(), ns3::FlowMonitor::FlowStats::timeFirstTxPacket, ns3::FlowMonitor::FlowStats::timeLastTxPacket, ns3::FlowMonitor::FlowStats::txBytes, and ns3::FlowMonitor::FlowStats::txPackets.
void ns3::FlowMonitor::ReportForwarding | ( | Ptr< FlowProbe > | probe, |
FlowId | flowId, | ||
FlowPacketId | packetId, | ||
uint32_t | packetSize | ||
) |
FlowProbe implementations are supposed to call this method to report that a known packet is being forwarded.
References ns3::Now(), and NS_LOG_WARN.
void ns3::FlowMonitor::ReportLastRx | ( | Ptr< FlowProbe > | probe, |
FlowId | flowId, | ||
FlowPacketId | packetId, | ||
uint32_t | packetSize | ||
) |
FlowProbe implementations are supposed to call this method to report that a known packet is being received.
References ns3::FlowMonitor::FlowStats::delayHistogram, ns3::FlowMonitor::FlowStats::delaySum, ns3::Time::GetSeconds(), ns3::FlowMonitor::FlowStats::jitterHistogram, ns3::FlowMonitor::FlowStats::jitterSum, ns3::Now(), NS_LOG_DEBUG, NS_LOG_WARN, ns3::FlowMonitor::FlowStats::packetSizeHistogram, ns3::FlowMonitor::FlowStats::rxBytes, ns3::FlowMonitor::FlowStats::rxPackets, ns3::Seconds(), ns3::FlowMonitor::FlowStats::timeFirstRxPacket, ns3::FlowMonitor::FlowStats::timeLastRxPacket, and ns3::FlowMonitor::FlowStats::timesForwarded.
void ns3::FlowMonitor::SerializeToXmlFile | ( | std::string | fileName, |
bool | enableHistograms, | ||
bool | enableProbes | ||
) |
Same as SerializeToXmlStream, but writes to a file instead
fileName | name or path of the output file that will be created |
enableHistograms | if true, include also the histograms in the output |
enableProbes | if true, include also the per-probe/flow pair statistics in the output |
References SerializeToXmlStream().
void ns3::FlowMonitor::SerializeToXmlStream | ( | std::ostream & | os, |
int | indent, | ||
bool | enableHistograms, | ||
bool | enableProbes | ||
) |
Serializes the results to an std::ostream in XML format
os | the output stream |
indent | number of spaces to use as base indentation level |
enableHistograms | if true, include also the histograms in the output |
enableProbes | if true, include also the per-probe/flow pair statistics in the output |
References CheckForLostPackets().
Referenced by SerializeToXmlFile(), and SerializeToXmlString().
std::string ns3::FlowMonitor::SerializeToXmlString | ( | int | indent, |
bool | enableHistograms, | ||
bool | enableProbes | ||
) |
Same as SerializeToXmlStream, but returns the output as a std::string
indent | number of spaces to use as base indentation level |
enableHistograms | if true, include also the histograms in the output |
enableProbes | if true, include also the per-probe/flow pair statistics in the output |
References SerializeToXmlStream().