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