[ndnSIM] Question about updating name prefix list of the routers

Muhammad Hosain Abdollahi Sabet mhasabet at gmail.com
Mon Mar 20 11:53:26 PDT 2017


Ashlesh,

If the face is the problem, so how nlsrc is working?
Nlsrc::sendNamePrefixUpdate uses another face for expressing interest?

Secondly, if these commands only work in local scope, then no external
application may use them for advertising and withdrawing prefixes, right?

Thanks,
Sabet

On 20 Mar 2017 9:31 pm, "Ashlesh Gawande (agawande)" <agawande at memphis.edu>
wrote:

> So NLSR is listening for advertise and withdraw interests (on its face to
> NFD, ex: face 260).
>
> An application sends an interest to NFD (on its face to NFD, ex: face 265).
>
> NFD forwards the interest from the application to NLSR.
>
>
> There should not be any specific face.
>
>
> You can also try to call https://github.com/named-data/NLSR/blob/
> feae5574b8b62ca2dff9991d8bacab48e4737b6a/src/update/prefix-
> update-processor.cpp#L68
>
> directly instead of trying to send an interest - if you want to do it from
> within NLSR instead (i.e. from NlsrExec). Might have to expose the
> function.
>
>
> Ashlesh
> ------------------------------
> *From:* Mahsa Aghajani <mahsa.aghajani at gmail.com>
> *Sent:* Monday, March 20, 2017 12:41:51 PM
> *To:* Ashlesh Gawande (agawande)
> *Cc:* Alex Afanasyev; ndnsim; Muhammad Hosain Abdollahi Sabet
> *Subject:* Re: [ndnSIM] Question about updating name prefix list of the
> routers
>
> Yes m_face is the face which is passed to NLSR, if the interest for
> advertise and withdraw commands should be sent from another face, how
> should it be related to NLSR? I mean is there a specific face for these
> kind of interest packets?
>
> On Mar 20, 2017 18:02, "Ashlesh Gawande (agawande)" <agawande at memphis.edu>
> wrote:
>
>> Security is off by default in nlsrSIM (https://github.com/3rd-ndn-ha
>> ckathon/ndnSIM-NLSR/blob/master/examples/ndn-nlsr-confgen.cpp#L405), so
>> that should not be a problem.
>>
>> So this m_face, is it the same face that is passed to NLSR?
>>
>> That may be a problem. Since you are sending the interest out of that
>> face and NLSR is listening for request on the same face, NFD would not
>> forward the interest back to the same face. Hence interest reject message
>> from NFD.
>>
>>
>> Ashlesh
>> ------------------------------
>> *From:* Muhammad Hosain Abdollahi Sabet <mhasabet at gmail.com>
>> *Sent:* Saturday, March 18, 2017 7:08:47 AM
>> *To:* Ashlesh Gawande (agawande)
>> *Cc:* ndnsim; Alex Afanasyev; Mahsa Aghajani
>> *Subject:* Re: [ndnSIM] Question about updating name prefix list of the
>> routers
>>
>>
>> I executed the following code but still after simulation the desired prefix is not in FIB,
>>
>> according to log, the interest gets rejected.
>>
>>
>>
>> void
>>> NlsrExec::advertise()
>>> {
>>> //siteIdentity = ndn::Name(site).appendVersion();
>>> //opIdentity = ndn::Name(siteIdentity).append
>>> (ndn::Name(operator)).appendVersion();
>>> std::cout<< "I was called"<<std::endl;
>>> m_nlsr.getPrefixUpdateProcessor().enable();
>>> ndn::nfd::ControlParameters parameters;
>>> parameters.setName("/prefix/to/advertise/");
>>> ndn::Name advertiseCommand("/localhost/nlsr/prefix-update/advertise");
>>> advertiseCommand.append(parameters.wireEncode());
>>> ndn::Interest advertiseInterest(advertiseCommand);
>>> advertiseInterest.setMustBeFresh(true);
>>> m_keyChain.sign(advertiseInterest);
>>> m_face.expressInterest(advertiseInterest,
>>> std::bind([] { }),
>>> std::bind([] { }));
>>> }
>>
>>
>>
>> The log corresponding to node 5 :
>>
>> 31s 5 nfd.Forwarder:onIncomingInterest(): [DEBUG] onIncomingInterest
>>> face=260 interest=/localhost/nlsr/prefix-update/advertise/h%19%07%17%
>>> 08%06prefix%08%02to%08%09advertise/y%18/%AB%DD%9E%8EO%EAQ%
>>> 27/%164%1B%01%01%1C%2F%07-%08%05dummy%08%03key%08%03KEY%08%
>>> 11ksk-1418600391050%08%07ID-CERT/%17%FD%01%00%93%15%09Iy%
>>> 9E%B7%9C%D3%C1%BFa%89%D5%D9%CA%F2%B0%14%AEr%7C%1F%8F%F5%
>>> B1p%D6%9B%8F%F8%D7-%BC%92o%7Dw%96F%EA%D4%7D%90%BCz%EB%E2%
>>> 03%93%B1%D2b%EC%9D%FF%9C%9C%2A%14%7D%23%CA%29%3D%15%1A%
>>> 40B%2CY3%8A%F7%C0k%C4%9C%F3%C4%99%A4%1A%60%F5%28%7DL%EFC%
>>> 7D%BD%7D%00Q%EEA%F5%25%80%CE%E6dOuT%F3%B2%99%9A%0F%93%9A%
>>> 28%1D%FE%12%8A%E0%C1%02%EB%A45R%88%ACD%1AD%82%97O_%A8%D8%9Fg
>>> 8%A8d%B6b%99%BD%96%3C%F5%86%09%5C%97k%8F%AE%E0%60%E7%23%
>>> 98j%EE%C1%B0%14%BEF%2C%FB%A7%27s%E4%F3%263%BA%99%D4%018%A8%
>>> F2%9E%87%E0q%0B%25D%075%88%ABg%27V%0E%B5%B5%E8%27%B4I%DC%B8H
>>> 1%FF%99H%AB%11%B4%A0%DF%8Am%FFCi2%A7%BCc%9D%0F%E0%9546%
>>> 25K%3E6%BD%81%91%0B%91%9F%3A%04%A2D%28%19%A18%21O%25Y%8AH%C2
>>> 31s 5 nfd.Forwarder:onContentStoreMiss(): [DEBUG] onContentStoreMiss
>>> interest=/localhost/nlsr/prefix-update/advertise/h%19%07%17%
>>> 08%06prefix%08%02to%08%09advertise/y%18/%AB%DD%9E%8EO%EAQ%
>>> 27/%164%1B%01%01%1C%2F%07-%08%05dummy%08%03key%08%03KEY%08%
>>> 11ksk-1418600391050%08%07ID-CERT/%17%FD%01%00%93%15%09Iy%
>>> 9E%B7%9C%D3%C1%BFa%89%D5%D9%CA%F2%B0%14%AEr%7C%1F%8F%F5%
>>> B1p%D6%9B%8F%F8%D7-%BC%92o%7Dw%96F%EA%D4%7D%90%BCz%EB%E2%
>>> 03%93%B1%D2b%EC%9D%FF%9C%9C%2A%14%7D%23%CA%29%3D%15%1A%
>>> 40B%2CY3%8A%F7%C0k%C4%9C%F3%C4%99%A4%1A%60%F5%28%7DL%EFC%
>>> 7D%BD%7D%00Q%EEA%F5%25%80%CE%E6dOuT%F3%B2%99%9A%0F%93%9A%
>>> 28%1D%FE%12%8A%E0%C1%02%EB%A45R%88%ACD%1AD%82%97O_%A8%D8%9Fg
>>> 8%A8d%B6b%99%BD%96%3C%F5%86%09%5C%97k%8F%AE%E0%60%E7%23%
>>> 98j%EE%C1%B0%14%BEF%2C%FB%A7%27s%E4%F3%263%BA%99%D4%018%A8%
>>> F2%9E%87%E0q%0B%25D%075%88%ABg%27V%0E%B5%B5%E8%27%B4I%DC%B8H
>>> 1%FF%99H%AB%11%B4%A0%DF%8Am%FFCi2%A7%BCc%9D%0F%E0%9546%
>>> 25K%3E6%BD%81%91%0B%91%9F%3A%04%A2D%28%19%A18%21O%25Y%8AH%C2
>>> 31s 5 nfd.Forwarder:onContentStoreMiss(): [LOGIC] onContentStoreMiss
>>> noLinkObject
>>> 31s 5 nfd.Forwarder:onInterestReject(): [DEBUG] onInterestReject
>>> interest=/localhost/nlsr/prefix-update/advertise/h%19%07%17%
>>> 08%06prefix%08%02to%08%09advertise/y%18/%AB%DD%9E%8EO%EAQ%
>>> 27/%164%1B%01%01%1C%2F%07-%08%05dummy%08%03key%08%03KEY%08%
>>> 11ksk-1418600391050%08%07ID-CERT/%17%FD%01%00%93%15%09Iy%
>>> 9E%B7%9C%D3%C1%BFa%89%D5%D9%CA%F2%B0%14%AEr%7C%1F%8F%F5%
>>> B1p%D6%9B%8F%F8%D7-%BC%92o%7Dw%96F%EA%D4%7D%90%BCz%EB%E2%
>>> 03%93%B1%D2b%EC%9D%FF%9C%9C%2A%14%7D%23%CA%29%3D%15%1A%
>>> 40B%2CY3%8A%F7%C0k%C4%9C%F3%C4%99%A4%1A%60%F5%28%7DL%EFC%
>>> 7D%BD%7D%00Q%EEA%F5%25%80%CE%E6dOuT%F3%B2%99%9A%0F%93%9A%
>>> 28%1D%FE%12%8A%E0%C1%02%EB%A45R%88%ACD%1AD%82%97O_%A8%D8%9Fg
>>> 8%A8d%B6b%99%BD%96%3C%F5%86%09%5C%97k%8F%AE%E0%60%E7%23%
>>> 98j%EE%C1%B0%14%BEF%2C%FB%A7%27s%E4%F3%263%BA%99%D4%018%A8%
>>> F2%9E%87%E0q%0B%25D%075%88%ABg%27V%0E%B5%B5%E8%27%B4I%DC%B8H
>>> 1%FF%99H%AB%11%B4%A0%DF%8Am%FFCi2%A7%BCc%9D%0F%E0%9546%
>>> 25K%3E6%BD%81%91%0B%91%9F%3A%04%A2D%28%19%A18%21O%25Y%8AH%C2
>>> 31.1s 5 nfd.Forwarder:onInterestFinalize(): [DEBUG] onInterestFinalize
>>> interest=/localhost/nlsr/prefix-update/advertise/h%19%07%17%
>>> 08%06prefix%08%02to%08%09advertise/y%18/%AB%DD%9E%8EO%EAQ%
>>> 27/%164%1B%01%01%1C%2F%07-%08%05dummy%08%03key%08%03KEY%08%
>>> 11ksk-1418600391050%08%07ID-CERT/%17%FD%01%00%93%15%09Iy%
>>> 9E%B7%9C%D3%C1%BFa%89%D5%D9%CA%F2%B0%14%AEr%7C%1F%8F%F5%
>>> B1p%D6%9B%8F%F8%D7-%BC%92o%7Dw%96F%EA%D4%7D%90%BCz%EB%E2%
>>> 03%93%B1%D2b%EC%9D%FF%9C%9C%2A%14%7D%23%CA%29%3D%15%1A%
>>> 40B%2CY3%8A%F7%C0k%C4%9C%F3%C4%99%A4%1A%60%F5%28%7DL%EFC%
>>> 7D%BD%7D%00Q%EEA%F5%25%80%CE%E6dOuT%F3%B2%99%9A%0F%93%9A%
>>> 28%1D%FE%12%8A%E0%C1%02%EB%A45R%88%ACD%1AD%82%97O_%A8%D8%9Fg
>>> 8%A8d%B6b%99%BD%96%3C%F5%86%09%5C%97k%8F%AE%E0%60%E7%23%
>>> 98j%EE%C1%B0%14%BEF%2C%FB%A7%27s%E4%F3%263%BA%99%D4%018%A8%
>>> F2%9E%87%E0q%0B%25D%075%88%ABg%27V%0E%B5%B5%E8%27%B4I%DC%B8H
>>> 1%FF%99H%AB%11%B4%A0%DF%8Am%FFCi2%A7%BCc%9D%0F%E0%9546%
>>> 25K%3E6%BD%81%91%0B%91%9F%3A%04%A2D%28%19%A18%21O%25Y%8AH%C2 unsatisfied
>>
>>
>> Why is that so? Is it because of the signiture or something?
>>
>> ​Thanks,
>> Sabet​
>>
>>
>> On Tue, Mar 7, 2017 at 10:40 PM, Ashlesh Gawande (agawande) <
>> agawande at memphis.edu> wrote:
>>
>>> Yes, receive is just a dummy written for unit testing (
>>> https://github.com/named-data/ndn-cxx/blob/master/src/util/
>>> dummy-client-face.hpp).
>>>
>>>
>>> You would use expressInterest to send an advertise/withdraw request.
>>>
>>> (https://github.com/named-data/NLSR/blob/master/tools/nlsrc.cpp#L158)
>>>
>>>
>>> The advertise/withdraw commands are only accepted on localhost (
>>> https://redmine.named-data.net/projects/nlsr/wiki/NLSR_Management).
>>>
>>> For example, nlsrc issues an advertise interest to NFD, which gives it
>>> to NLSR (since NLSR is listening for it).
>>> Then NLSR can respond appropriately.
>>>
>>> Ashlesh
>>> ------------------------------
>>> *From:* Muhammad Hosain Abdollahi Sabet <mhasabet at gmail.com>
>>> *Sent:* Tuesday, March 7, 2017 1:04:04 PM
>>> *To:* Ashlesh Gawande (agawande)
>>> *Cc:* ndnsim; Alex Afanasyev; Mahsa Aghajani
>>>
>>> *Subject:* Re: [ndnSIM] Question about updating name prefix list of the
>>> routers
>>>
>>>
>>> Ashlesh,
>>>
>>> How about using expressInterest? Does nlsr respond to interest of local
>>> scope like nfd? If so, there is no need to have a receive, right?
>>>
>>> Thanks,
>>> Sabet
>>> On Mar 6, 2017 10:48 PM, "Ashlesh Gawande (agawande)" <
>>> agawande at memphis.edu> wrote:
>>>
>>>> face->receive is for the unit tests (written for testing purpose).
>>>> Remove it.
>>>>
>>>> After that call whatever the equivalent of face->processEvents is in
>>>> ndnSIM (I am not familiar with ndnSIM).
>>>>
>>>>
>>>> Also look at nlsrc tools - which is a real application to send
>>>> advertise/withdraw command and would be closer to what you want than the
>>>> test (however, one thing missing in nlsrc is that it will sign the interest
>>>> with default identity - so you have to make sure that default identity is
>>>> set to operator to do the advertise/withdraw request This should not matter
>>>> if security is turned off in nlsr.conf file - iirc ndnSIM-NLSR has it
>>>> turned off).
>>>>
>>>> (https://github.com/named-data/NLSR/tree/master/tools)
>>>>
>>>> But yes, to advertise/withdraw prefix this is the functionality you
>>>> would use.
>>>>
>>>>
>>>> Ashlesh
>>>> ------------------------------
>>>> *From:* Mahsa Aghajani <mahsa.aghajani at gmail.com>
>>>> *Sent:* Monday, March 6, 2017 12:47:00 PM
>>>> *To:* Alex Afanasyev
>>>> *Cc:* Ashlesh Gawande (agawande); ndnsim; Anil Jangam
>>>> *Subject:* Re: [ndnSIM] Question about updating name prefix list of
>>>> the routers
>>>>
>>>> The error I got is that face class does not have a member receive().
>>>> I do not know exactly how to send the cammand advertise/withdraw.
>>>> Thank you a lot dear Alex for your attention.
>>>>
>>>> On Mar 6, 2017 22:11, "Alex Afanasyev" <aa at cs.ucla.edu> wrote:
>>>>
>>>>> Dear Mahsa,
>>>>>
>>>>> Can you give a bit more details on what errors you're getting?  What
>>>>> exactly is not working when you trying to send the command?
>>>>>
>>>>> --
>>>>> Alex
>>>>>
>>>>> On Mar 5, 2017, at 5:53 AM, Mahsa Aghajani <mahsa.aghajani at gmail.com>
>>>>> wrote:
>>>>>
>>>>> Dear ndnSIM users
>>>>>
>>>>> I want to update name prefix lists of routers during a simulation
>>>>> including adding/removing some name  prefixes to/from a router. Should I
>>>>> use advertise or withdraw functions of NLSR for doing this?
>>>>> If so, how can I use these functions in ndnSIM-NLSR? I have written
>>>>> this code in
>>>>> ndn-nlsr-exec.cpp file, but I got some errors relating to sending
>>>>> interest from face :
>>>>>
>>>>> void
>>>>> Nlsr::withdraw()
>>>>> {
>>>>>   m_nlsr.getPrefixUpdateProcessor().updateProcessor.enable();
>>>>>
>>>>>   ndn::nfd::ControlParameters parameters;
>>>>>   parameters.setName("/prefix/to/advertise/");
>>>>>
>>>>>   ndn::Name withdrawCommand("/localhost/nlsr/prefix-update/withdraw");
>>>>>   withdrawCommand.append(parameters.wireEncode());
>>>>>
>>>>>   shared_ptr<Interest> withdrawInterest =
>>>>> make_shared<Interest>(withdrawCommand);
>>>>>   keyChain.signByIdentity(*withdrawInterest, opIdentity);
>>>>>
>>>>>   face->receive(*withdrawInterest);
>>>>>   face->processEvents(ndn::time::milliseconds(1));
>>>>> }
>>>>>
>>>>> Thanks and regards.
>>>>>
>>>>> Mahsa Aghajani
>>>>> M.Sc. Student
>>>>> Department of Computer Engineering
>>>>> Sharif University of Technology
>>>>>
>>>>> _______________________________________________
>>>>> 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/20170320/fe60acf6/attachment-0001.html>


More information about the ndnSIM mailing list