21 #include "ns3/flow-probe.h" 22 #include "ns3/flow-monitor.h" 31 .SetGroupName (
"FlowMonitor")
44 : m_flowMonitor (flowMonitor)
88 os << std::string (
indent,
' ' ) <<
"<FlowProbe index=\"" << index <<
"\">\n";
92 for (Stats::const_iterator iter =
m_stats.begin (); iter !=
m_stats.end (); iter++)
94 os << std::string (
indent,
' ' );
96 <<
" flowId=\"" << iter->first <<
"\"" 97 <<
" packets=\"" << iter->second.packets <<
"\"" 98 <<
" bytes=\"" << iter->second.bytes <<
"\"" 99 <<
" delayFromFirstProbeSum=\"" << iter->second.delayFromFirstProbeSum <<
"\"" 102 for (uint32_t reasonCode = 0; reasonCode < iter->second.packetsDropped.size (); reasonCode++)
104 os << std::string (
indent,
' ' );
105 os <<
"<packetsDropped reasonCode=\"" << reasonCode <<
"\"" 106 <<
" number=\"" << iter->second.packetsDropped[reasonCode]
109 for (uint32_t reasonCode = 0; reasonCode < iter->second.bytesDropped.size (); reasonCode++)
111 os << std::string (
indent,
' ' );
112 os <<
"<bytesDropped reasonCode=\"" << reasonCode <<
"\"" 113 <<
" bytes=\"" << iter->second.bytesDropped[reasonCode]
117 os << std::string (
indent,
' ' ) <<
"</FlowStats>\n";
120 os << std::string (
indent,
' ' ) <<
"</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.
def indent(source, debug, level)
std::vector< uint32_t > packetsDropped
packetsDropped[reasonCode] => number of dropped packets
Stats GetStats() const
Get the partial flow statistics stored in this probe.
Structure to hold the statistics of a flow.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
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, uint16_t 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.
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.