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" 257 void SerializeToXmlFile (std::string fileName,
bool enableHistograms,
bool enableProbes);
uint32_t FlowPacketId
Abstract identifier of a packet within a flow.
Simulation virtual time values and global simulation resolution.
Smart pointer class similar to boost::intrusive_ptr.
virtual TypeId GetInstanceTypeId() const
Get the most derived TypeId for this Object.
void CheckForLostPackets()
Check right now for packets that appear to be lost.
void StartRightNow()
Begin monitoring flows right now
uint32_t lostPackets
Total number of packets that are assumed to be lost, i.e.
uint32_t rxPackets
Total number of received packets for the flow.
uint32_t txPackets
Total number of transmitted packets for the flow.
const FlowStatsContainer & GetFlowStats() const
Retrieve all collected the flow statistics.
Time m_maxPerHopDelay
Minimum per-hop delay.
static TypeId GetTypeId()
Get the type ID.
void 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 dro...
Time delaySum
Contains the sum of all end-to-end delays for all received packets of the flow.
std::vector< uint64_t > bytesDropped
This attribute also tracks the number of lost bytes.
std::vector< Ptr< FlowProbe > >::const_iterator FlowProbeContainerCI
Container Const Iterator: FlowProbe.
std::string SerializeToXmlString(uint16_t indent, bool enableHistograms, bool enableProbes)
Same as SerializeToXmlStream, but returns the output as a std::string.
Time m_flowInterruptionsMinTime
Flow interruptions minimum time.
void 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 transmitte...
TrackedPacketMap m_trackedPackets
Tracked packets.
const FlowProbeContainer & GetAllProbes() const
Get a list of all FlowProbe's associated with this FlowMonitor.
FlowStatsContainer m_flowStats
FlowId –> FlowStats.
Time lastDelay
Contains the last measured delay of a packet It is stored to measure the packet's Jitter...
def indent(source, debug, level)
std::map< FlowId, FlowStats > FlowStatsContainer
Container: FlowId, FlowStats.
Time firstSeenTime
absolute time when the packet was first seen by a probe
std::list< Ptr< FlowClassifier > > m_classifiers
the FlowClassifiers
std::map< std::pair< FlowId, FlowPacketId >, TrackedPacket > TrackedPacketMap
(FlowId,PacketId) –> TrackedPacket
Time jitterSum
Contains the sum of all end-to-end delay jitter (delay variation) values for all received packets of ...
bool m_enabled
FlowMon is enabled.
Time timeFirstTxPacket
Contains the absolute time when the first packet in the flow was transmitted, i.e.
double m_packetSizeBinWidth
packet size bin width (for histograms)
FlowStats & GetStatsForFlow(FlowId flowId)
Get the stats for a given flow.
double m_jitterBinWidth
Jitter bin width (for histograms)
EventId m_stopEvent
Stop event.
std::map< FlowId, FlowStats >::const_iterator FlowStatsContainerCI
Container Const Iterator: FlowId, FlowStats.
Time lastSeenTime
absolute time when the packet was last seen by a probe
double m_delayBinWidth
Delay bin width (for histograms)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void NotifyConstructionCompleted()
Notifier called once the ObjectBase is fully constructed.
void Stop(const Time &time)
Set the time, counting from the current time, from which to stop monitoring flows.
Time timeFirstRxPacket
Contains the absolute time when the first packet in the flow was received by an end node...
uint32_t timesForwarded
Contains the number of times a packet has been reportedly forwarded, summed for all received packets ...
std::map< FlowId, FlowStats >::iterator FlowStatsContainerI
Container Iterator: FlowId, FlowStats.
Time timeLastRxPacket
Contains the absolute time when the last packet in the flow was received, i.e.
void AddFlowClassifier(Ptr< FlowClassifier > classifier)
Add a FlowClassifier to be used by the flow monitor.
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)
Same as SerializeToXmlStream, but writes to a file instead.
virtual void DoDispose(void)
Destructor implementation.
Histogram flowInterruptionsHistogram
histogram of durations of flow interruptions
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
Flow interruptions bin width (for histograms)
std::vector< Ptr< FlowProbe > >::iterator FlowProbeContainerI
Container Iterator: FlowProbe.
Structure to represent a single tracked packet data.
static const uint32_t packetSize
Histogram jitterHistogram
Histogram of the packet jitters.
A base class which provides memory management and object aggregation.
EventId m_startEvent
Start event.
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)
FlowProbe implementations are supposed to call this method to report that a known packet is being for...
uint64_t rxBytes
Total number of received bytes for the flow.
void PeriodicCheckForLostPackets()
Periodic function to check for lost packets and prune statistics.
uint32_t timesForwarded
number of times the packet was reportedly forwarded
An object that monitors and reports back packet flows observed during a simulation.
void AddProbe(Ptr< FlowProbe > probe)
Register a new FlowProbe that will begin monitoring and report events to this monitor.
a unique identifier for an interface.
std::vector< Ptr< FlowProbe > > FlowProbeContainer
Container: FlowProbe.
Time timeLastTxPacket
Contains the absolute time when the last packet in the flow was transmitted, i.e. ...
void 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 rec...
Histogram packetSizeHistogram
Histogram of the packet sizes.
FlowProbeContainer m_flowProbes
all the FlowProbes
Class used to store data and make an histogram of the data frequency.
void SerializeToXmlStream(std::ostream &os, uint16_t indent, bool enableHistograms, bool enableProbes)
Serializes the results to an std::ostream in XML format.
uint32_t FlowId
Abstract identifier of a packet flow.
std::vector< uint32_t > packetsDropped
This attribute also tracks the number of lost packets and bytes, but discriminates the losses by a re...