Moving around path weight tagging. Now CcnxFace owns metric field, which is used for tagging.
Correcting bugs in blackhole-sprint scenario. This time it should be
the right one:
- instead of a hijacker app, all faces on hijacked node are turned down
- there was a trick with RTT estimation (when batch, it is necessary to
reset history upon a new batch)
- instead of random runs, trying all possible combinations of
producer/hijacker
diff --git a/apps/ccnx-consumer-batches.cc b/apps/ccnx-consumer-batches.cc
index deb4a0d..da95d48 100644
--- a/apps/ccnx-consumer-batches.cc
+++ b/apps/ccnx-consumer-batches.cc
@@ -72,6 +72,7 @@
{
// std::cout << Simulator::Now () << " adding batch of " << amount << "\n";
m_seqMax += amount;
+ m_rtt->ClearSent (); // this is important, otherwise RTT estimation for the new batch will be affected by previous batch history
ScheduleNextPacket ();
}
diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index 9fe2f64..0f3ed01 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -284,8 +284,8 @@
if (tag != 0)
{
// Notify trace about path weights vector (e.g., for path-stretch calculation)
- m_pathWeightsTrace (GetNode (), tag->GetDestinationNode (), seq, tag->GetTotalWeight ());
- // std::cout << boost::cref(*tag) << "\n";
+ m_pathWeightsTrace (GetNode (), tag->GetSourceNode (), seq, tag->GetTotalWeight ());
+ // std::cout << Simulator::Now () << "\t" << boost::cref(*tag) << "\n";
}
}
@@ -316,8 +316,9 @@
void
CcnxConsumer::OnTimeout (uint32_t sequenceNumber)
{
- std::cout << Simulator::Now () << ", TO: " << sequenceNumber << ", current RTO: " << m_rtt->RetransmitTimeout ().ToDouble (Time::S) << "s\n";
+ // std::cout << Simulator::Now () << ", TO: " << sequenceNumber << ", current RTO: " << m_rtt->RetransmitTimeout ().ToDouble (Time::S) << "s\n";
+ m_rtt->SentSeq (SequenceNumber32 (sequenceNumber), 1); // make sure to disable RTT calculation for this sample
m_retxSeqs.insert (sequenceNumber);
ScheduleNextPacket ();
}
diff --git a/apps/ccnx-producer.cc b/apps/ccnx-producer.cc
index 291fb82..1148767 100644
--- a/apps/ccnx-producer.cc
+++ b/apps/ccnx-producer.cc
@@ -23,7 +23,7 @@
#include "ns3/log.h"
#include "ns3/ccnx-interest-header.h"
#include "ns3/ccnx-content-object-header.h"
-#include "ns3/ccnx-path-stretch-tag.h"
+// #include "ns3/ccnx-path-stretch-tag.h"
#include "ns3/string.h"
#include "ns3/uinteger.h"
#include "ns3/packet.h"
@@ -114,18 +114,18 @@
NS_LOG_INFO ("Respodning with ContentObject:\n" << boost::cref(*header));
Ptr<Packet> packet = Create<Packet> (m_virtualPayloadSize);
- Ptr<const WeightsPathStretchTag> tag = origPacket->RemovePacketTag<WeightsPathStretchTag> ();
- if (tag != 0)
- {
- // std::cout << Simulator::Now () << ", " << m_app->GetInstanceTypeId ().GetName () << "\n";
+ // Ptr<const WeightsPathStretchTag> tag = origPacket->RemovePacketTag<WeightsPathStretchTag> ();
+ // if (tag != 0)
+ // {
+ // // std::cout << Simulator::Now () << ", " << m_app->GetInstanceTypeId ().GetName () << "\n";
- // echo back WeightsPathStretchTag
- packet->AddPacketTag (CreateObject<WeightsPathStretchTag> (*tag));
+ // // echo back WeightsPathStretchTag
+ // packet->AddPacketTag (CreateObject<WeightsPathStretchTag> (*tag));
- // \todo
- // packet->AddPacketTag should actually accept Ptr<const WeightsPathStretchTag> instead of
- // Ptr<WeightsPathStretchTag>. Echoing will be simplified after change is done
- }
+ // // \todo
+ // // packet->AddPacketTag should actually accept Ptr<const WeightsPathStretchTag> instead of
+ // // Ptr<WeightsPathStretchTag>. Echoing will be simplified after change is done
+ // }
m_transmittedContentObjects (header, packet, this, m_face);