[ndnSIM] structure of fib in ndnsim

yao hu huyao0107 at gmail.com
Sat Mar 16 04:42:06 PDT 2013


Hi Alex,

Thanks for your advice. I think I would like to store the counter into
fib:Entry,
is that ok? Another question is how to get numerical face information (0,
1, 2... which is convenient for storage) from Ptr<Face> type?

Regards,
huyao


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

> Hi huyao,
>
> You should not need to have multiple face entries, if you just want to
> record number of times you want to forward interest on a specific face.
>  Ideally, this information should be stored somewhere in FaceMetric
> (model/fib/ndn-fib-entry.h/cc).  Unfortunately, there is no "extensible"
> way to add new parameter to FaceMetric, but it is on my list of future
> modifications (the implementation plan is to have some sort of "tags" with
> any custom info that you can attach to a FIB entry or specific Face in FIB
> entry).
>
> For now, you can directly add the counter to FaceMetric class and add
> appropriate accessor methods.  And then use this methods to track either
> number of times a face was "added" to FIB.
>
> ---
> Alex
>
> On Mar 15, 2013, at 12:20 PM, yao hu <huyao0107 at gmail.com> wrote:
>
> Hi Alex,
>
> Yes, that is the usual thing for fib entry. What I think is If I use Add
> or AddRoute call once to add one ndn route, the face will be recorded once.
> If I use the same call twice, the face will be recorded twice... Then I
> would like I could modify or adjust the the current forwarding strategy to
> forward the related interests from the specific face according to the
> `times` this face appears in the fib entry. Is there any possibility to do
> such a thing in the current ndnsim?
>
> Thanks very much!
>
> Regards,
> huyao
>
>
> 2013/3/16 Alex Afanasyev <alexander.afanasyev at ucla.edu>
>
>> Hi huyao,
>>
>> PIT also has a limited API to lookup (only using Interests and
>> ContentObjects).  So, probably this part is also should be extended, but
>> just pure prefix-based lookup should be used cautiously.
>>
>> For your second question.  What is your intended need for the same face
>> associated with the FIB entry more than once?  Can you give a specific
>> example?  For me it is fundamental that FIB entry has only one reference to
>> a specific face (AddRoute call "adding" the same face will "rerrange" this
>> face based on the specified metric).  The forwarding strategy can "re-use"
>> the same face many times, if it feels that is appropriate.
>>
>> ---
>> Alex
>>
>> On Mar 15, 2013, at 10:48 AM, yao hu <huyao0107 at gmail.com> wrote:
>>
>> 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
>>>
>>>
>>>
>> _______________________________________________
>> ndnSIM mailing list
>> ndnSIM at lists.cs.ucla.edu
>> 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/3bc4e7f4/attachment.html>


More information about the ndnSIM mailing list