<div dir="ltr">I have made the necessary changes. I have a small problem now. I have a separate working repository where I have the custom apps,custom strategies and and my scenarios. When I make the changes in the Strategy.cpp, it doesn't seem to reflect in my simulations. I am not sure how to build those files(the files within NFD, ndn.cxx etc ) for them to work with<br clear="all"><div><div><div dir="ltr" class="m_-3406909350313487452m_-1853277791065626510gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><span style="font-size:12.8px"></span><div style="font-size:12.8px"><br></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Nov 25, 2018 at 2:06 PM Teng Liang <<a href="mailto:philoliang@email.arizona.edu" target="_blank">philoliang@email.arizona.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>Hi Ashish,</p>
<p>To keep it simple, one PIT entry represents a pending Interest,
which guides Data forwarding. One router may receive Interests
with the same name from multiple different downstreams. On
receiving the Data that can satisfy these Interests, the router is
able to multicast the Data to all the downstreams sending the
Interests. PIT entry's in-record represents the face to
downstream, and each in-record has an expiry timer (=Interest
lifetime). PIT entry itself has a different expiry timer that is
refreshed by the latest PIT in-record expiry timer (code:
<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154moz-txt-link-freetext" href="https://github.com/named-data/NFD/blob/master/daemon/fw/forwarder.cpp#L181-L184" target="_blank">https://github.com/named-data/NFD/blob/master/daemon/fw/forwarder.cpp#L181-L184</a>)<br>
</p>
Chapter 3.4 in NFD developer guide explains more details about PIT
(<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154moz-txt-link-freetext" href="https://named-data.net/wp-content/uploads/2016/10/ndn-0021-7-nfd-developer-guide.pdf" target="_blank">https://named-data.net/wp-content/uploads/2016/10/ndn-0021-7-nfd-developer-guide.pdf</a>).
<br>
<p>For you scenario, one hack that may work is to remove the expiry
timer check on pit in-record check
(<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154moz-txt-link-freetext" href="https://github.com/named-data/NFD/blob/master/daemon/fw/strategy.cpp#L216" target="_blank">https://github.com/named-data/NFD/blob/master/daemon/fw/strategy.cpp#L216</a>)
instead of step 2 in my previous email.</p>
<p>Teng<br>
</p>
<div class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154moz-cite-prefix">On 11/24/18 8:36 PM, Ashish Pradhan
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi Teng, <br>
</div>
<div><br>
</div>
<div>Thank you so much for understanding my problem. I will try
to implement it as you said. In the mean time can you please
explain the difference between "setting expiry timer of the
pit entry" and "setting expiry timer of the pit entry's in
record"</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Ashish Pradhan<br>
</div>
<div>
<div>
<div dir="ltr" class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"><span style="font-size:12.8px"></span>
<div style="font-size:12.8px"><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Sun, Nov 25, 2018 at 12:08 PM Teng Liang <<a href="mailto:philoliang@email.arizona.edu" target="_blank">philoliang@email.arizona.edu</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>Hi Ashish,</p>
<p>I agree with you that simply extending PIT entry lifetime
(using setExpiryTimer) will not work for
"One-Interest-Many-Data" in NFD, because when you invoke
Strategy::sendDataToAll for the second (or latter) Data,
the PIT entry's in-record is already deleted. You could
try these changes:</p>
<ol>
<li>Avoid deleting PIT entry's in-record after forwarding
data by <br>
</li>
<ul>
<li>commenting out this line:
<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-txt-link-freetext" href="https://github.com/named-data/NFD/blob/master/daemon/fw/strategy.cpp#L203" target="_blank">https://github.com/named-data/NFD/blob/master/daemon/fw/strategy.cpp#L203</a></li>
</ul>
<li>Extending PIT entry's in-record lifetime by</li>
<ul>
<li>adding an update function with the parameter time
duration in pit::FaceRecord (the base class of
pit::InRecord)</li>
<li>setting pit entry's in-record lifetime when setting
pit entry's lifetime (invoking the previous added
function within Forwarder::setExpiryTimer:
<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-txt-link-freetext" href="https://github.com/named-data/NFD/blob/master/daemon/fw/forwarder.cpp#L516" target="_blank">https://github.com/named-data/NFD/blob/master/daemon/fw/forwarder.cpp#L516</a>)</li>
</ul>
<li>Deleting PIT entry's in-records in
Forwarder::onInterestFinalize (this could be optional)</li>
</ol>
Thanks,<br>
Teng
<p><br>
</p>
<div class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-cite-prefix">On
11/24/18 5:08 PM, Ashish Pradhan wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Hi Xinyu,
<div><br>
</div>
<div>Thank you for your reply.</div>
<div><br>
</div>
<div>I am fully aware of the One-Interest-One-Data
behavior. However, I have a custom app(a producer)
where it produces multiple data for a single
interest. Then I want all the produced data to
reach the consumer. So for that, I am implementing
a custom strategy where the PIT entry lifetime of
the nodes are extended after it receives the first
data from the producer. I have followed the ndnSIM
API documentation for it. </div>
<div><br>
</div>
<div>beforeSatisfyInterest documentation:</div>
<div><a href="http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a97b4f1e5496c4dd08cc17b5d3d265f08" target="_blank">http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a97b4f1e5496c4dd08cc17b5d3d265f08</a><br>
</div>
<div><br>
</div>
<div>setExpiryTimer documentation:<br>
</div>
<div><a href="http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a967ad88184231f79b245ce202e9d4ea7" target="_blank">http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a967ad88184231f79b245ce202e9d4ea7</a><br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr" class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816gmail_signature">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Best regards,</div>
<div dir="ltr">Ashish Pradhan<br>
<div style="font-size:12.8px">
<div style="font-size:12.8px"><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Sun, Nov 25, 2018 at 2:21 AM Xinyu
Ma <<a href="mailto:bitmxy@gmail.com" target="_blank">bitmxy@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space">Hello,
Pradhan
<div><br>
</div>
<div>I’m sorry I don’t understand why you want to
extend the PIT entry’s lifetime and what you
mean by “data response other than the first
one”.</div>
<div>NDN follows One-Interest-One-Data, so the PIT
entry should be deleted after receiving the
data.</div>
<div>You can send another Interest if you still
want the PIT entry to be there.</div>
<div><br>
</div>
<div>Best,</div>
<div>Xinyu Ma.</div>
<div>
<div><br>
<blockquote type="cite">
<div>On Nov 24, 2018, at 6:20 AM, Ashish
Pradhan <<a href="mailto:ashishpradhan1162@gmail.com" target="_blank">ashishpradhan1162@gmail.com</a>>
wrote:</div>
<br class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816m_-7572912407932601274Apple-interchange-newline">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div>Hi all,</div>
<div><br>
</div>
<div>I am trying to use the
setExpiryTimer to extend the PIT
entry's lifetime. However the data
response other than the first one
is not being forwarded back to the
consumer. I have included the
setExpiryTimer in the
beforeSatisfyInterest function as
follows:</div>
<div>"NFD_LOG_DEBUG("beforeSatisfyInterest
pitEntry=" <<
pitEntry->getName() <<<br>
" inFace="
<< inFace.getId() << "
data=" << data.getName());<br>
<br>
this->Strategy::setExpiryTimer(pitEntry,
ndn::time::milliseconds(100));"</div>
<div><br>
</div>
<div>Is there any thing that needs
to be added?<br>
</div>
<div><br>
</div>
<div>After looking at the sendData
function there is this line
"pitEntry->deleteInRecord(outFace);".
If it is deleting the inRecord how
does the setExpiryTimer help to
preserve the entry?</div>
<div><br>
</div>
<div>Best regards,</div>
<div>Ashish Pradhan<br>
</div>
<div>
<div>
<div dir="ltr" class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816m_-7572912407932601274gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"><span style="font-size:12.8px"></span>
<div style="font-size:12.8px"><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
_______________________________________________<br>
ndnSIM mailing list<br>
<a href="mailto:ndnSIM@lists.cs.ucla.edu" target="_blank">ndnSIM@lists.cs.ucla.edu</a><br>
<a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a><br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
</div>
<br>
<fieldset class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816mimeAttachmentHeader"></fieldset>
<pre class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-quote-pre">_______________________________________________
ndnSIM mailing list
<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-txt-link-abbreviated" href="mailto:ndnSIM@lists.cs.ucla.edu" target="_blank">ndnSIM@lists.cs.ucla.edu</a>
<a class="m_-3406909350313487452m_-1853277791065626510m_-5859213652122608154m_-4141238230755131816moz-txt-link-freetext" href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a>
</pre>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote></div>