[ndnSIM] Relationship between ndnSIM (2.0) and NFD.

Spyridon (Spyros) Mastorakis spiros.mastorakis at gmail.com
Tue May 12 19:29:53 PDT 2015


Unfortunately, I am not sure whether there is such a simple workaround for this thing. There are currently some suggestions/thoughts on the table, but they are not so trivial.

I am afraid that I do not have a clear timeline for this task right now. It should be done, though, in the near future.

--
Spyridon (Spyros) Mastorakis
Personal Website: http://cs.ucla.edu/~mastorakis/
Internet Research Laboratory
PhD Computer Science
UCLA




> On May 12, 2015, at 11:54 AM, Anil Jangam <anilj.mailing at gmail.com> wrote:
> 
> Hello Spyros,
> 
> Thanks for the detailed elaboration! I have ported the NLSR to ndnSIM already, and doing some basic tests right now. For this porting, I have taken ndnSIM code into my own git repo (its an independent one, and not a branch) . So for now, focus is on porting, and getting it up.
> 
> So far, I was not clear and assuming that NFD needed to be running from outside. Now, I will stop my NFD instance before I launch ndnSIM. AFA ndn::Face in ndnSIM is concerned, what workaround would you suggest? I read the redmine 2370, and it does not appear to be a quick change. Also I am not sure of its timelines. Alex perhaps can comment on this. 
> 
> /anil.
> 
> 
> 
> 
> On Tue, May 12, 2015 at 8:18 AM, Spyridon (Spyros) Mastorakis <spiros.mastorakis at gmail.com> wrote:
> Hi Anil,
> 
> currently the code of NFD version 0.2.0 (or at least a big part of it including all the forwarding pipelines, CS, FIB, PIT etc) is a part of the ndnSIM 2.0 codebase. The near future plan is to decouple NFD from ndnSIM, so that we can port new versions of NFD in an easy way (actually this has already been done, since I have a workable version of ndnSIM 2.0 using NFD 0.3.1 as a submodule. I am not sure, though, when these changes would be merged). In the current ndnSIM codebase, you can see how we ported NFD to ndnSIM by looking for 4 or 5 commits, the title of which starts with “NFD:”. For example:
> 
> https://github.com/NDN-Routing/ndnSIM/commit/542a62381aa36bdf6d936893270f2cb60f9f6ea9
> 
> Currently, the NFD ported in ndnSIM is being started by ndnSIM itself:
> 
> https://github.com/NDN-Routing/ndnSIM/blob/master/helper/ndn-stack-helper.cpp#L156
> 
> You cannot start a NFD instance externally to the simulator, since NFD is currently a part of the simulator and is controlled by the simulator. You cannot set up any IP addresses or UDP/TCP transport, since this NFD works “locally” on each simulated node.
> 
> Did you try to port NLSR directly to the simulator? Or you are working on a custom NLSR version? From the logs, I guess that the first one is the case. I can see that you are trying to use ndn::Face, however, this is not currently supported by ndnSIM. The plan is to be supported in the near future. Here is the redmine issue for that:
> 
> http://redmine.named-data.net/issues/2370
> 
> When this task is done, you will be able to port directly real-world applications to ndnSIM.
> 
> Please let me know if you need anything else.
> 
> --
> Spyridon (Spyros) Mastorakis
> Personal Website: http://cs.ucla.edu/~mastorakis/
> Internet Research Laboratory
> PhD Computer Science
> UCLA
> 
> 
> 
> 
> > On May 12, 2015, at 1:07 AM, Anil Jangam <anilj.mailing at gmail.com> wrote:
> >
> > Hi,
> >
> > In ndnSIM 2.0, is it required to run the NFD in the background for the simulator to run? I want to understand the relationship of NFD wrt ndnSIM.
> >
> > The release notes of ndnSIM 2.0 says that NDN forwarding and management is implemented using NFD source. What does this really mean? For example, when we configure the face-uri of the link between the nodes in the scenario, do we have to provide a real IP address and port or just any arbitrary name (e.g. udp://cs.com) would work?
> >
> > The initial 3 node scenario that I am currently testing, I am getting the following exception.
> >
> > Installing NDN stack on nodes
> > Installing global routing interface on nodes
> > terminate called after throwing an instance of 'ndn::Transport::Error'
> >   what():  error while connecting to the forwarder
> >
> > Thread [1] 4723 [core: 2] (Suspended : Signal : SIGABRT:Aborted)
> > __GI_raise() at raise.c:56 0x7fffe90a1cc9
> > __GI_abort() at abort.c:89 0x7fffe90a50d8
> > __gnu_cxx::__verbose_terminate_handler() at 0x7fffe99ac6b5
> > 0x7fffe99aa836
> >
> > std::terminate() at 0x7fffe99aa863
> > __cxa_rethrow() at 0x7fffe99aaaf6
> > ndn::Face::processEvents() at face.cpp:445 0x7ffff5ac9572
> > ns3::ndn::NlsrApp::startEventLoop() at ndn-nlsr-app.cpp:288 0x7ffff58b47da
> > ns3::ndn::NlsrApp::StartApplication() at ndn-nlsr-app.cpp:346 0x7ffff58b4e6c
> > ns3::EventMemberImpl0::Notify() at make-event.h:94 0x7fffef3643b6
> >
> > <...more frames...>
> >
> > I looked for references the error, and it says (according to this note), that NFD is not running.
> >
> > I have configured the node as follows.
> >
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Router Name: /cs/memphis/rtr0
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Site Name: /edu/memphis
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Network: /ndn
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Router Prefix: /ndn/edu/memphis/cs/memphis/rtr0
> > 0s 0 ConfParameter:writeLog(): [DEBUG] ChronoSync sync Prefix: /ndn/NLSR/sync
> > 0s 0 ConfParameter:writeLog(): [DEBUG] ChronoSync LSA prefix: /ndn/NLSR/LSA
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Hello Interest retry number: 10
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Hello Interest resend second: 1
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Info Interest interval: 60
> > 0s 0 ConfParameter:writeLog(): [DEBUG] LSA refresh time: 1800
> > 0s 0 ConfParameter:writeLog(): [DEBUG] LSA Interest lifetime: 4 seconds
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Router dead interval: 3600
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Max Faces Per Prefix: 3
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Hyperbolic Routing: 0
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Hyp R: 123.45
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Hyp theta: 1.45
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Log Directory:
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Seq Directory:
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Adjacency LSA build interval: 5
> > 0s 0 ConfParameter:writeLog(): [DEBUG] First Hello Interest interval: 10
> > 0s 0 ConfParameter:writeLog(): [DEBUG] Routing calculation interval: 15
> > 0s 0 AdjacencyList:writeLog(): [DEBUG] -------Adjacency List--------
> > 0s 0 AdjacencyList:writeLog(): [DEBUG] Number of neighbors: 1
> > 0s 0 Adjacent:writeLog(): [DEBUG] Adjacent : /toNode
> > 0s 0 Adjacent:writeLog(): [DEBUG] Connecting FaceUri: udp://cs.com
> > 0s 0 Adjacent:writeLog(): [DEBUG] Link Cost: 20
> > 0s 0 Adjacent:writeLog(): [DEBUG] Status: 0
> > 0s 0 Adjacent:writeLog(): [DEBUG] Interest Timed out: 0
> > 0s 0 NlsrApp:initialize(): [DEBUG] Default NLSR identity: /
> > 0s 0 NlsrApp:setInfoInterestFilter(): [DEBUG] Setting interest filter for name: /ndn/edu/memphis/cs/memphis/rtr0
> > 0s 0 NlsrApp:setLsaInterestFilter(): [DEBUG] Setting interest filter for name: /ndn/NLSR/LSA/
> >
> > Can you please elaborate.
> >
> > /anil.
> >
> 
> 





More information about the ndnSIM mailing list