[ndnSIM] Question about ndnSIM apps

Alex Afanasyev alexander.afanasyev at ucla.edu
Thu Feb 7 12:58:07 PST 2013


Hi Yifeng,

Forwarding strategy deals with everything related to packet forwarding, including processing of interests and data packets.  There are many events that you can "override" in your extension.  Check API docs for the full list of events (http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_forwarding_strategy.html) and source code for more details.

Are you talking about something related to per-outgoing-face limiting?    You can check out the implementation of forwarding strategy extension https://github.com/NDN-Routing/ndnSIM/blob/master/model/fw/per-out-face-limits.h  which can use any limit based on ndn::Limits class (https://github.com/NDN-Routing/ndnSIM/blob/master/utils/ndn-limits.h).

There are currently two types of limits implemented: ns3::ndn::Limits::Window and ns3::ndn::Limits::Rate (http://ndnsim.net/fw.html#strategies-with-interest-limits).  In your case you would probably need an extended version of ns3::ndn::fw::PerOutFaceLimits strategy with modified version of ns3::ndn::Limits::Window limits.

---
Alex


On Feb 7, 2013, at 12:35 PM, Yifeng Li <yifengl at email.arizona.edu> wrote:

> Hi Alex,
> 
> Does the forwarding strategies apply to every face? E.g. I want every face to have a window. 
> 
> I also want to change the window size for every content received, could that modification be done in the forwarding strategy or somewhere else, like the l3 protocol?
> 
> Also, to find out what the outgoing face is for an interest, I would need to look up the FIB during DoPropagateInterest. Where would I look to find code used for FIB look ups?
> Thanks for your help,
> Yifeng
> 
> 
> On Thu, Feb 7, 2013 at 12:23 PM, Yifeng Li <yifengl at email.arizona.edu> wrote:
> Hello Alex,
> 
> If I were to incorporate NACKs in the forwarding scheme, e.g. receiving NACK => window reduce, where would I modify that? Would it still be within the forwarding strategy extension or should I modify the function that handles NACKs in general? If it's the latter, where is this function?
> 
> Thanks for your help,
> Yifeng
> 
> 
> On Thu, Feb 7, 2013 at 12:13 PM, Alex Afanasyev <afanasev at cs.ucla.edu> wrote:
> Hi Yifeng,
> 
> Actual sending is happening in the base ndn::Consumer class (ndn-consumer.cc).  As this is an application, the only communication channel to/from l3 protocol is through application face and registered callback (actually, to send from app, you always need to use callback).
> 
> Wouldn't extension of the forwarding strategy be a better fit for your needs?  Inside the forwarding strategy you have full control to which faces you want to send messages.
> 
> --
> Alex
> 
> On Feb 7, 2013, at 11:08 AM, Yifeng Li <yifengl at email.arizona.edu> wrote:
> 
>> Hi Alex,
>> 
>> I have a question regarding the ndnSIM apps. I'm trying simulate something similar to hop by hop TCP, e.g. every node receives interests, buffers them and then sends them out with typical TCP fashion (AIMD). I'm looking at ndn-consumer-window.cc, specifically in ConsumerWindow::ScheduleNextPacket. I see a send event is scheduled, and Consumer::SendPacket is called, but where in SendPacket is the packet actually sent? Can I specify a face to send? Also when receiving interests, are the interests buffered somewhere?
>> 
>> Thanks for your help,
>> Yifeng
>> 
>> 
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130207/497a6d22/attachment.html>


More information about the ndnSIM mailing list