21 #include "ns3/flow-probe.h"
22 #include "ns3/flow-monitor.h"
31 .SetGroupName (
"FlowMonitor")
44 : m_flowMonitor (flowMonitor)
88 #define INDENT(level) for (int __xpto = 0; __xpto < level; __xpto++) os << ' ';
90 INDENT (indent); os <<
"<FlowProbe index=\"" << index <<
"\">\n";
94 for (Stats::const_iterator iter =
m_stats.begin (); iter !=
m_stats.end (); iter++)
98 <<
" flowId=\"" << iter->first <<
"\""
99 <<
" packets=\"" << iter->second.packets <<
"\""
100 <<
" bytes=\"" << iter->second.bytes <<
"\""
101 <<
" delayFromFirstProbeSum=\"" << iter->second.delayFromFirstProbeSum <<
"\""
104 for (uint32_t reasonCode = 0; reasonCode < iter->second.packetsDropped.size (); reasonCode++)
107 os <<
"<packetsDropped reasonCode=\"" << reasonCode <<
"\""
108 <<
" number=\"" << iter->second.packetsDropped[reasonCode]
111 for (uint32_t reasonCode = 0; reasonCode < iter->second.bytesDropped.size (); reasonCode++)
114 os <<
"<bytesDropped reasonCode=\"" << reasonCode <<
"\""
115 <<
" bytes=\"" << iter->second.bytesDropped[reasonCode]
119 INDENT (indent); os <<
"</FlowStats>\n";
122 INDENT (indent); os <<
"</FlowProbe>\n";
Simulation virtual time values and global simulation resolution.
Smart pointer class similar to boost::intrusive_ptr.
static TypeId GetTypeId(void)
Register this type.
std::vector< uint64_t > bytesDropped
bytesDropped[reasonCode] => number of dropped bytes
virtual void DoDispose(void)
Destructor implementation.
void AddPacketStats(FlowId flowId, uint32_t packetSize, Time delayFromFirstProbe)
Add a packet data to the flow stats.
Ptr< FlowMonitor > m_flowMonitor
the FlowMonitor instance
uint32_t packets
Number of packets seen of this flow.
uint64_t bytes
Number of bytes seen of this flow.
std::vector< uint32_t > packetsDropped
packetsDropped[reasonCode] => number of dropped packets
Structure to hold the statistics of a flow.
void AddPacketDropStats(FlowId flowId, uint32_t packetSize, uint32_t reasonCode)
Add a packet drop data to the flow stats.
Time delayFromFirstProbeSum
divide by 'packets' to get the average delay from the first (entry) probe up to this one (partial del...
void SerializeToXmlStream(std::ostream &os, int indent, uint32_t index) const
Serializes the results to an std::ostream in XML format.
std::map< FlowId, FlowStats > Stats
Container to map FlowId -> FlowStats.
Stats GetStats() const
Get the partial flow statistics stored in this probe.
static const uint32_t packetSize
A base class which provides memory management and object aggregation.
FlowProbe(FlowProbe const &)
Defined and not implemented to avoid misuse.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
virtual void DoDispose(void)
Destructor implementation.
Stats m_stats
The flow stats.
uint32_t FlowId
Abstract identifier of a packet flow.