[ndnSIM] Using the setExpiryTImer

Teng Liang philoliang at email.arizona.edu
Sat Nov 24 19:08:42 PST 2018

Hi Ashish,

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:

 1. Avoid deleting PIT entry's in-record after forwarding data by
      * commenting out this line:
 2. Extending PIT entry's in-record lifetime by
      * adding an update function with the parameter time duration in
        pit::FaceRecord (the base class of pit::InRecord)
      * setting pit entry's in-record lifetime when setting pit entry's
        lifetime (invoking the previous added function within
 3. Deleting PIT entry's in-records in Forwarder::onInterestFinalize
    (this could be optional)


On 11/24/18 5:08 PM, Ashish Pradhan wrote:
> Hi Xinyu,
> Thank you for your reply.
> 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.
> beforeSatisfyInterest documentation:
> http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a97b4f1e5496c4dd08cc17b5d3d265f08
> setExpiryTimer documentation:
> http://ndnsim.net/current/doxygen/classnfd_1_1fw_1_1Strategy.html#a967ad88184231f79b245ce202e9d4ea7
> Best regards,
> Ashish Pradhan
> On Sun, Nov 25, 2018 at 2:21 AM Xinyu Ma <bitmxy at gmail.com 
> <mailto:bitmxy at gmail.com>> wrote:
>     Hello, Pradhan
>     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”.
>     NDN follows One-Interest-One-Data, so the PIT entry should be
>     deleted after receiving the data.
>     You can send another Interest if you still want the PIT entry to
>     be there.
>     Best,
>     Xinyu Ma.
>>     On Nov 24, 2018, at 6:20 AM, Ashish Pradhan
>>     <ashishpradhan1162 at gmail.com
>>     <mailto:ashishpradhan1162 at gmail.com>> wrote:
>>     Hi all,
>>     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:
>>     "NFD_LOG_DEBUG("beforeSatisfyInterest pitEntry=" <<
>>     pitEntry->getName() <<
>>                     " inFace=" << inFace.getId() << " data=" <<
>>     data.getName());
>>     this->Strategy::setExpiryTimer(pitEntry,
>>     ndn::time::milliseconds(100));"
>>     Is there any thing that needs to be added?
>>     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?
>>     Best regards,
>>     Ashish Pradhan
>>     _______________________________________________
>>     ndnSIM mailing list
>>     ndnSIM at lists.cs.ucla.edu <mailto:ndnSIM at lists.cs.ucla.edu>
>>     http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim
> _______________________________________________
> ndnSIM mailing list
> ndnSIM at lists.cs.ucla.edu
> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20181124/fe420057/attachment-0001.html>

More information about the ndnSIM mailing list