21 #ifndef FLOW_MONITOR_H
22 #define FLOW_MONITOR_H
28 #include "ns3/object.h"
29 #include "ns3/flow-probe.h"
30 #include "ns3/flow-classifier.h"
31 #include "ns3/histogram.h"
32 #include "ns3/nstime.h"
33 #include "ns3/event-id.h"
166 uint32_t packetSize, uint32_t reasonCode);
202 void SerializeToXmlFile (std::string fileName,
bool enableHistograms,
bool enableProbes);
keep track of time values and allow control of global simulation resolution
smart pointer class similar to boost::intrusive_ptr
void CheckForLostPackets()
Check right now for packets that appear to be lost.
void StartRightNow()
Begin monitoring flows right now
uint32_t rxPackets
Total number of received packets for the flow.
uint32_t txPackets
Total number of transmitted packets for the flow.
static TypeId GetTypeId()
void ReportDrop(Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode)
std::vector< uint64_t > bytesDropped
std::map< FlowId, FlowStats > m_flowStats
Time m_flowInterruptionsMinTime
void ReportFirstTx(Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize)
void SetFlowClassifier(Ptr< FlowClassifier > classifier)
Set the FlowClassifier to be used by the flow monitor.
TrackedPacketMap m_trackedPackets
std::map< FlowId, FlowStats > GetFlowStats() const
void SerializeToXmlStream(std::ostream &os, int indent, bool enableHistograms, bool enableProbes)
std::map< std::pair< FlowId, FlowPacketId >, TrackedPacket > TrackedPacketMap
std::string SerializeToXmlString(int indent, bool enableHistograms, bool enableProbes)
double m_packetSizeBinWidth
FlowStats & GetStatsForFlow(FlowId flowId)
virtual void NotifyConstructionCompleted()
void Stop(const Time &time)
Set the time, counting from the current time, from which to stop monitoring flows.
std::vector< Ptr< FlowProbe > > m_flowProbes
void StopRightNow()
End monitoring flows right now
an identifier for simulation events.
Histogram delayHistogram
Histogram of the packet delays.
void SerializeToXmlFile(std::string fileName, bool enableHistograms, bool enableProbes)
std::vector< Ptr< FlowProbe > > GetAllProbes() const
Get a list of all FlowProbe's associated with this FlowMonitor.
Ptr< FlowClassifier > m_classifier
virtual void DoDispose(void)
Histogram flowInterruptionsHistogram
uint64_t txBytes
Total number of transmitted bytes for the flow.
Structure that represents the measured metrics of an individual packet flow.
double m_flowInterruptionsBinWidth
Histogram jitterHistogram
Histogram of the packet jitters.
a base class which provides memory management and object aggregation
void Start(const Time &time)
Set the time, counting from the current time, from which to start monitoring flows.
void ReportForwarding(Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize)
uint64_t rxBytes
Total number of received bytes for the flow.
void PeriodicCheckForLostPackets()
An object that monitors and reports back packet flows observed during a simulation.
void AddProbe(Ptr< FlowProbe > probe)
a unique identifier for an interface.
void ReportLastRx(Ptr< FlowProbe > probe, FlowId flowId, FlowPacketId packetId, uint32_t packetSize)
Histogram packetSizeHistogram
Histogram of the packet sizes.
TypeId GetInstanceTypeId() const
std::vector< uint32_t > packetsDropped