21 #include "ns3/ipv4-flow-probe.h"
22 #include "ns3/ipv4-flow-classifier.h"
24 #include "ns3/packet.h"
25 #include "ns3/flow-monitor.h"
27 #include "ns3/pointer.h"
28 #include "ns3/config.h"
29 #include "ns3/flow-id-tag.h"
44 static TypeId GetTypeId (
void);
45 virtual TypeId GetInstanceTypeId (
void)
const;
46 virtual uint32_t GetSerializedSize (
void)
const;
47 virtual void Serialize (
TagBuffer buf)
const;
49 virtual void Print (std::ostream &os)
const;
52 void SetFlowId (uint32_t flowId);
53 void SetPacketId (uint32_t packetId);
54 void SetPacketSize (uint32_t packetSize);
55 uint32_t GetFlowId (
void)
const;
56 uint32_t GetPacketId (
void)
const;
57 uint32_t GetPacketSize (
void)
const;
70 .AddConstructor<Ipv4FlowProbeTag> ()
101 os <<
"FlowId=" << m_flowId;
102 os <<
"PacketId=" << m_packetId;
103 os <<
"PacketSize=" << m_packetSize;
111 :
Tag (), m_flowId (flowId), m_packetId (packetId), m_packetSize (packetSize)
154 m_classifier (classifier)
160 if (!ipv4->TraceConnectWithoutContext (
"SendOutgoing",
165 if (!ipv4->TraceConnectWithoutContext (
"UnicastForward",
170 if (!ipv4->TraceConnectWithoutContext (
"LocalDeliver",
176 if (!ipv4->TraceConnectWithoutContext (
"Drop",
183 std::ostringstream oss;
184 oss <<
"/NodeList/" << node->
GetId () <<
"/DeviceList/*/TxQueue/Drop";
201 NS_LOG_DEBUG (
"ReportFirstTx ("<<
this<<
", "<<flowId<<
", "<<packetId<<
", "<<size<<
"); "
202 << ipHeader << *ipPayload);
221 NS_LOG_DEBUG (
"ReportForwarding ("<<
this<<
", "<<flowId<<
", "<<packetId<<
", "<<size<<
");");
239 ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
242 NS_LOG_DEBUG (
"ReportLastRx ("<<
this<<
", "<<flowId<<
", "<<packetId<<
", "<<size<<
");");
260 Ipv4Mask maski = m_ipv4->GetNetworkMask (ifIndex);
278 ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
281 NS_LOG_DEBUG (
"Drop ("<<
this<<
", "<<flowId<<
", "<<packetId<<
", "<<size<<
", " << reason
283 <<
"HDR: " << ipHeader <<
" PKT: " << *ipPayload);
332 tagFound = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);