21 #include "ns3/packet.h"    24 #include "ns3/udp-header.h"    25 #include "ns3/tcp-header.h"   105                               uint32_t *out_flowId, uint32_t *out_packetId)
   137   uint16_t srcPort = 0;
   142   uint16_t dstPort = 0;
   151   std::pair<std::map<FiveTuple, FlowId>::iterator, 
bool> insert
   152     = 
m_flowMap.insert (std::pair<FiveTuple, FlowId> (tuple, 0));
   158       insert.first->second = newFlowId;
   169   std::pair<std::map<Ipv4Header::DscpType, uint32_t>::iterator, 
bool> dscpInserter
   170     = 
m_flowDscpMap[insert.first->second].insert (std::pair<Ipv4Header::DscpType, uint32_t> (dscp, 1));
   173   if (!dscpInserter.second)
   178   *out_flowId = insert.first->second;
   188   for (std::map<FiveTuple, FlowId>::const_iterator
   191       if (iter->second == flowId)
   203                                              std::pair<Ipv4Header::DscpType, uint32_t> right)
   205   return left.second > right.second;
   208 std::vector<std::pair<Ipv4Header::DscpType, uint32_t> >
   211   std::map<FlowId, std::map<Ipv4Header::DscpType, uint32_t> >::const_iterator flow
   219   std::vector<std::pair<Ipv4Header::DscpType, uint32_t> > v (flow->second.begin (), flow->second.end ());
   230   for (std::map<FiveTuple, FlowId>::const_iterator
   234       os << 
"<Flow flowId=\"" << iter->second << 
"\""   235          << 
" sourceAddress=\"" << iter->first.sourceAddress << 
"\""   236          << 
" destinationAddress=\"" << iter->first.destinationAddress << 
"\""   237          << 
" protocol=\"" << int(iter->first.protocol) << 
"\""   238          << 
" sourcePort=\"" << iter->first.sourcePort << 
"\""   239          << 
" destinationPort=\"" << iter->first.destinationPort << 
"\">\n";
   242       std::map<FlowId, std::map<Ipv4Header::DscpType, uint32_t> >::const_iterator flow
   247           for (std::map<Ipv4Header::DscpType, uint32_t>::const_iterator i = flow->second.begin (); i != flow->second.end (); i++)
   250               os << 
"<Dscp value=\"0x" << std::hex << static_cast<uint32_t> (i->first) << 
"\""   251                  << 
" packets=\"" << std::dec << i->second << 
"\" />\n";
 
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
FlowId GetNewFlowId()
Returns a new, unique Flow Identifier. 
 
Ipv4Address destinationAddress
Destination address. 
 
std::vector< std::pair< Ipv4Header::DscpType, uint32_t > > GetDscpCounts(FlowId flowId) const
get the DSCP values of the packets belonging to the flow with the given FlowId, sorted in decreasing ...
 
uint16_t destinationPort
Destination port. 
 
const uint8_t TCP_PROT_NUMBER
TCP Protocol number. 
 
uint8_t protocol
Protocol. 
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
std::map< FlowId, FlowPacketId > m_flowPktIdMap
Map to FlowIds to FlowPacketId. 
 
bool operator<(const EventId &a, const EventId &b)
 
def indent(source, debug, level)
 
bool operator()(std::pair< Ipv4Header::DscpType, uint32_t > left, std::pair< Ipv4Header::DscpType, uint32_t > right)
Comparator function. 
 
uint16_t sourcePort
Source port. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
static Ipv4Address GetZero(void)
 
Structure to classify a packet. 
 
Comparator used to sort the vector of DSCP values. 
 
const uint8_t UDP_PROT_NUMBER
UDP Protocol number. 
 
void Indent(std::ostream &os, uint16_t level) const
Add a number of spaces for indentation purposes. 
 
FiveTuple FindFlow(FlowId flowId) const
Searches for the FiveTuple corresponding to the given flowId. 
 
uint32_t CopyData(uint8_t *buffer, uint32_t size) const
Copy the packet contents to a byte buffer. 
 
bool operator==(const EventId &a, const EventId &b)
 
bool Classify(const Ipv4Header &ipHeader, Ptr< const Packet > ipPayload, uint32_t *out_flowId, uint32_t *out_packetId)
try to classify the packet into flow-id and packet-id 
 
virtual void SerializeToXmlStream(std::ostream &os, uint16_t indent) const
Serializes the results to an std::ostream in XML format. 
 
std::map< FiveTuple, FlowId > m_flowMap
Map to Flows Identifiers to FlowIds. 
 
Ipv4Address sourceAddress
Source address. 
 
uint32_t FlowId
Abstract identifier of a packet flow. 
 
std::map< FlowId, std::map< Ipv4Header::DscpType, uint32_t > > m_flowDscpMap
Map FlowIds to (DSCP value, packet count) pairs.