From mahsa.aghajani at gmail.com Tue Sep 6 02:42:45 2016 From: mahsa.aghajani at gmail.com (Mahsa Aghajani) Date: Tue, 6 Sep 2016 14:12:45 +0430 Subject: [Mini-NDN] Evaluate a routing protocol in mini-ndn Message-ID: I am an MSc student in the Department of Computer Engineering, Sharif University of Technology, Tehran, Iran. I am writing to ask whether I can evaluate a routing protocol other than nlsr with mini-ndn or not? In a positive case, any advice is greatly appreciated. -- Yours sincerely, Mahsa Aghajani M.Sc. student Performance and Dependability Laboratory (PDL) Department of Computer Engineering Sharif University of Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: From agawande at memphis.edu Tue Sep 6 07:44:25 2016 From: agawande at memphis.edu (Ashlesh Gawande (agawande)) Date: Tue, 6 Sep 2016 14:44:25 +0000 Subject: [Mini-NDN] Evaluate a routing protocol in mini-ndn In-Reply-To: References: Message-ID: Yes you can test your own routing protocol. Basically we start NLSR on each node: https://github.com/named-data/mini-ndn/blob/master/bin/minindn#L322 You can comment all those lines out and put your routing protocol in there. Also see https://github.com/named-data/mini-ndn/blob/master/ndn/nlsr.py to see the NLSR object and how it is run (line 49). NLSR is just that the binary (nlsr) is installed in the system and we call it from within Mini-NDN. Ashlesh ________________________________ From: Mini-NDN on behalf of Mahsa Aghajani Sent: Tuesday, September 6, 2016 4:42:45 AM To: mini-ndn at lists.cs.ucla.edu Subject: [Mini-NDN] Evaluate a routing protocol in mini-ndn I am an MSc student in the Department of Computer Engineering, Sharif University of Technology, Tehran, Iran. I am writing to ask whether I can evaluate a routing protocol other than nlsr with mini-ndn or not? In a positive case, any advice is greatly appreciated. -- Yours sincerely, Mahsa Aghajani M.Sc. student Performance and Dependability Laboratory (PDL) Department of Computer Engineering Sharif University of Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: From agawande at memphis.edu Wed Sep 7 08:28:11 2016 From: agawande at memphis.edu (Ashlesh Gawande (agawande)) Date: Wed, 7 Sep 2016 15:28:11 +0000 Subject: [Mini-NDN] [Ndn-interest] Run an arbitrary program on miniNDN In-Reply-To: <20160907171155.mhiffauc08ww88wc@webmail.eurecom.fr> References: <20160907171155.mhiffauc08ww88wc@webmail.eurecom.fr> Message-ID: Sorry for the delay, I have approved your request to Mini-NDN list. Yes that is the reason - you need an entry on the node b to node a. You can do a few things: 1) Use /ndn/edu/a in your producer-consumer example as they are already registered in FIB by NLSR. 2) Register prefix via nfdc register: mininet> b nfdc register /example/testApp/ udp://1.0.0.1 1.0.0.1 would be the IP of a, you can check: mininet> a ifconfig This method won't work if you are trying to register for more than one hop since nodes cannot reach non-neighbors in Mini-NDN - you can use NLSR for routing as in step 3: 3) Use nlsrc: mininet> a nlsrc advertise /example/testApp So b will automatically get the entry via NLSR. This would be the easiest I think. Ashlesh ________________________________ From: Ndn-interest on behalf of bertolin at eurecom.fr Sent: Wednesday, September 7, 2016 10:11:55 AM To: ndn-interest at lists.cs.ucla.edu Subject: [Ndn-interest] Run an arbitrary program on miniNDN Good morning to all, Waiting for my request in miniNDN list, I need to ask an advice to the community, using this mailing list. I successfully installed and tried the ndnPing / ndnPingserver commands with miniNDN, and all works. Now, next step. I would like to run my personal program in the environment, byt I am having some troubles and my poor knowledge does not help me. I wrote a simple topology composed by two nodes, a and b, connected by a link. I've already used this topology for the ping experiment so I assume that it is correct. Now I would like to put in a node the program "producer" already written in the section "examples" of ndn-cxx package availaible on the git, and the "consumer" on b node. Both programs are here: https://github.com/named-data/ndn-cxx/tree/master/examples I generated the executable and I was trying to run them into a and b. The consumer start, it express its interest for the prefix /example/testApp/randomData , but after few time the timeout expires. Making some little changing in the producer, I noticed that it successfully enter into Run() function, but it does not enter neither in onInterest callback and onRegisterFailed callback. My suspicious is that the prefix /example/testApp is not registered anywhere, because I do not see it into the tables. Indeed: The FIB table of a is: /ndn/NLSR/sync nexthops={faceid=257 (cost=0), faceid=260 (cost=10)} /localhost/nfd/rib nexthops={faceid=256 (cost=0)} /ndn/NLSR/LSA nexthops={faceid=260 (cost=10)} /ndn/broadcast/KEYS nexthops={faceid=257 (cost=0), faceid=260 (cost=10)} /ndn/NLSR/LSA/edu/%C1.Router/cs/a nexthops={faceid=257 (cost=0)} /ndn/edu/%C1.Router/cs/b nexthops={faceid=260 (cost=10)} /localhost/nfd nexthops={faceid=1 (cost=0)} /localhost/nlsr nexthops={faceid=257 (cost=0)} /ndn/edu/%C1.Router/cs/a nexthops={faceid=257 (cost=0)} The FIB table of b is: /ndn/NLSR/sync nexthops={faceid=257 (cost=0), faceid=260 (cost=10)} /localhost/nfd/rib nexthops={faceid=256 (cost=0)} /ndn/NLSR/LSA nexthops={faceid=260 (cost=10)} /ndn/broadcast/KEYS nexthops={faceid=257 (cost=0), faceid=260 (cost=10)} /ndn/edu/%C1.Router/cs/b nexthops={faceid=257 (cost=0)} /ndn/edu/a nexthops={faceid=260 (cost=10)} /localhost/nfd nexthops={faceid=1 (cost=0)} /localhost/nlsr nexthops={faceid=257 (cost=0)} /ndn/edu/%C1.Router/cs/a nexthops={faceid=260 (cost=10)} /ndn/NLSR/LSA/edu/%C1.Router/cs/b nexthops={faceid=257 (cost=0)} So I am getting wrong something I think... any advice ? Thanks to all, Matteo ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr _______________________________________________ Ndn-interest mailing list Ndn-interest at lists.cs.ucla.edu http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From agawande at memphis.edu Mon Sep 12 10:35:31 2016 From: agawande at memphis.edu (Ashlesh Gawande (agawande)) Date: Mon, 12 Sep 2016 17:35:31 +0000 Subject: [Mini-NDN] [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some information In-Reply-To: <20160912161337.acd1wlyf7oc80cco@webmail.eurecom.fr> References: <20160912161337.acd1wlyf7oc80cco@webmail.eurecom.fr> Message-ID: Your mail to Mini-NDN list bounced, because you used this email to send: bertolin at eurecom.fr instead of matteo.bertolino at eurecom.fr I have subscribed this email as well, please confirm so that I can grant permission to post. 1) For printing data: void onData(const Interest& interest, const Data& data) { std::cout << data << std::endl; std::string receivedContent = reinterpret_cast(data.getContent().value()); int receivedContentLength = data.getContent().value_size(); receivedContent = receivedContent.substr(0, receivedContentLength); std::cout << receivedContent << std::endl; } (Taken from here: https://github.com/named-data/ndn-traffic-generator/blob/master/src/ndn-traffic-client.cpp#L558) 2) PIT is not printed or logged currently. It is planned to be logged in future but cannot say when. You can modify PIT related files here: https://github.com/named-data/NFD/tree/master/daemon/table and add some logging. 3) Just have a 3 node topology. a----b----c NFD and NLSR runs on each node by default. Use NLSR on a to advertise your route to the network: mininet> a nlsrc advertise /sample Then run consumer on 'a' and producer on 'c'. If you don't want to use NLSR. You would have to create a route on 'b' using the route command so that 'a' can reach 'c'. Then you can use nfdc register to register a prefix towards c from a. In Mini-NDN a node can only reach its neighbors. Ashlesh ________________________________ From: Ndn-interest on behalf of bertolin at eurecom.fr Sent: Monday, September 12, 2016 9:13:37 AM To: ndn-interest at lists.cs.ucla.edu Cc: mini-ndn at lists.cs.ucla.edu Subject: [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some information Good morning at all and thank you again for the help that I am receiving by your community. I spent some time, without success, in trying to print the following information (I am working in miniNDN: 1) The Content of the Data. If I print the packet, I obtain: Name: /mat/try/normandie/%FC%00%05%3CO%E0%D0%FC%D7 MetaInfo: ContentType: 0, FreshnessPeriod: 10000 milliseconds Content: (size: 6) Signature: (type: 1, value_length: 256) So I manage to play with the blocks and the buffers, but the documentation is not really verbose. However, I though to write: void onData(const Interest& interest, const Data& data) { log << "Data received correctly" << std::endl; log << data << endl; //take block ndn::Block x = data.getContent(); //take buffer shared_ptr buffer = x.getBuffer(); //take string std::string content((char*)buffer.get(), 6); log << content << endl; } But on my log file I obtained just not-printable random characters! Where did I wrong? 2) the PIT table of a node. I did not find any with nfd-status and other commands. Is it possible in principle ? 3) Finallyh, I would like to concentrate here another question a bit different. Working with miniNDN, I would like to build the following topology: Consume <-------> gateway <-------> Producer. I already wrote my version of consumer and producer, with the callback onInterest, onData etc.. But with the gateway, conceptually how should I structure the program that works on this node? Thank you for you help, I say it again it so I will not fill up the mailing list with just "thank you" answers :) Matteo ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr _______________________________________________ Ndn-interest mailing list Ndn-interest at lists.cs.ucla.edu http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From Matteo.Bertolino at eurecom.fr Tue Sep 13 00:48:38 2016 From: Matteo.Bertolino at eurecom.fr (Matteo Bertolino) Date: Tue, 13 Sep 2016 09:48:38 +0200 Subject: [Mini-NDN] [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some information In-Reply-To: References: <20160912161337.acd1wlyf7oc80cco@webmail.eurecom.fr> Message-ID: <20160913094838.78o7cs2fwgk0wkog@webmail.eurecom.fr> Thank you Ashlesh Gawande and Jeff Burke. I need a clarify about the 3^ point. I would like that the intermediate note b (in a----b----c) work following the default NLSR and NFD, but I would like print "what happens". For example. "Interest packet arrived" "Interest forwarded to interface xxx" "my FIB is: yyy" "Timeout expired/Data packet arrived" Which advices could you say me in order to realize this behaviour? and so on. Have a nice day, Matteo Quoting "Ashlesh Gawande (agawande)" : > Your mail to Mini-NDN list bounced, because you used this email to send: > > bertolin at eurecom.fr instead of matteo.bertolino at eurecom.fr > I have subscribed this email as well, please confirm so that I can > grant permission to post. > > > 1) For printing data: > > > void > onData(const Interest& interest, const Data& data) > { > std::cout << data << std::endl; > > > std::string receivedContent = reinterpret_cast char*>(data.getContent().value()); > int receivedContentLength = data.getContent().value_size(); > receivedContent = receivedContent.substr(0, receivedContentLength); > std::cout << receivedContent << std::endl; > } > > (Taken from here: > https://github.com/named-data/ndn-traffic-generator/blob/master/src/ndn-traffic-client.cpp#L558) > > > 2) PIT is not printed or logged currently. It is planned to be > logged in future but cannot say when. > > You can modify PIT related files here: > https://github.com/named-data/NFD/tree/master/daemon/table > > and add some logging. > > > 3) Just have a 3 node topology. > > a----b----c > > NFD and NLSR runs on each node by default. > > Use NLSR on a to advertise your route to the network: > > mininet> a nlsrc advertise /sample > > > > Then run consumer on 'a' and producer on 'c'. > > > If you don't want to use NLSR. You would have to create a route > on 'b' using the route command so that 'a' can reach 'c'. > Then you can use nfdc register to register a prefix towards c from > a. In Mini-NDN a node can only reach its neighbors. > > > Ashlesh > > ________________________________ > From: Ndn-interest on > behalf of bertolin at eurecom.fr > Sent: Monday, September 12, 2016 9:13:37 AM > To: ndn-interest at lists.cs.ucla.edu > Cc: mini-ndn at lists.cs.ucla.edu > Subject: [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some > information > > Good morning at all and thank you again for the help that I am > receiving by your community. > I spent some time, without success, in trying to print the following > information (I am working in miniNDN: > > 1) The Content of the Data. > If I print the packet, I obtain: > Name: /mat/try/normandie/%FC%00%05%3CO%E0%D0%FC%D7 > MetaInfo: ContentType: 0, FreshnessPeriod: 10000 milliseconds > Content: (size: 6) > Signature: (type: 1, value_length: 256) > > So I manage to play with the blocks and the buffers, but the > documentation is not really verbose. However, I though to write: > > void onData(const Interest& interest, const Data& data) { > log << "Data received correctly" << std::endl; > log << data << endl; > > //take block > ndn::Block x = data.getContent(); > > //take buffer > shared_ptr buffer = x.getBuffer(); > > //take string > std::string content((char*)buffer.get(), 6); > log << content << endl; > } > > But on my log file I obtained just not-printable random characters! > Where did I wrong? > > 2) the PIT table of a node. I did not find any with nfd-status and > other commands. Is it possible in principle ? > > 3) Finallyh, I would like to concentrate here another question a bit > different. Working with miniNDN, I would like to build the following > topology: > Consume <-------> gateway <-------> Producer. > I already wrote my version of consumer and producer, with the callback > onInterest, onData etc.. But with the gateway, conceptually how should > I structure the program that works on this node? > > Thank you for you help, I say it again it so I will not fill up the > mailing list with just "thank you" answers :) > Matteo > > ------------------------------------------------------------------------------- > This message was sent using EURECOM Webmail: http://webmail.eurecom.fr > > > _______________________________________________ > Ndn-interest mailing list > Ndn-interest at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest > ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr From agawande at memphis.edu Tue Sep 13 00:59:34 2016 From: agawande at memphis.edu (Ashlesh Gawande (agawande)) Date: Tue, 13 Sep 2016 07:59:34 +0000 Subject: [Mini-NDN] [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some information In-Reply-To: <20160913094838.78o7cs2fwgk0wkog@webmail.eurecom.fr> References: <20160912161337.acd1wlyf7oc80cco@webmail.eurecom.fr> , <20160913094838.78o7cs2fwgk0wkog@webmail.eurecom.fr> Message-ID: You can run ndndump (https://github.com/named-data/ndn-tools) on each interface of node b. ndndump logs interest, data, timeout, and information about interface. To do so you can use the following code: for host in self.net.hosts: for intf in host.intfNames(): ndnDumpOutputFile = "dump.%s_%s" % (intf, str(host.intf(intf).IP())) host.cmd("ndndump -i %s > %s &" % (intf, ndnDumpOutputFile)) If you want to capture the FIB you can run nfd-status -b periodically and log it. You can also turn on NFD logs on b to see more information about NFD. In the topology file: b: _ nfd-log-level=DEBUG Ashlesh ________________________________ From: Matteo Bertolino Sent: Tuesday, September 13, 2016 2:48:38 AM To: Ashlesh Gawande (agawande) Cc: mini-ndn at lists.cs.ucla.edu Subject: Re: [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some information Thank you Ashlesh Gawande and Jeff Burke. I need a clarify about the 3^ point. I would like that the intermediate note b (in a----b----c) work following the default NLSR and NFD, but I would like print "what happens". For example. "Interest packet arrived" "Interest forwarded to interface xxx" "my FIB is: yyy" "Timeout expired/Data packet arrived" Which advices could you say me in order to realize this behaviour? and so on. Have a nice day, Matteo Quoting "Ashlesh Gawande (agawande)" : > Your mail to Mini-NDN list bounced, because you used this email to send: > > bertolin at eurecom.fr instead of matteo.bertolino at eurecom.fr > I have subscribed this email as well, please confirm so that I can > grant permission to post. > > > 1) For printing data: > > > void > onData(const Interest& interest, const Data& data) > { > std::cout << data << std::endl; > > > std::string receivedContent = reinterpret_cast char*>(data.getContent().value()); > int receivedContentLength = data.getContent().value_size(); > receivedContent = receivedContent.substr(0, receivedContentLength); > std::cout << receivedContent << std::endl; > } > > (Taken from here: > https://github.com/named-data/ndn-traffic-generator/blob/master/src/ndn-traffic-client.cpp#L558) > > > 2) PIT is not printed or logged currently. It is planned to be > logged in future but cannot say when. > > You can modify PIT related files here: > https://github.com/named-data/NFD/tree/master/daemon/table > > and add some logging. > > > 3) Just have a 3 node topology. > > a----b----c > > NFD and NLSR runs on each node by default. > > Use NLSR on a to advertise your route to the network: > > mininet> a nlsrc advertise /sample > > > > Then run consumer on 'a' and producer on 'c'. > > > If you don't want to use NLSR. You would have to create a route > on 'b' using the route command so that 'a' can reach 'c'. > Then you can use nfdc register to register a prefix towards c from > a. In Mini-NDN a node can only reach its neighbors. > > > Ashlesh > > ________________________________ > From: Ndn-interest on > behalf of bertolin at eurecom.fr > Sent: Monday, September 12, 2016 9:13:37 AM > To: ndn-interest at lists.cs.ucla.edu > Cc: mini-ndn at lists.cs.ucla.edu > Subject: [Ndn-interest] [ndn-cxx][mini-NDN][General] Printing some > information > > Good morning at all and thank you again for the help that I am > receiving by your community. > I spent some time, without success, in trying to print the following > information (I am working in miniNDN: > > 1) The Content of the Data. > If I print the packet, I obtain: > Name: /mat/try/normandie/%FC%00%05%3CO%E0%D0%FC%D7 > MetaInfo: ContentType: 0, FreshnessPeriod: 10000 milliseconds > Content: (size: 6) > Signature: (type: 1, value_length: 256) > > So I manage to play with the blocks and the buffers, but the > documentation is not really verbose. However, I though to write: > > void onData(const Interest& interest, const Data& data) { > log << "Data received correctly" << std::endl; > log << data << endl; > > //take block > ndn::Block x = data.getContent(); > > //take buffer > shared_ptr buffer = x.getBuffer(); > > //take string > std::string content((char*)buffer.get(), 6); > log << content << endl; > } > > But on my log file I obtained just not-printable random characters! > Where did I wrong? > > 2) the PIT table of a node. I did not find any with nfd-status and > other commands. Is it possible in principle ? > > 3) Finallyh, I would like to concentrate here another question a bit > different. Working with miniNDN, I would like to build the following > topology: > Consume <-------> gateway <-------> Producer. > I already wrote my version of consumer and producer, with the callback > onInterest, onData etc.. But with the gateway, conceptually how should > I structure the program that works on this node? > > Thank you for you help, I say it again it so I will not fill up the > mailing list with just "thank you" answers :) > Matteo > > ------------------------------------------------------------------------------- > This message was sent using EURECOM Webmail: http://webmail.eurecom.fr > > > _______________________________________________ > Ndn-interest mailing list > Ndn-interest at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest > ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr -------------- next part -------------- An HTML attachment was scrubbed... URL: From Matteo.Bertolino at eurecom.fr Mon Sep 19 02:36:38 2016 From: Matteo.Bertolino at eurecom.fr (Matteo Bertolino) Date: Mon, 19 Sep 2016 11:36:38 +0200 Subject: [Mini-NDN] Sending NACKs by application Message-ID: <20160919113638.4w32hrqda8oo0k8w@webmail.eurecom.fr> Good morning NDN community. I'm having some problems on sending NACKs by application. Briefly, my purpose: Suppose to have two producers and one consumer, in the middle a gateway. Both producers P1 and P2 announced the prefix /some/prefix. The cost GW - P1 is 10, the cost GW - P2 is 50. Suppose that the consumer request the file /some/prefix/file1 and that, even if P1 announced /some/prefix, it has not the file. I would like to follow a "Best-route" strategy. In this way (I already tested), the Interest reach just P that does nothing and the timeout expires. I would continue to use the Best-Route strategy yet, but with the following modification: when P understand that he has not the file, it should send a NACK packet with the reason "NoFile" for example. Then, the modified best-route strategy, will flood the Interest packet on the remaining interfaces that announced the same prefix. However, the first step is: sending a NACK packet by my personal cpp application. I did not manage to do it because I do not find an example online (actually I understood nothing of this one https://github.com/yoursunny/ndn-cxx-ext/blob/master/tools/nack-example-producer.cpp ) and the documentation ( http://named-data.net/doc/ndn-ccl-api/details/network-nack.html ) explains just how to react to NACKs. Any hints is really appreciated. Sincerely, Matteo ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr From Matteo.Bertolino at eurecom.fr Mon Sep 19 05:24:47 2016 From: Matteo.Bertolino at eurecom.fr (Matteo Bertolino) Date: Mon, 19 Sep 2016 14:24:47 +0200 Subject: [Mini-NDN] Sending NACKs by application In-Reply-To: <20160919113638.4w32hrqda8oo0k8w@webmail.eurecom.fr> References: <20160919113638.4w32hrqda8oo0k8w@webmail.eurecom.fr> Message-ID: <20160919142447.xjumar33eu8kw4kc@webmail.eurecom.fr> Updating: I successfully sent a NACK by the application. Ex. log << "I have not the file requested. Ending..." << endl; lp::Nack outNack(interest); lp::NackReason nack_reason = lp::NackReason::NONE; outNack.setReason(nack_reason); myFace.put(outNack); Now I will try to modify the Best-Route strategy properly in order to implement a broadcast interest if the best-route receive a NACK. I wrote my updating because I think that they can be useful for very beginner users like me. Meanwhile, If someone has some advices about how to implement the mechanism above and under mentioned, is really appreciated. matteo Quoting Matteo Bertolino : > Good morning NDN community. > I'm having some problems on sending NACKs by application. > > Briefly, my purpose: Suppose to have two producers and one consumer, > in the middle a gateway. Both producers P1 and P2 announced the prefix > /some/prefix. The cost GW - P1 is 10, the cost GW - P2 is 50. Suppose > that the consumer request the file /some/prefix/file1 and that, even > if P1 announced /some/prefix, it has not the file. I would like to > follow a "Best-route" strategy. In this way (I already tested), the > Interest reach just P that does nothing and the timeout expires. > > I would continue to use the Best-Route strategy yet, but with the > following modification: when P understand that he has not the file, it > should send a NACK packet with the reason "NoFile" for example. Then, > the modified best-route strategy, will flood the Interest packet on > the remaining interfaces that announced the same prefix. > > However, the first step is: sending a NACK packet by my personal cpp > application. > I did not manage to do it because I do not find an example online (actually I > understood nothing of this one > https://github.com/yoursunny/ndn-cxx-ext/blob/master/tools/nack-example-producer.cpp ) and the documentation ( http://named-data.net/doc/ndn-ccl-api/details/network-nack.html ) explains just how to > react > to > NACKs. > > Any hints is really appreciated. > Sincerely, > Matteo > > > ------------------------------------------------------------------------------- > This message was sent using EURECOM Webmail: http://webmail.eurecom.fr > > > _______________________________________________ > Mini-NDN mailing list > Mini-NDN at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr From Matteo.Bertolino at eurecom.fr Thu Sep 29 04:40:05 2016 From: Matteo.Bertolino at eurecom.fr (Matteo Bertolino) Date: Thu, 29 Sep 2016 13:40:05 +0200 Subject: [Mini-NDN] ERROR: private key doesn't exist - Signature Message-ID: <20160929134005.9cn119bhb4c4w8w8@webmail.eurecom.fr> Good morning community, I successfully issued my certification chain, but.. When I try to perform the operation, the error "Private key does not exist" block me. It would be really important for me solving this. I am using the ndn-cxx with mini, but it is possible that my error is about the concept. The topology: 1 Consumer CS (requesting /root/site1/site2) 1 Authority root AR 1 Sub Authority A1 (signed by AR) 1 Producer PR (signed by A1) (has /root/site1/site2) and a Gateway that connects all. The steps that I did are (following a guide): 1) Generate a root key: AR ndnsec-keygen /root | tee root.ndncert | ndnsec-cert-install - 2) Copy the root cert into the CS directory 3) Generate the key for the subauthority: A1 ndnsec-keygen /root/site1 > site1.req copy site1.req in AR folder 4) Generate the certificates for the subauthority, signed by AR AR ndnsec-certgen -N /root/site1 -s /root site1.req > site1.ndncert copy it into A1 folder 5) Install the certificates in A1 and AR. A1 ndnsec-cert-install -f site1.ndncert AR ndnsec-cert-install -f site1.ndncert The, exactly the same steps for the PR that is certified by the subauthority A1. 1) Generate the key for the producer: PR ndnsec-keygen /root/site1/site2 > site2.req copy site2.req in A1 folder 2) Generate the certificates for the producer, signed by A1 A1 ndnsec-certgen -N /root/site1/site2 -s /root/site1 site2.req > site2.ndncert copy it into PR folder 5) Install the certificates in A1 and PR. A1 ndnsec-cert-install -f site2.ndncert PR ndnsec-cert-install -f site2.ndncert At the end of this procedure, I think that all is correct. A confirmation is obtained launching the command: NODE ndnsec list -c Root Authority, indeed, has: [...] /root/KEY/ksk[...]/ID-CERT/[...] (identity /root) /root/KEY/site1/ksk[...]/ID-CERT/[...] (identity /root/site1) The subauthority A1 has: /root/KEY/site1/ksk[...]/ID-CERT/[...] (identity /root/site1) /root/site1/KEY/site2/ksk[...]/ID-CERT/[...] (identity /root/site1/site2) And the producer: /root/site1/KEY/site2/ksk[...]/ID-CERT/[...] (identity /root/site1/site2) Then the final steps are the advertisements: pr nlsrc advertise /root/site1/site2 ERROR: private key doesn't exist a1 nlsrc advertise /root/site1/KEY ERROR: private key doesn't exist ar nlsrc advertise /root/KEY ERROR: private key doesn't exist If I did the advertisements before all, it does not work the same later. Why, considering that the certification chain is (I think) correct? Thanks a lot, Matteo ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr From Matteo.Bertolino at eurecom.fr Thu Sep 29 06:16:57 2016 From: Matteo.Bertolino at eurecom.fr (Matteo Bertolino) Date: Thu, 29 Sep 2016 15:16:57 +0200 Subject: [Mini-NDN] ERROR: private key doesn't exist - Signature In-Reply-To: <20160929134005.9cn119bhb4c4w8w8@webmail.eurecom.fr> References: <20160929134005.9cn119bhb4c4w8w8@webmail.eurecom.fr> Message-ID: <20160929151657.zcsirc56sg8s0w40@webmail.eurecom.fr> Problem solved: it was enough reinstall the certificates root.ndncert and site1.ndncert. (probably the expired?) However, the use case below could be useful in order to create a chain of certificates. Thanks however, matteo Quoting Matteo Bertolino : > Good morning community, > I successfully issued my certification chain, but.. When I try to > perform the operation, the error "Private key does not exist" block me. > It would be really important for me solving this. > I am using the ndn-cxx with mini, but it is possible that my error is > about the concept. > > The topology: > 1 Consumer CS (requesting /root/site1/site2) > 1 Authority root AR > 1 Sub Authority A1 (signed by AR) > 1 Producer PR (signed by A1) (has /root/site1/site2) > and a Gateway that connects all. > > The steps that I did are (following a guide): > 1) Generate a root key: AR ndnsec-keygen /root | tee root.ndncert | > ndnsec-cert-install - > 2) Copy the root cert into the CS directory > 3) Generate the key for the subauthority: > A1 ndnsec-keygen /root/site1 > site1.req > copy site1.req in AR folder > 4) Generate the certificates for the subauthority, signed by AR > AR ndnsec-certgen -N /root/site1 -s /root site1.req > site1.ndncert > copy it into A1 folder > 5) Install the certificates in A1 and AR. > A1 ndnsec-cert-install -f site1.ndncert > AR ndnsec-cert-install -f site1.ndncert > > The, exactly the same steps for the PR that is certified by the > subauthority A1. > 1) Generate the key for the producer: > PR ndnsec-keygen /root/site1/site2 > site2.req > copy site2.req in A1 folder > 2) Generate the certificates for the producer, signed by A1 > A1 ndnsec-certgen -N /root/site1/site2 -s /root/site1 site2.req > > site2.ndncert > copy it into PR folder > 5) Install the certificates in A1 and PR. > A1 ndnsec-cert-install -f site2.ndncert > PR ndnsec-cert-install -f site2.ndncert > > At the end of this procedure, I think that all is correct. A > confirmation is obtained launching the command: NODE ndnsec list -c > > Root Authority, indeed, has: > [...] > /root/KEY/ksk[...]/ID-CERT/[...] (identity /root) > /root/KEY/site1/ksk[...]/ID-CERT/[...] (identity /root/site1) > > The subauthority A1 has: > /root/KEY/site1/ksk[...]/ID-CERT/[...] (identity /root/site1) > /root/site1/KEY/site2/ksk[...]/ID-CERT/[...] (identity /root/site1/site2) > > And the producer: > /root/site1/KEY/site2/ksk[...]/ID-CERT/[...] (identity /root/site1/site2) > > > Then the final steps are the advertisements: > pr nlsrc advertise /root/site1/site2 > ERROR: private key doesn't exist > > a1 nlsrc advertise /root/site1/KEY > ERROR: private key doesn't exist > > ar nlsrc advertise /root/KEY > ERROR: private key doesn't exist > > If I did the advertisements before all, it does not work the same later. > Why, considering that the certification chain is (I think) correct? > > Thanks a lot, > Matteo > > ------------------------------------------------------------------------------- > This message was sent using EURECOM Webmail: http://webmail.eurecom.fr > > > _______________________________________________ > Mini-NDN mailing list > Mini-NDN at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn ------------------------------------------------------------------------------- This message was sent using EURECOM Webmail: http://webmail.eurecom.fr From g.laterza6 at gmail.com Thu Sep 29 09:34:26 2016 From: g.laterza6 at gmail.com (Gaetano Laterza) Date: Thu, 29 Sep 2016 18:34:26 +0200 Subject: [Mini-NDN] mini-ndn RTNETLINK error and ndndump question Message-ID: Hi all, I'm starting to learn ndn protocol and mini-ndn tool. In particular I'd like to start mini-ndn with a very simple configuration, here the content of my conf file: $ cat simple.conf [nodes] a: _ b: _ [links] a:b delay=10ms In short, I'd like to observe the exchange of Interest / Data packets using ndndump. First of all, I cannot understand an error occurring during links initialization: $ sudo minindn simple.conf Parse of simple.conf done. *** Creating network *** Adding controller *** Adding hosts: a b *** Adding switches: *** Adding links: (10ms delay) *** Error: RTNETLINK answers: No such file or directory (10ms delay) *** Error: RTNETLINK answers: No such file or directory (a, b) *** Configuring hosts a b Setup time: 4 *** Starting controller c0 *** Starting 0 switches *** Starting CLI: mininet> Any idea about the Error: RTNETINK answers: No such file or directory? Here my system information: $ uname -a Linux machine 4.1.33-nrj-desktop-1rosa-x86_64 #1 SMP PREEMPT Sun Sep 18 20:20:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux So, going back to the packets exchange, through xterm I typed on node a: $ ndnpingserver /a PING SERVER /a Always on node a, I ran ndndump: $ ndndump -i a-eth0 So I ran from node b the command: $ ndnping /a PING /a content from /a: seq=2172173333986410181 time=2.51873 ms content from /a: seq=2172173333986410182 time=0.411503 ms content from /a: seq=2172173333986410183 time=0.381647 ms content from /a: seq=2172173333986410184 time=0.458184 ms [...] And on node a I can see: interest received: seq=2172173333986410181 interest received: seq=2172173333986410182 interest received: seq=2172173333986410183 interest received: seq=2172173333986410184 [...] But ndndump doesn't show any packet. Why? I also tried with: $ tcpdump -i a-eth0 -v But when I stop it, the result is: 0 packets captured 0 packets received by filter 0 packets dropped by kernel Thank you in advance for your help! Regards, Gaetano. -------------- next part -------------- An HTML attachment was scrubbed... URL: From g.laterza6 at gmail.com Fri Sep 30 02:53:43 2016 From: g.laterza6 at gmail.com (Gaetano Laterza) Date: Fri, 30 Sep 2016 11:53:43 +0200 Subject: [Mini-NDN] mini-ndn RTNETLINK error and ndndump question In-Reply-To: References: Message-ID: Thanks a lot for your answer! Ok I just tried to install it from source but the RNETLINK error persist (before I had 2.2.1 version, installed through urpmi). For now I think I'll skip this error. Then I discovered that if I open ndndump before running anything, I can see sync packets like these: 1475226664.873842 From: 1.0.0.2, To: 1.0.0.1, Tunnel Type: UDP, INTEREST: /ndn/NLSR/sync/342bf7a38a87e1cc9f608d6be1cae441483795ab9d637ba4d3cd2683cf43c582?ndn.MustBeFresh=1&ndn.Nonce=1682376082 1475226665.118037 From: 1.0.0.1, To: 1.0.0.2, Tunnel Type: UDP, INTEREST: /ndn/NLSR/sync/342bf7a38a87e1cc9f608d6be1cae441483795ab9d637ba4d3cd2683cf43c582?ndn.MustBeFresh=1&ndn.Nonce=297741341 1475226669.107222 From: 1.0.0.2, To: 1.0.0.1, Tunnel Type: UDP, INTEREST: /ndn/NLSR/sync/342bf7a38a87e1cc9f608d6be1cae441483795ab9d637ba4d3cd2683cf43c582?ndn.MustBeFresh=1&ndn.Nonce=1917123353 1475226669.473420 From: 1.0.0.1, To: 1.0.0.2, Tunnel Type: UDP, INTEREST: /ndn/NLSR/sync/342bf7a38a87e1cc9f608d6be1cae441483795ab9d637ba4d3cd2683cf43c582?ndn.MustBeFresh=1&ndn.Nonce=2448858119 1475226673.416786 From: 1.0.0.2, To: 1.0.0.1, Tunnel Type: UDP, INTEREST: /ndn/NLSR/sync/342bf7a38a87e1cc9f608d6be1cae441483795ab9d637ba4d3cd2683cf43c582?ndn.MustBeFresh=1&ndn.Nonce=1585898652 [...] But if I start ndnpingserver and try to ping from the other node, I can't see ping packets, but it continues capturing only sync packets. I didn't notice it before because if I close minindn and reopen it, ndndump doesn't show anything. I have to restart nfd to have ndndump capturing the sync packets again. I tried both your suggestions, but the behavior is exactly the same and the dump files are unpopulated. I'm starting to think I should simply switch to another os and try. Thank you again. Gaetano 2016-09-29 22:02 GMT+02:00 Ashlesh Gawande (agawande) : > What version of Mininet are you using? They recently fixed the RTNETLINK > error on Ubuntu 16.04. > > You might want to install from source if you haven't: https://github.com/ > mininet/mininet > If you did install from source and still got this error, I don't think it > should affect in any way since the program does not crash. > > > I am not sure why ndndump is not working. There is one bug for xterm: > > https://redmine.named-data.net/issues/3038 > > > In xterm, can you try export HOME=/tmp/ before running anything? > > That should fix it. > > > If not, next thing you can try is to paste the following in bin/minindn, > line 344: > > for host in self.net.hosts: > for intf in host.intfNames(): > ndnDumpOutputFile = "dump.%s_%s" % > (intf, str(host.intf(intf).IP())) > host.cmd("ndndump -i %s > %s &" % (intf, ndnDumpOutputFile)) > > > Then try to install and run and see in /tmp/ whether you have > dump files that are populated. > > > Ashlesh > ------------------------------ > *From:* Mini-NDN on behalf of > Gaetano Laterza > *Sent:* Thursday, September 29, 2016 11:34:26 AM > *To:* mini-ndn at lists.cs.ucla.edu > *Subject:* [Mini-NDN] mini-ndn RTNETLINK error and ndndump question > > Hi all, I'm starting to learn ndn protocol and mini-ndn tool. In > particular I'd like to start mini-ndn with a very simple configuration, > here the content of my conf file: > > $ cat simple.conf > [nodes] > a: _ > b: _ > [links] > a:b delay=10ms > > In short, I'd like to observe the exchange of Interest / Data packets > using ndndump. > First of all, I cannot understand an error occurring during links > initialization: > > $ sudo minindn simple.conf > Parse of simple.conf done. > *** Creating network > *** Adding controller > *** Adding hosts: > a b > *** Adding switches: > > *** Adding links: > (10ms delay) *** Error: RTNETLINK answers: No such file or directory > (10ms delay) *** Error: RTNETLINK answers: No such file or directory > (a, b) > *** Configuring hosts > a b > Setup time: 4 > *** Starting controller > c0 > *** Starting 0 switches > > *** Starting CLI: > mininet> > > Any idea about the Error: RTNETINK answers: No such file or directory? > Here my system information: > > $ uname -a > Linux machine 4.1.33-nrj-desktop-1rosa-x86_64 #1 SMP PREEMPT Sun Sep 18 > 20:20:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux > > So, going back to the packets exchange, through xterm I typed on node a: > > $ ndnpingserver /a > PING SERVER /a > > Always on node a, I ran ndndump: > > $ ndndump -i a-eth0 > > So I ran from node b the command: > > $ ndnping /a > PING /a > content from /a: seq=2172173333986410181 time=2.51873 ms > content from /a: seq=2172173333986410182 time=0.411503 ms > content from /a: seq=2172173333986410183 time=0.381647 ms > content from /a: seq=2172173333986410184 time=0.458184 ms > [...] > > And on node a I can see: > > interest received: seq=2172173333986410181 > interest received: seq=2172173333986410182 > interest received: seq=2172173333986410183 > interest received: seq=2172173333986410184 > [...] > > But ndndump doesn't show any packet. Why? I also tried with: > > $ tcpdump -i a-eth0 -v > > But when I stop it, the result is: > > 0 packets captured > 0 packets received by filter > 0 packets dropped by kernel > > Thank you in advance for your help! > Regards, > Gaetano. > -------------- next part -------------- An HTML attachment was scrubbed... URL: