--- a/RELEASE_NOTES Thu Jun 26 13:15:49 2014 -0700
+++ b/RELEASE_NOTES Fri Jun 27 22:28:07 2014 +0200
@@ -27,6 +27,7 @@
- Bug 1921 - Icmpv6L4Protocol::ForgeEchoRequest returns a malformed packet
- Bug 1930 - Use of invalid reference in OLSR RemoveLinkTuple
- Bug 1932 - NdiscCache entry is not failsafe on double neighbor probing.
+- Bug 1937 - FlowMonitor fails to track multiplexed packets
Known issues
------------
--- a/src/flow-monitor/model/ipv4-flow-probe.cc Thu Jun 26 13:15:49 2014 -0700
+++ b/src/flow-monitor/model/ipv4-flow-probe.cc Fri Jun 27 22:28:07 2014 +0200
@@ -260,17 +260,15 @@
// tag the packet with the flow id and packet id, so that the packet can be identified even
// when Ipv4Header is not accessible at some non-IPv4 protocol layer
Ipv4FlowProbeTag fTag (flowId, packetId, size);
- ipPayload->AddPacketTag (fTag);
+ ipPayload->AddByteTag (fTag);
}
}
void
Ipv4FlowProbe::ForwardLogger (const Ipv4Header &ipHeader, Ptr<const Packet> ipPayload, uint32_t interface)
{
- // peek the tags that are added by Ipv4FlowProbe::SendOutgoingLogger ()
Ipv4FlowProbeTag fTag;
-
- bool found = ipPayload->PeekPacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -286,11 +284,8 @@
void
Ipv4FlowProbe::ForwardUpLogger (const Ipv4Header &ipHeader, Ptr<const Packet> ipPayload, uint32_t interface)
{
- // remove the tags that are added by Ipv4FlowProbe::SendOutgoingLogger ()
Ipv4FlowProbeTag fTag;
-
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool found = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -325,11 +320,8 @@
}
#endif
- // remove the tags that are added by Ipv4FlowProbe::SendOutgoingLogger ()
Ipv4FlowProbeTag fTag;
-
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool found = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -383,11 +375,9 @@
void
Ipv4FlowProbe::QueueDropLogger (Ptr<const Packet> ipPayload)
{
- // remove the tags that are added by Ipv4FlowProbe::SendOutgoingLogger ()
Ipv4FlowProbeTag fTag;
+ bool tagFound = ipPayload->FindFirstMatchingByteTag (fTag);
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool tagFound = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
if (!tagFound)
{
return;
--- a/src/flow-monitor/model/ipv6-flow-probe.cc Thu Jun 26 13:15:49 2014 -0700
+++ b/src/flow-monitor/model/ipv6-flow-probe.cc Fri Jun 27 22:28:07 2014 +0200
@@ -254,17 +254,15 @@
// tag the packet with the flow id and packet id, so that the packet can be identified even
// when Ipv6Header is not accessible at some non-IPv6 protocol layer
Ipv6FlowProbeTag fTag (flowId, packetId, size);
- ipPayload->AddPacketTag (fTag);
+ ipPayload->AddByteTag (fTag);
}
}
void
Ipv6FlowProbe::ForwardLogger (const Ipv6Header &ipHeader, Ptr<const Packet> ipPayload, uint32_t interface)
{
- // peek the tags that are added by Ipv6FlowProbe::SendOutgoingLogger ()
Ipv6FlowProbeTag fTag;
-
- bool found = ipPayload->PeekPacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -280,11 +278,8 @@
void
Ipv6FlowProbe::ForwardUpLogger (const Ipv6Header &ipHeader, Ptr<const Packet> ipPayload, uint32_t interface)
{
- // remove the tags that are added by Ipv6FlowProbe::SendOutgoingLogger ()
Ipv6FlowProbeTag fTag;
-
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool found = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -319,11 +314,8 @@
}
#endif
- // remove the tags that are added by Ipv6FlowProbe::SendOutgoingLogger ()
Ipv6FlowProbeTag fTag;
-
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool found = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
+ bool found = ipPayload->FindFirstMatchingByteTag (fTag);
if (found)
{
@@ -384,11 +376,9 @@
void
Ipv6FlowProbe::QueueDropLogger (Ptr<const Packet> ipPayload)
{
- // remove the tags that are added by Ipv6FlowProbe::SendOutgoingLogger ()
Ipv6FlowProbeTag fTag;
+ bool tagFound = ipPayload->FindFirstMatchingByteTag (fTag);
- // ConstCast: see http://www.nsnam.org/bugzilla/show_bug.cgi?id=904
- bool tagFound = ConstCast<Packet> (ipPayload)->RemovePacketTag (fTag);
if (!tagFound)
{
return;