[ndnSIM] How to select multiple faces to send Interest/Data?

Anil Jangam anilj.mailing at gmail.com
Wed Mar 25 10:31:36 PDT 2015

Hi Spyros,

Kindly please note that I'm using ndnSIM 1.0.

On Mar 24, 2015 10:29 PM, "Anil Jangam" <anilj.mailing at gmail.com> wrote:

> Hi Spyridon.
> Thank you for your comments. They are elaborate! I have added few further
> notes.
> I am writing a simulation for a protocol where multiple nodes are
> involved. In my topology, a given node may be connected to multiple other
> nodes. I have written an application (derives from "ns3::ndn::App" class),
> which is installed on node. Right now, I am more thinking from this
> application perspective, hence my earlier email.
> I will read the technical report.
> /anil.
> On Tue, Mar 24, 2015 at 8:29 PM, Spyridon (Spyros) Mastorakis <
> spiros.mastorakis at gmail.com> wrote:
>> Hello Anil,
>> I will try to answer your questions:
>> First of all, the application face is different than the NetDevice Face,
>> which is used for the connection among the simulated nodes. Both of them
>> are realizations of the NFD Face class. The NFD Face class is the base
>> class, which is used during the Interest/Data processing from NFD. For
>> further details, you can take a look at our Technical Report:
>> http://named-data.net/publications/techreports/ndn-0028-1-ndnsim-v2/
>> > In this custom-app.cc code (line: 88), I think it is sending the
>> Interest on face created by the application (ndn-app). However, how the
>> scenario is handled where there are more than one faces on given node? How
>> a particular face is selected to send the Interest on? In my simulation
>> setup, I have multiple faces on given node.
>> Each application, that you will define in a simulation scenario using the
>> AppHelper, will have a face associated with it. In this way, an Interest
>> packet will be sent out of this application face to NFD for further
>> processing and then to other nodes using the netDeviceFace. I do not think
>> that there are any reasons to have multiple faces for the same application
>> instance on a single node. However, you can install multiple application
>> instances on the same node.
> [anil] Ok. "more than one faces on given node" - I was talking about when
> a node is connected to more than one remote nodes. So if I understood you
> correctly, there will be multiple netDeviceFace(s) depending on how node is
> connected to other nodes.
> I agree that there is no need to have more than one application faces
> between application and NFD. However, if I have to send an Interest to
> specific node, can't I use a specific netDeviceFace instead of depending on
> NFD and FIB entries? Is that possible?
>> > When Interest/Data is received, a respective handler is called (line:
>> 93 or 116). I believe this handler is called for all Interests/Data
>> messages received from all interface, correct? It is the application, based
>> on the Interest name, carries out different processing as per the
>> application context. Am I correct?
>> What do you mean by “all interfaces”? Application faces, NFD faces,
>> NetDeviceFaces?
> [anil] I meant the Interest/Data messages received from remote devices. So
> it is netDeviceFace. But now, I see that these handlers (OnInterest, and
> OnData) are application level handlers (point of entry), and the lower
> layer (e.g. NFD) is going to post Interest/Data messages to the application
> over application face. Application then handle/process these Interest/Data
> depending on the "name"space, correct?
>> > I saw in one of the application code, an ExpressInterest() API, where
>> one can specify the exact call back to handle Data. However in the above
>> code, this looks like abstracted out. Is it still possible to use the
>> ExpressInterest API? To put it other words, I did not understand how
>> Interest is actually being sent out to the face. How does this works in the
>> above sample code?
>> An Interest starting from the application face will be send to NFD for
>> further processing. If there is a FIB entry for the expressed name prefix,
>> the interest will be sent to another node.
> [anill] I was more concerned about the Ingress Interest/Data message. So
> to extend my above comment, when application receives Interest/Data
> message, the OnInterest/OnData is called by the simulator framework
> respectively, and/or we can specify the function to be called back - on
> receiving Interest/Data - by using ExpressInterest() API. Is this correct?
>> Hope that this helps.
>> --
>> Spyridon (Spyros) Mastorakis
>> Personal Website: http://cs.ucla.edu/~mastorakis/
>> Internet Research Laboratory
>> PhD Computer Science
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20150325/39f92ef6/attachment.html>

More information about the ndnSIM mailing list