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";