diff --git a/model/fib/ndn-fib-entry.cc b/model/fib/ndn-fib-entry.cc
index 750f9da..c04e43b 100644
--- a/model/fib/ndn-fib-entry.cc
+++ b/model/fib/ndn-fib-entry.cc
@@ -132,6 +132,21 @@
 }
 
 void
+Entry::SetRealDelayToProducer (Ptr<Face> face, Time delay)
+{
+  NS_LOG_FUNCTION (this);
+  NS_ASSERT_MSG (face != NULL, "Trying to Update NULL face");
+
+  FaceMetricByFace::type::iterator record = m_faces.get<i_face> ().find (face);
+  if (record != m_faces.get<i_face> ().end ())
+    {
+      m_faces.modify (record,
+                      (&ll::_1)->*&FaceMetric::m_realDelay = delay);
+    }
+}
+
+
+void
 Entry::Invalidate ()
 {
   for (FaceMetricByFace::type::iterator face = m_faces.begin ();
diff --git a/model/fib/ndn-fib-entry.h b/model/fib/ndn-fib-entry.h
index 272d801..a98dc66 100644
--- a/model/fib/ndn-fib-entry.h
+++ b/model/fib/ndn-fib-entry.h
@@ -69,6 +69,7 @@
     , m_routingCost (cost)
     , m_sRtt   (Seconds (0))
     , m_rttVar (Seconds (0))
+    , m_realDelay (Seconds (0))
   { }
 
   /**
@@ -110,6 +111,8 @@
 
   Time m_sRtt;         ///< \brief smoothed round-trip time
   Time m_rttVar;       ///< \brief round-trip time variation
+
+  Time m_realDelay;    ///< \brief real propagation delay to the producer, calculated based on NS-3 p2p link delays
 };
 
 /// @cond include_hidden
@@ -194,6 +197,12 @@
   void AddOrUpdateRoutingMetric (Ptr<Face> face, int32_t metric);
 
   /**
+   * \brief Set real delay to the producer
+   */
+  void
+  SetRealDelayToProducer (Ptr<Face> face, Time delay);
+  
+  /**
    * @brief Invalidate face
    *
    * Set routing metric on all faces to max and status to RED
