From shijunxiao at email.arizona.edu Tue Nov 1 06:45:06 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Tue, 1 Nov 2016 06:45:06 -0700 Subject: [ndnSIM] How to Use Tag in ndnSIM 2.1 In-Reply-To: References: Message-ID: <58189c65.8301420a.dacaf.72f1@mx.google.com> Hi Jiebo TagHost can only be used with subclass of ndn::Tag, not ns-3 tag. ndn::Tag can only be used to pass information between components of the same software. Once a Data is encoded, the Tag isn't part of wire encoding, and thus will not reappear on the next node when the wire encoding is decoded again. Likewise, Tag will be lost when a packet goes between NFD and a local application, which also traverses a face. ndnSIM 2.2 and below allows passing ns-3 packet tags between nodes. This feature is pending removal in the next ndnSIM release. You should really encode information as part of wire encoding, such as in part of Name or Content, instead of relying on Tag. Yours, Junxiao -----Original Message----- From: "cjb0725 at mail.ustc.edu.cn" Sent: ?11/?1/?2016 3:47 To: "shijunxiao at email.arizona.edu" Subject: How to Use Tag in ndnSIM 2.1 Hi junxiao, I'm a postgraduate in University of Science and Technology of China, and a beginer for ndnSIM. I found that the class Data is inherited from tag-host, so I wrote a MyTag inhrited from ns3::ndn::Tag, and there's only an Integer in MyTag, and I added it to data, but once the data was send to next node, I got nullptr when the function getTag() was called. ------------------------------------------------------------------------------- ns-3/src/ndnSIM/NFD/daemon/fw/forwarder.cpp void Forwarder::onIncomingData(Face& inFace, const Data& data) shared_ptr mytag_ptr = data.getTag(); if(mytag_ptr == nullptr){ std::cout<<"forwarder: onIncomingData: mytag_ptr = null"<get(); std::cout<<"forwarder: onIncomingData: mytag = "< 0){ mytag_ptr->decrement(); std::cout<<"forwarder: onIncomingData: after dec :mytag = "<get()<Add(dataCopyWithoutPacket); } data.setTag(mytag_ptr); } ------------------------------------------------------------------------------- I got "forwarder: onIncomingData: mytag_ptr = null" using ndn-simple. Part of the result below: ------------------------------------------------------------------------------- producer: mytag = 2 producer: setTag node(2) responding with Data: /prefix/%FE%1D onIncomingData face=258 data=/prefix/%FE%1D forwarder: onIncomingData: mytag = 2 forwarder: onIncomingData: after dec :mytag = 1 onOutgoingData: face: 256; data:/prefix/%FE%1D onOutgoingData: tag: 1 onIncomingData face=257 data=/prefix/%FE%1D forwarder: onIncomingData: mytag_ptr = null onOutgoingData: face: 256; data:/prefix/%FE%1D onOutgoingData: tagptr=null: onIncomingData face=256 data=/prefix/%FE%1D forwarder: onIncomingData: mytag_ptr = null onOutgoingData: face: 258; data:/prefix/%FE%1D onOutgoingData: tagptr=null: App::OnData:/prefix/%FE%1D ------------------------------------------------------------------------------ Please kindly let me get your guidance how can I get this correctly. With Best Regards.Chen Jiebo----------------------------------------------- University of Science and Technology of China Department of Automation cjb0725 at mail.ustc.edu.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Tue Nov 1 20:20:13 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Tue, 1 Nov 2016 20:20:13 -0700 Subject: [ndnSIM] How to Use Tag in ndnSIM 2.1 In-Reply-To: <3edd404d.66f1.15822fc4287.Coremail.cjb0725@mail.ustc.edu.cn> References: <58189c65.8301420a.dacaf.72f1@mx.google.com> <3edd404d.66f1.15822fc4287.Coremail.cjb0725@mail.ustc.edu.cn> Message-ID: Hi Jiebo 3.I got this code in Producer::OnInterest: > data->setContent(make_shared< ::ndn::Buffer>(m_virtualPayloadSize)); > It seems the producer makes a virtual content and adds it to data's > payload, how can I add information to content? > http://named-data.net/doc/ndn-cxx/current/examples.html Look at "trivial producer", data->setContent line. I'll leave other questions to someone else. Yours, Junxiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From runtongchen at csu.edu.cn Thu Nov 3 06:31:24 2016 From: runtongchen at csu.edu.cn (RuntongChen) Date: Thu, 3 Nov 2016 21:31:24 +0800 (GMT+08:00) Subject: [ndnSIM] How can I get the contents ahout PIT. Message-ID: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> Hello Everone? I want to get the contents of PIT,such as InRecords,OutRecords and the Interest.What I believe is I can get the contents from nfd::pit::Entry::getInRecords/getOutRecords/getInterest.But I meet some problems.If I have defined the "Ptr node" before,and then,run the code about:"Ptr entry = node->GetObject ();" It will give me the wrong answer like this: And so as to the "Ptr pit = node->GetObject ();" Can you tell me the reason(s)?If I cantn't do like this. What should I do to get the contents about the PIT? I am looking forward to your guidance and support. Best Wishes, Roter -------------- next part -------------- An HTML attachment was scrubbed... URL: From charif.mahmoudi at nist.gov Thu Nov 3 07:53:14 2016 From: charif.mahmoudi at nist.gov (Mahmoudi, Charif (IntlAssoc)) Date: Thu, 3 Nov 2016 14:53:14 +0000 Subject: [ndnSIM] IsLocal() method was removed from Face ? Message-ID: Hi, I have an issue with my simulation after updating to the last NDN-sim code. It seems that the method isLocal() cannot be used on the Face no more. Any thoughts that might help are welcome. Thanks per advance for your help. Charif -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Thu Nov 3 10:52:37 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 3 Nov 2016 11:52:37 -0600 Subject: [ndnSIM] IsLocal() method was removed from Face ? In-Reply-To: References: Message-ID: <581b7968.863a240a.6dc04.a320@mx.google.com> Hi Charif You may use face.getScope() == ndn::nfd::FACE_SCOPE_LOCAL https://github.com/named-data-ndnSIM/NFD/blob/2df8f8176eaa306f5d8fa48c9903cb692c2dd031/daemon/face/face.hpp#L141 Yours, Junxiao -----Original Message----- From: "Mahmoudi, Charif (IntlAssoc)" Sent: ?11/?3/?2016 8:54 To: "ndnsim at lists.cs.ucla.edu" Cc: "Junior DONGO" ; "Fabrice MOURLIN" Subject: [ndnSIM] IsLocal() method was removed from Face ? Hi, I have an issue with my simulation after updating to the last NDN-sim code. It seems that the method isLocal() cannot be used on the Face no more. Any thoughts that might help are welcome. Thanks per advance for your help. Charif -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Nov 3 12:15:31 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 3 Nov 2016 12:15:31 -0700 Subject: [ndnSIM] How can I get the contents ahout PIT. In-Reply-To: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> References: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> Message-ID: Hi, you could do something like: Ptr protoNode = L3Protocol::getL3Protocol(nodes.Get()); Pit pit = protoNode->getForwarder()->getPit(); You might have to use the appropriate namespaces, but the logic to get the PIT instance of a node is the one I demonstrated above. Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 3, 2016, at 6:31 AM, RuntongChen wrote: > > Hello Everone? > > I want to get the contents of PIT,such as InRecords,OutRecords and the Interest.What I believe is I can get the contents from nfd::pit::Entry::getInRecords/getOutRecords/getInterest.But I meet some problems.If I have defined the "Ptr node" before,and then,run the code about:"Ptr entry = node->GetObject ();" It will give me the wrong answer like this: > > > > And so as to the "Ptr pit = node->GetObject ();" Can you tell me the reason(s)?If I cantn't do like this. What should I do to get the contents about the PIT? > > I am looking forward to your guidance and support. > > Best Wishes, > > Roter > -------------- next part -------------- An HTML attachment was scrubbed... URL: From charif.mahmoudi at nist.gov Thu Nov 3 13:29:27 2016 From: charif.mahmoudi at nist.gov (Mahmoudi, Charif (IntlAssoc)) Date: Thu, 3 Nov 2016 20:29:27 +0000 Subject: [ndnSIM] IsLocal() method was removed from Face ? In-Reply-To: <581b7968.863a240a.6dc04.a320@mx.google.com> References: <581b7968.863a240a.6dc04.a320@mx.google.com> Message-ID: Thanks Junxiao ! On other question regarding is regarding the include of ?model/ndn-app-face.hpp? . it is no more needed ? I appreciate your help. Charif From: Junxiao Shi [mailto:shijunxiao at email.arizona.edu] Sent: Thursday, November 03, 2016 1:53 PM To: Mahmoudi, Charif (IntlAssoc) ; ndnsim at lists.cs.ucla.edu Cc: Junior DONGO ; Fabrice MOURLIN Subject: RE: [ndnSIM] IsLocal() method was removed from Face ? Hi Charif You may use face.getScope() == ndn::nfd::FACE_SCOPE_LOCAL https://github.com/named-data-ndnSIM/NFD/blob/2df8f8176eaa306f5d8fa48c9903cb692c2dd031/daemon/face/face.hpp#L141 Yours, Junxiao ________________________________ From: Mahmoudi, Charif (IntlAssoc) Sent: ?11/?3/?2016 8:54 To: ndnsim at lists.cs.ucla.edu Cc: Junior DONGO; Fabrice MOURLIN Subject: [ndnSIM] IsLocal() method was removed from Face ? Hi, I have an issue with my simulation after updating to the last NDN-sim code. It seems that the method isLocal() cannot be used on the Face no more. Any thoughts that might help are welcome. Thanks per advance for your help. Charif -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Thu Nov 3 14:48:38 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 3 Nov 2016 14:48:38 -0700 Subject: [ndnSIM] How can I get the contents ahout PIT. In-Reply-To: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> References: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> Message-ID: Hi Runtong Spyros has given the right way to do it. I'll address why the two snippets are wrong. Ptr pit = node->GetObject (); > In ns-3 object model , ObjectBase::GetObject can return an object aggregated into the current object, or cast the current object as a subclass type. nfd::Pit is not aggregated into the node, so this does not work. If ndnSIM is designed ground-up following ns-3 principles, nfd::Pit should be aggregated. But nfd::Pit is imported from NFD codebase that is not designed for ns-3, so that it's not aggregated. ns3::ndn::L3Protocol, as mentioned in Spyros's answer, is aggregated into the node, and serves as an entrypoint to access NFD's objects. Ptr entry = node->GetObject (); > ns-3 object model allows only one instance of each object to be aggregated. Since each node has multiple Interest Table entries, it's wrong to aggregate the entry. Similarly, a ns3::NetDevice is not aggregated into a ns3::Node. Yours, Junxiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Thu Nov 3 14:53:26 2016 From: jpbaugh at umich.edu (John Baugh) Date: Thu, 3 Nov 2016 17:53:26 -0400 Subject: [ndnSIM] How can I get the contents ahout PIT. In-Reply-To: References: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> Message-ID: While we're in a similar discussion, what about the contents of the CS? On Nov 3, 2016 5:50 PM, "Junxiao Shi" wrote: > Hi Runtong > > Spyros has given the right way to do it. I'll address why the two snippets > are wrong. > > Ptr pit = node->GetObject (); >> > In ns-3 object model > , > ObjectBase::GetObject can return an object aggregated into the current > object, or cast the current object as a subclass type. nfd::Pit is not > aggregated into the node, so this does not work. > If ndnSIM is designed ground-up following ns-3 principles, nfd::Pit should > be aggregated. But nfd::Pit is imported from NFD codebase that is not > designed for ns-3, so that it's not aggregated. > > ns3::ndn::L3Protocol, as mentioned in Spyros's answer, is aggregated into > the node, and serves as an entrypoint to access NFD's objects. > > Ptr entry = node->GetObject (); >> > ns-3 object model allows only one instance of each object to be > aggregated. Since each node has multiple Interest Table entries, it's wrong > to aggregate the entry. > Similarly, a ns3::NetDevice is not aggregated into a ns3::Node. > > Yours, Junxiao > > _______________________________________________ > 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: From shijunxiao at email.arizona.edu Thu Nov 3 14:57:38 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 3 Nov 2016 14:57:38 -0700 Subject: [ndnSIM] How can I get the contents ahout PIT. In-Reply-To: References: <4afe699c.150a.1582a630d91.Coremail.runtongchen@csu.edu.cn> Message-ID: Hi John To get the CS and enumerate its entries: Ptr l3 = L3Protocol::getL3Protocol(node); const Cs& cs = l3->getForwarder()->getCs(); for (const auto& entry : cs) { .. } Yours, Junxiao On Thu, Nov 3, 2016 at 2:53 PM, John Baugh wrote: > While we're in a similar discussion, what about the contents of the CS? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss1 at gmail.com Thu Nov 3 18:13:37 2016 From: neogeoss1 at gmail.com (Hwang In Chan) Date: Fri, 4 Nov 2016 10:13:37 +0900 Subject: [ndnSIM] Size of PIT in KB? Message-ID: Dear NDN researchers, As far as I investigate, all the names of FIB and PIT are stored in the name tree data structure. Is there anyway to measure it while running NDNSIM? Since they are all stored in the same structure, can I know the separate sizes of those FIB and PIT in KB? In addition, if there are two different names, such as "AB/V", "ABCD/DFDS/DFDG" Do they take up a different amount of memory? Best wishes, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Nov 3 18:57:54 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 3 Nov 2016 18:57:54 -0700 Subject: [ndnSIM] Size of PIT in KB? In-Reply-To: References: Message-ID: Hi, there is a ?size? method for each structure, however, this returns the number of entries for each one. To get the size in KB, you have to do the math and figure out how many bytes are allocated for each entry of a structure. Every time that a new entry is created, you add the size of the entry to a variable representing the overall structure size in KB, every time an existing entry is deleted, you subtract from this variable. And, yes, for the names that you mentioned, different amounts of memory have to be allocated. That has to do with the fact that they do not have the same number of name components. It might also have to do with the fact that each name component has a different number of characters (do not remember the very low-level details of the library. For each component, the library might allocate a fixed amount of memory no matter how many chars there are in the name component and does proper resizing in the case that the characters require more memory, but again I am not sure about that). Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 3, 2016, at 6:13 PM, Hwang In Chan wrote: > > Dear NDN researchers, > > As far as I investigate, all the names of FIB and PIT are stored in the name tree data structure. > Is there anyway to measure it while running NDNSIM? > Since they are all stored in the same structure, can I know the separate sizes of those FIB and PIT in KB? > > In addition, if there are two different names, such as "AB/V", "ABCD/DFDS/DFDG" > Do they take up a different amount of memory? > > Best wishes, > > inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Fri Nov 4 11:31:59 2016 From: jpbaugh at umich.edu (John Baugh) Date: Fri, 4 Nov 2016 14:31:59 -0400 Subject: [ndnSIM] Is ndnSIM.net down? Message-ID: I have literally spent most of last night and much of today trying to troubleshoot and find out why I can't connect to ndnsim.net. I can access all other sites I go to, just not ndnsim.net. I've refreshed the DNS cache on my Windows machine, reset the router, etc. Nothing. *This site claims it is not up:* http://www.site24x7.com/public/t/results-1478283984902.html Strangely, I seem to be able to access it on my phone when I'm using my data plan. I suspected this had to imply that my own network must by the problem, but I have literally tried everything and this site above seems to imply the same thing - that there's a problem. I get ERR_NAME_RESOLUTION_FAILED in Chrome, but it also gets a similar error on other browsers. I have changed the DNS server to a manual server (8.8.8.8 and 8.8.4.4) and pretty much tried everything else. This is maddening. Any ideas? Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Fri Nov 4 12:28:04 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Fri, 4 Nov 2016 13:28:04 -0600 Subject: [ndnSIM] Is ndnSIM.net down? In-Reply-To: References: Message-ID: Hi John, There is a temporary problem with DNSSEC for ndnSIM domain. This is why resolution can fail sometimes, when your resolver actually verifies validity of DNS records. Should be fixed soon. --- Alex > On Nov 4, 2016, at 12:31 PM, John Baugh wrote: > > I have literally spent most of last night and much of today trying to troubleshoot and find out why I can't connect to ndnsim.net . > > I can access all other sites I go to, just not ndnsim.net . I've refreshed the DNS cache on my Windows machine, reset the router, etc. Nothing. > > This site claims it is not up: > > http://www.site24x7.com/public/t/results-1478283984902.html > > Strangely, I seem to be able to access it on my phone when I'm using my data plan. > > I suspected this had to imply that my own network must by the problem, but I have literally tried everything and this site above seems to imply the same thing - that there's a problem. > > I get ERR_NAME_RESOLUTION_FAILED in Chrome, but it also gets a similar error on other browsers. I have changed the DNS server to a manual server (8.8.8.8 and 8.8.4.4) and pretty much tried everything else. This is maddening. > > Any ideas? > > Thanks, > > John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From runtongchen at csu.edu.cn Sat Nov 5 04:47:53 2016 From: runtongchen at csu.edu.cn (RuntongChen) Date: Sat, 5 Nov 2016 19:47:53 +0800 (GMT+08:00) Subject: [ndnSIM] How can I get ino "nfd::pit::Entry" Message-ID: <27f25c5d.1c0b.1583450feea.Coremail.runtongchen@csu.edu.cn> Hello, Thanks very much for your quick and patient answer both of Spyridon and Junxiao.Based on your guidances,I can get the size of PIT already.But,What I really want is the Name,InRecords and OutRecords.And I find that they are in "nfd::pit::Entry" but not in "nfd::Pit".So,if I follow your advices and call the code of "pit.getName()".Then,The computer will give me the error :"const class nfd::Pit has no number named 'getName'".So,I'd like to know how can I get into "nfd::pit::Entry"and print the "Name" out? Looking forward to your response. Yours, Runtong -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Nov 5 19:36:23 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 5 Nov 2016 22:36:23 -0400 Subject: [ndnSIM] Content Store entries (OLD content store) Message-ID: Greetings all, Is there a way to obtain the content store (old content store) and then iterate through the entries? Is there any way to add and remove items to it or do you have to go through some other technique? Also, am I correct in assuming the Cs type is the NFD content store, and ContentStore is the old version? Accessing the data in these stores, the PIT, etc. is very important for many peoples' research, I suspect. A tutorial or some more information on this would be excellent. Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Nov 5 20:02:25 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 5 Nov 2016 23:02:25 -0400 Subject: [ndnSIM] The continuing Content Store saga (and question about NFD version being used) Message-ID: Greetings again all, - Okay, so here is what I understand: The Cs class is the *new *NFD content store class, correct? - In one of the e-mail exchanges, I was told that I could implement doAfterInsert( ) to control what was added into the content store (by allowing it in, then evicting it immediately if it didn't adhere to a custom set of requirements I could put in place. - There is no documentation in the NFD revision 3 for doAfterInsert, but I thought that the current version of ndnSIM uses this version of NFD? - Do I obtain an instance of the Cs, or is all the work done with static methods? (e.g., ::find, ::insert, etc.) - In the ns3::ndn::cs namespace, there is a ContentStoreImpl - is THIS the actual implementation of the old content store? Or the new? Do we ever use this one directly? Thanks again, everyone. Still trying to make sense of the some of the various classes and their relationships. Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From igfuca at gmail.com Sun Nov 6 07:08:03 2016 From: igfuca at gmail.com (Igor Carvalho) Date: Sun, 6 Nov 2016 12:08:03 -0300 Subject: [ndnSIM] Getting node information through face Message-ID: Hi, people. I need to get how many times cs updates are performed at a node and I need that this information be available to adjacent nodes through faces. I know that i have to add a counter in CS policies but I do not know how to make nodes advertise this information, from time to time, to adjacent nodes. It would work like face counters, but I have checked that these counters are updated when interests and data flow through nodes. I want that node's cs information updates should be sent, for example, at every 10 s , so that a custom strategy would used as a metric to forward interests. I appreciate any help. Regards, -- *Igor Carvalho * *Master on Computer Science - UFPA* *GERCOM Researcher. * -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Nov 6 07:40:55 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 6 Nov 2016 08:40:55 -0700 Subject: [ndnSIM] The continuing Content Store saga (and question about NFD version being used) In-Reply-To: References: Message-ID: Hi John > - Okay, so here is what I understand: The Cs class is the *new *NFD > content store class, correct? > > Yes. Everything in nfd:: namespace is NFD structs, including new NFD content store. > > - In one of the e-mail exchanges, I was told that I could implement > doAfterInsert( ) to control what was added into the content store (by > allowing it in, then evicting it immediately if it didn't adhere to a > custom set of requirements I could put in place. > - There is no documentation in the NFD revision 3 for doAfterInsert, > but I thought that the current version of ndnSIM uses this version of NFD? > > Source code and Redmine issue description (run git blame and find out which commits modified the file, then look at Redmine) are your friends. > > - Do I obtain an instance of the Cs, or is all the work done with > static methods? (e.g., ::find, ::insert, etc.) > > ns3::Ptr l3 = ns3::ndn::L3Protocol::getL3Protocol(node); nfd::Cs& cs = l3->getForwarder()->getCs(); Yours, Junxiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Nov 6 10:30:27 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Sun, 6 Nov 2016 22:00:27 +0330 Subject: [ndnSIM] Getting node information through face In-Reply-To: References: Message-ID: Hi Igor, As far as I see, the easiest way is to write a custom application which sends your wanted parameters in interest name in a multicast fashion. But if you want to publish this information, as a part of a dataset built into NFD, personally I think it is a bit more complicated from implementation perspective. Regards, Sabet > On Nov 6, 2016 6:38 PM, "Igor Carvalho" wrote: >> >> Hi, people. >> >> I need to get how many times cs updates are performed at a node and I need that this information be available to adjacent nodes through faces. I know that i have to add a counter in CS policies but I do not know how to make nodes advertise this information, from time to time, to adjacent nodes. It would work like face counters, but I have checked that these counters are updated when interests and data flow through nodes. I want that node's cs information updates should be sent, for example, at every 10 s , so that a custom strategy would used as a metric to forward interests. >> >> I appreciate any help. >> >> Regards, >> >> -- >> Igor Carvalho >> Master on Computer Science - UFPA >> GERCOM Researcher. >> >> _______________________________________________ >> 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: From mastorakis at CS.UCLA.EDU Sun Nov 6 17:23:26 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Sun, 6 Nov 2016 17:23:26 -0800 Subject: [ndnSIM] How can I get ino "nfd::pit::Entry" In-Reply-To: <27f25c5d.1c0b.1583450feea.Coremail.runtongchen@csu.edu.cn> References: <27f25c5d.1c0b.1583450feea.Coremail.runtongchen@csu.edu.cn> Message-ID: <35362AC7-94D4-487C-B378-15C36C6F5241@cs.ucla.edu> Hi, the PIT class does not have a getName method. An entry of PIT has a getName method. You can use the iterators to access the entries of PIT (or/and std::find if you want). When you actually get a PIT entry, you can apply the getName method to it (or the methods to get the InRecords and OutRecords). Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 5, 2016, at 4:47 AM, RuntongChen wrote: > > Hello, > > Thanks very much for your quick and patient answer both of Spyridon and Junxiao.Based on your guidances,I can get the size of PIT already.But,What I really want is the Name,InRecords and OutRecords.And I find that they are in "nfd::pit::Entry" but not in "nfd::Pit".So,if I follow your advices and call the code of "pit.getName()".Then,The computer will give me the error :"const class nfd::Pit has no number named 'getName'".So,I'd like to know how can I get into "nfd::pit::Entry"and print the "Name" out? > > Looking forward to your response. > > Yours, > > Runtong > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sun Nov 6 21:38:52 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 7 Nov 2016 00:38:52 -0500 Subject: [ndnSIM] My Test file for manipulating/playing with the content store Message-ID: Greetings all, I have written some code that I'm basically trying to use to just play around with the content store for the purpose of learning how to use it. I figured I could create (or retrieve) an instance of it, and treat it mostly like a container/data structure and use the methods, such as insert on it. I tried making my own custom Cs instance, and when that didn't work I used the technique Junxiao suggested by obtaining the L3Protocol, and then from that obtaining a forwarder and then getting the content store that way. I assumed that once a content store was obtained, that I could do things like call "insert" on it directly. However, although what i have attached does compile, I get a termination error saying that the error was "bad weak_ptr". I've spent several years not as focused on C++, so I will be the first to admit I'm not as up to speed on the smart/managed pointers as i should be, but i do know that weak_ptr is a type of associated smart pointer that doesn't own the object that it is referencing. But even after using GDB, I still don't really know what's causing this problem. Java and C# have spoiled me... I'll admit. Any help would be greatly appreciated. I am beginning to put together notes and maybe some day in the near future I'll have a little sandbox tutorial for people to at least get use to the data structures and such with a more extensive treatment. I'm a community college instructor, adjunct at U of M, as well as doing this PhD research, so once I truly understand this stuff better, I think I can really contribute especially in the form of instructional materials. Thanks a ton, everyone. John -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: jpb-test.cpp Type: text/x-c++src Size: 2730 bytes Desc: not available URL: From neogeoss at ajou.ac.kr Mon Nov 7 06:00:10 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Mon, 7 Nov 2016 23:00:10 +0900 Subject: [ndnSIM] Question on the use of the custom-ed attribute of a packet. Message-ID: Dear NDN researchers, I have added an additional attribute(metadata) to an Interest and a data packet. Currently, I use it like this below https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/apps/ndn-consumer.cpp#L188-L191 Name myName; myName.append("AB"); shared_ptr uidName = make_shared(myName); uidName->appendSequenceNumber(seq); However, this way seems to be so primitive. I believe that there must be a way to set my additional attribute in the script file. Can any of you tell me how to use this additional attribute in a script file? I hope this is simple to do it. Best wishes, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Mon Nov 7 19:07:16 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Tue, 8 Nov 2016 12:07:16 +0900 Subject: [ndnSIM] Question on accessing each node at a script file. Message-ID: Dear NDN researchers, I have been trying to access a node and get its information in a script file. In my script, Ptr node0 = nodes.Get(0); .// to access node, std::cout << "Missed Int for node 0 : " << node0->GetObject()->getForwarder()->getNameTree()->size() << std::endl; // To get information. Strangely, it only works until "node0->GetObject()->getForwarder()" but not further than it. I cannot access getPit or whatsoever. I was using this approach because of the code in the visualizer. https://github.com/NDNUtils/NDNSIM/blob/master/src/visualizer/visualizer/core.py#L401-L414 Can anyone of you tell me how to assess the information? such as getPit(), getNameTree() and so on? Best wishes, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From 401809286 at qq.com Mon Nov 7 19:21:15 2016 From: 401809286 at qq.com (=?gb18030?B?zuK1pOzH?=) Date: Tue, 8 Nov 2016 11:21:15 +0800 Subject: [ndnSIM] Having problems in ndnsim1.0 Message-ID: Dear ndnSIM team members: I have stuck on a puzzle on the ndnSIM 1.0 of version when complementing my experiment. The experiment is about to verify the security of ndn network by flooding the interest to the network. But when we use the flooding forward strategy and Nocache in Content Store in the ndn-tree-cs-tracers.cc with our topology, the interest didn't forward to all faces of the node, it forwarded to only one face. First, we modify the flooding.cc to let the interests sent to all faces, but the interest kept sending to each face repeatedly without a stop. Second, we add a default routes in ndn-stack-helper.cc with our prefixes, but the interest is only sent out by one face. Could you help us to complement this flooding method without repeatedly sending same interests? Thank all of you very much! Sincerely. from Wu Danye Network Technology Research Center Institute of Computing Technology,C.A.S. Address :No.6 Kexueyuan South Road Zhongguancun,Haidian District Beijing,China Postcode :100190 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Tue Nov 8 06:21:28 2016 From: jpbaugh at umich.edu (John Baugh) Date: Tue, 8 Nov 2016 09:21:28 -0500 Subject: [ndnSIM] My Test file for manipulating/playing with the content store In-Reply-To: References: Message-ID: If anyone gets a chance to check the code I had attached and give me an idea about perhaps why the exception is occurring, what is the appropriate way to add items to CS etc, I'd greatly appreciate it. Thanks John On Nov 7, 2016 12:38 AM, "John Baugh" wrote: > Greetings all, > > I have written some code that I'm basically trying to use to just play > around with the content store for the purpose of learning how to use it. I > figured I could create (or retrieve) an instance of it, and treat it mostly > like a container/data structure and use the methods, such as insert on it. > I tried making my own custom Cs instance, and when that didn't work I used > the technique Junxiao suggested by obtaining the L3Protocol, and then from > that obtaining a forwarder and then getting the content store that way. > > I assumed that once a content store was obtained, that I could do things > like call "insert" on it directly. > > However, although what i have attached does compile, I get a termination > error saying that the error was "bad weak_ptr". > > I've spent several years not as focused on C++, so I will be the first to > admit I'm not as up to speed on the smart/managed pointers as i should be, > but i do know that weak_ptr is a type of associated smart pointer that > doesn't own the object that it is referencing. But even after using GDB, I > still don't really know what's causing this problem. Java and C# have > spoiled me... I'll admit. > > Any help would be greatly appreciated. I am beginning to put together > notes and maybe some day in the near future I'll have a little sandbox > tutorial for people to at least get use to the data structures and such > with a more extensive treatment. I'm a community college instructor, > adjunct at U of M, as well as doing this PhD research, so once I truly > understand this stuff better, I think I can really contribute especially in > the form of instructional materials. > > Thanks a ton, everyone. > > John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From runtongchen at csu.edu.cn Tue Nov 8 06:21:10 2016 From: runtongchen at csu.edu.cn (RuntongChen) Date: Tue, 8 Nov 2016 22:21:10 +0800 (GMT+08:00) Subject: [ndnSIM] How can I print the InRecords out? Message-ID: <2dcdf526.29d8.15844506940.Coremail.runtongchen@csu.edu.cn> Hi Spyridon? Thanks for your answer very much.With the help of "const nfd::Pit::const_iterator iterator = pit.begin();",I can print the Name out.And the code is "std::cout << (*iterator).getName()<<"\n";".But I meet two questions now.The first one is why I can't use "std::cout << (*iterator).getInRecords()<<"\n";" to print InRecords out?And the error is"cannot bind 'std::ostream {aka std::basic_ostream}' Lvalue to 'std::basic_ostream&&'".If I can't do like this.What should I do?The second one is that I find there has no member of 'next' in 'nfd::Pit'.So if I want to iterator the pit::entry,what should I do to let the iterator goes to the next? I am thankful for your guidance and support. sincerely, Runtong -------------- next part -------------- An HTML attachment was scrubbed... URL: From f.goudarzi at mail.sbu.ac.ir Tue Nov 8 14:17:35 2016 From: f.goudarzi at mail.sbu.ac.ir (fatemeh goudarzi) Date: Wed, 9 Nov 2016 01:47:35 +0330 Subject: [ndnSIM] Getting the node id Message-ID: <4AC03A6244C3C34BB52A7EC60B799C4C03F43035@m-pdc.sbu.ac.ir> Hi, Everyone I need to find out the node id which the requested content retrieved from its cache. How and in what part of pipeline forwarding I can send this node id along with content to the customer using ns3PacketTag? (I need this information just for the simulation and results evaluation.) Regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: From f.goudarzi at mail.sbu.ac.ir Tue Nov 8 14:39:24 2016 From: f.goudarzi at mail.sbu.ac.ir (fatemeh goudarzi) Date: Wed, 9 Nov 2016 02:09:24 +0330 Subject: [ndnSIM] storing the name of content Message-ID: <4AC03A6244C3C34BB52A7EC60B799C4C03F43036@m-pdc.sbu.ac.ir> Hi I want that some nodes inform each other (immediately after caching the content) that each one has cached what content and store its name in nodes. If I use set data structure to store the name of content in each node, is it preferred to implement this set in an application or in NFD? I appreciate any help. Regards, Goudarzi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Wed Nov 9 06:52:43 2016 From: jpbaugh at umich.edu (John Baugh) Date: Wed, 9 Nov 2016 09:52:43 -0500 Subject: [ndnSIM] Still getting an exception (bad weak_ptr) Message-ID: Any ideas? I sent the full code in a previous e-mail. But here is the offending section: * ndn::Data tempD; string testStr = "Testjpb"; tempD.setName(ns3::ndn::Name(testStr)); //put in Cs? myContentStore.insert(tempD); * Shouldn't I just be able to do this? Assuming I retrieved a Content Store? Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Wed Nov 9 08:29:35 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Wed, 9 Nov 2016 19:59:35 +0330 Subject: [ndnSIM] Still getting an exception (bad weak_ptr) In-Reply-To: References: Message-ID: John, Try this: auto tempD = make_shared (); . . . myContentStore.insert(tempD); I'm on sell phone right now and just wrote from the memory. But I think this will do. Regards, Sabet On Nov 9, 2016 6:23 PM, "John Baugh" wrote: > Any ideas? I sent the full code in a previous e-mail. But here is the > offending section: > > > > > > * ndn::Data tempD; string testStr = "Testjpb"; > tempD.setName(ns3::ndn::Name(testStr)); //put in Cs? > myContentStore.insert(tempD); * > > Shouldn't I just be able to do this? Assuming I retrieved a Content Store? > > Thanks, > > John > > _______________________________________________ > 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: From shijunxiao at email.arizona.edu Wed Nov 9 08:44:46 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Wed, 9 Nov 2016 09:44:46 -0700 Subject: [ndnSIM] Still getting an exception (bad weak_ptr) In-Reply-To: References: Message-ID: Hi John Many places in NFD and ndn-cxx assume the packet (Interest or Data or Nack) are created with make_shared, even if the API takes a reference instead of shared_ptr. When a packet is created directly without make_shared, undefined behavior occurs which is usually bad_weak_ptr. Yours, Junxiao On Nov 9, 2016 07:53, "John Baugh" wrote: > > ndn::Data tempD; > myContentStore.insert(tempD); > > Shouldn't I just be able to do this? -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlzu8 at gmail.com Wed Nov 9 09:03:55 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Wed, 9 Nov 2016 18:03:55 +0100 Subject: [ndnSIM] Problem with compiling forwarder with a ns-3 application Message-ID: Hi, I have a ns-3 application located in "utils". I could easily include it in the consumer application as well as producer application; no errors. Now, I need to include it in the forwarder, but I got many strange errors ! How should I compile the forwarder with my ns-3 application ? Thanks, A -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Wed Nov 9 19:54:09 2016 From: jpbaugh at umich.edu (John Baugh) Date: Wed, 9 Nov 2016 22:54:09 -0500 Subject: [ndnSIM] Still getting an exception (bad weak_ptr) In-Reply-To: References: Message-ID: You are all awesome! Thanks a ton. It worked. It would be great if some documentation existed that explained that aspect of the packets. Thanks! John On Wed, Nov 9, 2016 at 11:44 AM, Junxiao Shi wrote: > Hi John > > Many places in NFD and ndn-cxx assume the packet (Interest or Data or > Nack) are created with make_shared, even if the API takes a reference > instead of shared_ptr. > When a packet is created directly without make_shared, undefined behavior > occurs which is usually bad_weak_ptr. > > Yours, Junxiao > > On Nov 9, 2016 07:53, "John Baugh" wrote: > > > > ndn::Data tempD; > > myContentStore.insert(tempD); > > > > Shouldn't I just be able to do this? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Nov 10 10:58:10 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 10 Nov 2016 10:58:10 -0800 Subject: [ndnSIM] How can I print the InRecords out? In-Reply-To: <2dcdf526.29d8.15844506940.Coremail.runtongchen@csu.edu.cn> References: <2dcdf526.29d8.15844506940.Coremail.runtongchen@csu.edu.cn> Message-ID: Hi, 1) an inRecord is a class that has some certain methods and attributes. Please take a look here to see how you can get the attributes that you want: https://github.com/named-data-ndnSIM/NFD/blob/NFD-0.3.4-ndnSIM/daemon/table/pit-in-record.hpp https://github.com/named-data-ndnSIM/NFD/blob/NFD-0.3.4-ndnSIM/daemon/table/pit-in-record.cpp 2) You have to iterate through the entries of the PIT. A PIT has multiple entries and you need to move the iterator forward to point to the next entry. Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 8, 2016, at 6:21 AM, RuntongChen wrote: > > Hi Spyridon? > > Thanks for your answer very much.With the help of "const nfd::Pit::const_iterator iterator = pit.begin();",I can print the Name out.And the code is "std::cout << (*iterator).getName()<<"\n";".But I meet two questions now.The first one is why I can't use "std::cout << (*iterator).getInRecords()<<"\n";" to print InRecords out?And the error is"cannot bind 'std::ostream {aka std::basic_ostream}' Lvalue to 'std::basic_ostream&&'".If I can't do like this.What should I do?The second one is that I find there has no member of 'next' in 'nfd::Pit'.So if I want to iterator the pit::entry,what should I do to let the iterator goes to the next? > > I am thankful for your guidance and support. > sincerely, > Runtong -------------- next part -------------- An HTML attachment was scrubbed... URL: From cjb0725 at mail.ustc.edu.cn Tue Nov 1 20:01:47 2016 From: cjb0725 at mail.ustc.edu.cn (cjb0725 at mail.ustc.edu.cn) Date: Wed, 2 Nov 2016 11:01:47 +0800 (GMT+08:00) Subject: [ndnSIM] How to Use Tag in ndnSIM 2.1 In-Reply-To: <58189c65.8301420a.dacaf.72f1@mx.google.com> References: <58189c65.8301420a.dacaf.72f1@mx.google.com> Message-ID: <3edd404d.66f1.15822fc4287.Coremail.cjb0725@mail.ustc.edu.cn> Hi Junxiao, Many thanks for the reply. I learned that I can attach ns3 packet tags to deliver message just after I sent the first email, but I didn't understand why ndn tag could not do the same thing, so thanks again for the explanation for ndn tag, now I understand that. But I still got something to figure out: 1.Since the feature is pending removal in the next ndnSIM release, how can I encode information in packet or data, can you give me some usual/common methods to do so. 2.You mentioned encoding information in part of Name or Content, Consumer requests content by name, if I changed its name, will it be correctly consumed ? 3.I got this code in Producer::OnInterest: data->setContent(make_shared< ::ndn::Buffer>(m_virtualPayloadSize)); It seems the producer makes a virtual content and adds it to data's payload, how can I add information to content? Can you give me some advice to deal with the above? Thanks~ Jiebo Chen -----????----- ???:"Junxiao Shi" ????:2016-11-01 21:45:06 (???) ???: "cjb0725 at mail.ustc.edu.cn" ??: ndnsim ??: RE: How to Use Tag in ndnSIM 2.1 Hi Jiebo TagHost can only be used with subclass of ndn::Tag, not ns-3 tag. ndn::Tag can only be used to pass information between components of the same software. Once a Data is encoded, the Tag isn't part of wire encoding, and thus will not reappear on the next node when the wire encoding is decoded again. Likewise, Tag will be lost when a packet goes between NFD and a local application, which also traverses a face. ndnSIM 2.2 and below allows passing ns-3 packet tags between nodes. This feature is pending removal in the next ndnSIM release. You should really encode information as part of wire encoding, such as in part of Name or Content, instead of relying on Tag. Yours, Junxiao From: cjb0725 at mail.ustc.edu.cn Sent: ?11/?1/?2016 3:47 To: shijunxiao at email.arizona.edu Subject: How to Use Tag in ndnSIM 2.1 Hi junxiao, I'm a postgraduate in University of Science and Technology of China, and a beginer for ndnSIM. I found that the class Data is inherited from tag-host, so I wrote a MyTag inhrited from ns3::ndn::Tag, and there's only an Integer in MyTag, and I added it to data, but once the data was send to next node, I got nullptr when the function getTag() was called. ------------------------------------------------------------------------------- ns-3/src/ndnSIM/NFD/daemon/fw/forwarder.cpp void Forwarder::onIncomingData(Face& inFace, const Data& data) shared_ptr mytag_ptr = data.getTag(); if(mytag_ptr == nullptr){ std::cout<<"forwarder: onIncomingData: mytag_ptr = null"<get(); std::cout<<"forwarder: onIncomingData: mytag = "< 0){ mytag_ptr->decrement(); std::cout<<"forwarder: onIncomingData: after dec :mytag = "<get()<Add(dataCopyWithoutPacket); } data.setTag(mytag_ptr); } ------------------------------------------------------------------------------- I got "forwarder: onIncomingData: mytag_ptr = null" using ndn-simple. Part of the result below: ------------------------------------------------------------------------------- producer: mytag = 2 producer: setTag node(2) responding with Data: /prefix/%FE%1D onIncomingData face=258 data=/prefix/%FE%1D forwarder: onIncomingData: mytag = 2 forwarder: onIncomingData: after dec :mytag = 1 onOutgoingData: face: 256; data:/prefix/%FE%1D onOutgoingData: tag: 1 onIncomingData face=257 data=/prefix/%FE%1D forwarder: onIncomingData: mytag_ptr = null onOutgoingData: face: 256; data:/prefix/%FE%1D onOutgoingData: tagptr=null: onIncomingData face=256 data=/prefix/%FE%1D forwarder: onIncomingData: mytag_ptr = null onOutgoingData: face: 258; data:/prefix/%FE%1D onOutgoingData: tagptr=null: App::OnData:/prefix/%FE%1D ------------------------------------------------------------------------------ Please kindly let me get your guidance how can I get this correctly. With Best Regards. Chen Jiebo ----------------------------------------------- University of Science and Technology of China Department of Automation cjb0725 at mail.ustc.edu.cn -- ??? ???????????? cjb0725 at mail.ustc.edu.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: From smahdi.imani at googlemail.com Wed Nov 2 02:38:04 2016 From: smahdi.imani at googlemail.com (Mahdi Faghih Imani) Date: Wed, 2 Nov 2016 13:08:04 +0330 Subject: [ndnSIM] Compiling ndnSIM failed on Mac OSX 10.12 Message-ID: <70669FC0-BF3D-402F-82CC-87F220EAC22B@gmail.com> Hi, I have already installed ndnSIM on Mac OS X, but when I upgrade to 10.12 building is failed. I have updated MacPorts and HomeBrew and Installed boost, cryptopp, ? libraries. Unfortunately, ndnSIM does?nt compile yet and I have get this error: Mahdis-MBP:ndnSIM Imani$ cd ns-3/ Mahdis-MBP:ns-3 Imani$ ./waf Waf: Entering directory `/Users/Imani/ndnSIM/ns-3/build' [2723/2800] Linking build/libns3-dev-ndnSIM-debug.dylib Undefined symbols for architecture x86_64: "boost::re_detail::get_mem_block()", referenced from: boost::re_detail::save_state_init::save_state_init(boost::re_detail::saved_state**, boost::re_detail::saved_state**) in interest-filter.cpp.3.o boost::re_detail::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::extend_stack() in interest-filter.cpp.3.o boost::re_detail::save_state_init::save_state_init(boost::re_detail::saved_state**, boost::re_detail::saved_state**) in face-uri.cpp.3.o boost::re_detail::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::extend_stack() . . . "CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation&, std::__1::basic_string, std::__1::allocator > const&, unsigned long long)", referenced from: vtable for CryptoPP::AutoSeededRandomPool in sec-tpm-file.cpp.3.o vtable for CryptoPP::AutoSeededRandomPool in random.cpp.3.o "CryptoPP::StringStore::TransferTo2(CryptoPP::BufferedTransformation&, unsigned long long&, std::__1::basic_string, std::__1::allocator > const&, bool)", referenced from: CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in certificate.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in public-key.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in sec-tpm-file.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in sec-tpm.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in validator.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in crypto.cpp.3.o CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in string-helper.cpp.3.o ... "CryptoPP::Filter::CopyRangeTo2(CryptoPP::BufferedTransformation&, unsigned long long&, unsigned long long, std::__1::basic_string, std::__1::allocator > const&, bool) const", referenced from: vtable for CryptoPP::FileSource in dummy-keychain.cpp.3.o vtable for CryptoPP::SourceTemplate in dummy-keychain.cpp.3.o vtable for CryptoPP::InputRejecting in dummy-keychain.cpp.3.o vtable for CryptoPP::Base64Decoder in dummy-keychain.cpp.3.o vtable for CryptoPP::Unflushable in dummy-keychain.cpp.3.o vtable for CryptoPP::StringSource in certificate.cpp.3.o vtable for CryptoPP::SourceTemplate in certificate.cpp.3.o ... "CryptoPP::ByteQueue::CopyRangeTo2(CryptoPP::BufferedTransformation&, unsigned long long&, unsigned long long, std::__1::basic_string, std::__1::allocator > const&, bool) const", referenced from: vtable for CryptoPP::DERSequenceEncoder in certificate-extension.cpp.3.o vtable for CryptoPP::DERSequenceEncoder in certificate-subject-description.cpp.3.o vtable for CryptoPP::DERSequenceEncoder in certificate.cpp.3.o vtable for CryptoPP::DERSequenceEncoder in public-key.cpp.3.o vtable for CryptoPP::DERSequenceEncoder in sec-tpm.cpp.3.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Waf: Leaving directory `/Users/Imani/ndnSIM/ns-3/build' Build failed -> task in 'ns3-ndnSIM' failed (exit status 1): {task 4426214416: cxxshlib ndn-app.cpp.3.o,ndn-consumer-batches.cpp.3.o,ndn-consumer-cbr.cpp.3.o,ndn-consumer-window.cpp.3.o,ndn-consumer-zipf-mandelbrot.cpp.3.o,ndn-consumer.cpp.3.o,ndn-producer.cpp.3.o,ndn-app-helper.cpp.3.o,ndn- . . . Isn?t ndnSIM campatible with Mac OS X 10.12?! Can you help me, please? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From renpei.bupt at qq.com Fri Nov 4 06:34:12 2016 From: renpei.bupt at qq.com (=?gb18030?B?yM7F5g==?=) Date: Fri, 4 Nov 2016 21:34:12 +0800 Subject: [ndnSIM] error of "./waf --run=ndn-simple --vis" Message-ID: Hello all, When we are compiling ndnSIM successfully while try the example "./waf --run=ndn-simple --vis" , some error occur as show in figure, i can not run command line with "--vis" while runing "./waf --run=ndn-simple", it's success, who can tell me how can i solve this problem? Thanks pei ren -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/octet-stream Size: 57933 bytes Desc: not available URL: From dongojunior at hotmail.com Fri Nov 4 06:43:56 2016 From: dongojunior at hotmail.com (Junior DONGO) Date: Fri, 4 Nov 2016 13:43:56 +0000 Subject: [ndnSIM] IsLocal() method was removed from Face ? In-Reply-To: References: <581b7968.863a240a.6dc04.a320@mx.google.com> Message-ID: Hi, It seems that "model/ndn-app-face.hpp" has been changed for "model/ndn-app-link-service.hpp" https://github.com/named-data-ndnSIM/ndnSIM/commit/c018a561d0f74f64cdfca01cccde0718f7dfb968#diff-b950357034ce4fca244e4f8d08ad9d9b Yours, Junior On 11/03/2016 09:29 PM, Mahmoudi, Charif (IntlAssoc) wrote: Thanks Junxiao ! On other question regarding is regarding the include of ?model/ndn-app-face.hpp? . it is no more needed ? I appreciate your help. Charif From: Junxiao Shi [mailto:shijunxiao at email.arizona.edu] Sent: Thursday, November 03, 2016 1:53 PM To: Mahmoudi, Charif (IntlAssoc) ; ndnsim at lists.cs.ucla.edu Cc: Junior DONGO ; Fabrice MOURLIN Subject: RE: [ndnSIM] IsLocal() method was removed from Face ? Hi Charif You may use face.getScope() == ndn::nfd::FACE_SCOPE_LOCAL https://github.com/named-data-ndnSIM/NFD/blob/2df8f8176eaa306f5d8fa48c9903cb692c2dd031/daemon/face/face.hpp#L141 Yours, Junxiao ________________________________ From: Mahmoudi, Charif (IntlAssoc) Sent: ?11/?3/?2016 8:54 To: ndnsim at lists.cs.ucla.edu Cc: Junior DONGO; Fabrice MOURLIN Subject: [ndnSIM] IsLocal() method was removed from Face ? Hi, I have an issue with my simulation after updating to the last NDN-sim code. It seems that the method isLocal() cannot be used on the Face no more. Any thoughts that might help are welcome. Thanks per advance for your help. Charif -------------- next part -------------- An HTML attachment was scrubbed... URL: From junior.dongo at lacl.fr Thu Nov 10 12:06:50 2016 From: junior.dongo at lacl.fr (Junior DONGO) Date: Thu, 10 Nov 2016 21:06:50 +0100 Subject: [ndnSIM] error of "./waf --run=ndn-simple --vis" In-Reply-To: References: Message-ID: Hi pei ren, This happens because PyViz visualizer is not enabled. You can verify that by looking in the " Summary of optional NS-3 features:" given by "./waf configure" Junior On 11/04/2016 02:34 PM, ?? wrote: > Hello all, > > When we are compiling ndnSIM successfully while try the example "./waf > --run=ndn-simple --vis" , some error occur as show in figure, i can > not run command line with "--vis" while runing "./waf > --run=ndn-simple", it's success, who can tell me how can i solve this > problem? > > > Thanks > > pei ren > > > _______________________________________________ > 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/png Size: 57933 bytes Desc: not available URL: From aa at CS.UCLA.EDU Thu Nov 10 12:33:29 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Thu, 10 Nov 2016 12:33:29 -0800 Subject: [ndnSIM] difference between two Content Stores In-Reply-To: References: Message-ID: <6601EEE4-A88B-4A5B-B5F1-D287F3C3D5A8@cs.ucla.edu> > On Oct 8, 2016, at 6:40 AM, WangZijian <410330533 at qq.com> wrote: > > Hello, > Why does ndnSIM hava two Content Stores, namely ndn::cs and nfd:cs? I know the former is the old version, but when ndnSIM is running, which is used? And what's the difference between them? > Sincerely, > WangZijian Hi WangZijian, Check http://ndnsim.net/2.1/cs.html and http://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf TR for a bit more explanation. Unless you specifically request an old version, nfd::cs will be used. -- Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Thu Nov 10 12:34:56 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Thu, 10 Nov 2016 12:34:56 -0800 Subject: [ndnSIM] Compiling ndnSIM failed on Mac OSX 10.12 In-Reply-To: <70669FC0-BF3D-402F-82CC-87F220EAC22B@gmail.com> References: <70669FC0-BF3D-402F-82CC-87F220EAC22B@gmail.com> Message-ID: I'm assuming you're using macports on macOS. If so, you need to completely remove them and reinstall from scratch, as it needs to be done for every major macOS upgrade (see more here: https://trac.macports.org/wiki/Migration ). --- Alex > On Nov 2, 2016, at 2:38 AM, Mahdi Faghih Imani wrote: > > Hi, > > I have already installed ndnSIM on Mac OS X, but when I upgrade to 10.12 building is failed. I have updated MacPorts and HomeBrew and Installed boost, cryptopp, ? libraries. Unfortunately, ndnSIM does?nt compile yet and I have get this error: > > Mahdis-MBP:ndnSIM Imani$ cd ns-3/ > Mahdis-MBP:ns-3 Imani$ ./waf > Waf: Entering directory `/Users/Imani/ndnSIM/ns-3/build' > [2723/2800] Linking build/libns3-dev-ndnSIM-debug.dylib > Undefined symbols for architecture x86_64: > "boost::re_detail::get_mem_block()", referenced from: > boost::re_detail::save_state_init::save_state_init(boost::re_detail::saved_state**, boost::re_detail::saved_state**) in interest-filter.cpp.3.o > boost::re_detail::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::extend_stack() in interest-filter.cpp.3.o > boost::re_detail::save_state_init::save_state_init(boost::re_detail::saved_state**, boost::re_detail::saved_state**) in face-uri.cpp.3.o > boost::re_detail::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::extend_stack() > . > . > . > "CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation&, std::__1::basic_string, std::__1::allocator > const&, unsigned long long)", referenced from: > vtable for CryptoPP::AutoSeededRandomPool in sec-tpm-file.cpp.3.o > vtable for CryptoPP::AutoSeededRandomPool in random.cpp.3.o > "CryptoPP::StringStore::TransferTo2(CryptoPP::BufferedTransformation&, unsigned long long&, std::__1::basic_string, std::__1::allocator > const&, bool)", referenced from: > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in certificate.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in public-key.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in sec-tpm-file.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in sec-tpm.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in validator.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in crypto.cpp.3.o > CryptoPP::SourceTemplate::Pump2(unsigned long long&, bool) in string-helper.cpp.3.o > ... > > "CryptoPP::Filter::CopyRangeTo2(CryptoPP::BufferedTransformation&, unsigned long long&, unsigned long long, std::__1::basic_string, std::__1::allocator > const&, bool) const", referenced from: > vtable for CryptoPP::FileSource in dummy-keychain.cpp.3.o > vtable for CryptoPP::SourceTemplate in dummy-keychain.cpp.3.o > vtable for CryptoPP::InputRejecting in dummy-keychain.cpp.3.o > vtable for CryptoPP::Base64Decoder in dummy-keychain.cpp.3.o > vtable for CryptoPP::Unflushable in dummy-keychain.cpp.3.o > vtable for CryptoPP::StringSource in certificate.cpp.3.o > vtable for CryptoPP::SourceTemplate in certificate.cpp.3.o > ... > "CryptoPP::ByteQueue::CopyRangeTo2(CryptoPP::BufferedTransformation&, unsigned long long&, unsigned long long, std::__1::basic_string, std::__1::allocator > const&, bool) const", referenced from: > vtable for CryptoPP::DERSequenceEncoder in certificate-extension.cpp.3.o > vtable for CryptoPP::DERSequenceEncoder in certificate-subject-description.cpp.3.o > vtable for CryptoPP::DERSequenceEncoder in certificate.cpp.3.o > vtable for CryptoPP::DERSequenceEncoder in public-key.cpp.3.o > vtable for CryptoPP::DERSequenceEncoder in sec-tpm.cpp.3.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > Waf: Leaving directory `/Users/Imani/ndnSIM/ns-3/build' > Build failed > -> task in 'ns3-ndnSIM' failed (exit status 1): > {task 4426214416: cxxshlib ndn-app.cpp.3.o,ndn-consumer-batches.cpp.3.o,ndn-consumer-cbr.cpp.3.o,ndn-consumer-window.cpp.3.o,ndn-consumer-zipf-mandelbrot.cpp.3.o,ndn-consumer.cpp.3.o,ndn-producer.cpp.3.o,ndn-app-helper.cpp.3.o,ndn- > . > . > . > > > Isn?t ndnSIM campatible with Mac OS X 10.12?! Can you help me, please? > > Thanks. > > _______________________________________________ > 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: From alanesi.sarah at gmail.com Thu Nov 10 19:17:04 2016 From: alanesi.sarah at gmail.com (Sarah Hamdi) Date: Fri, 11 Nov 2016 11:17:04 +0800 Subject: [ndnSIM] Is ndnSIM Support WSN In-Reply-To: References: Message-ID: Hi, team I am Master student from University Utara Malaysia and i plane to do my master project in ndnSIM for that i install it in my computer and start run the example and it is work fine; i want to thank you for the use full guide. On other hand, i want to ask if ndnSIM is supporting WSN that i can write forwarding scenario using WSN or if you give me any suggestion that can help me in this matter with my best regard Sarah Hamdi -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss1 at gmail.com Thu Nov 10 20:47:45 2016 From: neogeoss1 at gmail.com (Hwang In Chan) Date: Fri, 11 Nov 2016 13:47:45 +0900 Subject: [ndnSIM] Question on multiple producers and a single consumer. Message-ID: Dear NDN researchers, I made a script that runs a scenario of a consumer and five producers. When I run it, only three of them exchange Interests and data with the consumer. The other two producers do nothing. If I make another consumer that consumes the data from the other two, then the communication works. Is there any constraints on a consumer that it allows a certain number of producers at a time? Best wishes, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From marandi at inf.unibe.ch Fri Nov 11 03:19:10 2016 From: marandi at inf.unibe.ch (Ali Marandi) Date: Fri, 11 Nov 2016 12:19:10 +0100 Subject: [ndnSIM] =?utf-8?q?ndn-strategy-choice-helper=2Ehpp=3A120=3A50=3A?= =?utf-8?q?_error=3A_invalid_use_of_incomplete_type_=E2=80=98class_nfd=3A?= =?utf-8?b?OkZvcndhcmRlcuKAmQ==?= Message-ID: <20161111121910.Horde.vLgAEs_rij94o5bcjSx4Hw6@mail.inf.unibe.ch> Hi, When I include a header file in forwarder.hpp, I receive the following strange error. My header file is a ns-3 application. I look forward to your comments. Thanks, Ali In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/table/strategy-choice-entry.cpp:28: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/table/strategy-choice-entry.cpp:28: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.cpp:26: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.cpp:26: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/best-route-strategy2.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/best-route-strategy2.cpp:26: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/best-route-strategy2.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/best-route-strategy2.cpp:26: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-fixed.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-fixed.cpp:26: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-fixed.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-fixed.cpp:26: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-exponential.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-exponential.cpp:26: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-exponential.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/retx-suppression-exponential.cpp:26: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from /home/ali/ndnSIM-test/ns-3/src/ndnSIM/utils/MyNCApp.hpp:7, from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:43, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/ncc-strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/ncc-strategy.cpp:26: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp: In static member function ?static void ns3::ndn::StrategyChoiceHelper::Install(ns3::Ptr, const ndn::Name&)?: ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:120:50: error: invalid use of incomplete type ?class nfd::Forwarder? nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice(); ^ In file included from ../src/ndnSIM/NFD/daemon/fw/forwarder.hpp:32:0, from ../src/ndnSIM/NFD/daemon/fw/strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/ncc-strategy.hpp:29, from ../src/ndnSIM/NFD/daemon/fw/ncc-strategy.cpp:26: ../src/ndnSIM/NFD/daemon/fw/face-table.hpp:34:7: error: forward declaration of ?class nfd::Forwarder? class Forwarder; ^ Waf: Leaving directory `/home/ali/ndnSIM-test/ns-3/build' Build failed From philoliang at email.arizona.edu Fri Nov 11 10:37:58 2016 From: philoliang at email.arizona.edu (Teng Liang) Date: Fri, 11 Nov 2016 11:37:58 -0700 Subject: [ndnSIM] Is ndnSIM Support WSN In-Reply-To: References: Message-ID: Hi Sarah, ndnSIM is based on NS-3, so it's better to understand some basics of NS-3 first. Here is the conceptual overview of NS-3 ( https://www.nsnam.org/docs/release/3.25/tutorial/html/conceptual-overview.html#key-abstractions) and reading code examples also helps. In NS-3, you can simulate different scenarios with the topology, link-layer protocol, network-layer protocol and applications that you want. For example, you can choose a grid topology, install point-to-point or wifi at link-layer, and install TCP/IP stack at network-layer. ndnSIM provides NDN stack as a new network-layer protocol for NS-3. To simulate NDN over WSN, you can install link-layer with other NS-3 modules, e.g., LR-WPAN, or WiFi (ad hoc), install NDN stack at network-layer and you may also want to configure nodes with limited resources, depending on your scenario. Best, Teng On Thu, Nov 10, 2016 at 8:17 PM, Sarah Hamdi wrote: > Hi, team > > I am Master student from University Utara Malaysia and i plane to do my > master project in ndnSIM for that i install it in my computer and start run > the example and it is work fine; i want to thank you for the use full > guide. > > On other hand, i want to ask if ndnSIM is supporting WSN that i can write > forwarding scenario using WSN or if you give me any suggestion that can > help me in this matter > > with my best regard > > Sarah Hamdi > > _______________________________________________ > 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: From mastorakis at CS.UCLA.EDU Fri Nov 11 18:10:28 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Fri, 11 Nov 2016 18:10:28 -0800 Subject: [ndnSIM] Question on multiple producers and a single consumer. In-Reply-To: References: Message-ID: Hi, there are no constraints on that. This behavior most probably has to do with the prefix that the producers announce, the name of the Interests sent by the consumer and/or the FIB entries that have been installed at each forwarder. Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 10, 2016, at 8:47 PM, Hwang In Chan wrote: > > Dear NDN researchers, > > > I made a script that runs a scenario of a consumer and five producers. > > When I run it, only three of them exchange Interests and data with the consumer. The other two producers > do nothing. > If I make another consumer that consumes the data from the other two, then the communication works. > > Is there any constraints on a consumer that it allows a certain number of producers at a time? > > > Best wishes, > > inchan hwang > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Fri Nov 11 18:18:09 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Fri, 11 Nov 2016 18:18:09 -0800 Subject: [ndnSIM] =?utf-8?q?ndn-strategy-choice-helper=2Ehpp=3A120=3A50?= =?utf-8?q?=3A_error=3A_invalid_use_of_incomplete_type_=E2=80=98class_nfd?= =?utf-8?b?OjpGb3J3YXJkZXLigJk=?= In-Reply-To: <20161111121910.Horde.vLgAEs_rij94o5bcjSx4Hw6@mail.inf.unibe.ch> References: <20161111121910.Horde.vLgAEs_rij94o5bcjSx4Hw6@mail.inf.unibe.ch> Message-ID: <35938B6D-CDE6-4E43-B151-E1A03ACE94B3@cs.ucla.edu> Hi, most probably, there is a circular dependency somewhere that has to do with the header files that you have included. Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 11, 2016, at 3:19 AM, Ali Marandi wrote: > > error: invalid use of incomplete type -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Fri Nov 11 20:15:55 2016 From: jpbaugh at umich.edu (John Baugh) Date: Fri, 11 Nov 2016 23:15:55 -0500 Subject: [ndnSIM] =?utf-8?q?ndn-strategy-choice-helper=2Ehpp=3A120=3A50?= =?utf-8?q?=3A_error=3A_invalid_use_of_incomplete_type_=E2=80=98cla?= =?utf-8?b?c3MgbmZkOjpGb3J3YXJkZXLigJk=?= In-Reply-To: <35938B6D-CDE6-4E43-B151-E1A03ACE94B3@cs.ucla.edu> References: <20161111121910.Horde.vLgAEs_rij94o5bcjSx4Hw6@mail.inf.unibe.ch> <35938B6D-CDE6-4E43-B151-E1A03ACE94B3@cs.ucla.edu> Message-ID: Ali, Could you send your code as an attachment (.cpp for example) Thanks John On Nov 11, 2016 9:18 PM, "Spyridon (Spyros) Mastorakis" < mastorakis at cs.ucla.edu> wrote: > Hi, > > most probably, there is a circular dependency somewhere that has to do > with the header files that you have included. > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > On Nov 11, 2016, at 3:19 AM, Ali Marandi wrote: > > error: invalid use of incomplete type > > > > _______________________________________________ > 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: From mastorakis at CS.UCLA.EDU Fri Nov 11 23:18:29 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Fri, 11 Nov 2016 23:18:29 -0800 Subject: [ndnSIM] ndnSIM version 2.2 released Message-ID: <8D558F07-CE03-4755-8C6B-C2CA2E81BC26@cs.ucla.edu> Dear all, We are pleased to announce the release of ndnSIM version 2.2 (http://ndnsim.net/2.2/ ), a new release of the NDN simulator. In addition to multiple other improvements and updates, the new version includes updated submodules of NFD and ndn-cxx (version 0.4.1). We are actively working on the release of ndnSIM 2.3, which will include the latest NFD and ndn-cxx submodules (version 0.5.0). We are planning to make this release in about a month. For more details about the release, refer to http://ndnsim.net/2.2/RELEASE_NOTES.html Source code, instruction how to install how to compile ndnSIM, tutorials, FAQs, and other useful resources are available on official ndnSIM website: http://ndnsim.net/2.2/ . * * * The second revision of the ndnSIM technical report: https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf * * * The ndnSIM Team: Spyridon (Spyros) Mastorakis, Alexander Afanasyev, and others (http://ndnsim.net/2.2/meta/authors.html ) Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA -------------- next part -------------- An HTML attachment was scrubbed... URL: From renpei.bupt at qq.com Sun Nov 13 17:13:41 2016 From: renpei.bupt at qq.com (=?gb18030?B?yM7F5g==?=) Date: Mon, 14 Nov 2016 09:13:41 +0800 Subject: [ndnSIM] =?gb18030?b?u9i4tKO6ICBlcnJvciBvZiAiLi93YWYgLS1ydW49bmRu?= =?gb18030?q?-simple_--vis=22?= In-Reply-To: References: Message-ID: Hi Junior? his problem happens, you can using command "Thank you very much for your answer and patient, the Question is really what you said loose visualizer module, using "./waf configure" i can see the word visualizer is under the "Modules not built", the major aim of this email is to tell others who face the same problem during the install process that when this problem happens, you can using command "sudo apt-get install python-setuptools", than the word visualizer will disappear from "./waf configure", hope this can help those people face the question as me. Another more, thank you Junior, thank you for you email. ren pei ------------------ ???? ------------------ ???: "Junior DONGO";; ????: 2016?11?11?(???) ??4:06 ???: "??"; "ndnsim"; ??: Re: [ndnSIM] error of "./waf --run=ndn-simple --vis" Hi pei ren, This happens because PyViz visualizer is not enabled. You can verify that by looking in the " Summary of optional NS-3 features:" given by "./waf configure" Junior On 11/04/2016 02:34 PM, ?? wrote: Hello all, When we are compiling ndnSIM successfully while try the example "./waf --run=ndn-simple --vis" , some error occur as show in figure, i can not run command line with "--vis" while runing "./waf --run=ndn-simple", it's success, who can tell me how can i solve this problem? Thanks pei ren _______________________________________________ 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/octet-stream Size: 57933 bytes Desc: not available URL: From jpbaugh at umich.edu Sun Nov 13 20:04:38 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sun, 13 Nov 2016 23:04:38 -0500 Subject: [ndnSIM] ndnSIM version 2.2 released In-Reply-To: <8D558F07-CE03-4755-8C6B-C2CA2E81BC26@cs.ucla.edu> References: <8D558F07-CE03-4755-8C6B-C2CA2E81BC26@cs.ucla.edu> Message-ID: Greetings all, So I don't break my current ndnSIM 2.1 - is there an easy / suggested way to upgrade to 2.2? I just don't want to brick ndnSIM trying to upgrade it. Thanks, John On Sat, Nov 12, 2016 at 2:18 AM, Spyridon (Spyros) Mastorakis < mastorakis at cs.ucla.edu> wrote: > Dear all, > > We are pleased to announce the release of ndnSIM version 2.2 > (http://ndnsim.net/2.2/), a new release of the NDN simulator. > > In addition to multiple other improvements and updates, the new > version includes updated submodules of NFD and ndn-cxx (version 0.4.1). > We are actively working on the release of ndnSIM 2.3, which will include > the latest > NFD and ndn-cxx submodules (version 0.5.0). We are planning to make this > release > in about a month. > > For more details about the release, refer to http://ndnsim.net/2.2/ > RELEASE_NOTES.html > > Source code, instruction how to install how to compile ndnSIM, > tutorials, FAQs, and other useful resources are available on official > ndnSIM website: http://ndnsim.net/2.2/. > > * * * > > The second revision of the ndnSIM technical report: > https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf > > > * * * > > The ndnSIM Team: > Spyridon (Spyros) Mastorakis, Alexander Afanasyev, and others > (http://ndnsim.net/2.2/meta/authors.html) > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > > > > > _______________________________________________ > 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: From jpbaugh at umich.edu Sun Nov 13 21:43:54 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 14 Nov 2016 00:43:54 -0500 Subject: [ndnSIM] How can I get ino "nfd::pit::Entry" In-Reply-To: <35362AC7-94D4-487C-B378-15C36C6F5241@cs.ucla.edu> References: <27f25c5d.1c0b.1583450feea.Coremail.runtongchen@csu.edu.cn> <35362AC7-94D4-487C-B378-15C36C6F5241@cs.ucla.edu> Message-ID: Runtong, I'm new to ndnSIM also, and Spyridon or one of the other more experienced members can correct me if I'm wrong, but in a sample I was working on, this is how I got information from the *content store*, and I suspect it's *similar* to the *PIT*: Given a Content Store initialized thusly: * //get the content store for the node * * nfd::Cs& myContentStore = l3->getForwarder()->getCs();* I iterate through the items: * //use iterators to move through the content store* * for(auto it = myContentStore.begin();* * it != myContentStore.end();* * ++it)* * { * * cout<getName()< wrote: > Hi, > > the PIT class does not have a getName method. An entry of PIT has a > getName method. You can use the iterators to access the entries of PIT > (or/and std::find if you want). When you actually get a PIT entry, you can > apply the getName method to it (or the methods to get the InRecords and > OutRecords). > > Hope that this helps, > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > On Nov 5, 2016, at 4:47 AM, RuntongChen wrote: > > Hello, > > Thanks very much for your quick and patient answer both of Spyridon and > Junxiao.Based on your guidances,I can get the size of PIT already.But,What > I really want is the Name,InRecords and OutRecords.And I find that they are > in "nfd::pit::Entry" but not in "nfd::Pit".So,if I follow your advices and > call the code of "pit.getName()".Then,The computer will give me the error > :"const class nfd::Pit has no number named 'getName'".So,I'd like to know > how can I get into "nfd::pit::Entry"and print the "Name" out? > > *Looking forward to your response.* > > *Yours,* > > *Runtong* > > > > _______________________________________________ > 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: From aa at CS.UCLA.EDU Sun Nov 13 21:51:34 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Mon, 14 Nov 2016 14:51:34 +0900 Subject: [ndnSIM] ndnSIM version 2.2 released In-Reply-To: References: <8D558F07-CE03-4755-8C6B-C2CA2E81BC26@cs.ucla.edu> Message-ID: <8B88F306-7E7F-4858-AE46-6A73E5C52735@cs.ucla.edu> Hi John, If you haven't add your custom modifications, then the following commands should do the job cd ns-3 git pull origin/ndnSIM-v2 cd src/ndnSIM git pull origin/master git submodule update --init If you made modification, then in addition to the above commands you may need to fix your updates. Check the changelog for the list of API changes. --- Alex > On Nov 14, 2016, at 1:04 PM, John Baugh wrote: > > Greetings all, > > So I don't break my current ndnSIM 2.1 - is there an easy / suggested way to upgrade to 2.2? I just don't want to brick ndnSIM trying to upgrade it. > > Thanks, > > John > > On Sat, Nov 12, 2016 at 2:18 AM, Spyridon (Spyros) Mastorakis > wrote: > Dear all, > > We are pleased to announce the release of ndnSIM version 2.2 > (http://ndnsim.net/2.2/ ), a new release of the NDN simulator. > > In addition to multiple other improvements and updates, the new > version includes updated submodules of NFD and ndn-cxx (version 0.4.1). > We are actively working on the release of ndnSIM 2.3, which will include the latest > NFD and ndn-cxx submodules (version 0.5.0). We are planning to make this release > in about a month. > > For more details about the release, refer to http://ndnsim.net/2.2/RELEASE_NOTES.html > > Source code, instruction how to install how to compile ndnSIM, > tutorials, FAQs, and other useful resources are available on official > ndnSIM website: http://ndnsim.net/2.2/ . > > * * * > > The second revision of the ndnSIM technical report: > https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf > > * * * > > The ndnSIM Team: > Spyridon (Spyros) Mastorakis, Alexander Afanasyev, and others > (http://ndnsim.net/2.2/meta/authors.html ) > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > > > > > _______________________________________________ > 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: From jpbaugh at umich.edu Sun Nov 13 22:53:54 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 14 Nov 2016 01:53:54 -0500 Subject: [ndnSIM] Setting a custom policy for Content Store Message-ID: I am trying code like so: unique_ptr policy(new JPBPolicy()); myContentStore.setPolicy(policy); I'm getting tons of errors. It doesn't like any of the conversions I'm trying to perform... It may be a misunderstanding of some of the techniques used with managed/smart pointers in terms of polymorphic references, but something's not working. I want to create a subclass of Policy in order to override functions such as doAfterInsert(iterator i); In my derived class (subclass), I did provide a body for all the pure virtual methods from the documentation of Policy. But I think the problem is the conversion. Is there some way to do this with say, static_cast ? Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Mon Nov 14 00:02:44 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Mon, 14 Nov 2016 17:02:44 +0900 Subject: [ndnSIM] Setting a custom policy for Content Store In-Reply-To: References: Message-ID: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> Hi John, Can you post the exact error you're getting (if it is too long, you can use pastebin.com ). If you also can share the snippet that reproduces the problem, it would be much faster to debug the issue and suggest the solution. -- Alex > On Nov 14, 2016, at 3:53 PM, John Baugh wrote: > > I am trying code like so: > > unique_ptr policy(new JPBPolicy()); > > myContentStore.setPolicy(policy); > > I'm getting tons of errors. It doesn't like any of the conversions I'm trying to perform... It may be a misunderstanding of some of the techniques used with managed/smart pointers in terms of polymorphic references, but something's not working. > > I want to create a subclass of Policy in order to override functions such as doAfterInsert(iterator i); > > In my derived class (subclass), I did provide a body for all the pure virtual methods from the documentation of Policy. > > But I think the problem is the conversion. Is there some way to do this with say, static_cast ? > > Thanks, > > John -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Tue Nov 15 20:44:33 2016 From: jpbaugh at umich.edu (John Baugh) Date: Tue, 15 Nov 2016 23:44:33 -0500 Subject: [ndnSIM] Setting a custom policy for Content Store In-Reply-To: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> References: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> Message-ID: Greetings all, *See the error(s) I'm getting below from my Google Drive:* https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA *Here's the code:* https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA Thanks, John On Mon, Nov 14, 2016 at 3:02 AM, Alex Afanasyev wrote: > Hi John, > > Can you post the exact error you're getting (if it is too long, you can > use pastebin.com). If you also can share the snippet that reproduces the > problem, it would be much faster to debug the issue and suggest the > solution. > > -- > Alex > > On Nov 14, 2016, at 3:53 PM, John Baugh wrote: > > I am trying code like so: > > unique_ptr policy(new JPBPolicy()); > > myContentStore.setPolicy(policy); > > I'm getting tons of errors. It doesn't like any of the conversions I'm > trying to perform... It may be a misunderstanding of some of the > techniques used with managed/smart pointers in terms of polymorphic > references, but something's not working. > > I want to create a subclass of Policy in order to override functions such > as doAfterInsert(iterator i); > > In my derived class (subclass), I did provide a body for all the pure > virtual methods from the documentation of Policy. > > But I think the problem is the conversion. Is there some way to do this > with say, static_cast ? > > Thanks, > > John > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Tue Nov 15 21:38:42 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 16 Nov 2016 14:38:42 +0900 Subject: [ndnSIM] Setting a custom policy for Content Store In-Reply-To: References: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> Message-ID: Hi John, You have a small issue in your implementation of JPBPolicy. If you haven't, you need to define the default constructor and in the default constructor use ``Policy::Policy(const std::string&)`` to initialize the base class. You can see the example in other policies: LruPolicy::LruPolicy() : Policy(POLICY_NAME) { } The reason is that each policy has to have a name, which is enforced by the deleted default constructor of the base class. -- Alex > On Nov 16, 2016, at 1:44 PM, John Baugh wrote: > > Greetings all, > > See the error(s) I'm getting below from my Google Drive: > https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA > > Here's the code: > https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA > > Thanks, > > John > > On Mon, Nov 14, 2016 at 3:02 AM, Alex Afanasyev > wrote: > Hi John, > > Can you post the exact error you're getting (if it is too long, you can use pastebin.com ). If you also can share the snippet that reproduces the problem, it would be much faster to debug the issue and suggest the solution. > > -- > Alex > >> On Nov 14, 2016, at 3:53 PM, John Baugh > wrote: >> >> I am trying code like so: >> >> unique_ptr policy(new JPBPolicy()); >> >> myContentStore.setPolicy(policy); >> >> I'm getting tons of errors. It doesn't like any of the conversions I'm trying to perform... It may be a misunderstanding of some of the techniques used with managed/smart pointers in terms of polymorphic references, but something's not working. >> >> I want to create a subclass of Policy in order to override functions such as doAfterInsert(iterator i); >> >> In my derived class (subclass), I did provide a body for all the pure virtual methods from the documentation of Policy. >> >> But I think the problem is the conversion. Is there some way to do this with say, static_cast ? >> >> Thanks, >> >> John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Tue Nov 15 22:10:40 2016 From: jpbaugh at umich.edu (John Baugh) Date: Wed, 16 Nov 2016 01:10:40 -0500 Subject: [ndnSIM] Setting a custom policy for Content Store In-Reply-To: References: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> Message-ID: Alex, Actually, as soon as I sent the last e-mail, I noticed that Policy didn't have a default/no-arg ctor defined, so I went in and modified it to use one. I gave JPBPolicy a no-arg constructor, but used a passthrough to the base class (Policy) constructor with the constant string. I *think* I have that part correct. However, I still am getting the "use of deleted function" error related to unique_ptr. *Updated Errors:* https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA *Updated jpb-policy-test.cpp:* https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA *Updated JPBPolicy.hpp:* https://drive.google.com/open?id=0By9ufeKqmJYYV183emczZ01kM28 I neglected to include my Policy class last time. And yes, I suppose using separate compilation (.hpp and .cpp file for the JPBPolicy class) would be better, but I'm trying to take it one step at a time! :) I think some of this might be some misunderstandings with some of the new C++ 11 and 14 features / smart pointer stuff. Also, *do I need the *= delete for the copy constructor and = operator? I was reading in a few areas where that helped with the error I'm receiving, but I don't know if those are necessary. Thank you all so much, John On Wed, Nov 16, 2016 at 12:38 AM, Alex Afanasyev wrote: > Hi John, > > You have a small issue in your implementation of JPBPolicy. If you > haven't, you need to define the default constructor and in the default > constructor use ``Policy::Policy(const std::string&)`` to initialize the > base class. You can see the example in other policies: > > LruPolicy::LruPolicy() > : Policy(POLICY_NAME) > { > } > > The reason is that each policy has to have a name, which is enforced by > the deleted default constructor of the base class. > > -- > Alex > > On Nov 16, 2016, at 1:44 PM, John Baugh wrote: > > Greetings all, > > *See the error(s) I'm getting below from my Google Drive:* > https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_ > 1k4oDKoXuJJrGNtwXl6sHnrA > > *Here's the code:* > https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA > > Thanks, > > John > > On Mon, Nov 14, 2016 at 3:02 AM, Alex Afanasyev wrote: > >> Hi John, >> >> Can you post the exact error you're getting (if it is too long, you can >> use pastebin.com). If you also can share the snippet that reproduces >> the problem, it would be much faster to debug the issue and suggest the >> solution. >> >> -- >> Alex >> >> On Nov 14, 2016, at 3:53 PM, John Baugh wrote: >> >> I am trying code like so: >> >> unique_ptr policy(new JPBPolicy()); >> >> myContentStore.setPolicy(policy); >> >> I'm getting tons of errors. It doesn't like any of the conversions I'm >> trying to perform... It may be a misunderstanding of some of the >> techniques used with managed/smart pointers in terms of polymorphic >> references, but something's not working. >> >> I want to create a subclass of Policy in order to override functions such >> as doAfterInsert(iterator i); >> >> In my derived class (subclass), I did provide a body for all the pure >> virtual methods from the documentation of Policy. >> >> But I think the problem is the conversion. Is there some way to do this >> with say, static_cast ? >> >> Thanks, >> >> John >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Tue Nov 15 22:27:11 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 16 Nov 2016 15:27:11 +0900 Subject: [ndnSIM] Setting a custom policy for Content Store In-Reply-To: References: <79D28817-51E1-4A40-8EB6-71A765ED2C61@cs.ucla.edu> Message-ID: <52B808FD-00FC-46B9-A32D-3A004DE20647@cs.ucla.edu> Try replacing myContentStore.setPolicy(policy); with myContentStore.setPolicy(std::move(policy)); > On Nov 16, 2016, at 3:10 PM, John Baugh wrote: > > Alex, > > Actually, as soon as I sent the last e-mail, I noticed that Policy didn't have a default/no-arg ctor defined, so I went in and modified it to use one. I gave JPBPolicy a no-arg constructor, but used a passthrough to the base class (Policy) constructor with the constant string. I *think* I have that part correct. > > However, I still am getting the "use of deleted function" error related to unique_ptr. > > > Updated Errors: > https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA > > Updated jpb-policy-test.cpp: > https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA > > Updated JPBPolicy.hpp: > https://drive.google.com/open?id=0By9ufeKqmJYYV183emczZ01kM28 > > > I neglected to include my Policy class last time. And yes, I suppose using separate compilation (.hpp and .cpp file for the JPBPolicy class) would be better, but I'm trying to take it one step at a time! :) > > I think some of this might be some misunderstandings with some of the new C++ 11 and 14 features / smart pointer stuff. > > Also, do I need the = delete for the copy constructor and = operator? I was reading in a few areas where that helped with the error I'm receiving, but I don't know if those are necessary. Not really. These are already prohibited by the base class. You can delete them in your class as well, but nothing really changes. -- Alex > > Thank you all so much, > > John > > > On Wed, Nov 16, 2016 at 12:38 AM, Alex Afanasyev > wrote: > Hi John, > > You have a small issue in your implementation of JPBPolicy. If you haven't, you need to define the default constructor and in the default constructor use ``Policy::Policy(const std::string&)`` to initialize the base class. You can see the example in other policies: > > LruPolicy::LruPolicy() > : Policy(POLICY_NAME) > { > } > > The reason is that each policy has to have a name, which is enforced by the deleted default constructor of the base class. > > -- > Alex > >> On Nov 16, 2016, at 1:44 PM, John Baugh > wrote: >> >> Greetings all, >> >> See the error(s) I'm getting below from my Google Drive: >> https://drive.google.com/open?id=1Ni2wc7mSecJR-1KseA_1k4oDKoXuJJrGNtwXl6sHnrA >> >> Here's the code: >> https://drive.google.com/open?id=0By9ufeKqmJYYOThERVMtOVo2STA >> >> Thanks, >> >> John >> >> On Mon, Nov 14, 2016 at 3:02 AM, Alex Afanasyev > wrote: >> Hi John, >> >> Can you post the exact error you're getting (if it is too long, you can use pastebin.com ). If you also can share the snippet that reproduces the problem, it would be much faster to debug the issue and suggest the solution. >> >> -- >> Alex >> >>> On Nov 14, 2016, at 3:53 PM, John Baugh > wrote: >>> >>> I am trying code like so: >>> >>> unique_ptr policy(new JPBPolicy()); >>> >>> myContentStore.setPolicy(policy); >>> >>> I'm getting tons of errors. It doesn't like any of the conversions I'm trying to perform... It may be a misunderstanding of some of the techniques used with managed/smart pointers in terms of polymorphic references, but something's not working. >>> >>> I want to create a subclass of Policy in order to override functions such as doAfterInsert(iterator i); >>> >>> In my derived class (subclass), I did provide a body for all the pure virtual methods from the documentation of Policy. >>> >>> But I think the problem is the conversion. Is there some way to do this with say, static_cast ? >>> >>> Thanks, >>> >>> John >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss1 at gmail.com Wed Nov 16 00:03:08 2016 From: neogeoss1 at gmail.com (Hwang In Chan) Date: Wed, 16 Nov 2016 17:03:08 +0900 Subject: [ndnSIM] Question on NDN-SImple-wifi.cpp example Message-ID: Dear NDN researchers, I am now making a scenario script based on ndn-simple-wifi.cpp file because my scenario is about simulating NDN wireless nodes. When I run it with visualizer, it runs but there is no trace of any data packet in CS. When I use the code below, auto csSize = (*node)->GetObject()->getForwarder()->getCs().size(); csSize is always zero. I am curious why there is not any example of NDN wireless explained in NDN SIM website. Does NDNSiM support wireless environment? Best wishes, inchan Hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From nakatsuka at west.sd.keio.ac.jp Wed Nov 16 01:40:24 2016 From: nakatsuka at west.sd.keio.ac.jp (Yoshimichi Nakatsuka) Date: Wed, 16 Nov 2016 18:40:24 +0900 Subject: [ndnSIM] Substitute of Class Limits in ndnSIM 2.0 Message-ID: <418e9756-da35-1a91-4a4e-884b4395ae5e@west.sd.keio.ac.jp> Dear ndnSIM mailing list members, Hello, I am Yoshimichi from Keio University, Japan. Are there any substitutes of the class "Limits", which existed in ndnSIM 1.0, in ndnSIM 2.1? I've searched through the API Documentation, but it seems that the class "Limits" is missing from ndnSIM 2.1. Any suggestions would be more than welcome, and thank you in advance. Best regards, Yoshimichi NAKATSUKA -- -------------------------- Senior student at Nishi Laboratory, Department of System Design & Engineering, Faculty of Science & Technology, Keio University NAKATSUKA, Yoshimichi Email: nakatsuka at west.sd.keio.ac.jp Email: y.nakatsuka443 at gmail.com mobile: +81-80-1306-3835 From mastorakis at CS.UCLA.EDU Wed Nov 16 09:15:10 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 16 Nov 2016 09:15:10 -0800 Subject: [ndnSIM] Question on NDN-SImple-wifi.cpp example In-Reply-To: References: Message-ID: Hi, you are trying to access the size of NFD?s CS. If you are using the ?old? CS of ndnSIM, then it makes sense that the size of NFD?s CS will be 0, since it is not being used. Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 16, 2016, at 12:03 AM, Hwang In Chan wrote: > > Dear NDN researchers, > > I am now making a scenario script based on ndn-simple-wifi.cpp file because my scenario is about > simulating NDN wireless nodes. > When I run it with visualizer, it runs but there is no trace of any data packet in CS. > > When I use the code below, > auto csSize = (*node)->GetObject()->getForwarder()->getCs().size(); > > csSize is always zero. > > I am curious why there is not any example of NDN wireless explained in NDN SIM website. > Does NDNSiM support wireless environment? > > Best wishes, > > inchan Hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Wed Nov 16 11:31:43 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 16 Nov 2016 11:31:43 -0800 Subject: [ndnSIM] Substitute of Class Limits in ndnSIM 2.0 In-Reply-To: <418e9756-da35-1a91-4a4e-884b4395ae5e@west.sd.keio.ac.jp> References: <418e9756-da35-1a91-4a4e-884b4395ae5e@west.sd.keio.ac.jp> Message-ID: <31F49EE5-2943-4DFF-9F81-3ABB33A9C895@cs.ucla.edu> Hi Yoshimichi, ndnSIM 2.0 and later versions use NFD to do the actual packet forwarding. NFD does not do any rate limiting for now. You could implement your own rate limiting mechanisms as a part of your forwarding strategy. Please take a look at the provided forwarding strategies and the NFD developer?s guide for more information: https://github.com/named-data-ndnSIM/NFD/tree/NFD-0.4.1-1-g704430c-ndnSIM/daemon/fw https://named-data.net/wp-content/uploads/2016/03/ndn-0021-6-nfd-developer-guide.pdf Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 16, 2016, at 1:40 AM, Yoshimichi Nakatsuka wrote: > > Dear ndnSIM mailing list members, > > Hello, I am Yoshimichi from Keio University, Japan. > > Are there any substitutes of the class "Limits", which existed in ndnSIM 1.0, in ndnSIM 2.1? > I've searched through the API Documentation, but it seems that the class "Limits" is missing from ndnSIM 2.1. > > Any suggestions would be more than welcome, and thank you in advance. > > Best regards, > Yoshimichi NAKATSUKA > > -- > -------------------------- > Senior student at Nishi Laboratory, > Department of System Design & Engineering, Faculty of Science & Technology, > Keio University > NAKATSUKA, Yoshimichi > Email: nakatsuka at west.sd.keio.ac.jp > Email: y.nakatsuka443 at gmail.com > mobile: +81-80-1306-3835 -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss1 at gmail.com Wed Nov 16 21:37:56 2016 From: neogeoss1 at gmail.com (Hwang In Chan) Date: Thu, 17 Nov 2016 14:37:56 +0900 Subject: [ndnSIM] Question on Visualizer Message-ID: Dear NDN researcher, I am trying to show an attribute in the python visualizer that I have added on my own. in ndnsim_pit.py for item in ndnPit: tree_iter = self.table_model.append() self.table_model.set(tree_iter, self.COLUMN_PREFIX, str(item.getName()), self.COLUMN_FACE, str(item.getInterest())) item.getName() works but my own attribute item.getProducerUid does not work. Is there any file or setting I have to change to access to it? Best wishes, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Thu Nov 17 00:52:51 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Thu, 17 Nov 2016 17:52:51 +0900 Subject: [ndnSIM] Question on Visualizer In-Reply-To: References: Message-ID: Hi Hwang, To get access to information from within the visualizer module, you need to implement the corresponding python bindings for your getter. If you have a simple data type, it should be straightforward. Take a look into bindings/modulegen__gcc_ILP32.py and modulegen__gcc_LP64.py (both files should have the same content) -- Alex > On Nov 17, 2016, at 2:37 PM, Hwang In Chan wrote: > > Dear NDN researcher, > > I am trying to show an attribute in the python visualizer that I have added on my own. > > in ndnsim_pit.py > > for item in ndnPit: > tree_iter = self.table_model.append() > self.table_model.set(tree_iter, > self.COLUMN_PREFIX, str(item.getName()), > self.COLUMN_FACE, str(item.getInterest())) > > item.getName() works but my own attribute item.getProducerUid does not work. > Is there any file or setting I have to change to access to it? > > Best wishes, > > inchan hwang > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From jpbaugh at umich.edu Fri Nov 18 00:56:33 2016 From: jpbaugh at umich.edu (John Baugh) Date: Fri, 18 Nov 2016 03:56:33 -0500 Subject: [ndnSIM] Evicting a specific item from the content store (nfd::cs::Cs) Message-ID: Greetings all, 1.) When I tried to use the erase( ) function to remove an item, I found out that the method is not implemented. I checked the code from the documentation and found out that this is indeed the case. So how am I supposed to evict a specific item from the Content Store? 2.) I've noticed when I use ./waf --run=some-test that the system often re-compiles tons of completely (as far as I know) unrelated files (the grid samples, tracers, etc.). This adds significantly to the time it takes to run the test. Any ideas why this might be happening? I'm not using any of the sample files, tracers, etc. - nor have I modified them for my current tests. Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Fri Nov 18 09:10:28 2016 From: jpbaugh at umich.edu (John Baugh) Date: Fri, 18 Nov 2016 12:10:28 -0500 Subject: [ndnSIM] Evicting a specific item from the content store (nfd::cs::Cs) In-Reply-To: References: Message-ID: Sorry to be bothersome - I've continued working on this and haven't made a solution yet. Any ideas? Thanks, John On Fri, Nov 18, 2016 at 3:56 AM, John Baugh wrote: > Greetings all, > > 1.) When I tried to use the erase( ) function to remove an item, I found > out that the method is not implemented. I checked the code from the > documentation and found out that this is indeed the case. > > So how am I supposed to evict a specific item from the Content Store? > > 2.) I've noticed when I use ./waf --run=some-test that the system often > re-compiles tons of completely (as far as I know) unrelated files (the grid > samples, tracers, etc.). This adds significantly to the time it takes to > run the test. Any ideas why this might be happening? I'm not using any of > the sample files, tracers, etc. - nor have I modified them for my current > tests. > > Thanks, > > John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Nov 19 00:02:59 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 19 Nov 2016 03:02:59 -0500 Subject: [ndnSIM] Evicting a specific item from the content store (nfd::cs::Cs) In-Reply-To: References: Message-ID: Hello all: Okay, please correct me if I'm wrong: If I understand this correctly, when you create a custom Policy subclass/derived class, *the developer *is responsible for creating the three queues specified in the NFD Developer guide? (unsolicited, stale, and fifo)? So we directly control what stays in the "queues" (std::list) according the the policy that we can determine. So the *Policy *maintains the actual Entries, while the Cs maintains the Table of names? I noticed the three queues don't actually live in the cs.cpp or cs.hpp files. I'm *still * a little confused about the Cs::erase method: why isn't it implemented? How do we "trigger" a removal of an item from the Content Store (Policy?) Thanks, John On Fri, Nov 18, 2016 at 12:10 PM, John Baugh wrote: > Sorry to be bothersome - I've continued working on this and haven't made a > solution yet. Any ideas? > > Thanks, > > John > > On Fri, Nov 18, 2016 at 3:56 AM, John Baugh wrote: > >> Greetings all, >> >> 1.) When I tried to use the erase( ) function to remove an item, I found >> out that the method is not implemented. I checked the code from the >> documentation and found out that this is indeed the case. >> >> So how am I supposed to evict a specific item from the Content Store? >> >> 2.) I've noticed when I use ./waf --run=some-test that the system often >> re-compiles tons of completely (as far as I know) unrelated files (the grid >> samples, tracers, etc.). This adds significantly to the time it takes to >> run the test. Any ideas why this might be happening? I'm not using any of >> the sample files, tracers, etc. - nor have I modified them for my current >> tests. >> >> Thanks, >> >> John >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From igfuca at gmail.com Sat Nov 19 03:06:05 2016 From: igfuca at gmail.com (Igor Carvalho) Date: Sat, 19 Nov 2016 08:06:05 -0300 Subject: [ndnSIM] Evicting a specific item from the content store (nfd::cs::Cs) In-Reply-To: References: Message-ID: Hi, John. About your last queation, I believe that this has not been implemented because Cs removals are performed by the replacement policies (Lru/Fifo), which makes it unnecessary the implementation of a specific piece of content. If you go through both implementations, they have the method that is in charge this. void LruPolicy::doAfterInsert(iterator i) { this->insertToQueue(i, true); this->evictEntries(); } Hope that helps. Regards, Igor. Em 19 de nov de 2016 05:05, "John Baugh" escreveu: > Hello all: > > Okay, please correct me if I'm wrong: > > If I understand this correctly, when you create a custom Policy > subclass/derived class, *the developer *is responsible for creating the > three queues specified in the NFD Developer guide? (unsolicited, stale, > and fifo)? So we directly control what stays in the "queues" (std::list) > according the the policy that we can determine. So the *Policy *maintains > the actual Entries, while the Cs maintains the Table of names? I noticed > the three queues don't actually live in the cs.cpp or cs.hpp files. > > I'm *still * a little confused about the Cs::erase method: why isn't it > implemented? How do we "trigger" a removal of an item from the Content > Store (Policy?) > > Thanks, > > John > > On Fri, Nov 18, 2016 at 12:10 PM, John Baugh wrote: > >> Sorry to be bothersome - I've continued working on this and haven't made >> a solution yet. Any ideas? >> >> Thanks, >> >> John >> >> On Fri, Nov 18, 2016 at 3:56 AM, John Baugh wrote: >> >>> Greetings all, >>> >>> 1.) When I tried to use the erase( ) function to remove an item, I >>> found out that the method is not implemented. I checked the code from the >>> documentation and found out that this is indeed the case. >>> >>> So how am I supposed to evict a specific item from the Content Store? >>> >>> 2.) I've noticed when I use ./waf --run=some-test that the system often >>> re-compiles tons of completely (as far as I know) unrelated files (the grid >>> samples, tracers, etc.). This adds significantly to the time it takes to >>> run the test. Any ideas why this might be happening? I'm not using any of >>> the sample files, tracers, etc. - nor have I modified them for my current >>> tests. >>> >>> Thanks, >>> >>> John >>> >> >> > > _______________________________________________ > 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: From anikety97 at gmail.com Sat Nov 19 04:55:32 2016 From: anikety97 at gmail.com (Aniket Yeole) Date: Sat, 19 Nov 2016 13:55:32 +0100 Subject: [ndnSIM] Getting error while compiling Message-ID: Greetings all, I am trying to install ndnsim as mentioned on the website ( http://ndnsim.net/2.2/). But while doing so I am facing some problems like there are error while installation. when I executed "./waf configure --enable-examples" i got following errors PlanetLab FdNetDevice : not enabled (PlanetLab operating system not detected (see option --force-planetlab)) Network Simulation Cradle : not enabled (NSC not found (see option --with-nsc)) MPI Support : not enabled (option --enable-mpi not selected) ndnSIM : enabled NS-3 OpenFlow Integration : not enabled (OpenFlow not enabled (see option --with-openflow)) SQlite stats data output : enabled Tap Bridge : enabled PyViz visualizer : not enabled (Python Bindings are needed but not enabled) Use sudo to set suid bit : not enabled (option --enable-sudo not selected) Build tests : not enabled (defaults to disabled) Build examples : enabled GNU Scientific Library (GSL) : not enabled (GSL not found) 'configure' finished successfully (16.575s) Should I ignore them ? I continued the installation process ignoring the error and while compiling the program ndn-simple.cpp I got following error /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2: error: ld returned 1 exit status Waf: Leaving directory `/home/a/KL/ndnsim/ns-3/build' Build failed -> task in 'RemoteSystemsTempFiles' failed (exit status 1): {task 140133562240336: cxxprogram -> RemoteSystemsTempFiles} ['/usr/bin/g++', '-pthread', '-pthread', '-o', '/home/a/KL/ndnsim/ns-3/build/scratch/RemoteSystemsTempFiles/RemoteSystemsTempFiles', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L/usr/lib/x86_64-linux-gnu', '-L/usr/lib', '-lns3-dev-lr-wpan-debug', '-lns3-dev-netanim-debug', '-lns3-dev-lte-debug', '-lns3-dev-spectrum-debug', '-lns3-dev-antenna-debug', '-lns3-dev-aodv-debug', '-lns3-dev-dsr-debug', '-lns3-dev-mesh-debug', '-lns3-dev-ndnSIM-debug', '-lns3-dev-test-debug', '-lns3-dev-wave-debug', '-lns3-dev-wifi-debug', '-lns3-dev-applications-debug', '-lns3-dev-csma-layout-debug', '-lns3-dev-dsdv-debug', '-lns3-dev-flow-monitor-debug', '-lns3-dev-point-to-point-layout-debug', '-lns3-dev-wimax-debug', '-lns3-dev-nix-vector-routing-debug', '-lns3-dev-olsr-debug', '-lns3-dev-sixlowpan-debug', '-lns3-dev-tap-bridge-debug', '-lns3-dev-internet-debug', '-lns3-dev-bridge-debug', '-lns3-dev-point-to-point-debug', '-lns3-dev-mpi-debug', '-lns3-dev-buildings-debug', '-lns3-dev-config-store-debug', '-lns3-dev-propagation-debug', '-lns3-dev-uan-debug', '-lns3-dev-mobility-debug', '-lns3-dev-energy-debug', '-lns3-dev-csma-debug', '-lns3-dev-fd-net-device-debug', '-lns3-dev-virtual-net-device-debug', '-lns3-dev-topology-read-debug', '-lns3-dev-network-debug', '-lns3-dev-stats-debug', '-lns3-dev-core-debug', '-lrt', '-lpthread', '-lsqlite3', '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-lpangocairo-1.0', '-latk-1.0', '-lcairo', '-lgdk_pixbuf-2.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpango-1.0', '-lgobject-2.0', '-lglib-2.0', '-lfontconfig', '-lfreetype', '-lxml2', '-lboost_graph', '-lboost_thread', '-lboost_unit_test_framework', '-lboost_system', '-lboost_random', '-lboost_date_time', '-lboost_iostreams', '-lboost_regex', '-lboost_program_options', '-lboost_chrono', '-lboost_filesystem', '-lboost_system', '-lboost_signals', '-lboost_filesystem', '-lcryptopp'] what should I do to eliminate this errors. Please help. Regards, Aniket -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Nov 19 09:05:39 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 19 Nov 2016 12:05:39 -0500 Subject: [ndnSIM] Evicting a specific item from the content store (nfd::cs::Cs) In-Reply-To: References: Message-ID: So, if insert is called on the Cs, the only thing inserted is the data Name into the table. The actual entry isn't inserted anywhere because handling the actual entries is up to.the policy? Technically, we need to implement 'doAfterInsert' to do the actual entry insertion into our own data structures? Thanks John On Nov 19, 2016 6:06 AM, "Igor Carvalho" wrote: Hi, John. About your last queation, I believe that this has not been implemented because Cs removals are performed by the replacement policies (Lru/Fifo), which makes it unnecessary the implementation of a specific piece of content. If you go through both implementations, they have the method that is in charge this. void LruPolicy::doAfterInsert(iterator i) { this->insertToQueue(i, true); this->evictEntries(); } Hope that helps. Regards, Igor. Em 19 de nov de 2016 05:05, "John Baugh" escreveu: > Hello all: > > Okay, please correct me if I'm wrong: > > If I understand this correctly, when you create a custom Policy > subclass/derived class, *the developer *is responsible for creating the > three queues specified in the NFD Developer guide? (unsolicited, stale, > and fifo)? So we directly control what stays in the "queues" (std::list) > according the the policy that we can determine. So the *Policy *maintains > the actual Entries, while the Cs maintains the Table of names? I noticed > the three queues don't actually live in the cs.cpp or cs.hpp files. > > I'm *still * a little confused about the Cs::erase method: why isn't it > implemented? How do we "trigger" a removal of an item from the Content > Store (Policy?) > > Thanks, > > John > > On Fri, Nov 18, 2016 at 12:10 PM, John Baugh wrote: > >> Sorry to be bothersome - I've continued working on this and haven't made >> a solution yet. Any ideas? >> >> Thanks, >> >> John >> >> On Fri, Nov 18, 2016 at 3:56 AM, John Baugh wrote: >> >>> Greetings all, >>> >>> 1.) When I tried to use the erase( ) function to remove an item, I >>> found out that the method is not implemented. I checked the code from the >>> documentation and found out that this is indeed the case. >>> >>> So how am I supposed to evict a specific item from the Content Store? >>> >>> 2.) I've noticed when I use ./waf --run=some-test that the system often >>> re-compiles tons of completely (as far as I know) unrelated files (the grid >>> samples, tracers, etc.). This adds significantly to the time it takes to >>> run the test. Any ideas why this might be happening? I'm not using any of >>> the sample files, tracers, etc. - nor have I modified them for my current >>> tests. >>> >>> Thanks, >>> >>> John >>> >> >> > > _______________________________________________ > 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: From aa at CS.UCLA.EDU Sat Nov 19 11:07:48 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Sat, 19 Nov 2016 11:07:48 -0800 Subject: [ndnSIM] Getting error while compiling In-Reply-To: References: Message-ID: > On Nov 19, 2016, at 4:55 AM, Aniket Yeole wrote: > > Greetings all, > > I am trying to install ndnsim as mentioned on the website (http://ndnsim.net/2.2/ ). But while doing so I am facing some problems like there are error while installation. > > when I executed "./waf configure --enable-examples" i got following errors > > > PlanetLab FdNetDevice : not enabled (PlanetLab operating system not detected (see option --force-planetlab)) > Network Simulation Cradle : not enabled (NSC not found (see option --with-nsc)) > MPI Support : not enabled (option --enable-mpi not selected) > ndnSIM : enabled > NS-3 OpenFlow Integration : not enabled (OpenFlow not enabled (see option --with-openflow)) > SQlite stats data output : enabled > Tap Bridge : enabled > PyViz visualizer : not enabled (Python Bindings are needed but not enabled) > Use sudo to set suid bit : not enabled (option --enable-sudo not selected) > Build tests : not enabled (defaults to disabled) > Build examples : enabled > GNU Scientific Library (GSL) : not enabled (GSL not found) > 'configure' finished successfully (16.575s) > > Should I ignore them ? Hi Aniket, If you see that "ndnSIM" is enabled and 'configure' finished successfully, there is no reason to panic :) Everything got configured correctly and the script just reporting what has been found and what has not. > I continued the installation process ignoring the error and while compiling the program ndn-simple.cpp I got following error > > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function `_start': > (.text+0x20): undefined reference to `main' > collect2: error: ld returned 1 exit status > > Waf: Leaving directory `/home/a/KL/ndnsim/ns-3/build' > Build failed > -> task in 'RemoteSystemsTempFiles' failed (exit status 1): > {task 140133562240336: cxxprogram -> RemoteSystemsTempFiles} > ['/usr/bin/g++', '-pthread', '-pthread', '-o', '/home/a/KL/ndnsim/ns-3/build/scratch/RemoteSystemsTempFiles/RemoteSystemsTempFiles', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L/usr/lib/x86_64-linux-gnu', '-L/usr/lib', '-lns3-dev-lr-wpan-debug', '-lns3-dev-netanim-debug', '-lns3-dev-lte-debug', '-lns3-dev-spectrum-debug', '-lns3-dev-antenna-debug', '-lns3-dev-aodv-debug', '-lns3-dev-dsr-debug', '-lns3-dev-mesh-debug', '-lns3-dev-ndnSIM-debug', '-lns3-dev-test-debug', '-lns3-dev-wave-debug', '-lns3-dev-wifi-debug', '-lns3-dev-applications-debug', '-lns3-dev-csma-layout-debug', '-lns3-dev-dsdv-debug', '-lns3-dev-flow-monitor-debug', '-lns3-dev-point-to-point-layout-debug', '-lns3-dev-wimax-debug', '-lns3-dev-nix-vector-routing-debug', '-lns3-dev-olsr-debug', '-lns3-dev-sixlowpan-debug', '-lns3-dev-tap-bridge-debug', '-lns3-dev-internet-debug', '-lns3-dev-bridge-debug', '-lns3-dev-point-to-point-debug', '-lns3-dev-mpi-debug', '-lns3-dev-buildings-debug', '-lns3-dev-config-store-debug', '-lns3-dev-propagation-debug', '-lns3-dev-uan-debug', '-lns3-dev-mobility-debug', '-lns3-dev-energy-debug', '-lns3-dev-csma-debug', '-lns3-dev-fd-net-device-debug', '-lns3-dev-virtual-net-device-debug', '-lns3-dev-topology-read-debug', '-lns3-dev-network-debug', '-lns3-dev-stats-debug', '-lns3-dev-core-debug', '-lrt', '-lpthread', '-lsqlite3', '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-lpangocairo-1.0', '-latk-1.0', '-lcairo', '-lgdk_pixbuf-2.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpango-1.0', '-lgobject-2.0', '-lglib-2.0', '-lfontconfig', '-lfreetype', '-lxml2', '-lboost_graph', '-lboost_thread', '-lboost_unit_test_framework', '-lboost_system', '-lboost_random', '-lboost_date_time', '-lboost_iostreams', '-lboost_regex', '-lboost_program_options', '-lboost_chrono', '-lboost_filesystem', '-lboost_system', '-lboost_signals', '-lboost_filesystem', '-lcryptopp'] > > > what should I do to eliminate this errors. > > Please help. The error is not related to ndn-simple.cpp, but to RemoteSystemTempFiles "scenario" that you have in your NS-3's scratch folder. The scratch folder assumptions about how it handles .cpp files directly placed in the scratch folder (those assumed to be complete scenarios and must include main() function) and files places in a subdirectory in the scratch folder (those will be compiled into a single scenario and one of the files must have main() function). From the error, I see that you haven't defined main() function in any of the scenario files in /home/a/KL/ndnsim/ns-3/build/scratch/RemoteSystemsTempFiles/RemoteSystemsTempFiles/ folder -- Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Nov 19 18:04:46 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 19 Nov 2016 21:04:46 -0500 Subject: [ndnSIM] Identifying an interface (face?) Message-ID: Greetings again ndnSIM friends, What is the appropriate way to identify what interface a particular Data packet is received (or sent?) on? Here's a scenario: Assume there is a router, R with a Content Store, between a producer, P, and several consumers, C1, C2, C3, ..., C*n*. Will the router naturally have a single interface exposed for each consumer? Or can multiple consumers communicate over the same interface (e.g., send Interests across the same interface/Face)? I'd like to be able to determine how much and which data arrives on a particular interface. I suppose I somehow need to obtain a FaceId, and somehow determine which Data arrives on that face? Also, I need to be able to distinguish between Faces among applications and NFD, and between NFD and the "outside world" - i.e., which are ACTUALLY network interfaces. Ideas? Thanks, John P.S. - I am slowly, but surely, understanding this simulator much better, and I appreciate all of your patience. I am currently working on a very thorough tutorial/reference for myself, and once somewhat refined with very good examples I will release it to the community to help people get up to speed even fast - at least that's the goal. -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Sat Nov 19 22:46:23 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Sat, 19 Nov 2016 22:46:23 -0800 Subject: [ndnSIM] Identifying an interface (face?) In-Reply-To: References: Message-ID: <0D5E5008-5795-4839-A049-D6AE08F4C038@cs.ucla.edu> > On Nov 19, 2016, at 6:04 PM, John Baugh wrote: > > Greetings again ndnSIM friends, > > What is the appropriate way to identify what interface a particular Data packet is received (or sent?) on? > > Here's a scenario: > > Assume there is a router, R with a Content Store, between a producer, P, and several consumers, C1, C2, C3, ..., Cn. This depends on your topology. If you're using PointToPoint links (this is the case in in most of the examples), then you will have a dedicated link between producer and consumers and, consequently, a dedicated face. If you're simulating a multi-access link (e.g., WiFi scenarios), then it is not the case. > > Will the router naturally have a single interface exposed for each consumer? Or can multiple consumers communicate over the same interface (e.g., send Interests across the same interface/Face)? > > I'd like to be able to determine how much and which data arrives on a particular interface. I suppose I somehow need to obtain a FaceId, and somehow determine which Data arrives on that face? Also, I need to be able to distinguish between Faces among applications and NFD, and between NFD and the "outside world" - i.e., which are ACTUALLY network interfaces. The answer depends on where you want to achieve this function. If you're looking at the logs, the Face associated with the NetDevice identifies itself as netdev://[]" (netdev prefix). If you have a pointer/reference to the face and want to determine whether it is one to the outside world, you can use dynamic_cast: Face* face = ...; if (dynamic_cast(face->getLinkService()) != nullptr) { // do stuff } -- Alex > > Ideas? > > Thanks, > > John > > P.S. - I am slowly, but surely, understanding this simulator much better, and I appreciate all of your patience. I am currently working on a very thorough tutorial/reference for myself, and once somewhat refined with very good examples I will release it to the community to help people get up to speed even fast - at least that's the goal. > _______________________________________________ > 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: From shijunxiao at email.arizona.edu Sun Nov 20 08:05:16 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 20 Nov 2016 09:05:16 -0700 Subject: [ndnSIM] Identifying an interface (face?) In-Reply-To: <0D5E5008-5795-4839-A049-D6AE08F4C038@cs.ucla.edu> References: <0D5E5008-5795-4839-A049-D6AE08F4C038@cs.ucla.edu> Message-ID: Hi John I would say looking at the face scope attribute is a more reliable solution than testing for the exact type: switch (face->getScope()) { case ndn::nfd::FACE_SCOPE_LOCAL: // application break; case ndn::nfd::FACE_SCOPE_NON_LOCAL: // network break; default: NS_ASSERT(false); break; } Yours, Junxiao On Sat, Nov 19, 2016 at 11:46 PM, Alex Afanasyev wrote: > > I'd like to be able to determine how much and which data arrives on a > particular interface. I suppose I somehow need to obtain a FaceId, and > somehow determine which Data arrives on that face? Also, I need to be able > to distinguish between Faces among applications and NFD, and between NFD > and the "outside world" - i.e., which are ACTUALLY network interfaces. > > > The answer depends on where you want to achieve this function. If you're > looking at the logs, the Face associated with the NetDevice identifies > itself as netdev://[]" (netdev prefix). If you have a > pointer/reference to the face and want to determine whether it is one to > the outside world, you can use dynamic_cast: > > Face* face = ...; > if (dynamic_cast(face->getLinkService()) != > nullptr) { > // do stuff > } > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Nov 20 12:46:17 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Mon, 21 Nov 2016 00:16:17 +0330 Subject: [ndnSIM] storing the name of content In-Reply-To: <4AC03A6244C3C34BB52A7EC60B799C4C03F43036@m-pdc.sbu.ac.ir> References: <4AC03A6244C3C34BB52A7EC60B799C4C03F43036@m-pdc.sbu.ac.ir> Message-ID: Hi Fateme, If I've guessed correctly, you are going to store a subset of CS information(the name of cached contents), in another data structure(apparently some std::set) on nodes. Well, for previous cached contents you should read their names from CS. For future ones, you may catch them (of course with their names) at the time of being cached in Forwarder. It seems to me nfd is where you'd better implement it, unless you don't want all of your nodes have such information stored. Could you elaborate more? How are nodes going to inform others of this information? Is it something like exchanging FIB info in a routing protocol? Thanks, Sabet ????? ????? ?? ???? On Wed, Nov 9, 2016 at 2:09 AM, fatemeh goudarzi wrote: > Hi > > I want that some nodes inform each other (immediately after caching the > content) that each one has cached what content and store its name in nodes. > If I use set data structure to store the name of content in each node, is > it preferred to implement this set in an application or in NFD? > I appreciate any help. > > Regards, > Goudarzi > > _______________________________________________ > 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: From jpbaugh at umich.edu Sun Nov 20 19:43:19 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sun, 20 Nov 2016 22:43:19 -0500 Subject: [ndnSIM] StartApplication and StopApplication Message-ID: Greetings folks, In the ns3::ndn::App class, there are two virtual void methods, StartApplication and StopApplication that have some slightly ambiguous documentation in *http://ndnsim.net/2.1/doxygen/classns3_1_1ndn_1_1App.html#a20fd3ef630b6d05dc139911d1ef1b17f * When the documentation says: "Method that is called at the time specified by Start" Does this refer to ns3::ApplicationContainer's Start method (and likewise Stop for the ns3::ApplicationContainer's Stop method)? I come to that conclusion based on the example in: http://ndnsim.net/2.1/guide-to-simulate-real-apps.html Where we have: *ndn::AppHelper appHelper("RealAppStarter"); appHelper.Install(node) .Start(Seconds(6.5));* So, I assume since Install on AppHelper returns an ns3::ApplicationContainer, that this is the start and stop referred to? Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Sun Nov 20 20:33:08 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Sun, 20 Nov 2016 20:33:08 -0800 Subject: [ndnSIM] StartApplication and StopApplication In-Reply-To: References: Message-ID: > On Nov 20, 2016, at 7:43 PM, John Baugh wrote: > > Greetings folks, > > In the ns3::ndn::App class, there are two virtual void methods, StartApplication and StopApplication that have some slightly ambiguous documentation in > > http://ndnsim.net/2.1/doxygen/classns3_1_1ndn_1_1App.html#a20fd3ef630b6d05dc139911d1ef1b17f > > When the documentation says: > > "Method that is called at the time specified by Start" > > > Does this refer to ns3::ApplicationContainer's Start method (and likewise Stop for the ns3::ApplicationContainer's Stop method)? > > I come to that conclusion based on the example in: > http://ndnsim.net/2.1/guide-to-simulate-real-apps.html > > Where we have: > > ndn::AppHelper appHelper("RealAppStarter"); > appHelper.Install(node) > .Start(Seconds(6.5)); > > So, I assume since Install on AppHelper returns an ns3::ApplicationContainer, that this is the start and stop referred to? Hi John, Yes, you're exactly correct. Start/Stop is referring the the ApplicationContainer. This part is a bit confusing in NS-3 and our documentation didn't help either :-D If you can make update (it is in docs/sources/guide.....rst file) and push it in some form, it would so great. -- Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From lu.zhang at fuji.waseda.jp Sun Nov 20 22:15:34 2016 From: lu.zhang at fuji.waseda.jp (ZHANG, Lu) Date: Mon, 21 Nov 2016 15:15:34 +0900 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" Message-ID: Hi all, I would like to print out the prefix name in PIT on to screen by using the toUri() function in Name class. The topology is simple as below: * +----------+ 10Mbps +--------+ 10Mbps +----------+ * | consumer | <------------> | router | <------------> | producer | * +----------+ 10ms +--------+ 10ms +----------+ * Part of my program is like below: Ptr pit = nodes.Get(1)->GetObject (); Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); ns3::ndn::Name name = entry-> GetPrefix(); name.toUri(); When executing compile command ./waf --run 1 --vis I got below output: Command ['/home/11/ndnSIM/ns-3/build/scratch/1', '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). Any one have clue on why this happens or how should I use the toUri() function? Thanks in advance. Regards, Lu Zhang -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Sun Nov 20 22:17:55 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Sun, 20 Nov 2016 22:17:55 -0800 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" In-Reply-To: References: Message-ID: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> > On Nov 20, 2016, at 10:15 PM, ZHANG, Lu wrote: > > Hi all, > > I would like to print out the prefix name in PIT on to screen by using the toUri() function in Name class. The topology is simple as below: > > > * +----------+ 10Mbps +--------+ 10Mbps +----------+ > * | consumer | <------------> | router | <------------> | producer | > * +----------+ 10ms +--------+ 10ms +----------+ > * > > > Part of my program is like below: > > Ptr pit = nodes.Get(1)->GetObject (); > Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); > ns3::ndn::Name name = entry-> GetPrefix(); > name.toUri(); > > When executing compile command ./waf --run 1 --vis I got below output: > > Command ['/home/11/ndnSIM/ns-3/build/scratch/1', '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). > > Any one have clue on why this happens or how should I use the toUri() function? You can check to run the scenario in the debugger using the suggested command, but I would suspect that you're simply getting a segfault because there is no "/prefix" entry in the PIT (Find returns NULL and then you're dereferencing NULL). --- Alex From jpbaugh at umich.edu Sun Nov 20 22:25:45 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 21 Nov 2016 01:25:45 -0500 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" In-Reply-To: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> References: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> Message-ID: Try checking if name is nullptr: ns3::ndn::Name name = entry-> GetPrefix(); if(name != nullptr) name.toUri(); else cout<<"ooops!"< wrote: > > > On Nov 20, 2016, at 10:15 PM, ZHANG, Lu wrote: > > > > Hi all, > > > > I would like to print out the prefix name in PIT on to screen by using > the toUri() function in Name class. The topology is simple as below: > > > > > > * +----------+ 10Mbps +--------+ 10Mbps > +----------+ > > * | consumer | <------------> | router | <------------> | producer > | > > * +----------+ 10ms +--------+ 10ms > +----------+ > > * > > > > > > Part of my program is like below: > > > > Ptr pit = nodes.Get(1)->GetObject (); > > Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); > > ns3::ndn::Name name = entry-> GetPrefix(); > > name.toUri(); > > > > When executing compile command ./waf --run 1 --vis I got below output: > > > > Command ['/home/11/ndnSIM/ns-3/build/scratch/1', '-- > SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with > signal SIGSEGV. Run it under a debugger to get more information (./waf > --run --command-template="gdb --args %s "). > > > > Any one have clue on why this happens or how should I use the toUri() > function? > > You can check to run the scenario in the debugger using the suggested > command, but I would suspect that you're simply getting a segfault because > there is no "/prefix" entry in the PIT (Find returns NULL and then you're > dereferencing NULL). > > --- > Alex > > > _______________________________________________ > 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: From lu.zhang at fuji.waseda.jp Sun Nov 20 22:50:19 2016 From: lu.zhang at fuji.waseda.jp (ZHANG, Lu) Date: Mon, 21 Nov 2016 15:50:19 +0900 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" In-Reply-To: References: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> Message-ID: Hi Guys, Thanks for your prompt answer. Yes, the Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); part returns a NULL since Find uses a exact match, there is no exact "/prefix" in my PIT. Regards, Lu Zhang 2016-11-21 15:25 GMT+09:00 John Baugh : > Try checking if name is nullptr: > > ns3::ndn::Name name = entry-> GetPrefix(); > > if(name != nullptr) > name.toUri(); > else > cout<<"ooops!"< > On Nov 21, 2016 1:18 AM, "Alex Afanasyev" wrote: > >> >> > On Nov 20, 2016, at 10:15 PM, ZHANG, Lu >> wrote: >> > >> > Hi all, >> > >> > I would like to print out the prefix name in PIT on to screen by using >> the toUri() function in Name class. The topology is simple as below: >> > >> > >> > * +----------+ 10Mbps +--------+ 10Mbps >> +----------+ >> > * | consumer | <------------> | router | <------------> | >> producer | >> > * +----------+ 10ms +--------+ 10ms >> +----------+ >> > * >> > >> > >> > Part of my program is like below: >> > >> > Ptr pit = nodes.Get(1)->GetObject (); >> > Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); >> > ns3::ndn::Name name = entry-> GetPrefix(); >> > name.toUri(); >> > >> > When executing compile command ./waf --run 1 --vis I got below output: >> > >> > Command ['/home/11/ndnSIM/ns-3/build/scratch/1', >> '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated >> with signal SIGSEGV. Run it under a debugger to get more information (./waf >> --run --command-template="gdb --args %s "). >> > >> > Any one have clue on why this happens or how should I use the toUri() >> function? >> >> You can check to run the scenario in the debugger using the suggested >> command, but I would suspect that you're simply getting a segfault because >> there is no "/prefix" entry in the PIT (Find returns NULL and then you're >> dereferencing NULL). >> >> --- >> Alex >> >> >> _______________________________________________ >> 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: From mhasabet at gmail.com Sun Nov 20 23:03:51 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Mon, 21 Nov 2016 10:33:51 +0330 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" In-Reply-To: References: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> Message-ID: Actually "/prefix" is a prefix itself. Maybe it's better to getPrefix() first, then try to Find. Sabet ????? ????? ?? ???? On Mon, Nov 21, 2016 at 10:20 AM, ZHANG, Lu wrote: > Hi Guys, > > Thanks for your prompt answer. Yes, the Ptr entry = > pit->Find(ns3::ndn::Name("/prefix")); part returns a NULL since Find uses > a exact match, there is no exact "/prefix" in my PIT. > > Regards, > > Lu Zhang > > 2016-11-21 15:25 GMT+09:00 John Baugh : > >> Try checking if name is nullptr: >> >> ns3::ndn::Name name = entry-> GetPrefix(); >> >> if(name != nullptr) >> name.toUri(); >> else >> cout<<"ooops!"<> >> On Nov 21, 2016 1:18 AM, "Alex Afanasyev" wrote: >> >>> >>> > On Nov 20, 2016, at 10:15 PM, ZHANG, Lu >>> wrote: >>> > >>> > Hi all, >>> > >>> > I would like to print out the prefix name in PIT on to screen by using >>> the toUri() function in Name class. The topology is simple as below: >>> > >>> > >>> > * +----------+ 10Mbps +--------+ 10Mbps >>> +----------+ >>> > * | consumer | <------------> | router | <------------> | >>> producer | >>> > * +----------+ 10ms +--------+ 10ms >>> +----------+ >>> > * >>> > >>> > >>> > Part of my program is like below: >>> > >>> > Ptr pit = nodes.Get(1)->GetObject (); >>> > Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); >>> > ns3::ndn::Name name = entry-> GetPrefix(); >>> > name.toUri(); >>> > >>> > When executing compile command ./waf --run 1 --vis I got below output: >>> > >>> > Command ['/home/11/ndnSIM/ns-3/build/scratch/1', >>> '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated >>> with signal SIGSEGV. Run it under a debugger to get more information (./waf >>> --run --command-template="gdb --args %s "). >>> > >>> > Any one have clue on why this happens or how should I use the toUri() >>> function? >>> >>> You can check to run the scenario in the debugger using the suggested >>> command, but I would suspect that you're simply getting a segfault because >>> there is no "/prefix" entry in the PIT (Find returns NULL and then you're >>> dereferencing NULL). >>> >>> --- >>> Alex >>> >>> >>> _______________________________________________ >>> 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: From mhasabet at gmail.com Sun Nov 20 23:20:48 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Mon, 21 Nov 2016 10:50:48 +0330 Subject: [ndnSIM] =?utf-8?b?5Zue5aSN77yaIGVycm9yIG9mICIuL3dhZiAtLXJ1bj1u?= =?utf-8?q?dn-simple_--vis=22?= In-Reply-To: References: Message-ID: Junior, ren pei, And be advised that Visualizer works only if you compile all of ns-3 modules. If you are going to build ns-3 with a subset of modules e.g. core,ndnSIM and some others, visualizer won't work because it has some dependencies to all modules. Sabet On Mon, Nov 14, 2016 at 4:43 AM, ?? wrote: > Hi Junior? > > his problem happens, you can using command "Thank you very much for your > answer and patient, the Question is really what you said loose visualizer > module, using "./waf configure" i can see the word visualizer is under the > "Modules not built", the major aim of this email is to tell others who face > the same problem during the install process that when this problem happens, > you can using command "sudo apt-get install python-setuptools", than the > word visualizer will disappear from "./waf configure", hope this can help > those people face the question as me. > Another more, thank you Junior, thank you for you email. > > ren pei > > > ------------------ ???? ------------------ > *???:* "Junior DONGO";; > *????:* 2016?11?11?(???) ??4:06 > *???:* "??"; "ndnsim"; > *??:* Re: [ndnSIM] error of "./waf --run=ndn-simple --vis" > > Hi pei ren, > > This happens because PyViz visualizer is not enabled. > > You can verify that by looking in the " Summary of optional NS-3 > features:" given by "./waf configure" > > > Junior > > > > > On 11/04/2016 02:34 PM, ?? wrote: > > Hello all, > > When we are compiling ndnSIM successfully while try the example "./waf > --run=ndn-simple --vis" , some error occur as show in figure, i can not > run command line with "--vis" while runing "./waf --run=ndn-simple", it's > success, who can tell me how can i solve this problem? > > > Thanks > > pei ren > > > _______________________________________________ > ndnSIM mailing listndnSIM at lists.cs.ucla.eduhttp://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: -------------- next part -------------- A non-text attachment was scrubbed... Name: E14BDB1E at 9602CA47.C50F2958 Type: application/octet-stream Size: 57933 bytes Desc: not available URL: From lu.zhang at fuji.waseda.jp Mon Nov 21 00:18:41 2016 From: lu.zhang at fuji.waseda.jp (ZHANG, Lu) Date: Mon, 21 Nov 2016 17:18:41 +0900 Subject: [ndnSIM] Compilng error during the usage of "name.toUri()" In-Reply-To: References: <7C7134D4-45F9-4F5B-972E-D1ABDEE721D0@cs.ucla.edu> Message-ID: Hi Muhammad, Thanks for your comment. I think we have to specify the PIT entry before we can do a getPrefix(). Lu 2016-11-21 16:03 GMT+09:00 Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com>: > Actually "/prefix" is a prefix itself. Maybe it's better to getPrefix() > first, then try to Find. > > Sabet > > ????? ????? > ?? ???? > > On Mon, Nov 21, 2016 at 10:20 AM, ZHANG, Lu > wrote: > >> Hi Guys, >> >> Thanks for your prompt answer. Yes, the Ptr entry = >> pit->Find(ns3::ndn::Name("/prefix")); part returns a NULL since Find >> uses a exact match, there is no exact "/prefix" in my PIT. >> >> Regards, >> >> Lu Zhang >> >> 2016-11-21 15:25 GMT+09:00 John Baugh : >> >>> Try checking if name is nullptr: >>> >>> ns3::ndn::Name name = entry-> GetPrefix(); >>> >>> if(name != nullptr) >>> name.toUri(); >>> else >>> cout<<"ooops!"<>> >>> On Nov 21, 2016 1:18 AM, "Alex Afanasyev" wrote: >>> >>>> >>>> > On Nov 20, 2016, at 10:15 PM, ZHANG, Lu >>>> wrote: >>>> > >>>> > Hi all, >>>> > >>>> > I would like to print out the prefix name in PIT on to screen by >>>> using the toUri() function in Name class. The topology is simple as below: >>>> > >>>> > >>>> > * +----------+ 10Mbps +--------+ 10Mbps >>>> +----------+ >>>> > * | consumer | <------------> | router | <------------> | >>>> producer | >>>> > * +----------+ 10ms +--------+ 10ms >>>> +----------+ >>>> > * >>>> > >>>> > >>>> > Part of my program is like below: >>>> > >>>> > Ptr pit = nodes.Get(1)->GetObject (); >>>> > Ptr entry = pit->Find(ns3::ndn::Name("/prefix")); >>>> > ns3::ndn::Name name = entry-> GetPrefix(); >>>> > name.toUri(); >>>> > >>>> > When executing compile command ./waf --run 1 --vis I got below output: >>>> > >>>> > Command ['/home/11/ndnSIM/ns-3/build/scratch/1', >>>> '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated >>>> with signal SIGSEGV. Run it under a debugger to get more information (./waf >>>> --run --command-template="gdb --args %s "). >>>> > >>>> > Any one have clue on why this happens or how should I use the toUri() >>>> function? >>>> >>>> You can check to run the scenario in the debugger using the suggested >>>> command, but I would suspect that you're simply getting a segfault because >>>> there is no "/prefix" entry in the PIT (Find returns NULL and then you're >>>> dereferencing NULL). >>>> >>>> --- >>>> Alex >>>> >>>> >>>> _______________________________________________ >>>> 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: From f.goudarzi at mail.sbu.ac.ir Mon Nov 21 10:40:32 2016 From: f.goudarzi at mail.sbu.ac.ir (fatemeh goudarzi) Date: Mon, 21 Nov 2016 18:40:32 +0000 Subject: [ndnSIM] storing the name of content In-Reply-To: References: <4AC03A6244C3C34BB52A7EC60B799C4C03F43036@m-pdc.sbu.ac.ir>, Message-ID: <74696767C3B4ED4D9D30F05A6421F1CF034ED5@NewEx.sbu.ac.ir> Hi Muhammad, A subset of CS information should be saved in another data structure. This information is not only related to the node itself but name of cached contents in some nodes (some nodes,not all of them) must be saved in this structure. These nodes send an interest in order to inform each other about their content's name with specific prefix. The receiver nodes of this interests have to divide the content's name and save it to their data structure. regards, ________________________________ From: Muhammad Hosain Abdollahi Sabet [mhasabet at gmail.com] Sent: Monday, November 21, 2016 12:08 AM To: fatemeh goudarzi Cc: ndnsim Subject: Re: [ndnSIM] storing the name of content Hi Fateme, If I've guessed correctly, you are going to store a subset of CS information(the name of cached contents), in another data structure(apparently some std::set) on nodes. Well, for previous cached contents you should read their names from CS. For future ones, you may catch them (of course with their names) at the time of being cached in Forwarder. It seems to me nfd is where you'd better implement it, unless you don't want all of your nodes have such information stored. Could you elaborate more? How are nodes going to inform others of this information? Is it something like exchanging FIB info in a routing protocol? Thanks, Sabet ????? ????? ?? ???? On Wed, Nov 9, 2016 at 2:09 AM, fatemeh goudarzi > wrote: Hi I want that some nodes inform each other (immediately after caching the content) that each one has cached what content and store its name in nodes. If I use set data structure to store the name of content in each node, is it preferred to implement this set in an application or in NFD? I appreciate any help. Regards, Goudarzi _______________________________________________ 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: From jpbaugh at umich.edu Mon Nov 21 10:51:46 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 21 Nov 2016 13:51:46 -0500 Subject: [ndnSIM] storing the name of content In-Reply-To: References: <4AC03A6244C3C34BB52A7EC60B799C4C03F43036@m-pdc.sbu.ac.ir> <74696767C3B4ED4D9D30F05A6421F1CF034ED5@NewEx.sbu.ac.ir> Message-ID: It seems the Policy is what actually holds the data, while the Cs stores a Table of Names. On Nov 21, 2016 1:50 PM, "fatemeh goudarzi" wrote: Hi Muhammad, A subset of CS information should be saved in another data structure. This information is not only related to the node itself but name of cached contents in some nodes (some nodes,not all of them) must be saved in this structure. These nodes send an interest in order to inform each other about their content's name with specific prefix. The receiver nodes of this interests have to divide the content's name and save it to their data structure. regards, ------------------------------ *From:* Muhammad Hosain Abdollahi Sabet [mhasabet at gmail.com] *Sent:* Monday, November 21, 2016 12:08 AM *To:* fatemeh goudarzi *Cc:* ndnsim *Subject:* Re: [ndnSIM] storing the name of content Hi Fateme, If I've guessed correctly, you are going to store a subset of CS information(the name of cached contents), in another data structure(apparently some std::set) on nodes. Well, for previous cached contents you should read their names from CS. For future ones, you may catch them (of course with their names) at the time of being cached in Forwarder. It seems to me nfd is where you'd better implement it, unless you don't want all of your nodes have such information stored. Could you elaborate more? How are nodes going to inform others of this information? Is it something like exchanging FIB info in a routing protocol? Thanks, Sabet ????? ????? ?? ???? On Wed, Nov 9, 2016 at 2:09 AM, fatemeh goudarzi wrote: > Hi > > I want that some nodes inform each other (immediately after caching the > content) that each one has cached what content and store its name in nodes. > If I use set data structure to store the name of content in each node, is > it preferred to implement this set in an application or in NFD? > I appreciate any help. > > Regards, > Goudarzi > > _______________________________________________ > 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: From pratyushagnihotri03 at gmail.com Wed Nov 23 14:02:38 2016 From: pratyushagnihotri03 at gmail.com (Pratyush Agnihotri) Date: Wed, 23 Nov 2016 23:02:38 +0100 Subject: [ndnSIM] ndnSIM1.0: Interest Packet Count Message-ID: Hi Alex, I am computing number of interest packet send by each node per second. Ptr interest interest->GetWire()->GetSize() When I am printing the size of packet, I am getting same values for all node. I did n't understand the reason. From my point of view, it should be different. Please suggest. Thanks. -- Kind Regards, Pratyush Agnihotri -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Nov 23 14:04:53 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 23 Nov 2016 14:04:53 -0800 Subject: [ndnSIM] ndnSIM1.0: Interest Packet Count In-Reply-To: References: Message-ID: <0F5E9EC0-A267-46E6-9CFA-F87A56C39F29@cs.ucla.edu> > On Nov 23, 2016, at 2:02 PM, Pratyush Agnihotri wrote: > > Hi Alex, > > I am computing number of interest packet send by each node per second. > > Ptr interest > interest->GetWire()->GetSize() > > When I am printing the size of packet, I am getting same values for all node. I did n't understand the reason. From my point of view, it should be different. HI Pratyush, It should be different if the name is different. Make sure that your names are different in size. From gouanyoulin at gmail.com Thu Nov 24 06:39:01 2016 From: gouanyoulin at gmail.com (=?UTF-8?B?5p6X5Yag5L2R?=) Date: Thu, 24 Nov 2016 22:39:01 +0800 Subject: [ndnSIM] Content Store problem Message-ID: Hi everyone, I have a problem on ndn content store. I send a interest packet with a new field. The field has its own verified token. if there is the content in ndn cs, the cs will check the verified token. Consumer can get the content in the cs when he pass the check by router. I follow the lookup method of content-store-impl.hpp. But How can I add a new mechanism in this method to authenticate the token? May someone suggest me? thx... -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Thu Nov 24 10:45:53 2016 From: jpbaugh at umich.edu (John Baugh) Date: Thu, 24 Nov 2016 13:45:53 -0500 Subject: [ndnSIM] Content Store problem In-Reply-To: References: Message-ID: I'm not clear on exactly what you're asking, but perhaps you could implement your own Policy (as a subclass/derived class of nfd::cs::Policy) -> https://ndnsim.net/2.1/doxygen/classnfd_1_1cs_1_1Policy.html You could use one of the protected members (override them in your subclass) to do the additional verification / authentication: virtual void doAfterInsert (iterator i)=0 invoked after a new entry is created in CS More... virtual void doAfterRefresh (iterator i)=0 invoked after an existing entry is refreshed by same Data More... virtual void doBeforeErase (iterator i)=0 invoked before an entry is erased due to management command More... virtual void doBeforeUse (iterator i)=0 invoked before an entry is used to match a lookup More... Hope this helps. John On Thu, Nov 24, 2016 at 9:39 AM, ??? wrote: > Hi everyone, > > I have a problem on ndn content store. I send a interest packet with a new > field. The field has its own verified token. > if there is the content in ndn cs, the cs will check the verified token. > Consumer can get the content in the cs when he pass the check by router. > > I follow the lookup method of content-store-impl.hpp. But How can I add a > new mechanism in this method to authenticate the token? > May someone suggest me? thx... > > _______________________________________________ > 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: From chrissunbjut at gmail.com Sat Nov 26 09:35:05 2016 From: chrissunbjut at gmail.com (Chris Sun) Date: Sun, 27 Nov 2016 01:35:05 +0800 Subject: [ndnSIM] =?utf-8?q?How_to_add_broadcast_mechanism_in_my_ndnsim_ex?= =?utf-8?b?cGVyaW1lbnTvvJ8=?= Message-ID: <51E5A004-2EDC-4B1C-A82D-E0176700428D@gmail.com> An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Sat Nov 26 20:49:15 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Sat, 26 Nov 2016 20:49:15 -0800 Subject: [ndnSIM] =?utf-8?q?How_to_add_broadcast_mechanism_in_my_ndnsim_e?= =?utf-8?b?eHBlcmltZW5077yf?= In-Reply-To: <51E5A004-2EDC-4B1C-A82D-E0176700428D@gmail.com> References: <51E5A004-2EDC-4B1C-A82D-E0176700428D@gmail.com> Message-ID: Hi Chris, I feel that what you are asking has to do more with NS3 itself. I would suggest that you ask this question to the NS3 mailing list instead: https://www.nsnam.org/support/mailing-list/ Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 26, 2016, at 9:35 AM, Chris Sun wrote: > > Hi everyone, > I'm using ndnsim to do a simulation experiment in vanet environment. Interest and data packets are forwarded to the surrounding nodes through wifi. The node who receives packets will continue to broadcast to others. But there are some problems with this broadcast mechanism. So I want to do the experiment with a broadcast mechanism, making the farthest distance from the source node to broadcast, while other nodes do not. I want to ask where to start to do this and which C++ classes to be modified in my experiment? Who can tell me? > > Thanks for your help! > Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From 15mcen09 at nirmauni.ac.in Tue Nov 29 09:46:18 2016 From: 15mcen09 at nirmauni.ac.in (AEMI KALARIA) Date: Tue, 29 Nov 2016 23:16:18 +0530 Subject: [ndnSIM] regarding Congestion control in NDNSIM Message-ID: Can anyone knows about default congestion control strategy in NDNSIM? If anyone have congestion control strategy code(NDNSIM code) then please please mail me. -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss1 at gmail.com Tue Nov 29 23:00:52 2016 From: neogeoss1 at gmail.com (Hwang In Chan) Date: Wed, 30 Nov 2016 16:00:52 +0900 Subject: [ndnSIM] Packet success and failure counts Message-ID: Dear NDN researchers, I have been thinking about packet deliverance issue. In NDN sim, does all data packet come to the consumer according to the number of issued Interests from it? Over in NDN WIFI simulation, Is there any possibility of the occurence of further delay between nodes if there is not enough memory for PIT? If it happens, How can I measure the time delay between nodes? Best wishes, inchan Hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlzu8 at gmail.com Wed Nov 30 08:05:03 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Wed, 30 Nov 2016 17:05:03 +0100 Subject: [ndnSIM] correct way of seeing number of unsatisfied Interests Message-ID: Dear all, what is the correct way of tracing number of unsatisfied Interests for a consumer application ? Thanks, C -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Wed Nov 30 21:21:57 2016 From: jpbaugh at umich.edu (John Baugh) Date: Thu, 1 Dec 2016 00:21:57 -0500 Subject: [ndnSIM] Multiple files getting compiled when ./waf is executed? Message-ID: ndnSIM friends, When I create a custom example in the /examples directory and try running it using ./waf --run=jpb-3-node, for example, it starts compiling no less than a dozen completely unrelated files. This slows down my simulation/testing time significantly. I would assume it should only compile my new test file (a .cpp file) and any related files - not just compile a ton of the tests seemingly randomly - not to mention the linking process as well.... Should I not be putting new simulation tests in the /examples folder? Should I just put them in /scratch? Or is there something else I'm doing incorrectly? Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Nov 30 21:26:07 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 30 Nov 2016 21:26:07 -0800 Subject: [ndnSIM] Multiple files getting compiled when ./waf is executed? In-Reply-To: References: Message-ID: <22EB00B6-969F-4FA7-8A88-15BCB0A69DC3@cs.ucla.edu> Check my tutorial slide deck https://named-data.net/wp-content/uploads/2016/10/6-ndnSIM.pdf around slide 16 and 17 :) As long as you're adding your scenario code inside core NS-3, the compilation process will be slow. It can be sped up in a few ways, but in general it will be slow. -- Alex > On Nov 30, 2016, at 9:21 PM, John Baugh wrote: > > ndnSIM friends, > > When I create a custom example in the /examples directory and try running it using ./waf --run=jpb-3-node, for example, it starts compiling no less than a dozen completely unrelated files. This slows down my simulation/testing time significantly. I would assume it should only compile my new test file (a .cpp file) and any related files - not just compile a ton of the tests seemingly randomly - not to mention the linking process as well.... > > Should I not be putting new simulation tests in the /examples folder? Should I just put them in /scratch? Or is there something else I'm doing incorrectly? > > Thanks, > > John > _______________________________________________ > 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: From jpbaugh at umich.edu Wed Nov 30 21:27:36 2016 From: jpbaugh at umich.edu (John Baugh) Date: Thu, 1 Dec 2016 00:27:36 -0500 Subject: [ndnSIM] Registering custom Consumers, Producers (or apps in general)? Message-ID: ndnSIM friends, In one of the examples, there is a line: ndn::AppHelper consumerHelper("ns3::ndn::ConsumerCbr"); Where does it know to find ConsumerCbr? Do I just have to put the namespace and scope resolution operators if I, for example, create a *custom consumer*, producer, or other app? Also, there appears to be an *error in the documentation*, http://ndnsim.net/2.2/doxygen/classns3_1_1ndn_1_1AppHelper.html#a67d941c1628aceef4b8add5c564ed3df The parameter named in the constructor (the const string reference) is named *prefix* in the header, but the description names it *app*. Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Nov 30 21:31:17 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 30 Nov 2016 21:31:17 -0800 Subject: [ndnSIM] Registering custom Consumers, Producers (or apps in general)? In-Reply-To: References: Message-ID: <61BEC035-693D-4D80-8CC0-4BA488C26BD6@cs.ucla.edu> Hi John, The magic comes from NS-3's object system (in addition to standard object system that C++ provides). For the class to be found by the name, e.g., in the AppHelper constructor, it needs to be so called "registered". It is just a matter of adding `NS_OBJECT_ENSURE_REGISTERED(YourClass);` and implementing YourClass::GetTypeId() method that defines name, constructor, and any parameters that you wish. Check apps/ndn-consumer-cbr.cpp for example. You'll find similar code in many other "ns3::Object"-derived classes. -- Alex > On Nov 30, 2016, at 9:27 PM, John Baugh wrote: > > ndnSIM friends, > > In one of the examples, there is a line: > > ndn::AppHelper consumerHelper("ns3::ndn::ConsumerCbr"); > > Where does it know to find ConsumerCbr? Do I just have to put the namespace and scope resolution operators if I, for example, create a custom consumer, producer, or other app? > > Also, there appears to be an error in the documentation, > > http://ndnsim.net/2.2/doxygen/classns3_1_1ndn_1_1AppHelper.html#a67d941c1628aceef4b8add5c564ed3df > > The parameter named in the constructor (the const string reference) is named prefix in the header, but the description names it app. > > Thanks, > > John > > > _______________________________________________ > 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: From jpbaugh at umich.edu Wed Nov 30 21:40:55 2016 From: jpbaugh at umich.edu (John Baugh) Date: Thu, 1 Dec 2016 00:40:55 -0500 Subject: [ndnSIM] Producers and/or consumers providing/requesting content Message-ID: ndnSIM friends, Another question: The examples imply, by use of the AppHelper's SetPrefix method that a consumer, for example, can only issue Interest packets with a single prefix. Is this correct? Can this value be changed in real time? I would assume also that Producers could provide content from more than one prefix. To me, the prefix seems to correspond to a limited collection of items. Thanks, John -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Wed Nov 30 21:46:13 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 30 Nov 2016 21:46:13 -0800 Subject: [ndnSIM] correct way of seeing number of unsatisfied Interests In-Reply-To: References: Message-ID: Hi, I would suggest that you take a look at this callback, which is overridden by each forwarding strategy and is called right before a pending Interest expires: https://github.com/named-data-ndnSIM/NFD/blob/b6e7362f4343709aa945e2c4bb3e6f443f52aa9a/daemon/fw/strategy.hpp#L110-L111 Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Nov 30, 2016, at 8:05 AM, Carl Zu wrote: > > Dear all, > > what is the correct way of tracing number of unsatisfied Interests for a consumer application ? > > Thanks, > C -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Nov 30 22:26:56 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 30 Nov 2016 22:26:56 -0800 Subject: [ndnSIM] Producers and/or consumers providing/requesting content In-Reply-To: References: Message-ID: > On Nov 30, 2016, at 9:40 PM, John Baugh wrote: > > ndnSIM friends, > > Another question: The examples imply, by use of the AppHelper's SetPrefix method that a consumer, for example, can only issue Interest packets with a single prefix. Is this correct? Can this value be changed in real time? It can, but you may have easier time to changing prefixes by writing a specialized producer applications. The existing producer app is really very basic one without much logic in it. -- Alex > > I would assume also that Producers could provide content from more than one prefix. To me, the prefix seems to correspond to a limited collection of items. > > Thanks, > > John > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From 15mcen09 at nirmauni.ac.in Wed Nov 30 22:42:57 2016 From: 15mcen09 at nirmauni.ac.in (AEMI KALARIA) Date: Thu, 1 Dec 2016 12:12:57 +0530 Subject: [ndnSIM] Congestion control in NDN Message-ID: Can anyone knows about default congestion control strategy in NDNSIM? If anyone have congestion control strategy code(NDNSIM code) then please please mail me. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Wed Nov 30 23:19:18 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Thu, 1 Dec 2016 10:49:18 +0330 Subject: [ndnSIM] Producers and/or consumers providing/requesting content In-Reply-To: References: Message-ID: John, As far as I can review in my head, there should not be real problem. You may have other ndn::Name variables for other prefixes in one application, and fill them with appHelper::setAttribute. Then you may make thing more complex in onData and onInterest. But, what's the use of it? I mean, you want an application be responsible for distinct prefixes and produce distinct content for each one? Or publish the same content under different prefixes? Sabet On Thu, Dec 1, 2016 at 9:56 AM, Alex Afanasyev wrote: > > > On Nov 30, 2016, at 9:40 PM, John Baugh wrote: > > > > ndnSIM friends, > > > > Another question: The examples imply, by use of the AppHelper's > SetPrefix method that a consumer, for example, can only issue Interest > packets with a single prefix. Is this correct? Can this value be changed > in real time? > > It can, but you may have easier time to changing prefixes by writing a > specialized producer applications. The existing producer app is really > very basic one without much logic in it. > > -- > Alex > > > > I would assume also that Producers could provide content from more than > one prefix. To me, the prefix seems to correspond to a limited collection > of items. > > > > Thanks, > > > > John > > _______________________________________________ > > 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: From sravyapallantla at gmail.com Wed Nov 30 01:45:29 2016 From: sravyapallantla at gmail.com (sravya p) Date: Wed, 30 Nov 2016 09:45:29 -0000 Subject: [ndnSIM] Help Message-ID: i am trying to run ndn-l3-aggregate-tracer from ndn-tree-tracers.cpp but it gives fatal error. please help me how to resolve this problem. [1486/2858] Compiling src/ndnSIM/examples/ndn-tree-tracers.cpp ../src/ndnSIM/examples/ndn-tree-tracers.cpp:25:41: fatal error: ns3/ndn-l3-aggregate-tracer.h: No such file or directory #include "ns3/ndn-l3-aggregate-tracer.h" ^ compilation terminated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From renpei.bupt at qq.com Sun Nov 20 18:12:42 2016 From: renpei.bupt at qq.com (=?gb18030?B?yM7F5g==?=) Date: Mon, 21 Nov 2016 02:12:42 -0000 Subject: [ndnSIM] question about ndnSIM source code Message-ID: hello all: There are some question about ndnSIM source code recently i met, thank you very much if you have the answer of my confusedness! on the site "http://ndnsim.net/1.0/fw.html", i can see many fw strategy here, while on my own source code folder, i even can not find "ndnSIM/model/fw/flooding.h" as show in site, there is only a folder named "cs" and other ".cpp" files. Even in /NFD/fw, i also can not file names "flooding.h", than i use "ctrl+f", i got nothing, system told me there is no file names "flooding.h",what should i do? how can i get access of these forwarding strategy? when i try to modify source code of fw, what .cpp or .h files do i need to modify? any one who can tell me which related files i have to modify if i try to modify on of fw. on the web site, i got that there is three color which is green & red & yellow, to indicate the status of the face, and these faces which carry the color status will be rank, where can i get the file? if any one can help me, thank you very much! best wishes. ren pei -------------- next part -------------- An HTML attachment was scrubbed... URL: From renpei.bupt at qq.com Thu Nov 24 00:32:49 2016 From: renpei.bupt at qq.com (=?gb18030?B?yM7F5g==?=) Date: Thu, 24 Nov 2016 08:32:49 -0000 Subject: [ndnSIM] How to debug interest processing on qtcreator Message-ID: Hello, I have some question for debug interest processing on qtcreator, how can i monitor this processing by debug. i.e. i wonder how an interest send from comsumer and than through a node and loop up it's cs, than loop up it's pit, eventually loop up fib for suitable face to send it and when producer received the interest, how it process the interest and generate the data match the interest and send it out to the incoming face, what comsumer will do after receive the data? Thankyou very much for you help! renpei -------------- next part -------------- An HTML attachment was scrubbed... URL: From 46rock715 at gmail.com Thu Nov 24 06:14:28 2016 From: 46rock715 at gmail.com (=?UTF-8?B?55m95bKp5ZaE5pit?=) Date: Thu, 24 Nov 2016 14:14:28 -0000 Subject: [ndnSIM] How to manually set name of Interest and Data Message-ID: Dear NDN Research Team, Hello. I want to send an Interest for a Data packet that does not exist. For example, if a Producer has two Data packets /prefix/0 and /prefix/1, I want to send an Interest for /prefix/2. In order to achieve this, I would need to be able to set the full name of the Interest and Data packets. When I was working with the the examples on ndnSIM 2.0, I could only find a way to set the prefix. In ndn-simple.cpp using the Helper "consumerHelper.SetPrefix("/prefix")," it would automatically add 0, 1, ... to the end of /prefix/. Then using the "producerHelper.SetPrefix("/prefix")" the Producer would return the matching Data packet, assuming it exist. I do not want it to be assumed that it exists. Therefore, I would like to know if there is a way to manually set all the names. Any help would be greatly appreciated. Thank you. Best Regards, Kengo Kaneda -------------- next part -------------- An HTML attachment was scrubbed... URL: