[ndnSIM] structure of fib in ndnsim

yao hu huyao0107 at gmail.com
Sat Mar 16 19:04:51 PDT 2013


Hi Alex,

I see. Thanks a lot.

Now I am in the method ForwardingStrategy::DidReceiveSolicitedData(), I
want to call the method AddRoute(), but I do not know how to pass the first
parameter--Ptr<Node> node. Could you please give an example?

Regards,
huyao

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

> Hi huyao,
>
> Sure, go ahead and add the counter.  I will let you know when I generalize
> forwarding-strategy-specific storage in FIBs.
>
> To get a unique face ID of the face, you can use GetId () method of Face
> class (
> http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_face.html#af65b04aa5f75e24c9e73e0d60bf397a2).
>  Just in case, this ID is just a unique numerical ID of the face on the
> specific node and doesn't imply anything else (e.g., face with ID 2 doesn't
> mean there are 3 faces on the node).
>
> ---
> Alex
>
> On Mar 16, 2013, at 4:42 AM, yao hu <huyao0107 at gmail.com> wrote:
>
> 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
>>
>>
>>
> _______________________________________________
> 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/20130317/9e749979/attachment.html>


More information about the ndnSIM mailing list