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