From 1839750381 at qq.com Fri Feb 1 19:09:04 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Sat, 2 Feb 2013 11:09:04 +0800 Subject: [ndnSIM] ndnSIM : How simulate Pending Interest Table memory size Message-ID: Hi I need to know how can I simulate the memory size of pending interest table ? I have gone through the available function but it give the number of entries in the pending interest table. How can I get the memory size of PIT in Kb/Mb? because every interest may have different size. Please help me to simulate my scenario. -------------- next part -------------- An HTML attachment was scrubbed... URL: From 1839750381 at qq.com Fri Feb 1 19:20:37 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Sat, 2 Feb 2013 11:20:37 +0800 Subject: [ndnSIM] ndnSIM : ns-3 modules integration Message-ID: Hi I want to use ns-3 modules with the ndnSIM. But I found that only pointToPoint module is enable with ndnsim. Is it possible to use existing ns-3 modules with the ndnsim ? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Feb 1 19:24:53 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 1 Feb 2013 19:24:53 -0800 Subject: [ndnSIM] ndnSIM : ns-3 modules integration In-Reply-To: References: Message-ID: What do you mean by "other modules"? There is technically no restrictions on how ndnSIM can be combined with any other NS-3 modules. Are you experiencing any particular compilation/linking error or something is going totally wrong? Btw. I have put up a template that can be used to develop and run custom simulations: https://github.com/cawka/ndnSIM-scenario-template (real example of how the template can be used is here: https://github.com/cawka/ndnSIM-comcom-stateful-fw) In the template's wscript you can specify which modules you want your scenario to be compiled with. Sincerely, Alex On Feb 1, 2013, at 7:20 PM, "Xee" <1839750381 at qq.com> wrote: > Hi > I want to use ns-3 modules with the ndnSIM. But I found that only pointToPoint module is enable with ndnsim. Is it possible to use existing ns-3 modules with the ndnsim ? > > Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Feb 1 20:06:53 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 1 Feb 2013 20:06:53 -0800 Subject: [ndnSIM] ndnSIM : ns-3 modules integration In-Reply-To: References: Message-ID: Hi Xee, There was a small bug in ndnSIM that prevented running simulations with non point-to-point net devices in non-optimized mode (optimized mode didn't have problem). I have fixed the issue today and if you update to the latest commit, it debug mode should also work. If it is still not working, can you run in a debugger and then send me a backtrace? Thanks, Alex On Feb 1, 2013, at 7:55 PM, "Xee" <1839750381 at qq.com> wrote: > I have tried both wifi and energy efficiency model in ndnsim. I does'nt give me any error. It give me message that 'build successfully', after this line it suggest me in 'RED Colored text', that I need to debug to find out the problem. > > Can you help me plz. > > > ------------------ Original ------------------ > From: "Alex Afanasyev"; > Date: Feb 2, 2013 > To: "Xee"<1839750381 at qq.com>; > Cc: "ndnsim"; > Subject: Re: [ndnSIM] ndnSIM : ns-3 modules integration > > What do you mean by "other modules"? There is technically no restrictions on how ndnSIM can be combined with any other NS-3 modules. Are you experiencing any particular compilation/linking error or something is going totally wrong? > > Btw. I have put up a template that can be used to develop and run custom simulations: https://github.com/cawka/ndnSIM-scenario-template (real example of how the template can be used is here: https://github.com/cawka/ndnSIM-comcom-stateful-fw) > > In the template's wscript you can specify which modules you want your scenario to be compiled with. > > Sincerely, > Alex > > On Feb 1, 2013, at 7:20 PM, "Xee" <1839750381 at qq.com> wrote: > >> Hi >> I want to use ns-3 modules with the ndnSIM. But I found that only pointToPoint module is enable with ndnsim. Is it possible to use existing ns-3 modules with the ndnsim ? >> >> Thanks. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Feb 1 23:24:44 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 1 Feb 2013 23:24:44 -0800 Subject: [ndnSIM] ndnSIM : How simulate Pending Interest Table memory size In-Reply-To: References: Message-ID: <808F57F4-F2A4-4275-9F98-976183771D8A@ucla.edu> Hi Xee, I've implemented and pushed to github a new policy for PIT ("ns3::ndn::pit::SerializedSize"). You can check out [examples/ndn-simple-pit-policies.cc] that shows how to enable it. Basically, it almost exactly the same as default ns3::ndn::pit::Persistent, but you specify size in bytes, not in number of packets (size based on Interest size, without considering any additional overhead): wen size limit is reached, new interests will be rejected. You can run with NS_LOG=ndn.pit.PitImpl to see some debugging logging from the policy. Let me know if something is not working as it should, or you want some other behavior. Sincerely, Alex On Feb 1, 2013, at 7:09 PM, Xee <1839750381 at qq.com> wrote: > Hi > I need to know how can I simulate the memory size of pending interest table ? I have gone through the available function but it give the number of entries in the pending interest table. How can I get the memory size of PIT in Kb/Mb? because every interest may have different size. > > Please help me to simulate my scenario. From 1839750381 at qq.com Fri Feb 1 23:42:23 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Sat, 2 Feb 2013 15:42:23 +0800 Subject: [ndnSIM] Reply: ndnSIM : ns-3 modules integration Message-ID: Hi Alex Thanks for your email, I would appreciate if you share an example code using ndn and wifi both together. ------------------ Original ------------------ Sender: "Alex Afanasyev"; Send time: Saturday, Feb 2, 2013 12:06 PM To: "Xee"<1839750381 at qq.com>; Cc: "ndnsim"; Subject: Re: [ndnSIM] ndnSIM : ns-3 modules integration Hi Xee, There was a small bug in ndnSIM that prevented running simulations with non point-to-point net devices in non-optimized mode (optimized mode didn't have problem). I have fixed the issue today and if you update to the latest commit, it debug mode should also work. If it is still not working, can you run in a debugger and then send me a backtrace? Thanks, Alex On Feb 1, 2013, at 7:55 PM, "Xee" <1839750381 at qq.com> wrote: I have tried both wifi and energy efficiency model in ndnsim. I does'nt give me any error. It give me message that 'build successfully', after this line it suggest me in 'RED Colored text', that I need to debug to find out the problem. Can you help me plz. ------------------ Original ------------------ From: "Alex Afanasyev"; Date: Feb 2, 2013 To: "Xee"<1839750381 at qq.com>; Cc: "ndnsim"; Subject: Re: [ndnSIM] ndnSIM : ns-3 modules integration What do you mean by "other modules"? There is technically no restrictions on how ndnSIM can be combined with any other NS-3 modules. Are you experiencing any particular compilation/linking error or something is going totally wrong? Btw. I have put up a template that can be used to develop and run custom simulations: https://github.com/cawka/ndnSIM-scenario-template (real example of how the template can be used is here: https://github.com/cawka/ndnSIM-comcom-stateful-fw) In the template's wscript you can specify which modules you want your scenario to be compiled with. Sincerely, Alex On Feb 1, 2013, at 7:20 PM, "Xee" <1839750381 at qq.com> wrote: Hi I want to use ns-3 modules with the ndnSIM. But I found that only pointToPoint module is enable with ndnsim. Is it possible to use existing ns-3 modules with the ndnsim ? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From 1839750381 at qq.com Fri Feb 1 23:42:10 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Sat, 2 Feb 2013 15:42:10 +0800 Subject: [ndnSIM] ndnSIM : How simulate Pending Interest Table memory size Message-ID: Hi Alex Thanks you so, I just gone through the code. Rgd, -Xee ------------------ Original ------------------ From: "Alex Afanasyev"; Date: Feb 2, 2013 To: "Xee"<1839750381 at qq.com>; Cc: "ndnsim"; Subject: Re: [ndnSIM] ndnSIM : How simulate Pending Interest Table memory size Hi Xee, I've implemented and pushed to github a new policy for PIT ("ns3::ndn::pit::SerializedSize"). You can check out [examples/ndn-simple-pit-policies.cc] that shows how to enable it. Basically, it almost exactly the same as default ns3::ndn::pit::Persistent, but you specify size in bytes, not in number of packets (size based on Interest size, without considering any additional overhead): wen size limit is reached, new interests will be rejected. You can run with NS_LOG=ndn.pit.PitImpl to see some debugging logging from the policy. Let me know if something is not working as it should, or you want some other behavior. Sincerely, Alex On Feb 1, 2013, at 7:09 PM, Xee <1839750381 at qq.com> wrote: > Hi > I need to know how can I simulate the memory size of pending interest table ? I have gone through the available function but it give the number of entries in the pending interest table. How can I get the memory size of PIT in Kb/Mb? because every interest may have different size. > > Please help me to simulate my scenario. -------------- next part -------------- An HTML attachment was scrubbed... URL: From 1839750381 at qq.com Thu Feb 7 06:26:45 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Thu, 7 Feb 2013 22:26:45 +0800 Subject: [ndnSIM] Content Store Size Message-ID: Hi I want to simulate a scenario with different content store sizes for different nodes. Is it possible to simulate the senario I need ? -Zeeshan -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 7 08:45:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 08:45:28 -0800 Subject: [ndnSIM] Error compiling ndnSIM In-Reply-To: References: Message-ID: Hi Chiara, You can try to remove "mobility" from configure command. Btw, are you using ndnSIM with customized version of NS3? Can you tell me which commits (commit hashes) for ndnSIM and NS3 you are using? --- Alex On Feb 7, 2013, at 8:31 AM, Chiara Contoli wrote: > Hi Alex, > yesterday I have update the code of ndnSIM with which I'm currently working, with the code placed in your repo, but now when I compile I get the following error: > > In file included from ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:22:0: > ../src/ndnSIM/plugins/mobility/highway-position-allocator.h:53:11: error: ?UniformRandomVariable? does not name a type > ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual ns3::Vector ns3::HighwayPositionAllocator::GetNext() const?: > ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:64:23: error: ?m_random_gap_var? was not declared in this scope > ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual int64_t ns3::HighwayPositionAllocator::AssignStreams(int64_t)?: > ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:107:3: error: ?m_random_gap_var? was not declared in this scope > > This is what I typed after the update: > ./waf clean > ./waf configure --enable-examples --enable-ndn-plugins=topology,mobility > > and after the above commands everything was ok, but then, when I typed > ./waf > > I got the error above mentioned. How could i fixed that? > Thanks. > Chiara. From alexander.afanasyev at ucla.edu Thu Feb 7 08:51:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 08:51:28 -0800 Subject: [ndnSIM] question for PIT In-Reply-To: References: Message-ID: <6C6D6783-ECDB-4602-AE16-03306D769167@ucla.edu> Hi It would help if you can send also header for your ndn-ca. I suspect there some missing forward declarations of your Entry class (as you're including ndn-ca inside ndn-ca-entry). --- Alex On Feb 7, 2013, at 1:14 AM, "???? " wrote: > Hi, Alex > I want to imitate the PIT to establish a new table called ca. I just copy the PIT and rename as the ca. And under the file ca, I replaced the keyword Pit/pit as Ca/ca , Interest/interest as Cah/cah. I also add the ndn-cah.cc and ndn-cah.h under the model and corresponding header files in the wscript. However when I compiled, it errors like bellow. > > In file included from ./ns3/ndn-ca-entry.h:28:0, > from ./ns3/ndnSIM-module.h:16, > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cc:25: > ./ns3/ndn-ca.h:77:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:77:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:77:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:86:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:86:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:86:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:97:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:97:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:97:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:108:19: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:108:19: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:108:28: error: template argument 1 is invalid > ./ns3/ndn-ca.h:127:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:127:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:127:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:133:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:133:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:133:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:139:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:139:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:139:24: error: template argument 1 is invalid > ./ns3/ndn-ca.h:140:13: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:140:13: error: ?Entry? is not a member of ?ns3::ndn::ca? > ./ns3/ndn-ca.h:140:22: error: template argument 1 is invalid > > here is the ndn-ca-entry.h, the Entry is included in ns3::ndn::ca. I'm not sure why? > #ifndef _NDN_CA_ENTRY_H_ > #define _NDN_CA_ENTRY_H_ > #include "ns3/ptr.h" > #include "ns3/simple-ref-count.h" > #include "ns3/ndn-fib.h" > #include "ns3/ndn-ca.h"////////////////// > #include "ns3/ndn-name-components.h"////////////////// > #include "ns3/ndn-ca-entry-incoming-face.h" > #include "ns3/ndn-ca-entry-outgoing-face.h" > ........ > namespace ns3 { > namespace ndn { > class Ca; > namespace fw { class Tag; } > namespace ca { > class i_face {}; > class i_retx {}; > class Entry : public SimpleRefCount > { > public: > typedef std::set< IncomingFace > in_container; ///< @brief incoming faces container type > typedef in_container::iterator in_iterator; ///< @brief iterator to incoming faces > typedef std::set< OutgoingFace > out_container; ///< @brief outgoing faces container type > typedef out_container::iterator out_iterator; ///< @brief iterator to outgoing faces > typedef std::set< uint32_t > nonce_container; ///< @brief nonce container type > ............................ > } > Thanks for help! From alexander.afanasyev at ucla.edu Thu Feb 7 09:58:14 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 09:58:14 -0800 Subject: [ndnSIM] Error compiling ndnSIM In-Reply-To: References: Message-ID: Hi Chiara, Your ns-3 commit is relatively old, which caused the original (there were changes in NS-3 regarding random variables) and this new problem (there is one custom extension of NS-3 that is necessary). If you didn't make your own modifications in NS-3, i would suggest the following: cd ns-3 git fetch origin git reset --hard 66f29d7ee66d1eed8 git merge origin/master **DO IT ONLY IF YOU HAVE NOT MODIFIED NS-3**, otherwise you will lose your changes (as reset --hard will reset everything). If you have modified, then I would suggest other options to synchronize. --- Alex On Feb 7, 2013, at 9:45 AM, Chiara Contoli wrote: > Sorry, I've forgotten to tell you that > ns-3 is at 0ccbbd580b69ea03e8ecc70c18a7d0469fc825b4 > ndnSIM is at eec6629e3c04689116ecd866ec5cb6b2784cf996 > Chiara > Il giorno 07/feb/2013, alle ore 09:40, Chiara Contoli ha scritto: > >> I compiled without the "mobility" option from configure command, but now I get another error: >> >> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc: In function ?int main(int, char**)?: >> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc:64:15: error: no match for ?operator<> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc:64:15: note: candidates are: >> .... >> and the output is very long due to this error, but if you I attach all the output. >> Chiara >> Il giorno 07/feb/2013, alle ore 08:45, Alex Afanasyev ha scritto: >> >>> Hi Chiara, >>> >>> You can try to remove "mobility" from configure command. >>> >>> Btw, are you using ndnSIM with customized version of NS3? Can you tell me which commits (commit hashes) for ndnSIM and NS3 you are using? >>> >>> --- >>> Alex >>> >>> On Feb 7, 2013, at 8:31 AM, Chiara Contoli wrote: >>> >>>> Hi Alex, >>>> yesterday I have update the code of ndnSIM with which I'm currently working, with the code placed in your repo, but now when I compile I get the following error: >>>> >>>> In file included from ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:22:0: >>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.h:53:11: error: ?UniformRandomVariable? does not name a type >>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual ns3::Vector ns3::HighwayPositionAllocator::GetNext() const?: >>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:64:23: error: ?m_random_gap_var? was not declared in this scope >>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual int64_t ns3::HighwayPositionAllocator::AssignStreams(int64_t)?: >>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:107:3: error: ?m_random_gap_var? was not declared in this scope >>>> >>>> This is what I typed after the update: >>>> ./waf clean >>>> ./waf configure --enable-examples --enable-ndn-plugins=topology,mobility >>>> >>>> and after the above commands everything was ok, but then, when I typed >>>> ./waf >>>> >>>> I got the error above mentioned. How could i fixed that? >>>> Thanks. >>>> Chiara. >> > From alexander.afanasyev at ucla.edu Thu Feb 7 10:18:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 10:18:07 -0800 Subject: [ndnSIM] Content Store Size In-Reply-To: References: Message-ID: <59E32910-EAD7-4B29-8F6A-DA1B94D36ED8@ucla.edu> Hi Zeeshan, Yes, it is possible to set individual sizes for cache sizes on nodes. One of the ways to do this is to use Config class, for example like this: // set up max sizes, after NDN stack is installed Config::Set ("/NodeList/0/$ns3::ndn::ContentStore/MaxSize", UintegerValue (1)); // number after nodeList is global ID of the node (= node->GetId ()) Config::Set ("/NodeList/1/$ns3::ndn::ContentStore/MaxSize", UintegerValue (2)); Config::Set ("/NodeList/2/$ns3::ndn::ContentStore/MaxSize", UintegerValue (200)); This would work for all content store types, you don't need to (would work either way) specify a specific type of content store in Config::Set. I pushed a new commit to ndnSIM repository with a simple example (ndn-simple-with-different-sizes-content-store.cc). --- Alex On Feb 7, 2013, at 6:26 AM, "Xee" <1839750381 at qq.com> wrote: > Hi > > I want to simulate a scenario with different content store sizes for different nodes. Is it possible to simulate the senario I need ? > > -Zeeshan From alexander.afanasyev at ucla.edu Thu Feb 7 11:25:23 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 11:25:23 -0800 Subject: [ndnSIM] Question about ndnSIM apps In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <8DCEA636-4548-43CD-AAD7-634D80B8EC02@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> <67AFF735-E8BB-40AB-908B-61ACB9523F23@cs.ucla. edu> Message-ID: Hi Yifeng, Actual sending is happening in the base ndn::Consumer class (ndn-consumer.cc). As this is an application, the only communication channel to/from l3 protocol is through application face and registered callback (actually, to send from app, you always need to use callback). Wouldn't extension of the forwarding strategy be a better fit for your needs? Inside the forwarding strategy you have full control to which faces you want to send messages. -- Alex On Feb 7, 2013, at 11:08 AM, Yifeng Li wrote: > Hi Alex, > > I have a question regarding the ndnSIM apps. I'm trying simulate something similar to hop by hop TCP, e.g. every node receives interests, buffers them and then sends them out with typical TCP fashion (AIMD). I'm looking at ndn-consumer-window.cc, specifically in ConsumerWindow::ScheduleNextPacket. I see a send event is scheduled, and Consumer::SendPacket is called, but where in SendPacket is the packet actually sent? Can I specify a face to send? Also when receiving interests, are the interests buffered somewhere? > > Thanks for your help, > Yifeng From alexander.afanasyev at ucla.edu Thu Feb 7 12:49:22 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 12:49:22 -0800 Subject: [ndnSIM] Question about ndnSIM apps In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <8DCEA636-4548-43CD-AAD7-634D80B8EC02@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> Message-ID: If you create a class inherited from ns3::ndn::fw::Nack, then you can overload OnNack event and do custom processing within it (don't forget to call parent's class processing as well). There are other events Normally, you shouldn't need to modify anything inside ndnSIM and implement everything inside the extension. There is a basic example on the website (http://ndnsim.net/fw.html#extending-strategy) that shows what can be done in the strategy extension. --- Alex On Feb 7, 2013, at 11:23 AM, Yifeng Li wrote: > Hello Alex, > > If I were to incorporate NACKs in the forwarding scheme, e.g. receiving NACK => window reduce, where would I modify that? Would it still be within the forwarding strategy extension or should I modify the function that handles NACKs in general? If it's the latter, where is this function? > > Thanks for your help, > Yifeng > > > On Thu, Feb 7, 2013 at 12:13 PM, Alex Afanasyev wrote: > Hi Yifeng, > > Actual sending is happening in the base ndn::Consumer class (ndn-consumer.cc). As this is an application, the only communication channel to/from l3 protocol is through application face and registered callback (actually, to send from app, you always need to use callback). > > Wouldn't extension of the forwarding strategy be a better fit for your needs? Inside the forwarding strategy you have full control to which faces you want to send messages. > > -- > Alex > > On Feb 7, 2013, at 11:08 AM, Yifeng Li wrote: > >> Hi Alex, >> >> I have a question regarding the ndnSIM apps. I'm trying simulate something similar to hop by hop TCP, e.g. every node receives interests, buffers them and then sends them out with typical TCP fashion (AIMD). I'm looking at ndn-consumer-window.cc, specifically in ConsumerWindow::ScheduleNextPacket. I see a send event is scheduled, and Consumer::SendPacket is called, but where in SendPacket is the packet actually sent? Can I specify a face to send? Also when receiving interests, are the interests buffered somewhere? >> >> Thanks for your help, >> Yifeng >> >> >> >> On Wed, Nov 28, 2012 at 12:19 PM, Alex Afanasyev wrote: >> Yes. Delay should not be too large, otherwise Reno is not able to get the right value for the congestion window (because it is increasing by one every RTT). Though 200ms is not that large number for RTT, especially for the 1Mbps links... >> >> --- >> Alex >> >> On Nov 28, 2012, at 11:08 AM, Yifeng Li wrote: >> >> > Hello Alex, >> > >> > Regarding my last email, if I change the delay on each link to 10ms (instead of approx 130ms), the throughput will look similar to the ones displayed in the forwarding paper. >> > Sincerely, >> > Yifeng >> > >> > >> > >> > >> > On Wed, Nov 28, 2012 at 11:25 AM, Yifeng Li wrote: >> > Hello Alex, >> > >> > Thanks for the tutorial, I will look into it. As for the TCP part of the experiment, the graph that I got from using pcap seems a little different from what is displayed in the forward paper. It seems like the throughput never reaches 1Mbps after the initial back off. I've attached the throughput displayed via wireshark to this email. I assume the default TCP used by ns3 is TCP Reno. I'll also attach my experiment to this email as well. >> > >> > Thanks for your help, >> > Yifeng >> > >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 7 12:58:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 12:58:07 -0800 Subject: [ndnSIM] Question about ndnSIM apps In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <8DCEA636-4548-43CD-AAD7-634D80B8EC02@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> Message-ID: <6D9BED7D-C9A1-4E93-8C57-E6F015F10F2D@ucla.edu> Hi Yifeng, Forwarding strategy deals with everything related to packet forwarding, including processing of interests and data packets. There are many events that you can "override" in your extension. Check API docs for the full list of events (http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_forwarding_strategy.html) and source code for more details. Are you talking about something related to per-outgoing-face limiting? You can check out the implementation of forwarding strategy extension https://github.com/NDN-Routing/ndnSIM/blob/master/model/fw/per-out-face-limits.h which can use any limit based on ndn::Limits class (https://github.com/NDN-Routing/ndnSIM/blob/master/utils/ndn-limits.h). There are currently two types of limits implemented: ns3::ndn::Limits::Window and ns3::ndn::Limits::Rate (http://ndnsim.net/fw.html#strategies-with-interest-limits). In your case you would probably need an extended version of ns3::ndn::fw::PerOutFaceLimits strategy with modified version of ns3::ndn::Limits::Window limits. --- Alex On Feb 7, 2013, at 12:35 PM, Yifeng Li wrote: > Hi Alex, > > Does the forwarding strategies apply to every face? E.g. I want every face to have a window. > > I also want to change the window size for every content received, could that modification be done in the forwarding strategy or somewhere else, like the l3 protocol? > > Also, to find out what the outgoing face is for an interest, I would need to look up the FIB during DoPropagateInterest. Where would I look to find code used for FIB look ups? > Thanks for your help, > Yifeng > > > On Thu, Feb 7, 2013 at 12:23 PM, Yifeng Li wrote: > Hello Alex, > > If I were to incorporate NACKs in the forwarding scheme, e.g. receiving NACK => window reduce, where would I modify that? Would it still be within the forwarding strategy extension or should I modify the function that handles NACKs in general? If it's the latter, where is this function? > > Thanks for your help, > Yifeng > > > On Thu, Feb 7, 2013 at 12:13 PM, Alex Afanasyev wrote: > Hi Yifeng, > > Actual sending is happening in the base ndn::Consumer class (ndn-consumer.cc). As this is an application, the only communication channel to/from l3 protocol is through application face and registered callback (actually, to send from app, you always need to use callback). > > Wouldn't extension of the forwarding strategy be a better fit for your needs? Inside the forwarding strategy you have full control to which faces you want to send messages. > > -- > Alex > > On Feb 7, 2013, at 11:08 AM, Yifeng Li wrote: > >> Hi Alex, >> >> I have a question regarding the ndnSIM apps. I'm trying simulate something similar to hop by hop TCP, e.g. every node receives interests, buffers them and then sends them out with typical TCP fashion (AIMD). I'm looking at ndn-consumer-window.cc, specifically in ConsumerWindow::ScheduleNextPacket. I see a send event is scheduled, and Consumer::SendPacket is called, but where in SendPacket is the packet actually sent? Can I specify a face to send? Also when receiving interests, are the interests buffered somewhere? >> >> Thanks for your help, >> Yifeng >> >> > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 7 16:50:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 7 Feb 2013 16:50:48 -0800 Subject: [ndnSIM] Reply: question for PIT In-Reply-To: References: Message-ID: <01B1AE21-9816-46B2-AFF1-2D03D7E3F893@ucla.edu> So the problem is definitely with includes. In ca.h you include ca-entry.h and in ca-entry.h you are including ca.h, which creates an error you're observing. In PIT implementation, pit-entry.h does not include pit.h at all, it merely has a forward declaration of the class (https://github.com/NDN-Routing/ndnSIM/blob/master/model/pit/ndn-pit-entry.h#L45). You can do a similar trick. --- Alex PS If you don't mind, can you also CC ndnsim mailing list in your replies. Thanks. On Feb 7, 2013, at 4:45 PM, "???? " wrote: > Hi, Alex > The CA header is below > > #ifndef _NDN_CA_H_ > #define _NDN_CA_H_ > > #include "ns3/object.h" > #include "ns3/nstime.h" > #include "ns3/event-id.h" > > #include "ndn-ca-entry.h" > > namespace ns3 { > namespace ndn { > > class L3Protocol; > class Face; > class ContentObjectHeader; > //class InterestHeader; > class CAHeader; > > > /** > * \ingroup ndn > * \brief Class implementing Pending Interests Table > */ > class Ca : public Object > { > public: > /** > * \brief Interface ID > * > * \return interface ID > */ > static TypeId GetTypeId (); > > /** > * \brief PIT constructor > */ > Ca (); > > /** > * \brief Destructor > */ > virtual ~Ca (); > > /** > * \brief Find corresponding PIT entry for the given content name > * > * Not that this call should be repeated enough times until it return 0. > * This way all records with shorter or equal prefix as in content object will be found > * and satisfied. > * > * \param prefix Prefix for which to lookup the entry > * \returns smart pointer to PIT entry. If record not found, > * returns 0 > */ > virtual Ptr > Lookup (const ContentObjectHeader &header) = 0; > > /** > * \brief Find a PIT entry for the given content interest > * \param header parsed interest header > * \returns iterator to Pit entry. If record not found, > * return end() iterator > */ > virtual Ptr > Lookup (const CAHeader &header) = 0; > > /** > * @brief Creates a PIT entry for the given interest > * @param header parsed interest header > * @returns iterator to Pit entry. If record could not be created (e.g., limit reached), > * return end() iterator > * > * Note. This call assumes that the entry does not exist (i.e., there was a Lookup call before) > */ > virtual Ptr > Create (Ptr header) = 0; > > /** > * @brief Mark PIT entry deleted > * @param entry PIT entry > * > * Effectively, this method removes all incoming/outgoing faces and set > * lifetime +m_PitEntryDefaultLifetime from Now () > */ > virtual void > MarkErased (Ptr entry) = 0; > > /** > * @brief Print out PIT contents for debugging purposes > * > * Note that there is no definite order in which entries are printed out > */ > virtual void > Print (std::ostream &os) const = 0; > > /** > * @brief Get number of entries in PIT > */ > virtual uint32_t > GetSize () const = 0; > > /** > * @brief Return first element of FIB (no order guaranteed) > */ > virtual Ptr > Begin () = 0; > > /** > * @brief Return item next after last (no order guaranteed) > */ > virtual Ptr > End () = 0; > > /** > * @brief Advance the iterator > */ > virtual Ptr > Next (Ptr) = 0; > > /** > * @brief Static call to cheat python bindings > */ > static inline Ptr > GetCa (Ptr node); > > protected: > // configuration variables. Check implementation of GetTypeId for more details > Time m_CaEntryPruningTimout; > }; > > inline std::ostream& > operator<< (std::ostream& os, const Ca &ca) > { > ca.Print (os); > return os; > } > > inline Ptr > Ca::GetCa (Ptr node) > { > return node->GetObject (); > } > > } // namespace ndn > } // namespace ns3 > > #endif /* NDN_PIT_H */ > > > ------------------ Original ------------------ > Sender: "alexander.afanasyev"; > Send time: Friday, Feb 8, 2013 0:51 AM > To: "????"; > Cc: "ndnsim"; > Subject: Re: question for PIT > > Hi > > It would help if you can send also header for your ndn-ca. I suspect there some missing forward declarations of your Entry class (as you're including ndn-ca inside ndn-ca-entry). > > --- > Alex > > On Feb 7, 2013, at 1:14 AM, "???? " wrote: > > > Hi, Alex > > I want to imitate the PIT to establish a new table called ca. I just copy the PIT and rename as the ca. And under the file ca, I replaced the keyword Pit/pit as Ca/ca , Interest/interest as Cah/cah. I also add the ndn-cah.cc and ndn-cah.h under the model and corresponding header files in the wscript. However when I compiled, it errors like bellow. > > > > In file included from ./ns3/ndn-ca-entry.h:28:0, > > from ./ns3/ndnSIM-module.h:16, > > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cc:25: > > ./ns3/ndn-ca.h:77:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:77:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:77:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:86:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:86:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:86:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:97:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:97:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:97:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:108:19: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:108:19: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:108:28: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:127:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:127:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:127:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:133:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:133:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:133:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:139:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:139:15: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:139:24: error: template argument 1 is invalid > > ./ns3/ndn-ca.h:140:13: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:140:13: error: ?Entry? is not a member of ?ns3::ndn::ca? > > ./ns3/ndn-ca.h:140:22: error: template argument 1 is invalid > > > > here is the ndn-ca-entry.h, the Entry is included in ns3::ndn::ca. I'm not sure why? > > #ifndef _NDN_CA_ENTRY_H_ > > #define _NDN_CA_ENTRY_H_ > > #include "ns3/ptr.h" > > #include "ns3/simple-ref-count.h" > > #include "ns3/ndn-fib.h" > > #include "ns3/ndn-ca.h"////////////////// > > #include "ns3/ndn-name-components.h"////////////////// > > #include "ns3/ndn-ca-entry-incoming-face.h" > > #include "ns3/ndn-ca-entry-outgoing-face.h" > > ........ > > namespace ns3 { > > namespace ndn { > > class Ca; > > namespace fw { class Tag; } > > namespace ca { > > class i_face {}; > > class i_retx {}; > > class Entry : public SimpleRefCount > > { > > public: > > typedef std::set< IncomingFace > in_container; ///< @brief incoming faces container type > > typedef in_container::iterator in_iterator; ///< @brief iterator to incoming faces > > typedef std::set< OutgoingFace > out_container; ///< @brief outgoing faces container type > > typedef out_container::iterator out_iterator; ///< @brief iterator to outgoing faces > > typedef std::set< uint32_t > nonce_container; ///< @brief nonce container type > > ............................ > > } > > Thanks for help! -------------- next part -------------- An HTML attachment was scrubbed... URL: From 1839750381 at qq.com Thu Feb 7 20:12:13 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Fri, 8 Feb 2013 12:12:13 +0800 Subject: [ndnSIM] Content Store Size Message-ID: Hi Alex Thanks a lot, now I can update new commits :) Cheers!! -Zeeshan ------------------ Original ------------------ From: "Alex Afanasyev"; Date: Feb 8, 2013 To: "Xee"<1839750381 at qq.com>; Subject: Re: [ndnSIM] Content Store Size If you haven't modified anything under ns-3 (you really shouldn't, you can write your scenarios and extension as a separate module like https://github.com/cawka/ndnSIM-scenario-template and https://github.com/cawka/ndnSIM-comcom-stateful-fw # update NS-3 cd ns-3 git fetch origin git merge origin/master # update ndnSIM cd src/ndnSIM git fetch origin git merge origin/master Technically, these steps should work even if you modified something, but the also may fail (will not fail if you just added new files). If merge failed, you can always issue git merge --abort which will abort merge **** IF YOU DID MODIFICATIONS **** you should first commit your changes. git status to see what has changed git add git commit to save change. You can check more about git here: http://git-scm.com/ Sincerely, Alex On Feb 7, 2013, at 7:31 PM, "Xee" <1839750381 at qq.com> wrote: I am not much experience with ndnsim and may be with linux. Can you help me to how to update the existing ndnsim with your commit changes plz. ------------------ Original ------------------ From: "Alex Afanasyev"; Date: Feb 8, 2013 To: "Xee"<1839750381 at qq.com>; Cc: "ndnsim"; Subject: Re: [ndnSIM] Content Store Size Hi Zeeshan, Yes, it is possible to set individual sizes for cache sizes on nodes. One of the ways to do this is to use Config class, for example like this: // set up max sizes, after NDN stack is installed Config::Set ("/NodeList/0/$ns3::ndn::ContentStore/MaxSize", UintegerValue (1)); // number after nodeList is global ID of the node (= node->GetId ()) Config::Set ("/NodeList/1/$ns3::ndn::ContentStore/MaxSize", UintegerValue (2)); Config::Set ("/NodeList/2/$ns3::ndn::ContentStore/MaxSize", UintegerValue (200)); This would work for all content store types, you don't need to (would work either way) specify a specific type of content store in Config::Set. I pushed a new commit to ndnSIM repository with a simple example (ndn-simple-with-different-sizes-content-store.cc). --- Alex On Feb 7, 2013, at 6:26 AM, "Xee" <1839750381 at qq.com> wrote: > Hi > > I want to simulate a scenario with different content store sizes for different nodes. Is it possible to simulate the senario I need ? > > -Zeeshan -------------- next part -------------- An HTML attachment was scrubbed... URL: From chiara.contoli at gmail.com Thu Feb 7 21:36:41 2013 From: chiara.contoli at gmail.com (Chiara Contoli) Date: Thu, 7 Feb 2013 21:36:41 -0800 Subject: [ndnSIM] Error compiling ndnSIM In-Reply-To: References: Message-ID: <1A260FD0-F71C-439C-AC9D-3123369CC8EC@gmail.com> Hi Alex, after typing commands you suggested I fixed the errors. I've also subscribed to the ndnSIM mailing list. Thanks. Chiara Il giorno 07/feb/2013, alle ore 09:58, Alex Afanasyev ha scritto: > Hi Chiara, > > Your ns-3 commit is relatively old, which caused the original (there were changes in NS-3 regarding random variables) and this new problem (there is one custom extension of NS-3 that is necessary). > > If you didn't make your own modifications in NS-3, i would suggest the following: > > cd ns-3 > git fetch origin > git reset --hard 66f29d7ee66d1eed8 > git merge origin/master > > **DO IT ONLY IF YOU HAVE NOT MODIFIED NS-3**, otherwise you will lose your changes (as reset --hard will reset everything). > > If you have modified, then I would suggest other options to synchronize. > > --- > Alex > > > On Feb 7, 2013, at 9:45 AM, Chiara Contoli wrote: > >> Sorry, I've forgotten to tell you that >> ns-3 is at 0ccbbd580b69ea03e8ecc70c18a7d0469fc825b4 >> ndnSIM is at eec6629e3c04689116ecd866ec5cb6b2784cf996 >> Chiara >> Il giorno 07/feb/2013, alle ore 09:40, Chiara Contoli ha scritto: >> >>> I compiled without the "mobility" option from configure command, but now I get another error: >>> >>> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc: In function ?int main(int, char**)?: >>> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc:64:15: error: no match for ?operator<>> ../src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded.cc:64:15: note: candidates are: >>> .... >>> and the output is very long due to this error, but if you I attach all the output. >>> Chiara >>> Il giorno 07/feb/2013, alle ore 08:45, Alex Afanasyev ha scritto: >>> >>>> Hi Chiara, >>>> >>>> You can try to remove "mobility" from configure command. >>>> >>>> Btw, are you using ndnSIM with customized version of NS3? Can you tell me which commits (commit hashes) for ndnSIM and NS3 you are using? >>>> >>>> --- >>>> Alex >>>> >>>> On Feb 7, 2013, at 8:31 AM, Chiara Contoli wrote: >>>> >>>>> Hi Alex, >>>>> yesterday I have update the code of ndnSIM with which I'm currently working, with the code placed in your repo, but now when I compile I get the following error: >>>>> >>>>> In file included from ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:22:0: >>>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.h:53:11: error: ?UniformRandomVariable? does not name a type >>>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual ns3::Vector ns3::HighwayPositionAllocator::GetNext() const?: >>>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:64:23: error: ?m_random_gap_var? was not declared in this scope >>>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc: In member function ?virtual int64_t ns3::HighwayPositionAllocator::AssignStreams(int64_t)?: >>>>> ../src/ndnSIM/plugins/mobility/highway-position-allocator.cc:107:3: error: ?m_random_gap_var? was not declared in this scope >>>>> >>>>> This is what I typed after the update: >>>>> ./waf clean >>>>> ./waf configure --enable-examples --enable-ndn-plugins=topology,mobility >>>>> >>>>> and after the above commands everything was ok, but then, when I typed >>>>> ./waf >>>>> >>>>> I got the error above mentioned. How could i fixed that? >>>>> Thanks. >>>>> Chiara. >>> >> > From natalya.rozhnova at lip6.fr Mon Feb 11 09:09:55 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Tue, 12 Feb 2013 00:09:55 +0700 Subject: [ndnSIM] NACKs Message-ID: <829811360602595@web11g.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Feb 11 09:22:33 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 11 Feb 2013 09:22:33 -0800 Subject: [ndnSIM] NACKs In-Reply-To: <829811360602595@web11g.yandex.ru> References: <829811360602595@web11g.yandex.ru> Message-ID: Hi Natalya, There is some description about NACKs in our paper http://dx.doi.org/10.1016/j.comcom.2013.01.005 For the implementation, only routers generate NACKs, and this code is part of specialized forwarding strategy extension "ns3::ndn::fw::Nacks" (model/fw/nacks.h and model/fw/nacks.cc). Currently, all existing forwarding strategies have this extension, but NACKs generation is disabled by default. At the same time, just enabling NACKs for strategy like BestRoute or Flooding could only trigger NACKs with code NACK_LOOP and NACK_GIVEUP_PIT (in some cases). For congestion related behavior described in the paper, you would want to use specialized strategy that enforces some kind of Interest limits (e.g., ns3::ndn::fw::BestRoute::PerOutFaceLimits). You can check out and play with the congestion scenario that was used for the paper here: https://github.com/cawka/ndnSIM-comcom-stateful-fw Sincerely, Alex On Feb 11, 2013, at 9:09 AM, Natalya Rozhnova wrote: > Hi all, > > I have a question about NACK implementation in NDNSim. I'm just wondering how it is working in existing ndnSIM code. Who generates and sends NACK packets: producer or routers? > Also, could you please refer me to the function generating and sending NACK? > > Thanks a lot, > Natalya -------------- next part -------------- An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Mon Feb 11 09:41:36 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Tue, 12 Feb 2013 00:41:36 +0700 Subject: [ndnSIM] NACKs In-Reply-To: References: <829811360602595@web11g.yandex.ru> Message-ID: <1173701360604496@web29e.yandex.ru> An HTML attachment was scrubbed... URL: From ywang15 at ncsu.edu Mon Feb 11 09:48:07 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Mon, 11 Feb 2013 12:48:07 -0500 Subject: [ndnSIM] NACKs In-Reply-To: <1173701360604496@web29e.yandex.ru> References: <829811360602595@web11g.yandex.ru> <1173701360604496@web29e.yandex.ru> Message-ID: Adding my two cents: If you are looking for the specific code where NACKs are generated, it is in Nacks::DidReceiveDuplicateInterest() and Nacks::DidExhaustForwardingOptions() under model/fw/nacks.cc. The former generates NACK_LOOP and the latter generates NACK_GIVEUP_PIT. It appears to me that, in the current implementation, congestion also generates NACK_GIVEUP_PIT rather than NACK_CONGESTION. Thanks, Yaogong On Mon, Feb 11, 2013 at 12:41 PM, Natalya Rozhnova wrote: > Thanks, Alex! > > Best, > Natalya > > 12.02.2013, 00:22, "Alex Afanasyev" : > > Hi Natalya, > > There is some description about NACKs in our paper > http://dx.doi.org/10.1016/j.comcom.2013.01.005 > > For the implementation, only routers generate NACKs, and this code is part > of specialized forwarding strategy extension "ns3::ndn::fw::Nacks" > (model/fw/nacks.h and model/fw/nacks.cc). > > Currently, all existing forwarding strategies have this extension, but > NACKs generation is disabled by default. At the same time, just enabling > NACKs for strategy like BestRoute or Flooding could only trigger NACKs with > code NACK_LOOP and NACK_GIVEUP_PIT (in some cases). For congestion related > behavior described in the paper, you would want to use specialized strategy > that enforces some kind of Interest limits (e.g., > ns3::ndn::fw::BestRoute::PerOutFaceLimits). > > You can check out and play with the congestion scenario that was used for > the paper here: https://github.com/cawka/ndnSIM-comcom-stateful-fw > > Sincerely, > Alex > > On Feb 11, 2013, at 9:09 AM, Natalya Rozhnova > wrote: > > Hi all, > > I have a question about NACK implementation in NDNSim. I'm just wondering > how it is working in existing ndnSIM code. Who generates and sends NACK > packets: producer or routers? > Also, could you please refer me to the function generating and sending > NACK? > > Thanks a lot, > Natalya > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -- ============================ Yaogong Wang, PhD Candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ============================ -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Feb 11 10:02:49 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 11 Feb 2013 10:02:49 -0800 Subject: [ndnSIM] NACKs In-Reply-To: References: <829811360602595@web11g.yandex.ru> <1173701360604496@web29e.yandex.ru> Message-ID: <8F0AA496-5D48-486A-B2C3-BB25EBA11942@ucla.edu> On Feb 11, 2013, at 9:48 AM, Yaogong Wang wrote: > Adding my two cents: > > If you are looking for the specific code where NACKs are generated, it is in Nacks::DidReceiveDuplicateInterest() and Nacks::DidExhaustForwardingOptions() under model/fw/nacks.cc. The former generates NACK_LOOP and the latter generates NACK_GIVEUP_PIT. It appears to me that, in the current implementation, congestion also generates NACK_GIVEUP_PIT rather than NACK_CONGESTION. Thanks Yaogong, I totally forgot to mention that. Yes, currently there are only 2 codes that actually set by Nacks strategy. The paper explains more NACK codes, but we haven't yet fully implemented those. --- Alex > Thanks, > Yaogong > > On Mon, Feb 11, 2013 at 12:41 PM, Natalya Rozhnova wrote: > Thanks, Alex! > > Best, > Natalya > > 12.02.2013, 00:22, "Alex Afanasyev" : > Hi Natalya, > > There is some description about NACKs in our paper http://dx.doi.org/10.1016/j.comcom.2013.01.005 > > For the implementation, only routers generate NACKs, and this code is part of specialized forwarding strategy extension "ns3::ndn::fw::Nacks" (model/fw/nacks.h and model/fw/nacks.cc). > > Currently, all existing forwarding strategies have this extension, but NACKs generation is disabled by default. At the same time, just enabling NACKs for strategy like BestRoute or Flooding could only trigger NACKs with code NACK_LOOP and NACK_GIVEUP_PIT (in some cases). For congestion related behavior described in the paper, you would want to use specialized strategy that enforces some kind of Interest limits (e.g., ns3::ndn::fw::BestRoute::PerOutFaceLimits). > > You can check out and play with the congestion scenario that was used for the paper here: https://github.com/cawka/ndnSIM-comcom-stateful-fw > > Sincerely, > Alex > > On Feb 11, 2013, at 9:09 AM, Natalya Rozhnova wrote: > > Hi all, > > I have a question about NACK implementation in NDNSim. I'm just wondering how it is working in existing ndnSIM code. Who generates and sends NACK packets: producer or routers? > Also, could you please refer me to the function generating and sending NACK? > > Thanks a lot, > Natalya > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Tue Feb 12 11:29:41 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Wed, 13 Feb 2013 02:29:41 +0700 Subject: [ndnSIM] Prefix Message-ID: <653681360697381@web22h.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Feb 12 11:31:15 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 12 Feb 2013 11:31:15 -0800 Subject: [ndnSIM] Prefix In-Reply-To: <653681360697381@web22h.yandex.ru> References: <653681360697381@web22h.yandex.ru> Message-ID: <9731CD02-EC88-4597-9DE8-C0E02743053E@ucla.edu> What do you mean by prefix then? Interest/NACK has only name, which you can get with GetName() method... --- Alex On Feb 12, 2013, at 11:29 AM, Natalya Rozhnova wrote: > Hi guys, > > I have a very stupid question... Is it possible to get a prefix from an Interest/Nack header? I see just the function GetName but this is not what I actually need. > > Thanks in advance, > Natalya > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From natalya.rozhnova at lip6.fr Tue Feb 12 11:35:23 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Wed, 13 Feb 2013 02:35:23 +0700 Subject: [ndnSIM] Prefix In-Reply-To: <9731CD02-EC88-4597-9DE8-C0E02743053E@ucla.edu> References: <653681360697381@web22h.yandex.ru> <9731CD02-EC88-4597-9DE8-C0E02743053E@ucla.edu> Message-ID: <657261360697723@web22h.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Feb 12 11:47:44 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 12 Feb 2013 11:47:44 -0800 Subject: [ndnSIM] Prefix In-Reply-To: <657261360697723@web22h.yandex.ru> References: <653681360697381@web22h.yandex.ru> <9731CD02-EC88-4597-9DE8-C0E02743053E@ucla.edu> <657261360697723@web22h.yandex.ru> Message-ID: I see. Yes, for the dummy applications based on ndn::Consumer, this is the "prefix", which you can get using one of the methods from ndn::Name class. For example: ndn::Name prefix = interest->GetName ().cut (1); (refer to http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_name.html for other methods) --- Alex On Feb 12, 2013, at 11:35 AM, Natalya Rozhnova wrote: > If I understand correctly, the name is something like "prefix/1", "prefix/2" ... "prefix/ 1000" etc > I need just to pull "prefix", not whole name... > > Thanks, > Natalya > > > 13.02.2013, 02:31, "Alex Afanasyev" : > What do you mean by prefix then? Interest/NACK has only name, which you can get with GetName() method... > > --- > Alex > > On Feb 12, 2013, at 11:29 AM, Natalya Rozhnova wrote: > > Hi guys, > > I have a very stupid question... Is it possible to get a prefix from an Interest/Nack header? I see just the function GetName but this is not what I actually need. > > Thanks in advance, > Natalya > _______________________________________________ > 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 natalya.rozhnova at lip6.fr Tue Feb 12 11:50:06 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Wed, 13 Feb 2013 02:50:06 +0700 Subject: [ndnSIM] Prefix In-Reply-To: References: <653681360697381@web22h.yandex.ru> <9731CD02-EC88-4597-9DE8-C0E02743053E@ucla.edu> <657261360697723@web22h.yandex.ru> Message-ID: <652301360698606@web4d.yandex.ru> An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Tue Feb 12 18:24:23 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Wed, 13 Feb 2013 11:24:23 +0900 Subject: [ndnSIM] Zipf-Mandelbrot Patch for ndnSIM Message-ID: Hi Alex and Xiaoke, I have been following your code to better understand ndnSIM. Thank you so much for your effort to create and share the simulator and documentation. I am studying how various traffic characteristics affect a caching performance of a network. I have walked through zipf-mandelbrot code. There was a comment by Alex said that adding attributes "s" and "q" does not properly work. Do you already solve the problem in the latest patch? Or would you please tell me what the problem is? So that I may help you fix it. Thanks. Saran -- Regards, Saran Tarnoi Graduate Student Department of Informatics The Graduate University for Advanced Studies (Sokendai) Tokyo, Japan -------------- next part -------------- An HTML attachment was scrubbed... URL: From ywang15 at ncsu.edu Wed Feb 13 09:45:07 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Wed, 13 Feb 2013 12:45:07 -0500 Subject: [ndnSIM] leaky bucket start time Message-ID: Hi, I'm curious why do we randomize the leak start time in LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't we just start leaking at 0.0? Thanks, Yaogong -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 13 10:17:41 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 13 Feb 2013 10:17:41 -0800 Subject: [ndnSIM] leaky bucket start time In-Reply-To: References: Message-ID: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> Hi! I've put it there to ensure that nodes don't make a synchronized leaks of buckets, which impossible in real life, but could happen in some cases in the simulations. --- Alex On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: > Hi, > > I'm curious why do we randomize the leak start time in LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't we just start leaking at 0.0? > > Thanks, > Yaogong From ywang15 at ncsu.edu Wed Feb 13 10:39:37 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Wed, 13 Feb 2013 13:39:37 -0500 Subject: [ndnSIM] leaky bucket start time In-Reply-To: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> References: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> Message-ID: It doesn't seem to make much sense. The bucket anyway starts out as empty. Leaking won't really happen until someone calls BorrowLimit(). Yaogong On Wed, Feb 13, 2013 at 1:17 PM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi! > > I've put it there to ensure that nodes don't make a synchronized leaks of > buckets, which impossible in real life, but could happen in some cases in > the simulations. > > --- > Alex > > > On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: > > > Hi, > > > > I'm curious why do we randomize the leak start time in > LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't > we just start leaking at 0.0? > > > > Thanks, > > Yaogong > -- ============================ Yaogong Wang, PhD Candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ============================ -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 13 10:57:02 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 13 Feb 2013 10:57:02 -0800 Subject: [ndnSIM] leaky bucket start time In-Reply-To: References: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> Message-ID: <01CDB14F-9F5A-41CC-95BC-FA625452A529@ucla.edu> True. But if two guys receive a packet at the same time (can happen in some simple topologies), they would start leaking at the same time, resulting in synchronized decision, which may lead to unexpected results (I had them with simplistic topologies). --- Alex On Feb 13, 2013, at 10:39 AM, Yaogong Wang wrote: > It doesn't seem to make much sense. The bucket anyway starts out as empty. Leaking won't really happen until someone calls BorrowLimit(). > > Yaogong > > On Wed, Feb 13, 2013 at 1:17 PM, Alex Afanasyev wrote: > Hi! > > I've put it there to ensure that nodes don't make a synchronized leaks of buckets, which impossible in real life, but could happen in some cases in the simulations. > > --- > Alex > > > On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: > > > Hi, > > > > I'm curious why do we randomize the leak start time in LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't we just start leaking at 0.0? > > > > Thanks, > > Yaogong > > > > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ > ============================ > _______________________________________________ > 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 ywang15 at ncsu.edu Wed Feb 13 11:23:42 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Wed, 13 Feb 2013 14:23:42 -0500 Subject: [ndnSIM] leaky bucket start time In-Reply-To: <01CDB14F-9F5A-41CC-95BC-FA625452A529@ucla.edu> References: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> <01CDB14F-9F5A-41CC-95BC-FA625452A529@ucla.edu> Message-ID: I see your point. Such kind of synchronization could lead to some simulation artifacts. But I believe this should be taken care of by the users. They should be aware of this (such synchronization problems could happen in any simulator) and incur some randomness in their simulation setup. My concern with the current implementation is that the leak start time is randomly picked between 0s and 1s. It is fairly possible that lots of packets have already been sent before the leak start time. These packets may get stuck in the network because the bucket didn't start leaking when it should have. This might not be a big issue most of the time but did cause me some headache in some particular setup. Thanks, Yaogong On Wed, Feb 13, 2013 at 1:57 PM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > True. But if two guys receive a packet at the same time (can happen in > some simple topologies), they would start leaking at the same time, > resulting in synchronized decision, which may lead to unexpected results (I > had them with simplistic topologies). > > --- > Alex > > On Feb 13, 2013, at 10:39 AM, Yaogong Wang wrote: > > It doesn't seem to make much sense. The bucket anyway starts out as empty. > Leaking won't really happen until someone calls BorrowLimit(). > > Yaogong > > On Wed, Feb 13, 2013 at 1:17 PM, Alex Afanasyev < > alexander.afanasyev at ucla.edu> wrote: > >> Hi! >> >> I've put it there to ensure that nodes don't make a synchronized leaks of >> buckets, which impossible in real life, but could happen in some cases in >> the simulations. >> >> --- >> Alex >> >> >> On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: >> >> > Hi, >> > >> > I'm curious why do we randomize the leak start time in >> LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't >> we just start leaking at 0.0? >> > >> > Thanks, >> > Yaogong >> > > > > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ > ============================ > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > -- ============================ Yaogong Wang, PhD Candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ============================ -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 13 11:30:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 13 Feb 2013 11:30:07 -0800 Subject: [ndnSIM] leaky bucket start time In-Reply-To: References: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> <01CDB14F-9F5A-41CC-95BC-FA625452A529@ucla.edu> Message-ID: <6E85F09F-C972-43B9-A083-AF9144AE9E9D@ucla.edu> I see. Yeah, 1 second randomization could be a bad choice (any small randomization would be sufficient), but I wouldn't rely too much on users to take care of that. I can actually put a configurable option to enable/disable this randomization, as well as to configure randomization interval, keeping it ON by default with 1 ms randomization interval. --- Alex On Feb 13, 2013, at 11:23 AM, Yaogong Wang wrote: > I see your point. Such kind of synchronization could lead to some simulation artifacts. But I believe this should be taken care of by the users. They should be aware of this (such synchronization problems could happen in any simulator) and incur some randomness in their simulation setup. > > My concern with the current implementation is that the leak start time is randomly picked between 0s and 1s. It is fairly possible that lots of packets have already been sent before the leak start time. These packets may get stuck in the network because the bucket didn't start leaking when it should have. This might not be a big issue most of the time but did cause me some headache in some particular setup. > > Thanks, > Yaogong > > On Wed, Feb 13, 2013 at 1:57 PM, Alex Afanasyev wrote: > True. But if two guys receive a packet at the same time (can happen in some simple topologies), they would start leaking at the same time, resulting in synchronized decision, which may lead to unexpected results (I had them with simplistic topologies). > > --- > Alex > > On Feb 13, 2013, at 10:39 AM, Yaogong Wang wrote: > >> It doesn't seem to make much sense. The bucket anyway starts out as empty. Leaking won't really happen until someone calls BorrowLimit(). >> >> Yaogong >> >> On Wed, Feb 13, 2013 at 1:17 PM, Alex Afanasyev wrote: >> Hi! >> >> I've put it there to ensure that nodes don't make a synchronized leaks of buckets, which impossible in real life, but could happen in some cases in the simulations. >> >> --- >> Alex >> >> >> On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: >> >> > Hi, >> > >> > I'm curious why do we randomize the leak start time in LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't we just start leaking at 0.0? >> > >> > Thanks, >> > Yaogong >> >> >> >> -- >> ============================ >> Yaogong Wang, PhD Candidate >> Department of Computer Science >> North Carolina State University >> http://www4.ncsu.edu/~ywang15/ >> ============================ >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ > ============================ > _______________________________________________ > 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 ywang15 at ncsu.edu Wed Feb 13 11:33:29 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Wed, 13 Feb 2013 14:33:29 -0500 Subject: [ndnSIM] leaky bucket start time In-Reply-To: <6E85F09F-C972-43B9-A083-AF9144AE9E9D@ucla.edu> References: <692877F1-782D-41E1-9E61-05E8C90B5FF4@ucla.edu> <01CDB14F-9F5A-41CC-95BC-FA625452A529@ucla.edu> <6E85F09F-C972-43B9-A083-AF9144AE9E9D@ucla.edu> Message-ID: Sounds like a good compromise. Thanks, Alex. Yaogong On Wed, Feb 13, 2013 at 2:30 PM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > I see. Yeah, 1 second randomization could be a bad choice (any small > randomization would be sufficient), but I wouldn't rely too much on users > to take care of that. > > I can actually put a configurable option to enable/disable this > randomization, as well as to configure randomization interval, keeping it > ON by default with 1 ms randomization interval. > > --- > Alex > > On Feb 13, 2013, at 11:23 AM, Yaogong Wang wrote: > > I see your point. Such kind of synchronization could lead to some > simulation artifacts. But I believe this should be taken care of by the > users. They should be aware of this (such synchronization problems could > happen in any simulator) and incur some randomness in their simulation > setup. > > My concern with the current implementation is that the leak start time is > randomly picked between 0s and 1s. It is fairly possible that lots of > packets have already been sent before the leak start time. These packets > may get stuck in the network because the bucket didn't start leaking when > it should have. This might not be a big issue most of the time but did > cause me some headache in some particular setup. > > Thanks, > Yaogong > > On Wed, Feb 13, 2013 at 1:57 PM, Alex Afanasyev < > alexander.afanasyev at ucla.edu> wrote: > >> True. But if two guys receive a packet at the same time (can happen in >> some simple topologies), they would start leaking at the same time, >> resulting in synchronized decision, which may lead to unexpected results (I >> had them with simplistic topologies). >> >> --- >> Alex >> >> On Feb 13, 2013, at 10:39 AM, Yaogong Wang wrote: >> >> It doesn't seem to make much sense. The bucket anyway starts out as >> empty. Leaking won't really happen until someone calls BorrowLimit(). >> >> Yaogong >> >> On Wed, Feb 13, 2013 at 1:17 PM, Alex Afanasyev < >> alexander.afanasyev at ucla.edu> wrote: >> >>> Hi! >>> >>> I've put it there to ensure that nodes don't make a synchronized leaks >>> of buckets, which impossible in real life, but could happen in some cases >>> in the simulations. >>> >>> --- >>> Alex >>> >>> >>> On Feb 13, 2013, at 9:45 AM, Yaogong Wang wrote: >>> >>> > Hi, >>> > >>> > I'm curious why do we randomize the leak start time in >>> LimitsRate::NotifyNewAggregate() under untils/ndn-limits-rate.cc. Why can't >>> we just start leaking at 0.0? >>> > >>> > Thanks, >>> > Yaogong >>> >> >> >> >> -- >> ============================ >> Yaogong Wang, PhD Candidate >> Department of Computer Science >> North Carolina State University >> http://www4.ncsu.edu/~ywang15/ >> ============================ >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> >> > > > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ > ============================ > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > -- ============================ Yaogong Wang, PhD Candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ============================ -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 13 15:30:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 13 Feb 2013 15:30:48 -0800 Subject: [ndnSIM] Zipf-Mandelbrot Patch for ndnSIM In-Reply-To: References: Message-ID: <3700C75F-521F-43A5-8B02-BE2BFDCFFD57@ucla.edu> Hi Saran, Unfortunately, the problem has been finally solved yet. What is happening (https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc) is that "q" and "s" parameters are only activated when "SetNumberOfContents" method is called (either directly or indirectly via NS-3 attribute system). When "q" or "s" is updated through NS-3 attribute system, this is not resulting in any change with rank or power of the Zipf distribution (not until somebody calls SetNumberOfContents again). To "fix" the problem, we just need to implement functions to set "q" and "s" (and replace accessors on https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L53 and on https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L57 to use these functions) and in part of these functions there should be a call SetNumberOfContents. Like void SetQ (double q) { m_q = q; SetNumberOfContents (m_N); } We will appreciate if you can spare some time to write this "fix". Thanks, Alex On Feb 12, 2013, at 6:24 PM, Saran Tarnoi wrote: > Hi Alex and Xiaoke, > > I have been following your code to better understand ndnSIM. > Thank you so much for your effort to create and share the simulator and documentation. > > I am studying how various traffic characteristics affect a caching performance of a network. > I have walked through zipf-mandelbrot code. > There was a comment by Alex said that adding attributes "s" and "q" does not properly work. > Do you already solve the problem in the latest patch? > Or would you please tell me what the problem is? So that I may help you fix it. > > Thanks. > Saran > -- > Regards, > Saran Tarnoi > Graduate Student > Department of Informatics > The Graduate University for Advanced Studies (Sokendai) > Tokyo, Japan > _______________________________________________ > 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 chiara.contoli at gmail.com Thu Feb 14 19:22:39 2013 From: chiara.contoli at gmail.com (Chiara Contoli) Date: Thu, 14 Feb 2013 19:22:39 -0800 Subject: [ndnSIM] how relay works Message-ID: <7EC0100F-FC9F-425F-805D-E5BA90BC093C@gmail.com> Hi all, I'd like to know how the car relay works. For example: let's suppose we have 3 nodes (I try to make it simple): - a node which is a Consumer (Consumer app installed on it); this is the node A - a node which is a Producer (Producer app installed on it); this is the node B - a node that have the ndn stack installed on it; this is the node C A and B can't "hear" each other directly ; C is in the broascast range of both A and B. If A send an Interest, C surely receive that interes, B doesn't , but C could forward the Interest to B and get the Content back from it, and then forward the Content back to A. I've tried this scenario, but it doesn't work as expected . What I see, is that C receive the Interest from A (as I expected) but C doesn't forward the Interest to B. What am I missing? Thanks. Chiara From sarantarnoi at gmail.com Fri Feb 15 02:45:32 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Fri, 15 Feb 2013 19:45:32 +0900 Subject: [ndnSIM] Zipf-Mandelbrot Patch for ndnSIM In-Reply-To: <3700C75F-521F-43A5-8B02-BE2BFDCFFD57@ucla.edu> References: <3700C75F-521F-43A5-8B02-BE2BFDCFFD57@ucla.edu> Message-ID: Hi Alex, Thanks a lot for your hint. It helps me very much. I have fixed the problem. However, I didn't put "SetNumberOfContents (m_N);" in SetQ function because I don't clearly understand the logic of code. Anyway, it works properly now according to my sample simulation. Would you kindly double check it? Thanks, Saran 2013/2/14 Alex Afanasyev > Hi Saran, > > Unfortunately, the problem has been finally solved yet. What is happening > ( > https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc) > is that "q" and "s" parameters are only activated when > "SetNumberOfContents" method is called (either directly or indirectly via > NS-3 attribute system). When "q" or "s" is updated through NS-3 attribute > system, this is not resulting in any change with rank or power of the Zipf > distribution (not until somebody calls SetNumberOfContents again). > > To "fix" the problem, we just need to implement functions to set "q" and > "s" (and replace accessors on > https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L53 and > on > https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L57 to > use these functions) and in part of these functions there should be a > call SetNumberOfContents. > > Like > > void > SetQ (double q) > { > m_q = q; > SetNumberOfContents (m_N); > } > > We will appreciate if you can spare some time to write this "fix". > > Thanks, > Alex > > On Feb 12, 2013, at 6:24 PM, Saran Tarnoi wrote: > > Hi Alex and Xiaoke, > > I have been following your code to better understand ndnSIM. > Thank you so much for your effort to create and share the simulator and > documentation. > > I am studying how various traffic characteristics affect a caching > performance of a network. > I have walked through zipf-mandelbrot code. > There was a comment by Alex said that adding attributes "s" and "q" does > not properly work. > Do you already solve the problem in the latest patch? > Or would you please tell me what the problem is? So that I may help you > fix it. > > Thanks. > Saran > -- > Regards, > Saran Tarnoi > Graduate Student > Department of Informatics > The Graduate University for Advanced Studies (Sokendai) > Tokyo, Japan > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > -- Regards, Saran Tarnoi Graduate Student Department of Informatics The Graduate University for Advanced Studies (Sokendai) Tokyo, Japan http://sarantarnoi.blogspot.jp -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ndn-consumer-zipf-mandelbrot.cc Type: application/octet-stream Size: 7267 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ndn-consumer-zipf-mandelbrot.h Type: text/x-chdr Size: 2571 bytes Desc: not available URL: From alexander.afanasyev at ucla.edu Fri Feb 15 16:03:55 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 15 Feb 2013 16:03:55 -0800 Subject: [ndnSIM] Zipf-Mandelbrot Patch for ndnSIM In-Reply-To: References: <3700C75F-521F-43A5-8B02-BE2BFDCFFD57@ucla.edu> Message-ID: Thanks Saran, I have applied your changes with some minor modifications. --- Alex On Feb 15, 2013, at 2:45 AM, Saran Tarnoi wrote: > Hi Alex, > > Thanks a lot for your hint. It helps me very much. > I have fixed the problem. > However, I didn't put "SetNumberOfContents (m_N);" in SetQ function because I don't clearly understand the logic of code. > Anyway, it works properly now according to my sample simulation. > > Would you kindly double check it? > > Thanks, > Saran > > > 2013/2/14 Alex Afanasyev > Hi Saran, > > Unfortunately, the problem has been finally solved yet. What is happening (https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc) is that "q" and "s" parameters are only activated when "SetNumberOfContents" method is called (either directly or indirectly via NS-3 attribute system). When "q" or "s" is updated through NS-3 attribute system, this is not resulting in any change with rank or power of the Zipf distribution (not until somebody calls SetNumberOfContents again). > > To "fix" the problem, we just need to implement functions to set "q" and "s" (and replace accessors on https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L53 and on https://github.com/shockjiang/ndnSIM/blob/master/apps/ndn-consumer-zipf-mandelbrot.cc#L57 to use these functions) and in part of these functions there should be a call SetNumberOfContents. > > Like > > void > SetQ (double q) > { > m_q = q; > SetNumberOfContents (m_N); > } > > We will appreciate if you can spare some time to write this "fix". > > Thanks, > Alex > > On Feb 12, 2013, at 6:24 PM, Saran Tarnoi wrote: > >> Hi Alex and Xiaoke, >> >> I have been following your code to better understand ndnSIM. >> Thank you so much for your effort to create and share the simulator and documentation. >> >> I am studying how various traffic characteristics affect a caching performance of a network. >> I have walked through zipf-mandelbrot code. >> There was a comment by Alex said that adding attributes "s" and "q" does not properly work. >> Do you already solve the problem in the latest patch? >> Or would you please tell me what the problem is? So that I may help you fix it. >> >> Thanks. >> Saran >> -- >> Regards, >> Saran Tarnoi >> Graduate Student >> Department of Informatics >> The Graduate University for Advanced Studies (Sokendai) >> Tokyo, Japan >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > > -- > Regards, > Saran Tarnoi > Graduate Student > Department of Informatics > The Graduate University for Advanced Studies (Sokendai) > Tokyo, Japan > http://sarantarnoi.blogspot.jp > _______________________________________________ > 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 alexander.afanasyev at ucla.edu Fri Feb 15 17:00:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 15 Feb 2013 17:00:28 -0800 Subject: [ndnSIM] how relay works In-Reply-To: <7EC0100F-FC9F-425F-805D-E5BA90BC093C@gmail.com> References: <7EC0100F-FC9F-425F-805D-E5BA90BC093C@gmail.com> Message-ID: Hi Chiara, According to the normal NDN logic, Interests/Data is not forwarded to the face this Interest/Data is received. In your scenario, node C is receiving Interest on a wireless interface (NetDeviceFace), thus it will not attempt to "relay" this interests further to the same face. The problem actually is not in mere ability to "resend" interest on the same face, but in decision whether it should be done in the first place. How would node C know that it is on the way between A and B, and not just a bystander receiving some junk? Under certain assumptions about what nodes are, their positions, mobility, and traffic pattern, it is possible to get an answer to this question and make sure that C actually relays packets. There is an ongoing project in UCLA that aims to solve this relay problem in vehicular environment, with very initial results under very simplistic mobility model presented in this paper http://lasr.cs.ucla.edu/afanasyev/data/files/Wang/nom.pdf. In this paper we assumed that we want propagate Interests as far as possible from the originator, every node knows its location, and every transmission is accompanied with "GeoTag", based on which it is possible to make a determination whether packet should be relayed or not. There is additional component related to canceling relaying event in a case when node overhears that somebody else did that. You can check out extensions of ndnSIM that we made (a special ndn::V2vNetDeviceFace and special forwarding strategy) and several scenarios that use these extensions in this repo: https://github.com/cawka/ndnSIM-nom-rapid-car2car. The available the code does not yet cover everything that was presented in the paper, but I'm slowly working on it (I have to port the original code to updated ndnSIM API). Let me know if you have any questions, Alex On Feb 14, 2013, at 7:22 PM, Chiara Contoli wrote: > Hi all, > I'd like to know how the car relay works. For example: let's suppose we have 3 nodes (I try to make it simple): > - a node which is a Consumer (Consumer app installed on it); this is the node A > - a node which is a Producer (Producer app installed on it); this is the node B > - a node that have the ndn stack installed on it; this is the node C > A and B can't "hear" each other directly ; C is in the broascast range of both A and B. If A send an Interest, C surely receive that interes, B doesn't , but C could forward the Interest to B and get the Content back from it, and then forward the Content back to A. I've tried this scenario, but it doesn't work as expected . What I see, is that C receive the Interest from A (as I expected) but C doesn't forward the Interest to B. What am I missing? > > Thanks. > Chiara From natalya.rozhnova at lip6.fr Fri Feb 15 19:55:09 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sat, 16 Feb 2013 10:55:09 +0700 Subject: [ndnSIM] ConsumerWindow Message-ID: <1264571360986909@web10d.yandex.ru> An HTML attachment was scrubbed... URL: From ywang15 at ncsu.edu Fri Feb 15 20:30:11 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Fri, 15 Feb 2013 23:30:11 -0500 Subject: [ndnSIM] ConsumerWindow In-Reply-To: <1264571360986909@web10d.yandex.ru> References: <1264571360986909@web10d.yandex.ru> Message-ID: Try setting the size attribute such as: consumerHelper.SetAttribute ("Size", StringValue ("2.0")); I encountered similar issues with ConsumerWindow in the past. Yaogong On Feb 15, 2013 10:55 PM, "Natalya Rozhnova" wrote: > Hi everybody, > > I'm just trying to run a basic example from ndnSIM/examples. I run > ndn-grid using ConsumerWindow instead ConsumerCbr. I tried with different > window sizes but Consumer passes through the ScheduleNextPacket just once. > Then simulator stops without any error. I just wonder what's wrong I'm > doing... > > Thanks, > Natalya > > > _______________________________________________ > 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 natalya.rozhnova at lip6.fr Fri Feb 15 20:39:21 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sat, 16 Feb 2013 11:39:21 +0700 Subject: [ndnSIM] ConsumerWindow In-Reply-To: References: <1264571360986909@web10d.yandex.ru> Message-ID: <1259051360989561@web7g.yandex.ru> An HTML attachment was scrubbed... URL: From aaronishere at qq.com Fri Feb 15 20:40:58 2013 From: aaronishere at qq.com (=?gb18030?B?tsDJxsbkye0g?=) Date: Sat, 16 Feb 2013 12:40:58 +0800 Subject: [ndnSIM] questions for compiling Message-ID: Hi, Alex I added a new CAHeader like InterestHeader and a CA file like PIT. I also add new function OnCA and a series of related functions such as PropagateCA in forwardstrategy.h/.cc and some functions in L3protocol.h/.cc as well as HeaderHelp.h/.cc . It can compile without error, however, when I typed "./waf --run=ndn-grid", it shows below: Waf: Leaving directory `/home/ndnSIM-2-4/ns-3/build' 'build' finished successfully (51.112s) assert failed. cond="m_current + delta <= m_dataEnd", file=./ns3/buffer.h, line=697 terminate called without an active exception Command ['/home/ndnSIM-2-4/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-grid-debug'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). I have no idea about it. What's probably cause? -------------- next part -------------- An HTML attachment was scrubbed... URL: From aaronishere at qq.com Fri Feb 15 23:00:44 2013 From: aaronishere at qq.com (=?gb18030?B?QWFyb24=?=) Date: Sat, 16 Feb 2013 15:00:44 +0800 Subject: [ndnSIM] =?gb18030?b?u9i4tKO6IHF1ZXN0aW9ucyBmb3IgY29tcGlsaW5n?= Message-ID: Hi, Alex I found the error. I made the mistake of the variable size in the function of CAHeader::GetSerializedSize (void) const :) ------------------ ???? ------------------ ???: "Aaron"; ????: 2013?2?16?(???) ??12:40 ???: "alexander.afanasyev"; ??: "ndnsim"; ??: [ndnSIM] questions for compiling Hi, Alex I added a new CAHeader like InterestHeader and a CA file like PIT. I also add new function OnCA and a series of related functions such as PropagateCA in forwardstrategy.h/.cc and some functions in L3protocol.h/.cc as well as HeaderHelp.h/.cc . It can compile without error, however, when I typed "./waf --run=ndn-grid", it shows below: Waf: Leaving directory `/home/ndnSIM-2-4/ns-3/build' 'build' finished successfully (51.112s) assert failed. cond="m_current + delta <= m_dataEnd", file=./ns3/buffer.h, line=697 terminate called without an active exception Command ['/home/ndnSIM-2-4/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-grid-debug'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). I have no idea about it. What's probably cause? -------------- next part -------------- An HTML attachment was scrubbed... URL: From aaronishere at qq.com Sat Feb 16 18:54:38 2013 From: aaronishere at qq.com (aaronishere) Date: Sun, 17 Feb 2013 10:54:38 +0800 Subject: [ndnSIM] question for the function Lookup References: , <9CD85D05-5606-4CF7-B71F-3DA35495A5F1@ucla.edu> Message-ID: <201302171054349352904@qq.com> Hi, Alex In pit/fib.h, the function Lookup() is a pure virtual funtion and the concrete one is defined in the fib-impl/pit-impl. I'm not sure how the Lookup in the fib/pit jumps to the one in the fib-impl/pit-impl? I defined a pointer m_ca in the forwardingstrategy like m_pit, but when executes Ptrm_ca->Lookup(), it doesn't jump to the function Lookup in the ca-impl. Thanks a lot! Aaron -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Feb 16 19:41:42 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 16 Feb 2013 19:41:42 -0800 Subject: [ndnSIM] question for the function Lookup In-Reply-To: <201302171054349352904@qq.com> References: , <9CD85D05-5606-4CF7-B71F-3DA35495A5F1@ucla.edu> <201302171054349352904@qq.com> Message-ID: <2228E9D5-753A-4115-8873-50ABAF542182@ucla.edu> Hi Aaron, How do you create your CA class? Did you extend the helper (ndn::StackHelper) and use a new instance of ObjectFactory to create an instance of CA class by name? And related question, did you assign a unique name in GetTypeId () function of your CA class? Did you call AggregateObject method in Install method of ndn::StackHelper class? I'm assuming that you're getting a segfault while calling Lookup. If so, most likely your m_ca is simply not initialized. And most likely, this could happen if you created an object, but didn't call AggregateObject method (this way GetObject () would return 0). --- Alex On Feb 16, 2013, at 6:54 PM, aaronishere wrote: > Hi, Alex > In pit/fib.h, the function Lookup() is a pure virtual funtion and the concrete one is defined in the fib-impl/pit-impl. I'm not sure how the Lookup in the fib/pit jumps to the one in the fib-impl/pit-impl? I defined a pointer m_ca in the forwardingstrategy like m_pit, but when executes Ptrm_ca->Lookup(), it doesn't jump to the function Lookup in the ca-impl. Thanks a lot! > > Aaron -------------- next part -------------- An HTML attachment was scrubbed... URL: From aaronishere at qq.com Sat Feb 16 20:52:38 2013 From: aaronishere at qq.com (aaronishere) Date: Sun, 17 Feb 2013 12:52:38 +0800 Subject: [ndnSIM] =?gb2312?b?u9i4tDogUmU6ICBxdWVzdGlvbiBmb3IgdGhlIGZ1bmN0?= =?gb2312?b?aW9uIExvb2t1cA==?= References: , <9CD85D05-5606-4CF7-B71F-3DA35495A5F1@ucla.edu> <201302171054349352904@qq.com>, <2228E9D5-753A-4115-8873-50ABAF542182@ucla.edu> Message-ID: <201302171252366806526@qq.com> Hi, Alex You are right, I didn't extend the helper (ndn::StackHelper) and use a new instance of ObjectFactory to create an instance of CA class by name. Thanks a lot!!! aaronishere ???? Alex Afanasyev ????? 2013-02-17 11:41 ???? aaronishere ??? ndnsim ??? Re: [ndnSIM] question for the function Lookup Hi Aaron, How do you create your CA class? Did you extend the helper (ndn::StackHelper) and use a new instance of ObjectFactory to create an instance of CA class by name? And related question, did you assign a unique name in GetTypeId () function of your CA class? Did you call AggregateObject method in Install method of ndn::StackHelper class? I'm assuming that you're getting a segfault while calling Lookup. If so, most likely your m_ca is simply not initialized. And most likely, this could happen if you created an object, but didn't call AggregateObject method (this way GetObject () would return 0). --- Alex On Feb 16, 2013, at 6:54 PM, aaronishere wrote: Hi, Alex In pit/fib.h, the function Lookup() is a pure virtual funtion and the concrete one is defined in the fib-impl/pit-impl. I'm not sure how the Lookup in the fib/pit jumps to the one in the fib-impl/pit-impl? I defined a pointer m_ca in the forwardingstrategy like m_pit, but when executes Ptrm_ca->Lookup(), it doesn't jump to the function Lookup in the ca-impl. Thanks a lot! Aaron -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Sun Feb 17 00:07:19 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Sun, 17 Feb 2013 16:07:19 +0800 Subject: [ndnSIM] error Message-ID: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> hi all, I met a error message said: "msg="Limits are enabled, but the selected forwarding strategy does not support limits. Please revise your scenario", file=../src/ndnSIM/helper/ndn-stack-helper.cc, line=311 terminate called without an active exception" I think I use the right Fowarding strategy: ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute::PerOutFaceLimits", "Limit", "ns3::ndn::Limits::Window"); ccnxHelper.EnableLimits(true, Seconds(0.2), 40, 1100); What's wrong? anyone can help? thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Feb 17 11:06:59 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 17 Feb 2013 11:06:59 -0800 Subject: [ndnSIM] error In-Reply-To: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> References: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> Message-ID: <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> On Feb 17, 2013, at 12:07 AM, Xiaoke Jiang wrote: > hi all, > I met a error message said: > "msg="Limits are enabled, but the selected forwarding strategy does not support limits. Please revise your scenario", file=../src/ndnSIM/helper/ndn-stack-helper.cc, line=311 > terminate called without an active exception" > > I think I use the right Fowarding strategy: > ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute::PerOutFaceLimits", > "Limit", "ns3::ndn::Limits::Window"); > ccnxHelper.EnableLimits(true, Seconds(0.2), 40, 1100); > > What's wrong? anyone can help? The strategy is right, it is strange that you're getting the error. Can you copy/paste here a code from your scenario from creation of the helper till calling Install (Install should be called last, after setting limits and selecting the strategy)? --- Alex > thanks > > My Regards, > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China -------------- next part -------------- An HTML attachment was scrubbed... URL: From ywang15 at ncsu.edu Sun Feb 17 11:51:19 2013 From: ywang15 at ncsu.edu (Yaogong Wang) Date: Sun, 17 Feb 2013 14:51:19 -0500 Subject: [ndnSIM] error In-Reply-To: <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> References: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> Message-ID: I had the same issue. It appeared to be caused by some recent commit (maybe e6c07b5?) since the code worked fine with v0.2.3 but raised the mentioned error with v0.2.4. Thanks, Yaogong On Sun, Feb 17, 2013 at 2:06 PM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > On Feb 17, 2013, at 12:07 AM, Xiaoke Jiang wrote: > > hi all, > I met a error message said: > "msg="Limits are enabled, but the selected forwarding strategy does not > support limits. Please revise your scenario", > file=../src/ndnSIM/helper/ndn-stack-helper.cc, line=311 > terminate called without an active exception" > I think I use the right Fowarding strategy: > ccnxHelper.SetForwardingStrategy > ("ns3::ndn::fw::BestRoute::PerOutFaceLimits", > "Limit", "ns3::ndn::Limits::Window"); > ccnxHelper.EnableLimits(true, Seconds(0.2), 40, 1100); > > What's wrong? anyone can help? > > > The strategy is right, it is strange that you're getting the error. Can > you copy/paste here a code from your scenario from creation of the helper > till calling Install (Install should be called last, after setting limits > and selecting the strategy)? > > --- > Alex > > > > > > thanks > > My Regards, > ------------------------------ > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -- ============================ Yaogong Wang, PhD Candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ============================ -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Feb 17 15:50:41 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 17 Feb 2013 15:50:41 -0800 Subject: [ndnSIM] error In-Reply-To: References: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> Message-ID: Yes, thanks for pointing it out. There was a small regression introduced in this commit. I have pushed the fix (v0.2.5 = c17e4bd2d14), so it should work now. --- Alex On Feb 17, 2013, at 11:51 AM, Yaogong Wang wrote: > I had the same issue. It appeared to be caused by some recent commit (maybe e6c07b5?) since the code worked fine with v0.2.3 but raised the mentioned error with v0.2.4. > > Thanks, > Yaogong > > On Sun, Feb 17, 2013 at 2:06 PM, Alex Afanasyev wrote: > On Feb 17, 2013, at 12:07 AM, Xiaoke Jiang wrote: > >> hi all, >> I met a error message said: >> "msg="Limits are enabled, but the selected forwarding strategy does not support limits. Please revise your scenario", file=../src/ndnSIM/helper/ndn-stack-helper.cc, line=311 >> terminate called without an active exception" >> >> I think I use the right Fowarding strategy: >> ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute::PerOutFaceLimits", >> "Limit", "ns3::ndn::Limits::Window"); >> ccnxHelper.EnableLimits(true, Seconds(0.2), 40, 1100); >> >> What's wrong? anyone can help? > > The strategy is right, it is strange that you're getting the error. Can you copy/paste here a code from your scenario from creation of the helper till calling Install (Install should be called last, after setting limits and selecting the strategy)? > > --- > Alex > > > > > >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > > -- > ============================ > Yaogong Wang, PhD Candidate > Department of Computer Science > North Carolina State University > http://www4.ncsu.edu/~ywang15/ > ============================ > _______________________________________________ > 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 shock.jiang at gmail.com Sun Feb 17 19:12:57 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Mon, 18 Feb 2013 11:12:57 +0800 Subject: [ndnSIM] error In-Reply-To: <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> References: <5E2879C4-4268-4165-9496-CF638C369C44@gmail.com> <83A70BE5-B11D-4BE2-BFB1-FE7B1206BBDD@ucla.edu> Message-ID: <0F98641A-18E3-4C28-B8AC-ACDBD7B7D4C7@gmail.com> Thank you, you guys. ndnSIM works well after merge from the new update. thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China On Feb 18, 2013, at 3:06 AM, Alex Afanasyev wrote: > On Feb 17, 2013, at 12:07 AM, Xiaoke Jiang wrote: > >> hi all, >> I met a error message said: >> "msg="Limits are enabled, but the selected forwarding strategy does not support limits. Please revise your scenario", file=../src/ndnSIM/helper/ndn-stack-helper.cc, line=311 >> terminate called without an active exception" >> >> I think I use the right Fowarding strategy: >> ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute::PerOutFaceLimits", >> "Limit", "ns3::ndn::Limits::Window"); >> ccnxHelper.EnableLimits(true, Seconds(0.2), 40, 1100); >> >> What's wrong? anyone can help? > > The strategy is right, it is strange that you're getting the error. Can you copy/paste here a code from your scenario from creation of the helper till calling Install (Install should be called last, after setting limits and selecting the strategy)? > > --- > Alex > > > > >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Tue Feb 19 05:02:00 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Tue, 19 Feb 2013 22:02:00 +0900 Subject: [ndnSIM] Memory and Lfu (replacement policy of Content Store) Message-ID: To Alex and everyone, I conducted a simulation to see how *Lfu* performs. Content number is set as "100,000." It appeared that the simulator consumed memory more than that my laptop can provide (RAM 4GB), then my laptop stopped working. The problem did not appear when I used the other replacement policies (Lru, Random) for Content Store. Would you kindly give me some ideas? Thanks, Saran -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Feb 19 11:05:06 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 19 Feb 2013 11:05:06 -0800 Subject: [ndnSIM] Memory and Lfu (replacement policy of Content Store) In-Reply-To: References: Message-ID: <19F0BBEE-1D22-4D60-985E-E45413819CA6@ucla.edu> Hi Saran, How many nodes are in your simulation? I just checked memory overhead for different replacement policies and they are about the same (with Lfu taking a little bit more). As for numbers, one CS entry in the current implementation corresponds to about 708 bytes memory footprint with Lfu policy (with freshness) and about 650 bytes with Lru policy. (I haven't yet had time to investigate why so much, as I was expecting about 10 times smaller footprint.) You can get commit 41684ab625b165, which gives an example of how to evaluate memory footprint (ndn-simple-with-cs-lfu.cc) --- Alex On Feb 19, 2013, at 5:02 AM, Saran Tarnoi wrote: > To Alex and everyone, > > I conducted a simulation to see how Lfu performs. > Content number is set as "100,000." > It appeared that the simulator consumed memory more than that my laptop can provide (RAM 4GB), then my laptop stopped working. > The problem did not appear when I used the other replacement policies (Lru, Random) for Content Store. > Would you kindly give me some ideas? > > Thanks, > Saran -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 20 09:40:02 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 20 Feb 2013 09:40:02 -0800 Subject: [ndnSIM] Question about extending forwarding strategy in ndnSIM In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <8DCEA636-4548-43CD-AAD7-63 4D80B8EC02@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> <6D9BED7D-C9A1-4E93-8C57-E6F015F10F2D@ucla.edu> Message-ID: <446C351E-A09C-42BD-8FBB-89440BF26175@ucla.edu> Hi Yifeng, PerOutFaceLimits is a templated class and you can define (almost) any Parent class that PerOutFaceLimits is extending. Examples of these are in model/fw/per-out-face-limits.cc file: template class PerOutFaceLimits; typedef PerOutFaceLimits PerOutFaceLimitsBestRoute; NS_OBJECT_ENSURE_REGISTERED (PerOutFaceLimitsBestRoute); If you want to extend the limits class, you have several options. You can do it in a templated way: template class Extension : public PerOutFaceLimits ... or you if you know what is the base strategy you want to use with limiting, you can just specialize your extension: class Extension : public PerOutFaceLimits ... If the parent class that you're using is inherited from Nacks class (most of the strategies do: http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_forwarding_strategy.html), then you can directly override any method defined in Nacks class in your extension. That is, in one extension class you can combine modifications for limits and nacks. --- Alex On Feb 20, 2013, at 6:19 AM, Yifeng Li wrote: > Hello Alex, > > I noticed per-out-face-limits extend Parent, where is Parent defined? I also, if I extend per out face limits, do I also have to extend Nacks as well? There seems to be inheritance conflicts if I extend both. > > Thanks for your help, > Yifeng -------------- next part -------------- An HTML attachment was scrubbed... URL: From aaronishere at qq.com Wed Feb 20 17:02:17 2013 From: aaronishere at qq.com (aaronishere) Date: Thu, 21 Feb 2013 09:02:17 +0800 Subject: [ndnSIM] error in compiling Message-ID: <201302210902163119981@qq.com> Hi, Alex I have download the new version of the ndnSIM, but errors when compiles. (I use ubuntu12.10-desktop and libboost 1.50). Is there something missing in the desktop version of 12.10? [1108/1972] cxx: src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc -> build/src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27:0: ./ns3/ndnSIM/utils/mem-usage.h:25:27: fatal error: proc/readproc.h: No such file or directory compilation terminated. [1114/1972] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o Waf: Leaving directory `/home/Original-ndnSIM-2-20/ns-3/build' Build failed -> task in 'ndn-simple-with-cs-lfu' failed (exit status 1): {task 159437548: cxx ndn-simple-with-cs-lfu.cc -> ndn-simple-with-cs-lfu.cc.14.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-Ibuild', '-I.', '-I.', '-I/home/Original-ndnSIM-2-20', '-I/usr/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DNDEBUG', '-D_FORTIFY_SOURCE=2', '../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o'] aaronishere -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 20 19:02:08 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 20 Feb 2013 19:02:08 -0800 Subject: [ndnSIM] error in compiling In-Reply-To: <201302210902163119981@qq.com> References: <201302210902163119981@qq.com> Message-ID: <6AC48577-1FB4-42F2-A3AD-55CEECE8379D@ucla.edu> Hi Aaron, This error due to the latest addition of small utility header. I have updated ndnSIM, so it should compile now without an error. --- Alex On Feb 20, 2013, at 5:02 PM, aaronishere wrote: > Hi, Alex > I have download the new version of the ndnSIM, but errors when compiles. (I use ubuntu12.10-desktop and libboost 1.50). Is there something missing in the desktop version of 12.10? > > [1108/1972] cxx: src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc -> build/src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o > In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27:0: > ./ns3/ndnSIM/utils/mem-usage.h:25:27: fatal error: proc/readproc.h: No such file or directory > compilation terminated. > [1114/1972] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o > Waf: Leaving directory `/home/Original-ndnSIM-2-20/ns-3/build' > Build failed > -> task in 'ndn-simple-with-cs-lfu' failed (exit status 1): > {task 159437548: cxx ndn-simple-with-cs-lfu.cc -> ndn-simple-with-cs-lfu.cc.14.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-Ibuild', '-I.', '-I.', '-I/home/Original-ndnSIM-2-20', '-I/usr/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DNDEBUG', '-D_FORTIFY_SOURCE=2', '../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o'] > > aaronishere -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 20 19:08:09 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 20 Feb 2013 19:08:09 -0800 Subject: [ndnSIM] complile problem (#22) In-Reply-To: References: Message-ID: <46D011B4-1CA8-4D6C-9A48-59C06D55C485@ucla.edu> Hi Wei, For your own scenario files I would recommend using a moduled approach, when you don't directly add code to NS-3/ndnSIM, but write extensions that depend on NS-3/ndnSIM. Here is the template that you can use:https://github.com/cawka/ndnSIM-scenario-template and two examples: https://github.com/cawka/ndnSIM-comcom-stateful-fw and https://github.com/cawka/ndnSIM-nom-rapid-car2car. In this template, you just put your files into scenarios/ directory and they should automatically be compiled. If you want to do quick experiments, you can put your .cc files into scratch/ folder of NS-3. When files are placed in the scratch/ folder, they will automatically compiled by the ./waf script. Btw, you're welcome to join ndnSIM mailing list if you haven't joined yet (http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim). Thanks, Alex On Feb 20, 2013, at 6:25 PM, weiwang1206 wrote: > How to compile my own .cc file like the examples? > thanks? > From aaronishere at qq.com Wed Feb 20 19:41:34 2013 From: aaronishere at qq.com (aaronishere) Date: Thu, 21 Feb 2013 11:41:34 +0800 Subject: [ndnSIM] =?gb2312?b?u9i4tDogUmU6ICBlcnJvciBpbiBjb21waWxpbmc=?= References: <201302210902163119981@qq.com>, <6AC48577-1FB4-42F2-A3AD-55CEECE8379D@ucla.edu> Message-ID: <201302211141290638652@qq.com> Hi, Alex It compiles without an error. Thanks! Aaron ???? Alex Afanasyev ????? 2013-02-21 11:02 ???? aaronishere ??? ndnsim ??? Re: [ndnSIM] error in compiling Hi Aaron, This error due to the latest addition of small utility header. I have updated ndnSIM, so it should compile now without an error. --- Alex On Feb 20, 2013, at 5:02 PM, aaronishere wrote: Hi, Alex I have download the new version of the ndnSIM, but errors when compiles. (I use ubuntu12.10-desktop and libboost 1.50). Is there something missing in the desktop version of 12.10? [1108/1972] cxx: src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc -> build/src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27:0: ./ns3/ndnSIM/utils/mem-usage.h:25:27: fatal error: proc/readproc.h: No such file or directory compilation terminated. [1114/1972] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o Waf: Leaving directory `/home/Original-ndnSIM-2-20/ns-3/build' Build failed -> task in 'ndn-simple-with-cs-lfu' failed (exit status 1): {task 159437548: cxx ndn-simple-with-cs-lfu.cc -> ndn-simple-with-cs-lfu.cc.14.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-Ibuild', '-I.', '-I.', '-I/home/Original-ndnSIM-2-20', '-I/usr/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DNDEBUG', '-D_FORTIFY_SOURCE=2', '../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.14.o'] aaronishere -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Thu Feb 21 00:27:15 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 21 Feb 2013 16:27:15 +0800 Subject: [ndnSIM] Callback unknown error Message-ID: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> Hi All, I write my script to trace Producer processing Interest, xiaoke.cc: static void SinkIst(Ptr, Ptr, Ptr) { NS_LOG_INFO("< Respodning with ContentObject"); } ? producerHelper.Install(node); node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); It compiles successfully, but run failed and give me "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." Anyone can help? thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 21 00:35:32 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 21 Feb 2013 00:35:32 -0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> Message-ID: <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. --- Alex On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: > Hi All, > I write my script to trace Producer processing Interest, > > xiaoke.cc: > > static void SinkIst(Ptr, Ptr, Ptr) > { > NS_LOG_INFO("< Respodning with ContentObject"); > } > > ? > > producerHelper.Install(node); > node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); > > It compiles successfully, but run failed and give me > "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." > > > Anyone can help? > > thanks > > My Regards, > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China > > _______________________________________________ > 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 shock.jiang at gmail.com Thu Feb 21 00:41:32 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 21 Feb 2013 16:41:32 +0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> Message-ID: It works!! thank you , Alex! thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: > In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. > > Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. > > --- > Alex > > On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: > >> Hi All, >> I write my script to trace Producer processing Interest, >> >> xiaoke.cc: >> >> static void SinkIst(Ptr, Ptr, Ptr) >> { >> NS_LOG_INFO("< Respodning with ContentObject"); >> } >> >> ? >> >> producerHelper.Install(node); >> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >> >> It compiles successfully, but run failed and give me >> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >> >> >> Anyone can help? >> >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China >> >> _______________________________________________ >> 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 alexander.afanasyev at ucla.edu Thu Feb 21 14:04:09 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 21 Feb 2013 14:04:09 -0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> Message-ID: <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> Hi Xiaoke, I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). Thanks, Alex On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: > Hi Alex, > Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. > > I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. > > > thanks > > My Regards, > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China > > On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: > >> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >> >> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >> >> --- >> Alex >> >> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >> >>> Hi All, >>> I write my script to trace Producer processing Interest, >>> >>> xiaoke.cc: >>> >>> static void SinkIst(Ptr, Ptr, Ptr) >>> { >>> NS_LOG_INFO("< Respodning with ContentObject"); >>> } >>> >>> ? >>> >>> producerHelper.Install(node); >>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>> >>> It compiles successfully, but run failed and give me >>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>> >>> >>> Anyone can help? >>> >>> thanks >>> >>> My Regards, >>> Xiaoke Jiang ????? >>> >>> Ph.D Candidate, >>> Dept. of Computer Science and Technology, >>> Tsinghua University, P. R. China >>> >>> _______________________________________________ >>> 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 shock.jiang at gmail.com Thu Feb 21 18:19:34 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 22 Feb 2013 10:19:34 +0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> Message-ID: <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> Hi Alex, I am trying to compile it on MacOS and Ubuntu. On Ubuntu, it compiles successfully, but on MacOS: I run ./waf clean then ./waf, it gives me error: [1119/1916] cxx: src/ndnSIM/model/fw/green-yellow-red.cc -> build/src/ndnSIM/model/fw/green-yellow-red.cc.1.o cc1plus: warnings being treated as errors In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27: ./ns3/ndnSIM/utils/mem-usage.h: In static member function ?static int64_t MemUsage::Get()?: ./ns3/ndnSIM/utils/mem-usage.h:69: warning: unused variable ?task? Waf: Leaving directory `/Users/shock/ndnSIM/ns-3/build' then I will trying to run my script and give you more feedback. thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China On Feb 22, 2013, at 6:04 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). > > Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). > > Thanks, > Alex > > > On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: > >> Hi Alex, >> Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. >> >> I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. >> >> >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China >> >> On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: >> >>> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >>> >>> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >>> >>> --- >>> Alex >>> >>> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >>> >>>> Hi All, >>>> I write my script to trace Producer processing Interest, >>>> >>>> xiaoke.cc: >>>> >>>> static void SinkIst(Ptr, Ptr, Ptr) >>>> { >>>> NS_LOG_INFO("< Respodning with ContentObject"); >>>> } >>>> >>>> ? >>>> >>>> producerHelper.Install(node); >>>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>>> >>>> It compiles successfully, but run failed and give me >>>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>>> >>>> >>>> Anyone can help? >>>> >>>> thanks >>>> >>>> My Regards, >>>> Xiaoke Jiang ????? >>>> >>>> Ph.D Candidate, >>>> Dept. of Computer Science and Technology, >>>> Tsinghua University, P. R. China >>>> >>>> _______________________________________________ >>>> 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 alexander.afanasyev at ucla.edu Thu Feb 21 18:22:04 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 21 Feb 2013 18:22:04 -0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> Message-ID: <9E93107E-E3F9-46F9-8DCC-BFD8A7C7AA7A@ucla.edu> I have removed this variable. Should compile now without problem. --- Alex On Feb 21, 2013, at 6:19 PM, Xiaoke Jiang wrote: > Hi Alex, > I am trying to compile it on MacOS and Ubuntu. > > On Ubuntu, it compiles successfully, but on MacOS: I run ./waf clean then ./waf, it gives me error: > [1119/1916] cxx: src/ndnSIM/model/fw/green-yellow-red.cc -> build/src/ndnSIM/model/fw/green-yellow-red.cc.1.o > cc1plus: warnings being treated as errors > In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27: > ./ns3/ndnSIM/utils/mem-usage.h: In static member function ?static int64_t MemUsage::Get()?: > ./ns3/ndnSIM/utils/mem-usage.h:69: warning: unused variable ?task? > Waf: Leaving directory `/Users/shock/ndnSIM/ns-3/build' > > > then I will trying to run my script and give you more feedback. > > thanks > > My Regards, > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China > > On Feb 22, 2013, at 6:04 AM, Alex Afanasyev wrote: > >> Hi Xiaoke, >> >> I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). >> >> Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). >> >> Thanks, >> Alex >> >> >> On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: >> >>> Hi Alex, >>> Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. >>> >>> I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. >>> >>> >>> thanks >>> >>> My Regards, >>> Xiaoke Jiang ????? >>> >>> Ph.D Candidate, >>> Dept. of Computer Science and Technology, >>> Tsinghua University, P. R. China >>> >>> On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: >>> >>>> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >>>> >>>> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >>>> >>>> --- >>>> Alex >>>> >>>> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >>>> >>>>> Hi All, >>>>> I write my script to trace Producer processing Interest, >>>>> >>>>> xiaoke.cc: >>>>> >>>>> static void SinkIst(Ptr, Ptr, Ptr) >>>>> { >>>>> NS_LOG_INFO("< Respodning with ContentObject"); >>>>> } >>>>> >>>>> ? >>>>> >>>>> producerHelper.Install(node); >>>>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>>>> >>>>> It compiles successfully, but run failed and give me >>>>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>>>> >>>>> >>>>> Anyone can help? >>>>> >>>>> thanks >>>>> >>>>> My Regards, >>>>> Xiaoke Jiang ????? >>>>> >>>>> Ph.D Candidate, >>>>> Dept. of Computer Science and Technology, >>>>> Tsinghua University, P. R. China >>>>> >>>>> _______________________________________________ >>>>> 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 shock.jiang at gmail.com Thu Feb 21 18:48:42 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 22 Feb 2013 10:48:42 +0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <9E93107E-E3F9-46F9-8DCC-BFD8A7C7AA7A@ucla.edu> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> <9E93107E-E3F9-46F9-8DCC-BFD8A7C7AA7A@ucla.edu> Message-ID: <99EF949A-5ECE-4A44-91CA-DC28B374B767@gmail.com> Hi Alex, I have run a simple traced function for Status, static void TraceStatus(fib::FaceMetric::Status old, fib::FaceMetric::Status now) { NS_LOG_INFO("- Change Status from "< wrote: > I have removed this variable. Should compile now without problem. > > --- > Alex > > On Feb 21, 2013, at 6:19 PM, Xiaoke Jiang wrote: > >> Hi Alex, >> I am trying to compile it on MacOS and Ubuntu. >> >> On Ubuntu, it compiles successfully, but on MacOS: I run ./waf clean then ./waf, it gives me error: >> [1119/1916] cxx: src/ndnSIM/model/fw/green-yellow-red.cc -> build/src/ndnSIM/model/fw/green-yellow-red.cc.1.o >> cc1plus: warnings being treated as errors >> In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27: >> ./ns3/ndnSIM/utils/mem-usage.h: In static member function ?static int64_t MemUsage::Get()?: >> ./ns3/ndnSIM/utils/mem-usage.h:69: warning: unused variable ?task? >> Waf: Leaving directory `/Users/shock/ndnSIM/ns-3/build' >> >> >> then I will trying to run my script and give you more feedback. >> >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China >> >> On Feb 22, 2013, at 6:04 AM, Alex Afanasyev wrote: >> >>> Hi Xiaoke, >>> >>> I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). >>> >>> Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). >>> >>> Thanks, >>> Alex >>> >>> >>> On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: >>> >>>> Hi Alex, >>>> Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. >>>> >>>> I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. >>>> >>>> >>>> thanks >>>> >>>> My Regards, >>>> Xiaoke Jiang ????? >>>> >>>> Ph.D Candidate, >>>> Dept. of Computer Science and Technology, >>>> Tsinghua University, P. R. China >>>> >>>> On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: >>>> >>>>> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >>>>> >>>>> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >>>>> >>>>> --- >>>>> Alex >>>>> >>>>> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >>>>> >>>>>> Hi All, >>>>>> I write my script to trace Producer processing Interest, >>>>>> >>>>>> xiaoke.cc: >>>>>> >>>>>> static void SinkIst(Ptr, Ptr, Ptr) >>>>>> { >>>>>> NS_LOG_INFO("< Respodning with ContentObject"); >>>>>> } >>>>>> >>>>>> ? >>>>>> >>>>>> producerHelper.Install(node); >>>>>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>>>>> >>>>>> It compiles successfully, but run failed and give me >>>>>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>>>>> >>>>>> >>>>>> Anyone can help? >>>>>> >>>>>> thanks >>>>>> >>>>>> My Regards, >>>>>> Xiaoke Jiang ????? >>>>>> >>>>>> Ph.D Candidate, >>>>>> Dept. of Computer Science and Technology, >>>>>> Tsinghua University, P. R. China >>>>>> >>>>>> _______________________________________________ >>>>>> 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 alexander.afanasyev at ucla.edu Thu Feb 21 19:15:53 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 21 Feb 2013 19:15:53 -0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <99EF949A-5ECE-4A44-91CA-DC28B374B767@gmail.com> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> <9E93107E-E3F9-46F9-8DCC-BFD8A7C7AA7A@ucla.edu> <99EF949A-5ECE-4A44-91CA-DC28B374B767@gmail.com> Message-ID: <2840EFEF-E993-4284-BB63-4CC5682460F7@ucla.edu> You should checkout a test that I wrote (tests/ndnSIM-fib-entry.cc), it has an example of how to connect to FIBs and how to "attach" extra information to the tracer. --- Alex On Feb 21, 2013, at 6:48 PM, Xiaoke Jiang wrote: > Hi Alex, > I have run a simple traced function for Status, > static void TraceStatus(fib::FaceMetric::Status old, fib::FaceMetric::Status now) { > NS_LOG_INFO("- Change Status from "< } > > but how can I connect to the fibs, I have variable called nodes and ccnxHelper. > ccnxHelper.InstallAll () to install ndn stack. > > > thanks > > My Regards, > Xiaoke Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China > > On Feb 22, 2013, at 10:22 AM, Alex Afanasyev wrote: > >> I have removed this variable. Should compile now without problem. >> >> --- >> Alex >> >> On Feb 21, 2013, at 6:19 PM, Xiaoke Jiang wrote: >> >>> Hi Alex, >>> I am trying to compile it on MacOS and Ubuntu. >>> >>> On Ubuntu, it compiles successfully, but on MacOS: I run ./waf clean then ./waf, it gives me error: >>> [1119/1916] cxx: src/ndnSIM/model/fw/green-yellow-red.cc -> build/src/ndnSIM/model/fw/green-yellow-red.cc.1.o >>> cc1plus: warnings being treated as errors >>> In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27: >>> ./ns3/ndnSIM/utils/mem-usage.h: In static member function ?static int64_t MemUsage::Get()?: >>> ./ns3/ndnSIM/utils/mem-usage.h:69: warning: unused variable ?task? >>> Waf: Leaving directory `/Users/shock/ndnSIM/ns-3/build' >>> >>> >>> then I will trying to run my script and give you more feedback. >>> >>> thanks >>> >>> My Regards, >>> Xiaoke Jiang ????? >>> >>> Ph.D Candidate, >>> Dept. of Computer Science and Technology, >>> Tsinghua University, P. R. China >>> >>> On Feb 22, 2013, at 6:04 AM, Alex Afanasyev wrote: >>> >>>> Hi Xiaoke, >>>> >>>> I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). >>>> >>>> Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). >>>> >>>> Thanks, >>>> Alex >>>> >>>> >>>> On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: >>>> >>>>> Hi Alex, >>>>> Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. >>>>> >>>>> I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. >>>>> >>>>> >>>>> thanks >>>>> >>>>> My Regards, >>>>> Xiaoke Jiang ????? >>>>> >>>>> Ph.D Candidate, >>>>> Dept. of Computer Science and Technology, >>>>> Tsinghua University, P. R. China >>>>> >>>>> On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: >>>>> >>>>>> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >>>>>> >>>>>> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >>>>>> >>>>>> --- >>>>>> Alex >>>>>> >>>>>> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >>>>>> >>>>>>> Hi All, >>>>>>> I write my script to trace Producer processing Interest, >>>>>>> >>>>>>> xiaoke.cc: >>>>>>> >>>>>>> static void SinkIst(Ptr, Ptr, Ptr) >>>>>>> { >>>>>>> NS_LOG_INFO("< Respodning with ContentObject"); >>>>>>> } >>>>>>> >>>>>>> ? >>>>>>> >>>>>>> producerHelper.Install(node); >>>>>>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>>>>>> >>>>>>> It compiles successfully, but run failed and give me >>>>>>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>>>>>> >>>>>>> >>>>>>> Anyone can help? >>>>>>> >>>>>>> thanks >>>>>>> >>>>>>> My Regards, >>>>>>> Xiaoke Jiang ????? >>>>>>> >>>>>>> Ph.D Candidate, >>>>>>> Dept. of Computer Science and Technology, >>>>>>> Tsinghua University, P. R. China >>>>>>> >>>>>>> _______________________________________________ >>>>>>> ndnSIM mailing list >>>>>>> ndnSIM at lists.cs.ucla.edu >>>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >>> >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Thu Feb 21 19:52:29 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 22 Feb 2013 11:52:29 +0800 Subject: [ndnSIM] Callback unknown error In-Reply-To: <2840EFEF-E993-4284-BB63-4CC5682460F7@ucla.edu> References: <0E4D0559-AD64-4E81-A39E-24646516C074@gmail.com> <9FB46141-F9E4-465F-9B86-8000F28561A9@ucla.edu> <50E1948E-ABE1-4A7E-81C2-05A017223058@gmail.com> <7A201A13-A630-4959-8904-72173BF8E0CA@ucla.edu> <9E06855D-08FF-45D3-8A2E-E58951155536@gmail.com> <9E93107E-E3F9-46F9-8DCC-BFD8A7C7AA7A@ucla.edu> <99EF949A-5ECE-4A44-91CA-DC28B374B767@gmail.com> <2840EFEF-E993-4284-BB63-4CC5682460F7@ucla.edu> Message-ID: Hi Alex, After my test, I think it works quit well! Thank you very much! thanks My Regards, Xiaoke Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China On Feb 22, 2013, at 11:15 AM, Alex Afanasyev wrote: > You should checkout a test that I wrote (tests/ndnSIM-fib-entry.cc), it has an example of how to connect to FIBs and how to "attach" extra information to the tracer. > > --- > Alex > > On Feb 21, 2013, at 6:48 PM, Xiaoke Jiang wrote: > >> Hi Alex, >> I have run a simple traced function for Status, >> static void TraceStatus(fib::FaceMetric::Status old, fib::FaceMetric::Status now) { >> NS_LOG_INFO("- Change Status from "<> } >> >> but how can I connect to the fibs, I have variable called nodes and ccnxHelper. >> ccnxHelper.InstallAll () to install ndn stack. >> >> >> thanks >> >> My Regards, >> Xiaoke Jiang ????? >> >> Ph.D Candidate, >> Dept. of Computer Science and Technology, >> Tsinghua University, P. R. China >> >> On Feb 22, 2013, at 10:22 AM, Alex Afanasyev wrote: >> >>> I have removed this variable. Should compile now without problem. >>> >>> --- >>> Alex >>> >>> On Feb 21, 2013, at 6:19 PM, Xiaoke Jiang wrote: >>> >>>> Hi Alex, >>>> I am trying to compile it on MacOS and Ubuntu. >>>> >>>> On Ubuntu, it compiles successfully, but on MacOS: I run ./waf clean then ./waf, it gives me error: >>>> [1119/1916] cxx: src/ndnSIM/model/fw/green-yellow-red.cc -> build/src/ndnSIM/model/fw/green-yellow-red.cc.1.o >>>> cc1plus: warnings being treated as errors >>>> In file included from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:27: >>>> ./ns3/ndnSIM/utils/mem-usage.h: In static member function ?static int64_t MemUsage::Get()?: >>>> ./ns3/ndnSIM/utils/mem-usage.h:69: warning: unused variable ?task? >>>> Waf: Leaving directory `/Users/shock/ndnSIM/ns-3/build' >>>> >>>> >>>> then I will trying to run my script and give you more feedback. >>>> >>>> thanks >>>> >>>> My Regards, >>>> Xiaoke Jiang ????? >>>> >>>> Ph.D Candidate, >>>> Dept. of Computer Science and Technology, >>>> Tsinghua University, P. R. China >>>> >>>> On Feb 22, 2013, at 6:04 AM, Alex Afanasyev wrote: >>>> >>>>> Hi Xiaoke, >>>>> >>>>> I've done an implementation of this feature and pushed it to the experimental branch (feature-trace-value-for-fib-entry). >>>>> >>>>> Can you check it out? I also would appreciate if you can check that this change didn't break anything else (at least with your simulations). >>>>> >>>>> Thanks, >>>>> Alex >>>>> >>>>> >>>>> On Feb 21, 2013, at 1:11 AM, Xiaoke Jiang wrote: >>>>> >>>>>> Hi Alex, >>>>>> Is it possible to make the Status of FibEntry (Line 105, ndn-fib-entry.h) a TracedCallback type. I think the status is quit important for research on Cache, routing, etc. >>>>>> >>>>>> I can get what I want by add NS_LOG, but the problem is after fetch and merge your code, my modification will lose. So is it possible for you to make that change since it 's also very important for future research. >>>>>> >>>>>> >>>>>> thanks >>>>>> >>>>>> My Regards, >>>>>> Xiaoke Jiang ????? >>>>>> >>>>>> Ph.D Candidate, >>>>>> Dept. of Computer Science and Technology, >>>>>> Tsinghua University, P. R. China >>>>>> >>>>>> On Feb 21, 2013, at 4:35 PM, Alex Afanasyev wrote: >>>>>> >>>>>>> In NS-3, Installing applications on a node is not the same as aggregating objects on a node (e.g., installing protocol stacks). As a result, your GetObject call will always return 0 and you get segfault. >>>>>>> >>>>>>> Instead, you should either call node->GetApplication(...) (not really good choice) or save installed apps in ApplicationContainer (Install returns it). There should be examples of that. >>>>>>> >>>>>>> --- >>>>>>> Alex >>>>>>> >>>>>>> On Feb 21, 2013, at 12:27 AM, Xiaoke Jiang wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> I write my script to trace Producer processing Interest, >>>>>>>> >>>>>>>> xiaoke.cc: >>>>>>>> >>>>>>>> static void SinkIst(Ptr, Ptr, Ptr) >>>>>>>> { >>>>>>>> NS_LOG_INFO("< Respodning with ContentObject"); >>>>>>>> } >>>>>>>> >>>>>>>> ? >>>>>>>> >>>>>>>> producerHelper.Install(node); >>>>>>>> node->GetObject()->TraceConnectWithoutContext("ReceivedInterests", MakeCallback(&SinkIst)); >>>>>>>> >>>>>>>> It compiles successfully, but run failed and give me >>>>>>>> "Command ['/Users/shock/ndnSIM/ns-3/build/shock/xiaoke'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ")." >>>>>>>> >>>>>>>> >>>>>>>> Anyone can help? >>>>>>>> >>>>>>>> thanks >>>>>>>> >>>>>>>> My Regards, >>>>>>>> Xiaoke Jiang ????? >>>>>>>> >>>>>>>> Ph.D Candidate, >>>>>>>> Dept. of Computer Science and Technology, >>>>>>>> Tsinghua University, P. R. China >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> ndnSIM mailing list >>>>>>>> ndnSIM at lists.cs.ucla.edu >>>>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> ndnSIM mailing list >>>> ndnSIM at lists.cs.ucla.edu >>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >>> >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From aaronishere at qq.com Sat Feb 23 05:51:01 2013 From: aaronishere at qq.com (=?utf-8?B?QWFyb24=?=) Date: Sat, 23 Feb 2013 21:51:01 +0800 Subject: [ndnSIM] (no subject) Message-ID: Hi, Alex I add Ptr node=m_pit->GetObject(); std::cout<<"Node#"<GetId() <<"interestheader->GetScope()"<GetScope()<GetScope()? Node#1interestheader->GetScope()? Node#2interestheader->GetScope()? ..... -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Feb 23 06:44:01 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 23 Feb 2013 06:44:01 -0800 Subject: [ndnSIM] std::cout and Interest::GetScope In-Reply-To: References: Message-ID: <456851F6-4BE4-4D14-913E-84A0A19C673C@ucla.edu> Hi Aaron, This is just the way stream output in C++ works. GetScope returns 1-byte number (char), which is considered by std::ostream as a character, not number. To solve the confusion, just add. static_cast (...GetScope ()). and it should work as expected. --- Alex On Feb 23, 2013, at 5:51 AM, "Aaron" wrote: > Hi, Alex > I add > Ptr node=m_pit->GetObject(); > std::cout<<"Node#"<GetId() <<"interestheader->GetScope()"<GetScope()< but why it can't show the number? It shows like below: > > Node#0interestheader->GetScope()? > Node#1interestheader->GetScope()? > Node#2interestheader->GetScope()? > ..... > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From chengyu at cs.colostate.edu Mon Feb 25 23:14:29 2013 From: chengyu at cs.colostate.edu (Chengyu Fan) Date: Tue, 26 Feb 2013 00:14:29 -0700 Subject: [ndnSIM] How to use hijacker in ndnSIM? Message-ID: Hi~ I want to use the custom app "hijacker" in ndnSIM, so I modify the code of ndn-tree-app-delay-tracer.cc. Basically I replace codes: ndn::AppHelper producerHelper ("ns3::ndn::Producer"); producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); using: ndn::AppHelper producerHelper ("Hijacker"); However, when I run ndn-tree-app-delay-trace, it prompts the error messages: *assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: Hijacker not found", file=../src/core/model/type-id.cc, line=419* *terminate called without an active exception* * * *Command ['/home/chengyu/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-tree-app-delay-tracer-debug', '100'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ").* Does anybody know what the problem is? Thanks, Chengyu -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Feb 25 23:47:15 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 25 Feb 2013 23:47:15 -0800 Subject: [ndnSIM] How to use hijacker in ndnSIM? In-Reply-To: References: Message-ID: <9D0CB187-6119-463F-9636-B671D72A8D04@ucla.edu> Hi Chengyu, You would need to modify wscript file to include hijacker.cc in your scenario. You can checkout an example in examples/wscript for "ndn-simple-with-custom-app". At the same time, I would encourage you and everybody else against writing scenarios by modifying ndnSIM or NS-3. My personal recommendation is to use a modular way, using for example the template https://github.com/cawka/ndnSIM-scenario-template. If you simply copy hijacker.cc to extensions folder and copy your modified version of ndn-tree-app-delay-trace (alongside with topology files), it should compile and work. Let us know if you still in trouble with hijacker (either with or without modular way). --- Alex On Feb 25, 2013, at 11:14 PM, Chengyu Fan wrote: >> Hi~ >> >> I want to use the custom app "hijacker" in ndnSIM, so I modify the code of ndn-tree-app-delay-tracer.cc. >> >> Basically I replace codes: >> ndn::AppHelper producerHelper ("ns3::ndn::Producer"); >> producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); >> >> using: >> ndn::AppHelper producerHelper ("Hijacker"); >> >> >> However, when I run ndn-tree-app-delay-trace, it prompts the error messages: >> >> assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: Hijacker not found", file=../src/core/model/type-id.cc, line=419 >> terminate called without an active exception >> >> Command ['/home/chengyu/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-tree-app-delay-tracer-debug', '100'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). >> >> Does anybody know what the problem is? >> >> Thanks, >> Chengyu > _______________________________________________ > 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 chengyu at cs.colostate.edu Tue Feb 26 00:38:03 2013 From: chengyu at cs.colostate.edu (Chengyu Fan) Date: Tue, 26 Feb 2013 01:38:03 -0700 Subject: [ndnSIM] How to use hijacker in ndnSIM? In-Reply-To: <9D0CB187-6119-463F-9636-B671D72A8D04@ucla.edu> References: <9D0CB187-6119-463F-9636-B671D72A8D04@ucla.edu> Message-ID: Alex, Thanks for the quick reply. After I modify the wscript file to include hijacker.cc , it works. More questions in lines. On Tue, Feb 26, 2013 at 12:47 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Chengyu, > > You would need to modify wscript file to include hijacker.cc in your > scenario. You can checkout an example in examples/wscript for > "ndn-simple-with-custom-app". > > At the same time, I would encourage you and everybody else against writing > scenarios by modifying ndnSIM or NS-3. My personal recommendation is to > use a modular way, using for example the template > https://github.com/cawka/ndnSIM-scenario-template. If you simply copy > hijacker.cc to extensions folder and copy your modified version of > ndn-tree-app-delay-trace (alongside with topology files), it should compile > and work. > > Now I try to use files "ndn-simple-with-custom-app.cc", "custom-app.h", "custom-app.cc", "hijacker.cc", and "hijacker.h" in directory "scratch". They work in the examples, so I think they should work in the scratch directory. In addition, I also add two lines to include custom-app.h and hijacker.h in ndn-simple-with-custom-app.cc: *#include "custom-app.h"* *#include "hijacker.h"* * * However, when I run the command "./waf --run=scratch/ndn-simple-with-custom-app", it gives me a lot of "relocation" error message: ================================== ./waf --run=scratch/ndn-simple-with-custom-app Waf: Entering directory `/home/chengyu/ndnSIM/ns-3/build' [ 820/1989] cxx: scratch/ndn-simple-with-custom-app.cc -> build/scratch/ndn-simple-with-custom-app.cc.3.o [1715/1989] cxx: scratch/hijacker.cc -> build/scratch/hijacker.cc.2.o [1962/1989] cxxprogram: build/scratch/ndn-simple-with-custom-app.cc.3.o -> build/scratch/ndn-simple-with-custom-app [1963/1989] cxxprogram: build/scratch/hijacker.cc.2.o -> build/scratch/hijacker /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 12 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 20 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 21 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 22 has invalid symbol index 21 /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start': (.text+0x18): undefined reference to `main' collect2: ld returned 1 exit status Waf: Leaving directory `/home/chengyu/ndnSIM/ns-3/build' Build failed -> task in 'hijacker' failed (exit status 1): {task 146488780: cxxprogram hijacker.cc.2.o -> hijacker} ['/usr/bin/g++', '-pthread', '-pthread', '-Wl,-Bsymbolic-functions', '-Wl,-z,relro', 'scratch/hijacker.cc.2.o', '-o', '/home/chengyu/ndnSIM/ns-3/build/scratch/hijacker', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L/usr/local/lib', '-L/usr/lib', '-lns3-dev-test-debug', '-lns3-dev-csma-layout-debug', '-lns3-dev-point-to-point-layout-debug', '-lns3-dev-netanim-debug', '-lns3-dev-lte-debug', '-lns3-dev-spectrum-debug', '-lns3-dev-antenna-debug', '-lns3-dev-aodv-debug', '-lns3-dev-dsdv-debug', '-lns3-dev-dsr-debug', '-lns3-dev-mesh-debug', '-lns3-dev-olsr-debug', '-lns3-dev-csma-debug', '-lns3-dev-wimax-debug', '-lns3-dev-applications-debug', '-lns3-dev-virtual-net-device-debug', '-lns3-dev-uan-debug', '-lns3-dev-energy-debug', '-lns3-dev-flow-monitor-debug', '-lns3-dev-ndnSIM-debug', '-lns3-dev-visualizer-debug', '-lns3-dev-nix-vector-routing-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-wifi-debug', '-lns3-dev-buildings-debug', '-lns3-dev-propagation-debug', '-lns3-dev-mobility-debug', '-lns3-dev-config-store-debug', '-lns3-dev-tools-debug', '-lns3-dev-stats-debug', '-lns3-dev-emu-debug', '-lns3-dev-topology-read-debug', '-lns3-dev-network-debug', '-lns3-dev-core-debug', '-lrt', '-lgsl', '-lgslcblas', '-lm', '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-latk-1.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lcairo', '-lpango-1.0', '-lfreetype', '-lfontconfig', '-lgobject-2.0', '-lglib-2.0', '-lxml2', '-lsqlite3', '-lboost_iostreams', '-lpython2.7'] ==================================================== > Let us know if you still in trouble with hijacker (either with or without > modular way). > > --- > Alex > > > On Feb 25, 2013, at 11:14 PM, Chengyu Fan > wrote: > > Hi~ > > I want to use the custom app "hijacker" in ndnSIM, so I modify the code > of ndn-tree-app-delay-tracer.cc. > > Basically I replace codes: > ndn::AppHelper producerHelper ("ns3::ndn::Producer"); > producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); > > using: > ndn::AppHelper producerHelper ("Hijacker"); > > > However, when I run ndn-tree-app-delay-trace, it prompts the error > messages: > > *assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: > Hijacker not found", file=../src/core/model/type-id.cc, line=419* > *terminate called without an active exception* > * > * > *Command > ['/home/chengyu/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-tree-app-delay-tracer-debug', > '100'] terminated with signal SIGIOT. Run it under a debugger to get more > information (./waf --run --command-template="gdb --args %s > ").* > > Does anybody know what the problem is? > > Thanks, > Chengyu > > _______________________________________________ > 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 alexander.afanasyev at ucla.edu Tue Feb 26 09:03:50 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 26 Feb 2013 09:03:50 -0800 Subject: [ndnSIM] How to use hijacker in ndnSIM? In-Reply-To: References: <9D0CB187-6119-463F-9636-B671D72A8D04@ucla.edu> Message-ID: Hi Chengyu, scratch/ folder in NS-3 has a specific logic programmed into it, so you need to be careful by placing files into it. Each scratch/*.cc file is treated as a complete simulation scenario (i.e., need to contain main() function). In your case neither custom-app.c nor hijacker.cc has (and they definitely should not have) main function, so the compiler is telling you that. There is another logic of scratch/ folder that you can use and it should work in your case. If you create a directory under scratch/ (like scratch/ndn-scenario) and put all .cc and .h file in there, then ./waf will think that you're compiling only one ndn-scenario and will compile all files together (exactly one main function should be present in all .cc files under this folder). Hope it helps, Alex On Feb 26, 2013, at 12:38 AM, Chengyu Fan wrote: > Alex, > > Thanks for the quick reply. After I modify the wscript file to include hijacker.cc , it works. > > More questions in lines. > > On Tue, Feb 26, 2013 at 12:47 AM, Alex Afanasyev wrote: > Hi Chengyu, > > You would need to modify wscript file to include hijacker.cc in your scenario. You can checkout an example in examples/wscript for "ndn-simple-with-custom-app". > > At the same time, I would encourage you and everybody else against writing scenarios by modifying ndnSIM or NS-3. My personal recommendation is to use a modular way, using for example the template https://github.com/cawka/ndnSIM-scenario-template. If you simply copy hijacker.cc to extensions folder and copy your modified version of ndn-tree-app-delay-trace (alongside with topology files), it should compile and work. > > > Now I try to use files "ndn-simple-with-custom-app.cc", "custom-app.h", "custom-app.cc", "hijacker.cc", and "hijacker.h" in directory "scratch". > They work in the examples, so I think they should work in the scratch directory. > > In addition, I also add two lines to include custom-app.h and hijacker.h in ndn-simple-with-custom-app.cc: > #include "custom-app.h" > #include "hijacker.h" > > However, when I run the command "./waf --run=scratch/ndn-simple-with-custom-app", it gives me a lot of "relocation" error message: > > ================================== > ./waf --run=scratch/ndn-simple-with-custom-app > Waf: Entering directory `/home/chengyu/ndnSIM/ns-3/build' > [ 820/1989] cxx: scratch/ndn-simple-with-custom-app.cc -> build/scratch/ndn-simple-with-custom-app.cc.3.o > [1715/1989] cxx: scratch/hijacker.cc -> build/scratch/hijacker.cc.2.o > [1962/1989] cxxprogram: build/scratch/ndn-simple-with-custom-app.cc.3.o -> build/scratch/ndn-simple-with-custom-app > [1963/1989] cxxprogram: build/scratch/hijacker.cc.2.o -> build/scratch/hijacker > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 12 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 20 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 21 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 22 has invalid symbol index 21 > /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start': > (.text+0x18): undefined reference to `main' > collect2: ld returned 1 exit status > Waf: Leaving directory `/home/chengyu/ndnSIM/ns-3/build' > Build failed > -> task in 'hijacker' failed (exit status 1): > {task 146488780: cxxprogram hijacker.cc.2.o -> hijacker} > ['/usr/bin/g++', '-pthread', '-pthread', '-Wl,-Bsymbolic-functions', '-Wl,-z,relro', 'scratch/hijacker.cc.2.o', '-o', '/home/chengyu/ndnSIM/ns-3/build/scratch/hijacker', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L/usr/local/lib', '-L/usr/lib', '-lns3-dev-test-debug', '-lns3-dev-csma-layout-debug', '-lns3-dev-point-to-point-layout-debug', '-lns3-dev-netanim-debug', '-lns3-dev-lte-debug', '-lns3-dev-spectrum-debug', '-lns3-dev-antenna-debug', '-lns3-dev-aodv-debug', '-lns3-dev-dsdv-debug', '-lns3-dev-dsr-debug', '-lns3-dev-mesh-debug', '-lns3-dev-olsr-debug', '-lns3-dev-csma-debug', '-lns3-dev-wimax-debug', '-lns3-dev-applications-debug', '-lns3-dev-virtual-net-device-debug', '-lns3-dev-uan-debug', '-lns3-dev-energy-debug', '-lns3-dev-flow-monitor-debug', '-lns3-dev-ndnSIM-debug', '-lns3-dev-visualizer-debug', '-lns3-dev-nix-vector-routing-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-wifi-debug', '-lns3-dev-buildings-debug', '-lns3-dev-propagation-debug', '-lns3-dev-mobility-debug', '-lns3-dev-config-store-debug', '-lns3-dev-tools-debug', '-lns3-dev-stats-debug', '-lns3-dev-emu-debug', '-lns3-dev-topology-read-debug', '-lns3-dev-network-debug', '-lns3-dev-core-debug', '-lrt', '-lgsl', '-lgslcblas', '-lm', '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-latk-1.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lcairo', '-lpango-1.0', '-lfreetype', '-lfontconfig', '-lgobject-2.0', '-lglib-2.0', '-lxml2', '-lsqlite3', '-lboost_iostreams', '-lpython2.7'] > > ==================================================== > > Let us know if you still in trouble with hijacker (either with or without modular way). > > --- > Alex > > > On Feb 25, 2013, at 11:14 PM, Chengyu Fan wrote: > >>> Hi~ >>> >>> I want to use the custom app "hijacker" in ndnSIM, so I modify the code of ndn-tree-app-delay-tracer.cc. >>> >>> Basically I replace codes: >>> ndn::AppHelper producerHelper ("ns3::ndn::Producer"); >>> producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); >>> >>> using: >>> ndn::AppHelper producerHelper ("Hijacker"); >>> >>> >>> However, when I run ndn-tree-app-delay-trace, it prompts the error messages: >>> >>> assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: Hijacker not found", file=../src/core/model/type-id.cc, line=419 >>> terminate called without an active exception >>> >>> Command ['/home/chengyu/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-tree-app-delay-tracer-debug', '100'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). >>> >>> Does anybody know what the problem is? >>> >>> Thanks, >>> Chengyu >> _______________________________________________ >> 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 chengyu at cs.colostate.edu Tue Feb 26 10:09:07 2013 From: chengyu at cs.colostate.edu (Chengyu Fan) Date: Tue, 26 Feb 2013 11:09:07 -0700 Subject: [ndnSIM] How to use hijacker in ndnSIM? In-Reply-To: References: <9D0CB187-6119-463F-9636-B671D72A8D04@ucla.edu> Message-ID: Thanks, Alex. Now everything works fine. Just for new users: if you create a directory (let's say ndn-test) under scratch/ , then you need to run it as "./waf --run ndn-test" On Tue, Feb 26, 2013 at 10:03 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Chengyu, > > scratch/ folder in NS-3 has a specific logic programmed into it, so you > need to be careful by placing files into it. Each scratch/*.cc file is > treated as a complete simulation scenario (i.e., need to contain main() > function). In your case neither custom-app.c nor hijacker.cc has (and they > definitely should not have) main function, so the compiler is telling you > that. > > There is another logic of scratch/ folder that you can use and it should > work in your case. If you create a directory under scratch/ (like > scratch/ndn-scenario) and put all .cc and .h file in there, then ./waf will > think that you're compiling only one ndn-scenario and will compile all > files together (exactly one main function should be present in all .cc > files under this folder). > > Hope it helps, > Alex > > On Feb 26, 2013, at 12:38 AM, Chengyu Fan > wrote: > > Alex, > > Thanks for the quick reply. After I modify the wscript file to include > hijacker.cc , it works. > > More questions in lines. > > On Tue, Feb 26, 2013 at 12:47 AM, Alex Afanasyev < > alexander.afanasyev at ucla.edu> wrote: > >> Hi Chengyu, >> >> You would need to modify wscript file to include hijacker.cc in your >> scenario. You can checkout an example in examples/wscript for >> "ndn-simple-with-custom-app". >> >> > At the same time, I would encourage you and everybody else against writing >> scenarios by modifying ndnSIM or NS-3. My personal recommendation is to >> use a modular way, using for example the template >> https://github.com/cawka/ndnSIM-scenario-template. If you simply copy >> hijacker.cc to extensions folder and copy your modified version of >> ndn-tree-app-delay-trace (alongside with topology files), it should compile >> and work. >> >> > Now I try to use files "ndn-simple-with-custom-app.cc", "custom-app.h", > "custom-app.cc", "hijacker.cc", and "hijacker.h" in directory "scratch". > They work in the examples, so I think they should work in the scratch > directory. > > In addition, I also add two lines to include custom-app.h and hijacker.h > in ndn-simple-with-custom-app.cc: > *#include "custom-app.h"* > *#include "hijacker.h"* > * > * > However, when I run the command "./waf > --run=scratch/ndn-simple-with-custom-app", it gives me a lot of > "relocation" error message: > > ================================== > ./waf --run=scratch/ndn-simple-with-custom-app > Waf: Entering directory `/home/chengyu/ndnSIM/ns-3/build' > [ 820/1989] cxx: scratch/ndn-simple-with-custom-app.cc -> > build/scratch/ndn-simple-with-custom-app.cc.3.o > [1715/1989] cxx: scratch/hijacker.cc -> build/scratch/hijacker.cc.2.o > [1962/1989] cxxprogram: build/scratch/ndn-simple-with-custom-app.cc.3.o -> > build/scratch/ndn-simple-with-custom-app > [1963/1989] cxxprogram: build/scratch/hijacker.cc.2.o -> > build/scratch/hijacker > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 0 has invalid symbol index 11 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 1 has invalid symbol index 12 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 2 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 3 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 4 has invalid symbol index 11 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 5 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 6 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 7 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 8 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 9 has invalid symbol index 2 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 10 has invalid symbol index 12 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 11 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 12 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 13 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 14 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 15 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 16 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 17 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 18 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 19 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 20 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 21 has invalid symbol index 13 > /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): > relocation 22 has invalid symbol index 21 > /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In > function `_start': > (.text+0x18): undefined reference to `main' > collect2: ld returned 1 exit status > Waf: Leaving directory `/home/chengyu/ndnSIM/ns-3/build' > Build failed > -> task in 'hijacker' failed (exit status 1): > {task 146488780: cxxprogram hijacker.cc.2.o -> hijacker} > ['/usr/bin/g++', '-pthread', '-pthread', '-Wl,-Bsymbolic-functions', > '-Wl,-z,relro', 'scratch/hijacker.cc.2.o', '-o', > '/home/chengyu/ndnSIM/ns-3/build/scratch/hijacker', '-Wl,-Bstatic', > '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L.', '-L.', '-L.', '-L.', > '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', > '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', > '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', '-L.', > '-L.', '-L.', '-L.', '-L/usr/local/lib', '-L/usr/lib', > '-lns3-dev-test-debug', '-lns3-dev-csma-layout-debug', > '-lns3-dev-point-to-point-layout-debug', '-lns3-dev-netanim-debug', > '-lns3-dev-lte-debug', '-lns3-dev-spectrum-debug', > '-lns3-dev-antenna-debug', '-lns3-dev-aodv-debug', '-lns3-dev-dsdv-debug', > '-lns3-dev-dsr-debug', '-lns3-dev-mesh-debug', '-lns3-dev-olsr-debug', > '-lns3-dev-csma-debug', '-lns3-dev-wimax-debug', > '-lns3-dev-applications-debug', '-lns3-dev-virtual-net-device-debug', > '-lns3-dev-uan-debug', '-lns3-dev-energy-debug', > '-lns3-dev-flow-monitor-debug', '-lns3-dev-ndnSIM-debug', > '-lns3-dev-visualizer-debug', '-lns3-dev-nix-vector-routing-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-wifi-debug', '-lns3-dev-buildings-debug', > '-lns3-dev-propagation-debug', '-lns3-dev-mobility-debug', > '-lns3-dev-config-store-debug', '-lns3-dev-tools-debug', > '-lns3-dev-stats-debug', '-lns3-dev-emu-debug', > '-lns3-dev-topology-read-debug', '-lns3-dev-network-debug', > '-lns3-dev-core-debug', '-lrt', '-lgsl', '-lgslcblas', '-lm', > '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-latk-1.0', '-lgio-2.0', > '-lpangoft2-1.0', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lcairo', > '-lpango-1.0', '-lfreetype', '-lfontconfig', '-lgobject-2.0', '-lglib-2.0', > '-lxml2', '-lsqlite3', '-lboost_iostreams', '-lpython2.7'] > > ==================================================== > > >> Let us know if you still in trouble with hijacker (either with or without >> modular way). >> >> --- >> Alex >> >> >> On Feb 25, 2013, at 11:14 PM, Chengyu Fan >> wrote: >> >> Hi~ >> >> I want to use the custom app "hijacker" in ndnSIM, so I modify the code >> of ndn-tree-app-delay-tracer.cc. >> >> Basically I replace codes: >> ndn::AppHelper producerHelper ("ns3::ndn::Producer"); >> producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); >> >> using: >> ndn::AppHelper producerHelper ("Hijacker"); >> >> >> However, when I run ndn-tree-app-delay-trace, it prompts the error >> messages: >> >> *assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: >> Hijacker not found", file=../src/core/model/type-id.cc, line=419* >> *terminate called without an active exception* >> * >> * >> *Command >> ['/home/chengyu/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-tree-app-delay-tracer-debug', >> '100'] terminated with signal SIGIOT. Run it under a debugger to get more >> information (./waf --run --command-template="gdb --args %s >> ").* >> >> Does anybody know what the problem is? >> >> Thanks, >> Chengyu >> >> _______________________________________________ >> 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 mohammad.hovaidi.ardestani at aalto.fi Wed Feb 27 05:51:26 2013 From: mohammad.hovaidi.ardestani at aalto.fi (Hovaidi Ardestani Mohammad) Date: Wed, 27 Feb 2013 13:51:26 +0000 Subject: [ndnSIM] Packet drops Message-ID: Hello everybody! I have several scenarios in which congestion happens. I am wondering how I can trace dropped packets or know when packet dropping has been started? Any help is appreciated in advance BR -Mohammad -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 27 12:27:26 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 27 Feb 2013 12:27:26 -0800 Subject: [ndnSIM] Packet drops In-Reply-To: References: Message-ID: Hi Mohammad, If you're talking about normal drops due to queue overflows, then you can use packet drop traces from NetDevice queue (you can check examples in src/visualizer/model/pyviz.cc): - /NodeList/*/DeviceList/*/TxQueue/Drop If you want to factor in cases when ndnSIM stops forwarding packet (which is not exactly a drop), then you may want to also use - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropInterests - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropData However, I'm not confident 100% that right now ndnSIM tracks all the cases of stopped forwarding of Interst/Data. --- Alex On Feb 27, 2013, at 5:51 AM, Hovaidi Ardestani Mohammad wrote: > Hello everybody! > I have several scenarios in which congestion happens. I am wondering how I can trace dropped packets or know when packet dropping has been started? > Any help is appreciated in advance > BR > -Mohammad From alexander.afanasyev at ucla.edu Wed Feb 27 12:46:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 27 Feb 2013 12:46:28 -0800 Subject: [ndnSIM] Question about extending forwarding strategy in ndnSIM In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> <6D9BED7D-C9A1-4E93-8C57-E6F015F10F2D@ucla.edu> <446C351E-A09C-42BD-8FBB-89440BF26175@ucla.edu> Message-ID: Hi Yifeng, Yes. The default limit (as specified in model/fw/per-out-face-limits.h) is ns3::ndn::Limits::Window (utils/ndn-limits-window.h|cc). And another yes, as I tried to emphasize in doxygen documentation (http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_limits_window.html#a6b7b961168019a655db8c3b5664e51b6), interpretation of values used by (Get|Set)CurrentLimit is implementation-specific. In window case, the value is the window. Sincerely, Alex ps Would you mind keeping mailing list in CC? Thanks. On Feb 26, 2013, at 10:35 AM, Yifeng Li wrote: > Hello Alex, > > Thanks for your help. Just to clarify some things on limits, the default is windows, which is the implementation in ndn-limits-window.cc under utils? So if I do something like: Ptr faceLimits = inFace->GetObject (); > faceLimtis->GetCurrentLimit(); > > it would be a window size rather than a rate right? > > Thanks for your help, > Yifeng > > > > On Wed, Feb 20, 2013 at 10:40 AM, Alex Afanasyev wrote: > Hi Yifeng, > > PerOutFaceLimits is a templated class and you can define (almost) any Parent class that PerOutFaceLimits is extending. Examples of these are in model/fw/per-out-face-limits.cc file: > > template class PerOutFaceLimits; > typedef PerOutFaceLimits PerOutFaceLimitsBestRoute; > NS_OBJECT_ENSURE_REGISTERED (PerOutFaceLimitsBestRoute); > > > If you want to extend the limits class, you have several options. You can do it in a templated way: > > template > class Extension : public PerOutFaceLimits > ... > > or you if you know what is the base strategy you want to use with limiting, you can just specialize your extension: > > class Extension : public PerOutFaceLimits > ... > > > If the parent class that you're using is inherited from Nacks class (most of the strategies do: http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_forwarding_strategy.html), then you can directly override any method defined in Nacks class in your extension. That is, in one extension class you can combine modifications for limits and nacks. > > --- > Alex > > On Feb 20, 2013, at 6:19 AM, Yifeng Li wrote: > >> Hello Alex, >> >> I noticed per-out-face-limits extend Parent, where is Parent defined? I also, if I extend per out face limits, do I also have to extend Nacks as well? There seems to be inheritance conflicts if I extend both. >> >> Thanks for your help, >> Yifeng > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 27 12:52:40 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 27 Feb 2013 12:52:40 -0800 Subject: [ndnSIM] Question about extending forwarding strategy in ndnSIM In-Reply-To: References: <9141F6F0-53CE-4F12-A317-B58B42200E61@cs.ucla.edu> <0A10397A-F894-4F78-B0A0-23638ECB8930@cs.ucla.edu> <79E4C264-115F-4FF2-BB05-CDB5A0C9C9C0@cs.ucla.edu> <22DBF080-8CA8-4D31-8A31-1B4270E89CB9@cs.ucla.edu> <43E06017-BE2E-4E0E-B901-444B642D31C6@cs.ucla.edu> <0740E427-AB3F-4200-860E-3E4E83EF0B26@cs.ucla.edu> <308643A5-9427-415B-8C88-88AC2F816C0C@cs.ucla.edu> <1A578E8A-2578-41F6-820E-072C0B536650@cs.ucla.edu> <2E18126F-21F4-4C37-BBCD-5BA027B6F018@cs.ucla.edu> <3A79E9AB-4D42-402B-90DE-D65E52CFE4EF@cs.ucla.edu> <6D9BED7D-C9A1-4E93-8C57-E6F015F10F2D@ucla.edu> <446C351E-A09C-42BD-8FBB-89440BF26175@ucla.edu> Message-ID: Hi Yifeng, On Feb 27, 2013, at 8:56 AM, Yifeng Li wrote: > Hello Alex, > > Regarding using window limits, I want to update the current limit (e.g. increase window size or decrease by 1). In my forwarding strategy, when I'm reducing the limit, I'm using something like: > > Ptr faceLimits = face->GetObject (); > double newLimit = std::max (0.0, faceLimits->GetCurrentLimit() - 1); //cannot be less than 0 > faceLimits->UpdateCurrentLimit(newLimit); > > But from the outputs I'm getting (pcap trace), it seems like the throughput gets reduced too much. What would be the equivalent of 1 window size? If you want to have minimum window 1, why don't you have this as part of you newLimit calculation? For example, double newLimit = std::max (1.0, faceLimits->GetCurrentLimit() - 1); //cannot be less than 1 If it is something undesirable, you have to have some what to increase window from 0 (which means that no Interests are allowed to be send out at all). > Also, I'm printing the limits as they change, but I cannot see which node the limit belongs to. I'm using: > > uint32_t nodeid = inFace->GetObject ()->GetId(); > std::cout << "current node: " << nodeid << std::endl; This is a little bit wrong. Face is not aggregated to a Node object. You need a little bit different syntax (see more here: http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_net_device_face.html) if you want to get node id: uint32_t nodeId = inFace->GetNode ()->GetId () ... --- Alex > Inside my forwarding strategy, but it will give a segfault. Can I not get the node id this way? > > Yifeng -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Feb 27 13:03:12 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 27 Feb 2013 13:03:12 -0800 Subject: [ndnSIM] Calling for more of your works In-Reply-To: <73efdc91.6aa3.13d19b7f8c3.Coremail.blindeafer@163.com> References: <419062b0.12456.13d1178a277.Coremail.blindeafer@163.com> <36633414.17873.13d142c93de.Coremail.blindeafer@163.com> <73efdc91.6aa3.13d19b7f8c3.Coremail.blindeafer@163.com> Message-ID: Hi Shenglan, About the documentation. You can check out http://ndnsim.net/ with extensive documentation of ndnSIM and several basic examples. As for the cache replacement policy. I'm not quite sure how a particular entry in the case is related to PIT: PIT stores interests, but content store stores ContentObjects after a particular Interest got satisfied. Would you mind explaining more what do you mean by that? Sincerely, Alex On Feb 26, 2013, at 7:35 PM, ??? wrote: > Hi Alex, > > I disscuss with my teacher about my direction these days,and I wonder if the ndnSIM has a policy template that cache content with reference entries in PIT and a template that edge nodes could count the access numbers. > > Would you offer me some documents about the characteristic of ndnSIM,CCNx or some other simulators that can be implemented to simulate Content-centric network. > > And I am very pleased to share our conversation with others. > > > At 2013-02-26 14:09:23,"Alex Afanasyev" wrote: > >Hi Shenglan, > > > >There are already several cache replacement policies implemented in ndnSIM (LRU, random, least frequently used, random) and you can relatively easy implement your own. > > > >The process is semi-straightforward, as I heavily used C++ templates. You first need to define policy traits (see examples in utils/trie/*-policy.h and in model/cs/custom-policies/*.h) and then "instantiate" specialized version of content store, similar how it is done in model/cs/content-store-impl.cc (you don't need to put code in this file, you can have it in your extension). > > > >If you tell me what direction you want to go with the replacement strategy, I may give more concrete advice or make you a template for the policy traits. > > > >--- > >Alex > > > >PS > >Would you mind if I duplicate my answer to the ndnSIM mailing list (you're welcome to join), as I feel this conversation will be beneficial for others too. > > > > > >On Feb 25, 2013, at 5:44 PM, ??? wrote: > > > >> Dear Afanasyev, > >> > >> First,I would like to thank you for your help. > >> And I have some idea about cache and replacement strategy.I wonder whther the NDNsim could be used to test my hypothesis? Could you please give me some advice? > >> > >> > >> Best regards. > >> Shenglan Chen > >> > >> > >> At 2013-02-26 02:01:33,"Alex Afanasyev" wrote: > >> Dear Shenglan, > >> > >> Most of the code is available as part of our ndnSIM simulator (http://ndnsim.net). We also made available scenarios that we were using in the paper (at the moment only congestion-related scenarios are available, but we will put up others eventually) on the github: http://github.com/cawka/ndnSIM-comcom-stateful-fw > >> > >> Please fill free email me if you have any questions or problems with the code. > >> > >> Sincerely, > >> Alex Afanasyev > >> --- > >> Internet Research Laboratory > >> University of California, Los Angeles > >> http://lasr.cs.ucla.edu/afanasyev/index.html > >> > >> > >> On Feb 25, 2013, at 5:09 AM, ??? wrote: > >> > >>> Mr.Afanasyev > >>> My name is Shenglan Chen.I am a postgraduate in Chongqing University of Post and Telecommunication. > >>> Your paper on "A Case for Stateful Forwarding Plane" has given me great inspiration. I want to learn more about it. > >>> I am wondering if you could provide me with more related works with this paper,such as the algorithm source code,Thank you. > >>> > >>> Best regards. > >>> Shenglan Chen > From chengyu at cs.colostate.edu Wed Feb 27 16:56:18 2013 From: chengyu at cs.colostate.edu (Chengyu Fan) Date: Wed, 27 Feb 2013 17:56:18 -0700 Subject: [ndnSIM] How to get the Interest information from each face? Message-ID: Hi~ Please forgive me if I missed something apparent. I want to collect the information of how many Interests and what Interests arrive on a node from different faces. Unfortunately, I did not find an example that shows how to collect those data. I find a class ns3::ndn::NetDeviceFace that seems suit my requirements. And I need to override RegisterProtocolHandler function. Is it correct? Or is there a Tracer class can collect the data for me? Thanks, Chengyu -------------- next part -------------- An HTML attachment was scrubbed... URL: From yskim525 at gmail.com Wed Feb 27 17:53:49 2013 From: yskim525 at gmail.com (Yusung Kim) Date: Thu, 28 Feb 2013 10:53:49 +0900 Subject: [ndnSIM] Packet drops In-Reply-To: References: Message-ID: Hello Mohammad and Alex, May I ask you more scenarios in which congestion happens in NDN ? One example, Alex said, is drops due to queue overflows. Is the transmission queue at Layer2 , right ? ( To Alex, what is the default queue size ? ) Is it possible that packets are dropped at an input interface queue ? For example, When lots of packets arrived from multiple input interfaces, if the time to handle the packets ( name look-up, cache replacement.. ) increases, new incoming packets may be dropped at input interface queues ? If you know another scenarios about packet drops, would you let me know the scenarios? Thank you, - Yusung Kim - On Thu, Feb 28, 2013 at 5:27 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Mohammad, > > If you're talking about normal drops due to queue overflows, then you can > use packet drop traces from NetDevice queue (you can check examples in > src/visualizer/model/pyviz.cc): > > - /NodeList/*/DeviceList/*/TxQueue/Drop > > If you want to factor in cases when ndnSIM stops forwarding packet (which > is not exactly a drop), then you may want to also use > > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropInterests > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropData > > However, I'm not confident 100% that right now ndnSIM tracks all the cases > of stopped forwarding of Interst/Data. > > --- > Alex > > On Feb 27, 2013, at 5:51 AM, Hovaidi Ardestani Mohammad < > mohammad.hovaidi.ardestani at aalto.fi> wrote: > > > Hello everybody! > > I have several scenarios in which congestion happens. I am wondering how > I can trace dropped packets or know when packet dropping has been started? > > Any help is appreciated in advance > > BR > > -Mohammad > > _______________________________________________ > 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 torres.jv at gmail.com Thu Feb 28 05:51:01 2013 From: torres.jv at gmail.com (=?ISO-8859-1?Q?Jo=E3o_Torres?=) Date: Thu, 28 Feb 2013 10:51:01 -0300 Subject: [ndnSIM] Alter FIB entries at runtime based on Packet information Message-ID: Hi, I would like help with three tasks: 1 - Customize Producer to write some information in Content Packet; 2 - Customize Consumer to store Content Packet information (a piece) in memory; 3 - Alter FIB entries at runtime based on Packet information. Could you give me some hints related to the best approach? Which strutures to alter? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 28 11:08:01 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 28 Feb 2013 11:08:01 -0800 Subject: [ndnSIM] Packet drops In-Reply-To: References: Message-ID: <00CC1EF7-BFE8-49C1-8AD8-587A9C8E3AF3@ucla.edu> Hi Mohammad, Sorry for the confusion. What I meant is that NS-3 provides you callback mechanism inside a transmission queue, to which you can "connect" and get data. ndn-l3-rate-tracer is really a helper class that is pretty useful, but it is just a helper. I have sketch out a draft implementation of another helper, l2-rate-tracer (you can check the code from feature-l2-tracer branch, or get this commit https://github.com/NDN-Routing/ndnSIM/commit/c759762fb12bfb5219715c5699ca8370d8ee6402). This is basically one of zillion ways to "connect" to /NodeList/*/DeviceList/*/TxQueue/Drop trace (see https://github.com/NDN-Routing/ndnSIM/commit/c759762fb12bfb5219715c5699ca8370d8ee6402#L2R50) and do some basic preprocessing. I have not fully tested the code, but it compiles on my machine. As for other types of drops that I mentioned (by ndnSIM itself), which are "exposed" through DropData/DropInterest NS-3 trace sources. This info is already aggregated by ndn-l3-rate-tracer, but I just commented out lines to print them (https://github.com/NDN-Routing/ndnSIM/blob/master/utils/tracers/ndn-l3-rate-tracer.cc#L173). You can uncomment and see if anything useful is there. But again, these "NDN" drops are specific to the forwarding strategy used, and you may be seeing zeroes here. Hope I clarified confusion. Let me know if I should explain more. --- Alex On Feb 28, 2013, at 12:44 AM, Hovaidi Ardestani Mohammad wrote: > Hi Alex > To tell the truth I didn't get your point. Let me explain what I am going to do. Actually, I need to have one tracer like "ndn-l3-rate-tracer.h" in which I can see the exact number of dropped packets due to buffer overflow or other possible reasons in each router. Could you please guide me more elaborately? > Thank you in advance! > -Mohammad > -----Original Message----- > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, February 27, 2013 10:27 PM > To: Hovaidi Ardestani Mohammad > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] Packet drops > > Hi Mohammad, > > If you're talking about normal drops due to queue overflows, then you can use packet drop traces from NetDevice queue (you can check examples in src/visualizer/model/pyviz.cc): > > - /NodeList/*/DeviceList/*/TxQueue/Drop > > If you want to factor in cases when ndnSIM stops forwarding packet (which is not exactly a drop), then you may want to also use > > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropInterests > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropData > > However, I'm not confident 100% that right now ndnSIM tracks all the cases of stopped forwarding of Interst/Data. > > --- > Alex > > On Feb 27, 2013, at 5:51 AM, Hovaidi Ardestani Mohammad wrote: > >> Hello everybody! >> I have several scenarios in which congestion happens. I am wondering how I can trace dropped packets or know when packet dropping has been started? >> Any help is appreciated in advance >> BR >> -Mohammad From alexander.afanasyev at ucla.edu Thu Feb 28 11:14:56 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 28 Feb 2013 11:14:56 -0800 Subject: [ndnSIM] Packet drops In-Reply-To: References: Message-ID: <0E13FE37-B23D-4C7E-9232-2861EB53172C@ucla.edu> Hi Yusung, Yes. Normally drops are due to transmission queue overflow at layer 2. The "trace source" path "/NodeList/*/DeviceList/*/TxQueue/Drop" is saying that we are selecting all simulation nodes (/NodeList/*), all network devices on each node (DeviceList/*), from each netdevice we are accessing TxQueue, in where we are connecting to Drop trace source. You may want to check NS-3 documentation about trace sources and connecting to them. NS-3 does not implement concept of dropping on input and there are no input interface queues. Time to handle packet is relevant in a real system, in NS-3, unless you specifically design processing to emulate real process, it is assumed that any method takes exactly 0s of simulation time. In NDN, a forwarding strategy may decide to drop Interest if it thinks that there is a congestion in the reverse path. This is not real congestion, but NDN-specific drop. If you want, you can check out our paper (http://dx.doi.org/10.1016/j.comcom.2013.01.005, http://lasr.cs.ucla.edu/afanasyev/data/files/Yi/comcom-stateful-forwarding.pdf) where we designed a rough prototype for such strategy. --- Alex On Feb 27, 2013, at 5:53 PM, Yusung Kim wrote: > Hello Mohammad and Alex, > > May I ask you more scenarios in which congestion happens in NDN ? > > One example, Alex said, is drops due to queue overflows. > Is the transmission queue at Layer2 , right ? > ( To Alex, what is the default queue size ? ) > > Is it possible that packets are dropped at an input interface queue ? > For example, When lots of packets arrived from multiple input interfaces, > if the time to handle the packets ( name look-up, cache replacement.. ) increases, > new incoming packets may be dropped at input interface queues ? > > If you know another scenarios about packet drops, would you let me know the scenarios? > Thank you, > > - Yusung Kim - > > > > On Thu, Feb 28, 2013 at 5:27 AM, Alex Afanasyev wrote: > Hi Mohammad, > > If you're talking about normal drops due to queue overflows, then you can use packet drop traces from NetDevice queue (you can check examples in src/visualizer/model/pyviz.cc): > > - /NodeList/*/DeviceList/*/TxQueue/Drop > > If you want to factor in cases when ndnSIM stops forwarding packet (which is not exactly a drop), then you may want to also use > > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropInterests > - /NodeList/*/$ns3::ndn::ForwardingStrategy/DropData > > However, I'm not confident 100% that right now ndnSIM tracks all the cases of stopped forwarding of Interst/Data. > > --- > Alex > > On Feb 27, 2013, at 5:51 AM, Hovaidi Ardestani Mohammad wrote: > > > Hello everybody! > > I have several scenarios in which congestion happens. I am wondering how I can trace dropped packets or know when packet dropping has been started? > > Any help is appreciated in advance > > BR > > -Mohammad > > _______________________________________________ > 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 alexander.afanasyev at ucla.edu Thu Feb 28 11:21:26 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 28 Feb 2013 11:21:26 -0800 Subject: [ndnSIM] Example ndn-simple-with-pcap (#24) In-Reply-To: References: Message-ID: Hi fqueiroz, I totally forgot about this example and was not testing it for a long time. SignatureBits are "temporarily" been unimplemented, so the simple fix to the problem is just to remove the line that sets the parameter. I will push the fix shortly. --- Alex On Feb 28, 2013, at 4:52 AM, fqueiroz wrote: > Hi Alex, > what's happening with ns3::ndn::Producer::SignatureBits? > thanks > > fqueiroz at ubuntu:~/ndnSIM/ns-3$ ./waf --run=ndn-simple-with-pcap > > Waf: Entering directory `/home/fqueiroz/ndnSIM/ns-3/build' > > [ 994/1973] cxx: src/ndnSIM/examples/ndn-simple-with-pcap.cc -> build/src/ndnSIM/examples/ndn-simple-with-pcap.cc.13.o > > [1844/1973] cxxprogram: build/src/ndnSIM/examples/ndn-simple-with-pcap.cc.13.o -> build/src/ndnSIM/examples/ns3-dev-ndn-simple-with-pcap-debug > > Waf: Leaving directory `/home/fqueiroz/ndnSIM/ns-3/build' > 'build' finished successfully (4.870s) > > msg="Could not set default value for ns3::ndn::Producer::SignatureBits", file=../src/core/model/config.cc, line=637 > terminate called without an active exception > > Command ['/home/fqueiroz/ndnSIM/ns-3/build/src/ndnSIM/examples/ns3-dev-ndn-simple-with-pcap-debug'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 28 11:45:06 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 28 Feb 2013 11:45:06 -0800 Subject: [ndnSIM] Alter FIB entries at runtime based on Packet information In-Reply-To: References: Message-ID: <8214331F-C899-44C5-82EF-F63FDBE6F206@ucla.edu> Hi Joao, For the producer/consumer applications, you may want to check out this section of ndnSIM website: http://ndnsim.net/applications.html#custom-applications 1/ Implementing your custom Producer should be straightforward. You just need to create a class derived from ndn::App and override onInterest method, in which you implement your logic what to put into content object (you can use apps/ndn-producer.cc as a reference). 2/ For Consumer, depending on how smart you want your consumer be (e.g., does it need to detect not satisfied interest and reexpress interest or not), implementation can be simple or a little bit more complex. If you need advanced functionality, you may want to create your custom class derived from ndn::ConsumerCbr/ndn::ConsumerBatches/ndn::ConsumerZipfMandelbrot and override OnContentObject method to store the incoming data. You can also create a class derived just from ndn::App, but then you'll have to implement your own logic when to express Interest and whether or not to detect not satisfied Interests (like in here http://ndnsim.net/applications.html#dumb-requester). 3/ If you want modify FIB entry on the node, which has your Consumer app installed, then you can do FIB updates from your overridden onContentObject method (to get pointer to FIB, use can use this: Ptr fib = GetNode ()->GetObject (); ) If you want to modify FIBs when a packet just passes by, then you would need to create your own forwarding strategy, that implements FIB modification logic in one of the overridden methods/events (OnInterest or OnData). Sincerely, Alex On Feb 28, 2013, at 5:51 AM, Jo?o Torres wrote: > Hi, > > I would like help with three tasks: > > 1 - Customize Producer to write some information in Content Packet; > > 2 - Customize Consumer to store Content Packet information (a piece) in memory; > > 3 - Alter FIB entries at runtime based on Packet information. > > > Could you give me some hints related to the best approach? Which strutures to alter? > > Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Feb 28 11:50:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 28 Feb 2013 11:50:57 -0800 Subject: [ndnSIM] How to get the Interest information from each face? In-Reply-To: References: Message-ID: <98E311F2-0DBF-4AEF-914F-7F6554E7EC3C@ucla.edu> I think you overcomplicate things. Do you need this information in runtime or just for later analysis? If for later analysis, ndnSIM has a couple of metric tracing helpers that already collect this sort of information (http://ndnsim.net/metric.html#packet-level-trace-helpers). Both ndn::L3AggregateTracer and ndn::L3RateTracer will give the information you're interested in. Is it what you need or you need something more than just numbers? --- Alex On Feb 27, 2013, at 4:56 PM, Chengyu Fan wrote: > Hi~ > > Please forgive me if I missed something apparent. > > I want to collect the information of how many Interests and what Interests arrive on a node from different faces. > Unfortunately, I did not find an example that shows how to collect those data. > > I find a class ns3::ndn::NetDeviceFace that seems suit my requirements. And I need to override RegisterProtocolHandler function. > Is it correct? > > Or is there a Tracer class can collect the data for me? > > Thanks, > Chengyu > _______________________________________________ > 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: