<div dir="ltr">Hi Spyridon.<div><br></div><div>Thank you for your comments. They are elaborate! I have added few further notes. </div><div><br></div><div>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.</div><div><br></div><div>I will read the technical report. </div><div><br></div><div>/anil.</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 24, 2015 at 8:29 PM, Spyridon (Spyros) Mastorakis <span dir="ltr"><<a href="mailto:spiros.mastorakis@gmail.com" target="_blank">spiros.mastorakis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello Anil,<br>
<br>
I will try to answer your questions:<br>
<br>
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:<br>
<br>
<a href="http://named-data.net/publications/techreports/ndn-0028-1-ndnsim-v2/" target="_blank">http://named-data.net/publications/techreports/ndn-0028-1-ndnsim-v2/</a><br>
<span class=""><br>
> 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.<br>
<br>
</span>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.<br></blockquote><div><br></div><div>[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. </div><div>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?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
> 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?<br>
<br>
</span>What do you mean by “all interfaces”? Application faces, NFD faces, NetDeviceFaces?<br></blockquote><div><br></div><div>[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?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
> 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?<br>
<br>
</span>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.<br></blockquote><div><br></div><div>[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?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Hope that this helps.<br>
<br>
--<br>
Spyridon (Spyros) Mastorakis<br>
Personal Website: <a href="http://cs.ucla.edu/~mastorakis/" target="_blank">http://cs.ucla.edu/~mastorakis/</a><br>
Internet Research Laboratory<br>
PhD Computer Science<br>
UCLA<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div></div>