[ndnSIM] structure of fib in ndnsim

Alex Afanasyev alexander.afanasyev at ucla.edu
Fri Mar 15 09:48:06 PDT 2013


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 > &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.html with 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 () 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
> _______________________________________________
> 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/20130315/27b011a2/attachment.html>


More information about the ndnSIM mailing list