<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="gmail_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">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_-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_-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_-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_-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_-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_-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_-4141238230755131816mimeAttachmentHeader"></fieldset>
<pre class="m_-4141238230755131816moz-quote-pre">_______________________________________________
ndnSIM mailing list
<a class="m_-4141238230755131816moz-txt-link-abbreviated" href="mailto:ndnSIM@lists.cs.ucla.edu" target="_blank">ndnSIM@lists.cs.ucla.edu</a>
<a class="m_-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>