[ndnSIM] structure of fib in ndnsim

yao hu huyao0107 at gmail.com
Fri Mar 15 10:48:16 PDT 2013


Hi Alex,

Thanks for your clarification. I have understood what you said. It was my
misunderstanding.

Yes. I looked into the ndnsim API and felt a little curious that why FIB
does not have a lookup functionality like PIT. I really appreciate if you
can provide this functionality. Thanks very much!

Besides, regarding the fib structure, I have one more question. In the
default fib structure, one specific face (like face 1) in one fib entry
appears just once. If I use Add() or AddRoute() to add a same ndn route
twice or more, face 1 in this fib entry is still only one. My question is,
is there a possibility or a way to record the `twice` or more? A very
direct thought is could I store one specific face twice or more in one fib
entry? Or are there any other ways to do such a behavior?

Thanks for your answer in advance!

Regards,
huyao


2013/3/16 Alex Afanasyev <alexander.afanasyev at ucla.edu>

> Hi huyao,
>
> fib::Entry object associated with exactly one prefix, so RemoveFace method
> on fib::Entry will not have impact on any other entries.
>
> Let me show an example:
>
> # step one: find a FIB entry for the prefix associated with Interest
> Ptr<fib::Entry> entry = fib->LongestPrefixMatch (interest);
>
> # remove a specific face
> entry->RemoveFace (face_to_remove);
>
> ---
>
> This will not impact any other FIB entries.
>
> I just realized that the current FIB interface doesn't provide direct way
> to do lookup just using Name (=NameComponents).  But it would be trivial to
> add this functionality, as underlying data structures fully support that.
>  Let me know if you need it. (Alternatively, you can also enumerate all FIB
> entries using Begin/End/Next methods and find the one you need, but it can
> be too inefficient.)
>
> ---
> Alex
>
> On Mar 15, 2013, at 1:33 AM, yao hu <huyao0107 at gmail.com> wrote:
>
> Hi Alex,
>
> Thanks for your explanation!
>
> I am sorry I still have the perplexity. I saw that fib::Entry->RemoveFace
> call just has one parameter (const Ptr< Face<http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_face.html> >
> &face) without relation to some specific prefix, so I guess if I want to
> delete one specific face from one specific prefix, it will have the same
> impact to other prefixes which also have the face.
>
> My intention is to delete one specific face from a specific prefix, while
> any other prefix still retains the face if  it has. Is it feasible in the
> current ndnsim? If not, how do I do to implement such a functionality? Or
> my understanding for this issue has some error?
>
> Regards,
> huyao
>
>
> 2013/3/15 Alex Afanasyev <alexander.afanasyev at ucla.edu>
>
>> My small correction :). I meant that it is forwarding strategy job to
>> pick a particular face from FIB entry.
>>
>> ---
>> Alex
>>
>> On Mar 14, 2013, at 7:55 PM, Alex Afanasyev <alexander.afanasyev at ucla.edu>
>> wrote:
>>
>> Hi huyao,
>>
>> You are right, for the single prefix there will be only one FIB entry
>> created and it is forwarding strategy job to pick a particular one to
>> forward an Interest in this prefix.
>>
>> There is an interface in fib::Entry to remove a specific face from s
>> specific FIB entry.  You can also check recent conversation
>> http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-March/000242.htmlwith more details about that.
>>
>>
>> ---
>> Alex
>>
>> On Mar 14, 2013, at 7:28 PM, yao hu <huyao0107 at gmail.com> wrote:
>>
>> a supplement.. If so, is there a way to delete just some face like face 0
>> from the fib entry with the prefix /data without deleting face 1?
>>
>> Thanks for your reply!
>>
>>
>> 2013/3/15 yao hu <huyao0107 at gmail.com>
>>
>>> Dear ndnsimers,
>>>
>>> Assume that there is an existing fib entry with the prefix /data, face 0
>>> in some specific node. Now by using the function Add() or AddRoute(), a new
>>> fib entry will be added with the same prefix /data, but with the different
>>> face 1. So I wonder in ndnsim, they are counted as two fib entries in FIB
>>> or just seemed as one. For my understanding, the answer is the latter.
>>> Here, in Fib class, GetSize<http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_fib.html#a93a184d9fdc1ace4ea82647c5834ff9c> ()
>>> still equals to 1. Am I right?
>>>
>>> Regards,
>>> huyao
>>>
>>
>> _______________________________________________
>> ndnSIM mailing list
>> ndnSIM at lists.cs.ucla.edu
>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim
>>  <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>
>>
>>  <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/20130316/a2c23bba/attachment.html>


More information about the ndnSIM mailing list