From amine.elabidi at cristal.rnu.tn Mon Jun 3 04:21:39 2013 From: amine.elabidi at cristal.rnu.tn (amine) Date: Mon, 3 Jun 2013 12:21:39 +0100 Subject: [ndnSIM] Problem Stopping Producer Message-ID: <002d01ce604c$8474ef40$8d5ecdc0$@cristal.rnu.tn> Hi, I have problem to set a stopping time for a producer application. I took the ndn-simple example and I add a stopping time by using the Application container. It compiles fine, but with a stopping time for the producer lower than the Simulation time, it gives me a SIGSEGV error (Segment Fault) What can I do to correct this? Best Regards Amine ABIDI -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jun 3 10:18:01 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 3 Jun 2013 10:18:01 -0700 Subject: [ndnSIM] Problem Stopping Producer In-Reply-To: <002d01ce604c$8474ef40$8d5ecdc0$@cristal.rnu.tn> References: <002d01ce604c$8474ef40$8d5ecdc0$@cristal.rnu.tn> Message-ID: <3F6C60CB-BE92-4BD6-90EC-984A0FDA5C87@ucla.edu> Hi Amine, Thanks for noticing the problem! Apparently, there was a small bug in FibImpl::RemoveFromAll, which did incomplete removal of FIB entry when producer application ceases to exist. I have pushed an update that fixes the problem. --- Alex On Jun 3, 2013, at 4:21 AM, "amine" wrote: > Hi, > I have problem to set a stopping time for a producer application. > I took the ndn-simple example and I add a stopping time by using the Application container. It compiles fine, but with a stopping time for the producer lower than the Simulation time, it gives me a SIGSEGV error (Segment Fault) > What can I do to correct this? > > Best Regards > > > Amine ABIDI -------------- next part -------------- An HTML attachment was scrubbed... URL: From pinto2304 at gmail.com Tue Jun 4 02:38:09 2013 From: pinto2304 at gmail.com (Axel Pinto) Date: Tue, 4 Jun 2013 11:38:09 +0200 Subject: [ndnSIM] caching Message-ID: Hi, I want to test the different policies of the caching and for that I want to disable the caching from all the routers except one. I do not find how to do this. Can you help me, please ? Best Ragrds. Axel Pinto. -------------- next part -------------- An HTML attachment was scrubbed... URL: From saeid.montazeri at gmail.com Tue Jun 4 03:21:57 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Tue, 4 Jun 2013 18:21:57 +0800 Subject: [ndnSIM] caching In-Reply-To: References: Message-ID: Dear Alex, You can set the content store size to 1. If the number of total packets in your network is very large compare to the number of nodes with cache size equal to 1, the effect of cache size equals 1 is negligible and it is similar to CS with size zero. CS size equals to 0 was interpreted as unlimited cache size as far as I know. But if you need to disable CS in total, you should write a new cache policy which disables the cache. You can see how the LRU, FIFO, ... policies have been implemented and follows the implementation style. Best Regards, Saeid On Tue, Jun 4, 2013 at 5:38 PM, Axel Pinto wrote: > Hi, > I want to test the different policies of the caching and for that I want > to disable the caching from all the routers except one. I do not find how > to do this. Can you help me, please ? > Best Ragrds. > Axel Pinto. > > _______________________________________________ > 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 blindeafer at 163.com Tue Jun 4 05:29:12 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Tue, 4 Jun 2013 20:29:12 +0800 (CST) Subject: [ndnSIM] Build failed! Message-ID: <678ba233.29e4a.13f0f299ab0.Coremail.blindeafer@163.com> Hi all, After I modify confugure: ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib ./waf There is a error: /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 What can I do to solve it? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioannoa at scss.tcd.ie Tue Jun 4 07:35:41 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Tue, 4 Jun 2013 15:35:41 +0100 Subject: [ndnSIM] ndnSIM Digest, Vol 6, Issue 35 How to get instant link load In-Reply-To: References: Message-ID: <3487d98b0bd0b396e253a63c3057f7c4.squirrel@webmail.scss.tcd.ie> > Send ndnSIM mailing list submissions to > ndnsim at lists.cs.ucla.edu > > To subscribe or unsubscribe via the World Wide Web, visit > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > or, via email, send a message with subject or body 'help' to > ndnsim-request at lists.cs.ucla.edu > > You can reach the person managing the list at > ndnsim-owner at lists.cs.ucla.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of ndnSIM digest..." > > > Today's Topics: > > 1. Re: initial RTO value (Yaogong Wang) > 2. Re: initial RTO value (Alex Afanasyev) > 3. How to get instant link load (???) > 4. Realistic but small topology for cache performance evaluation > (Saeid Montazeri) > 5. Re: How to get instant link load (Alex Afanasyev) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 28 May 2013 11:21:32 -0400 > From: Yaogong Wang > To: Alex Afanasyev > Cc: yao hu , "ndnsim at lists.cs.ucla.edu" > > Subject: Re: [ndnSIM] initial RTO value > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Hi Alex, > > I believe the initial RTO should not be 200ms. According to the code, RTO > is set to m_currentEstimatedRtt + 4 * m_variance bounded by minRto and > maxRto. By default, m_currentEstimatedRtt is initially set to 1s ( > InitialEstimation) and m_variance to 0. Hence, the initial RTO should be > 1s > which is within minRto=200ms and maxRto=200s. > > The current code does set initial RTO to 200ms due to a bug that sets > m_currentEstimatedRtt to 0 initially. I have reported the bug here: > https://github.com/NDN-Routing/ndnSIM/issues/40 > > Thanks, > Yaogong > > > On Wed, May 22, 2013 at 4:40 PM, Alex Afanasyev < > alexander.afanasyev at ucla.edu> wrote: > >> Hi huyao, >> >> Yes. There is an initial RTO value and it is 200ms. You can control >> this >> value by setting "ns3::ndn::RttEstimator::MinRTO" value. ndnSIM uses a >> modified version of RTT estimator, originally in Internet module: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/ndn-rtt-estimator.cc >> . >> >> -- >> Alex >> >> On May 22, 2013, at 10:52 AM, yao hu wrote: >> >> Hi Alex, >> >> Is there a default initial RTO value for consumer node? RTO should be >> calculated based on the observed RTT samples, but how about the first >> Interest timeout for some reason? If there is a default initial value, >> is >> it 200ms? >> >> Thanks for your explanation~ >> >> Regards, >> huyao >> >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> > > > -- > ============================ > 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: > > > ------------------------------ > > Message: 2 > Date: Tue, 28 May 2013 11:11:41 -0700 > From: Alex Afanasyev > To: Yaogong Wang > Cc: yao hu , "ndnsim at lists.cs.ucla.edu" > > Subject: Re: [ndnSIM] initial RTO value > Message-ID: > Content-Type: text/plain; charset="us-ascii" > > Hi Yaogong, > > Thanks for opening an issue and finding the problem! I just incorporated > your commit that fixes the incorrect initialization of attributes. > > As of now, the initial RTO is 1 second, and later cannot become smaller > than the minimum, which is by default set to 200ms. > > --- > Alex > > On May 28, 2013, at 8:21 AM, Yaogong Wang wrote: > >> Hi Alex, >> >> I believe the initial RTO should not be 200ms. According to the code, >> RTO is set to m_currentEstimatedRtt + 4 * m_variance bounded by minRto >> and maxRto. By default, m_currentEstimatedRtt is initially set to 1s >> (InitialEstimation) and m_variance to 0. Hence, the initial RTO should >> be 1s which is within minRto=200ms and maxRto=200s. >> >> The current code does set initial RTO to 200ms due to a bug that sets >> m_currentEstimatedRtt to 0 initially. I have reported the bug here: >> https://github.com/NDN-Routing/ndnSIM/issues/40 >> >> Thanks, >> Yaogong >> >> >> On Wed, May 22, 2013 at 4:40 PM, Alex Afanasyev >> wrote: >> Hi huyao, >> >> Yes. There is an initial RTO value and it is 200ms. You can control >> this value by setting "ns3::ndn::RttEstimator::MinRTO" value. ndnSIM >> uses a modified version of RTT estimator, originally in Internet module: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/ndn-rtt-estimator.cc. >> >> -- >> Alex >> >> On May 22, 2013, at 10:52 AM, yao hu wrote: >> >>> Hi Alex, >>> >>> Is there a default initial RTO value for consumer node? RTO should be >>> calculated based on the observed RTT samples, but how about the first >>> Interest timeout for some reason? If there is a default initial value, >>> is it 200ms? >>> >>> Thanks for your explanation~ >>> >>> Regards, >>> huyao >>> >>> >>> >>> >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> >> >> >> -- >> ============================ >> 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: > > > ------------------------------ > > Message: 3 > Date: Wed, 29 May 2013 09:49:45 +0800 (CST) > From: ??? > To: ndnsim at lists.cs.ucla.edu > Subject: [ndnSIM] How to get instant link load > Message-ID: <5cf55571.2c78.13eedfa04a0.Coremail.blindeafer at 163.com> > Content-Type: text/plain; charset="gbk" > > Hi all, > I have an idea about cache scheme.In this scheme,I want to get the instant > incoming link load everytime a contentobject come into a node and the > outgoing link load(s) according to PIT entry if the contentobject is > matched in PIT.What function I could modify and how can I write function > to realize this idea? > BTW,I wonder if a node will cache every contentobject when it comes > in?What class and member function a node implement to cache a > contentobject? > > > Best regards. > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > > ------------------------------ > > Message: 4 > Date: Wed, 29 May 2013 12:06:48 +0800 > From: Saeid Montazeri > To: ndnsim at lists.cs.ucla.edu > Subject: [ndnSIM] Realistic but small topology for cache performance > evaluation > Message-ID: > > Content-Type: text/plain; charset="iso-8859-1" > > Dears in ndnSIM, > > I want to evaluate the cache performance in NDN. I need a realistic > topology. I have seen some topology generators such as inet. In addition, > I > investigated some traces such as those measured by rocketfuel. However, > the > problem with these tools and traces is the topology scale. That is, the > topology has a large number of nodes which make the execution time of the > simulation very long. In addition, I need a topology which has at least > two > connected ISPs because I want to measure the exchanged traffic between > ISPs. > > Please let me know if you have any suggestion. > > Best Regards, > Saeid > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > > ------------------------------ > Hello, I just wonna stick to the last sentence of the below message regards to where should a new caching policy be implemented. I searched through some related classes and figured out an option of how to do so and just want to verify here or to let me know if someone has a better idea. I figured that when using the stackHelper to create your nodes the constructor automatically initiates the content store to use LRU policy and caching every object along the way. The main reason for it is the implementation class used, named as ndn-content-store-impl. That class inherits the main functions from the ndn-content-store class which has just virtual functions in it for the main operations that a content store has, e.g. lookup, add of an object, print -as far as i remember. So, would it be ok to implement a class that inherits the ndn-content-store class but identify the add function differently - doing caching only under some certain circumstances. If anyone has an opinion on this please let me know. Thanks in advance for your time! Kind regards, Andriana. > Message: 5 > Date: Tue, 28 May 2013 23:21:53 -0700 > From: Alex Afanasyev > To: ??? > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] How to get instant link load > Message-ID: <513C38AB-85DB-4DB7-8F7B-A7234B1842FE at ucla.edu> > Content-Type: text/plain; charset="utf-8" > > Hi! > > Can you define "instant" load more specifically? You can't have "instant" > load, since it would be either 100% (packet "on the line") or 0% (nothing > is on the line). > > In any case, to implement this, you could extend forwarding strategy to > keep track of amount of sent/received data on each face. Here is some > example (though not exactly what you're looking for) > https://github.com/cawka/ndnSIM-ddos-interest-flooding/blob/master/extensions/stats.h > how it can be implemented. In the example, the forwarding strategy > extension keeps track of number of forwarded interests and number of > unsatisfied. You can overload different methods (InInterest, InData, > DidSendOutInterest, DidSendOutData) and get amount of sent/received data > instead. > > After you have this module implemented, you can create a policy to control > how DATA packets are cached. Currently, there are a number of policies > available, including LRU, LFU, Random, Persistent, and some other. It is > not the case with all policies that all passing by DATA packets will be > cached. For example, with Random policy, there is always a chance that > new item will be rejected. In your case, you would need to write a > policy, that on every insert consults "stats" module and applies > probabilistic decision whether to cache item or not. > > > Here is just a little bit background that could be useful to understand > content store (I made this example before for FIB, but it is good for > Content Store as well): > > ----------------- > > Content Store (as well as FIB and PIT) is organized using the underlying > data structure that is a complex tree. Each node of the tree corresponds > to a name component, and connection to child nodes is implemented as a > hash array. If you want, you can check more details by looking into the > source code in > https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/trie.h. > > An example > > Let say, Content Store has cached DATA packets with the following names: > > /a > /a/b > /a/d > /b/a > /b/b > > The structure that will be created would look like > > (root) --- a (*) ----- b (*) > \ \ > \ \------ d (*) > \ > \----- b ----- a (*) > \ > \---- b (*) > > The nodes with (*) mean that at this level there is a payload (valid CS > entry), which can be returned during the lookup process. > > Children on each level are stored in a hash-based container. > > In addition to this trie structure, each inserted item is also subject to > a policy: every time an item is inserted, looked up, modified, or > deleted, a policy is getting notified and can do some action, e.g., remove > item, promote item, or do something else. Here are links to existing > policy implementations: > LRU: > https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/lru-policy.h > LFU: > https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/lfu-policy.h > Random: > https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/random-policy.h > Persistent: > https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/persistent-policy.h > > ----------------- > > --- > Alex > > On May 28, 2013, at 6:49 PM, ??? wrote: > >> Hi all, >> I have an idea about cache scheme.In this scheme,I want to get the >> instant incoming link load everytime a contentobject come into a node >> and the outgoing link load(s) according to PIT entry if the >> contentobject is matched in PIT.What function I could modify and how can >> I write function to realize this idea? >> BTW,I wonder if a node will cache every contentobject when it comes >> in?What class and member function a node implement to cache a >> contentobject? >> >> Best regards. >> >> >> _______________________________________________ >> 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: > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > ------------------------------ > > End of ndnSIM Digest, Vol 6, Issue 35 > ************************************* > From alexander.afanasyev at ucla.edu Tue Jun 4 10:13:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 4 Jun 2013 10:13:48 -0700 Subject: [ndnSIM] caching In-Reply-To: References: Message-ID: Thanks Saeid! Yes, if it is acceptable in your simulations, you could simply set MaxSize to 1, which will effectively disable caching. However, I decided to make a trivial implementation of content store that does not incur additional overhead if caching really needs to be disabled. If you get the latest update from github, you can start using ns3::ndn::cs::Nocache content store, which basically does nothing. For an example usage, you can refer to examples/ndn-simple-with-cs-lfu.cc. --- Alex On Jun 4, 2013, at 3:21 AM, Saeid Montazeri wrote: > Dear Alex, > > You can set the content store size to 1. If the number of total packets in your network is very large compare to the number of nodes with cache size equal to 1, the effect of cache size equals 1 is negligible and it is similar to CS with size zero. CS size equals to 0 was interpreted as unlimited cache size as far as I know. > > But if you need to disable CS in total, you should write a new cache policy which disables the cache. You can see how the LRU, FIFO, ... policies have been implemented and follows the implementation style. > > Best Regards, > Saeid > > On Tue, Jun 4, 2013 at 5:38 PM, Axel Pinto wrote: > Hi, > I want to test the different policies of the caching and for that I want to disable the caching from all the routers except one. I do not find how to do this. Can you help me, please ? > Best Ragrds. > Axel Pinto. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jun 4 10:16:58 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 4 Jun 2013 10:16:58 -0700 Subject: [ndnSIM] Build failed! In-Reply-To: <678ba233.29e4a.13f0f299ab0.Coremail.blindeafer@163.com> References: <678ba233.29e4a.13f0f299ab0.Coremail.blindeafer@163.com> Message-ID: Hi! Did you put some scenario files in scratch/ folder? The error is basically telling that ./waf is trying to compile some source as a program (expects `main' function), though it is not really a stand-alone program. If you can give more context (what and where you put, more detailed output on what was compiled using ./waf -v), we probably can give a better advice what to do. --- Alex On Jun 4, 2013, at 5:29 AM, ??? wrote: > Hi all, > After I modify confugure: > ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib > ./waf > There is a error: > /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 > > What can I do to solve it? > > Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jun 4 10:28:18 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 4 Jun 2013 10:28:18 -0700 Subject: [ndnSIM] ndnSIM Digest, Vol 6, Issue 35 How to get instant link load In-Reply-To: <3487d98b0bd0b396e253a63c3057f7c4.squirrel@webmail.scss.tcd.ie> References: <3487d98b0bd0b396e253a63c3057f7c4.squirrel@webmail.scss.tcd.ie> Message-ID: Hi Andriana, If you're using stackHelper, it is possible to specify which exactly version of content store you want to initialize during "Install" phase and optionally it's parameters. For example: helper.SetContentStore ("ns3::ndn::cs::Lfu", "MaxSize", "100000"); If you want to have different content stores installed on different nodes, you can select content stores, then install stack on some nodes, then change selection and install NDN stack on other nodes. I just made an example of that in `examples/ndn-simple-with-cs-lfu.cc'. While I would still recommend implementing "custom" content stores using policies (so you would not need to reimplement data structure for storage, correct lookup process, which takes care of finding cached item using potentially shorter name from the interest, does some "standard" logging so you can use cache tracer, etc.), it is possible to implement a completely different content store just by inheriting from ns3::ndn::ContentStore class, exactly as you described. In fact, you probably have seen my message that I just sent to mailing list about Nocache "content store". In this implementation I did exactly this (made a new class inherited from ContentStore and implemented pure virtual methods), since there is no need for special data structures or complex lookups. --- Alex > Hello, > > I just wonna stick to the last sentence of the below message regards to > where should a new caching policy be implemented. I searched through some > related classes and figured out an option of how to do so and just want to > verify here or to let me know if someone has a better idea. I figured that > when using the stackHelper to create your nodes the constructor > automatically initiates the content store to use LRU policy and caching > every object along the way. The main reason for it is the implementation > class used, named as ndn-content-store-impl. That class inherits the main > functions from the ndn-content-store class which has just virtual > functions in it for the main operations that a content store has, e.g. > lookup, add of an object, print -as far as i remember. So, would it be ok > to implement a class that inherits the ndn-content-store class but > identify the add function differently - doing caching only under some > certain circumstances. If anyone has an opinion on this please let me > know. > > Thanks in advance for your time! > > Kind regards, > Andriana. > >> Message: 5 >> Date: Tue, 28 May 2013 23:21:53 -0700 >> From: Alex Afanasyev >> To: ??? >> Cc: ndnsim at lists.cs.ucla.edu >> Subject: Re: [ndnSIM] How to get instant link load >> Message-ID: <513C38AB-85DB-4DB7-8F7B-A7234B1842FE at ucla.edu> >> Content-Type: text/plain; charset="utf-8" >> >> Hi! >> >> Can you define "instant" load more specifically? You can't have "instant" >> load, since it would be either 100% (packet "on the line") or 0% (nothing >> is on the line). >> >> In any case, to implement this, you could extend forwarding strategy to >> keep track of amount of sent/received data on each face. Here is some >> example (though not exactly what you're looking for) >> https://github.com/cawka/ndnSIM-ddos-interest-flooding/blob/master/extensions/stats.h >> how it can be implemented. In the example, the forwarding strategy >> extension keeps track of number of forwarded interests and number of >> unsatisfied. You can overload different methods (InInterest, InData, >> DidSendOutInterest, DidSendOutData) and get amount of sent/received data >> instead. >> >> After you have this module implemented, you can create a policy to control >> how DATA packets are cached. Currently, there are a number of policies >> available, including LRU, LFU, Random, Persistent, and some other. It is >> not the case with all policies that all passing by DATA packets will be >> cached. For example, with Random policy, there is always a chance that >> new item will be rejected. In your case, you would need to write a >> policy, that on every insert consults "stats" module and applies >> probabilistic decision whether to cache item or not. >> >> >> Here is just a little bit background that could be useful to understand >> content store (I made this example before for FIB, but it is good for >> Content Store as well): >> >> ----------------- >> >> Content Store (as well as FIB and PIT) is organized using the underlying >> data structure that is a complex tree. Each node of the tree corresponds >> to a name component, and connection to child nodes is implemented as a >> hash array. If you want, you can check more details by looking into the >> source code in >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/trie.h. >> >> An example >> >> Let say, Content Store has cached DATA packets with the following names: >> >> /a >> /a/b >> /a/d >> /b/a >> /b/b >> >> The structure that will be created would look like >> >> (root) --- a (*) ----- b (*) >> \ \ >> \ \------ d (*) >> \ >> \----- b ----- a (*) >> \ >> \---- b (*) >> >> The nodes with (*) mean that at this level there is a payload (valid CS >> entry), which can be returned during the lookup process. >> >> Children on each level are stored in a hash-based container. >> >> In addition to this trie structure, each inserted item is also subject to >> a policy: every time an item is inserted, looked up, modified, or >> deleted, a policy is getting notified and can do some action, e.g., remove >> item, promote item, or do something else. Here are links to existing >> policy implementations: >> LRU: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/lru-policy.h >> LFU: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/lfu-policy.h >> Random: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/random-policy.h >> Persistent: >> https://github.com/NDN-Routing/ndnSIM/blob/master/utils/trie/persistent-policy.h >> >> ----------------- >> >> --- >> Alex >> >> On May 28, 2013, at 6:49 PM, ??? wrote: >> >>> Hi all, >>> I have an idea about cache scheme.In this scheme,I want to get the >>> instant incoming link load everytime a contentobject come into a node >>> and the outgoing link load(s) according to PIT entry if the >>> contentobject is matched in PIT.What function I could modify and how can >>> I write function to realize this idea? >>> BTW,I wonder if a node will cache every contentobject when it comes >>> in?What class and member function a node implement to cache a >>> contentobject? >>> >>> Best regards. From huyao0107 at gmail.com Wed Jun 5 07:57:51 2013 From: huyao0107 at gmail.com (yao hu) Date: Wed, 5 Jun 2013 23:57:51 +0900 Subject: [ndnSIM] Interest Nack Message-ID: Hi Alex, Does any document explain the Interest Nack packet format in the current ndnsim? How do I get the error code (duplicate, congestion..) in an Interest Nack? Thanks a lot~ Regards, huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jun 5 10:02:23 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 5 Jun 2013 10:02:23 -0700 Subject: [ndnSIM] Interest Nack In-Reply-To: References: Message-ID: <6D751DFC-CF82-4CB1-B86F-73AF7E69CE9D@ucla.edu> Hi huyao, To get NACK type from Interest, you can use Interest::GetNack() method (http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_interest.html#a8071c5f879364e1541fd74ecc549cebf). If you really want the packet format (not just API), it is defined here: http://ndnsim.net/ndnsim-packet-formats.html#interest (I just added clarification about NackType field) --- Alex On Jun 5, 2013, at 7:57 AM, yao hu wrote: > Hi Alex, > > Does any document explain the Interest Nack packet format in the current ndnsim? How do I get the error code (duplicate, congestion..) in an Interest Nack? > > Thanks a lot~ > > > Regards, > huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Fri Jun 7 01:19:52 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Fri, 7 Jun 2013 17:19:52 +0900 Subject: [ndnSIM] Inconsistency of Random replacement policy Message-ID: Hello Alex and All, I did some experiments and found some wired results. The experimental setup is as follows. (Random, Lru, or Lfu) node 2 <--- (producer) l l (Random) node 1 <--- (consumer, Zipfmandelbrot) The cascading network has 2 nodes. These nodes has the same size of Content Store. Consumer and producer are installed in nodes 1 and 2, respectively. Zipfmendelbrot is set as the Interest traffic model for consumer. Random is the replacement policy for node 1 while either Random, Lru, or Lfu is the replacement policy of node 2. The cache hit rate at node 1 (the first-hop node) should be consistent and independent of the replacement policy deployed in node 2. However, the results don't follow the above logic. The cache hit rate at node 1 when either Lru or Lfu is set as the replacement policy of node 2 are exactly the same but different from when Random is the replacement policy of node 2. In addition, I don't see any problem when Lfu or Lru is set as replacement policy of node 1. Is it a bug or random seed problem? Could you give me any idea? Thanks a lot for your time. Regards, Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From saeid.montazeri at gmail.com Fri Jun 7 04:06:09 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Fri, 7 Jun 2013 19:06:09 +0800 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Dear Saran, Would you please let us more about your experiment setting: how long the consumer generates Interests or how many requests are generated? Meanwhile, my guess is that the problem may be because of the sequence of the random number that is used by random replacement policies. *If both policies in node 1 and 2 use the same random number generator(or at least dependent random number generators)*, the problem is because of that. If we assume that is the case, suppose that a random number sequences for cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet will not be written to the cache). If only one replacement policy is random then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, if both of the nodes have random replacement policies, the replaced slot in the first node depends on the misses in the second node. *If the policies in node 1 and 2 use independent random generators*, I have no idea. In any case, would you please let us know for how many requests you did the experiment. Because I think it should be related to the transient behavior of the system and if you run the simulation for enough long period of time, you may get pretty close results. Best Regards, Saeid On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: > Hello Alex and All, > > I did some experiments and found some wired results. > The experimental setup is as follows. > > (Random, Lru, or Lfu) node 2 <--- (producer) > l > l > (Random) node 1 <--- (consumer, Zipfmandelbrot) > > The cascading network has 2 nodes. > These nodes has the same size of Content Store. > Consumer and producer are installed in nodes 1 and 2, respectively. > Zipfmendelbrot is set as the Interest traffic model for consumer. > > Random is the replacement policy for node 1 while either Random, Lru, or > Lfu is the replacement policy of node 2. > > The cache hit rate at node 1 (the first-hop node) should be consistent and > independent of the replacement policy deployed in node 2. > However, the results don't follow the above logic. > > The cache hit rate at node 1 when either Lru or Lfu is set as the > replacement policy of node 2 are exactly the same but different from when > Random is the replacement policy of node 2. > > In addition, I don't see any problem when Lfu or Lru is set as replacement > policy of node 1. > > Is it a bug or random seed problem? > Could you give me any idea? > Thanks a lot for your time. > > Regards, > Saran Tarnoi > > _______________________________________________ > 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 sarantarnoi at gmail.com Fri Jun 7 04:52:16 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Fri, 7 Jun 2013 20:52:16 +0900 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Dear Saeid and All, Thank you very much for your helpful answer. :) I also agree with your first thought. Two nodes may use the same generated sequence of random seed. In my experiment, the number of generated interests was quite small, 200,000 interests with 60,000 interest warm up period. The cache size is 100 objects. The scale is tiny but the difference of results obviously appears. I'm running simulation for 2,000,000 interests with 1,000,000 interest warm up period to see whether or not the interest number can help. Thank you again. Regards, Saran Tarnoi 2013/6/7 Saeid Montazeri > Dear Saran, > > Would you please let us more about your experiment setting: how long the > consumer generates Interests or how many requests are generated? > > Meanwhile, my guess is that the problem may be because of the sequence of > the random number that is used by random replacement policies. *If both > policies in node 1 and 2 use the same random number generator(or at least > dependent random number generators)*, the problem is because of that. If > we assume that is the case, suppose that a random number sequences for > cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet will > not be written to the cache). If only one replacement policy is random > then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, > if both of the nodes have random replacement policies, the replaced slot in > the first node depends on the misses in the second node. *If the policies > in node 1 and 2 use independent random generators*, I have no idea. > In any case, would you please let us know for how many requests you did > the experiment. Because I think it should be related to the > transient behavior of the system and if you run the simulation for enough > long period of time, you may get pretty close results. > > Best Regards, > Saeid > > > > On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: > >> Hello Alex and All, >> >> I did some experiments and found some wired results. >> The experimental setup is as follows. >> >> (Random, Lru, or Lfu) node 2 <--- (producer) >> l >> l >> (Random) node 1 <--- (consumer, Zipfmandelbrot) >> >> The cascading network has 2 nodes. >> These nodes has the same size of Content Store. >> Consumer and producer are installed in nodes 1 and 2, respectively. >> Zipfmendelbrot is set as the Interest traffic model for consumer. >> >> Random is the replacement policy for node 1 while either Random, Lru, or >> Lfu is the replacement policy of node 2. >> >> The cache hit rate at node 1 (the first-hop node) should be consistent >> and independent of the replacement policy deployed in node 2. >> However, the results don't follow the above logic. >> >> The cache hit rate at node 1 when either Lru or Lfu is set as the >> replacement policy of node 2 are exactly the same but different from when >> Random is the replacement policy of node 2. >> >> In addition, I don't see any problem when Lfu or Lru is set as >> replacement policy of node 1. >> >> Is it a bug or random seed problem? >> Could you give me any idea? >> Thanks a lot for your time. >> >> Regards, >> Saran Tarnoi >> >> _______________________________________________ >> 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: From saeid.montazeri at gmail.com Fri Jun 7 05:27:59 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Fri, 7 Jun 2013 20:27:59 +0800 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Dear Saran, 1. May we know the total number of contents in the network. In addition, what is the size distribution of the contents. (in total how many different Data packets exist in the network). 2. What is the difference between cache hit ratios? Best Regards, Saeid On Fri, Jun 7, 2013 at 7:52 PM, Saran Tarnoi wrote: > Dear Saeid and All, > > Thank you very much for your helpful answer. :) > I also agree with your first thought. Two nodes may use the same generated > sequence of random seed. > > In my experiment, the number of generated interests was quite small, > 200,000 interests with 60,000 interest warm up period. > The cache size is 100 objects. > The scale is tiny but the difference of results obviously appears. > > I'm running simulation for 2,000,000 interests with 1,000,000 interest > warm up period to see whether or not the interest number can help. > Thank you again. > > Regards, > Saran Tarnoi > > > > 2013/6/7 Saeid Montazeri > >> Dear Saran, >> >> Would you please let us more about your experiment setting: how long the >> consumer generates Interests or how many requests are generated? >> >> Meanwhile, my guess is that the problem may be because of the sequence of >> the random number that is used by random replacement policies. *If both >> policies in node 1 and 2 use the same random number generator(or at least >> dependent random number generators)*, the problem is because of that. If >> we assume that is the case, suppose that a random number sequences for >> cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet will >> not be written to the cache). If only one replacement policy is random >> then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, >> if both of the nodes have random replacement policies, the replaced slot in >> the first node depends on the misses in the second node. *If the >> policies in node 1 and 2 use independent random generators*, I have no >> idea. >> In any case, would you please let us know for how many requests you did >> the experiment. Because I think it should be related to the >> transient behavior of the system and if you run the simulation for enough >> long period of time, you may get pretty close results. >> >> Best Regards, >> Saeid >> >> >> >> On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: >> >>> Hello Alex and All, >>> >>> I did some experiments and found some wired results. >>> The experimental setup is as follows. >>> >>> (Random, Lru, or Lfu) node 2 <--- (producer) >>> l >>> l >>> (Random) node 1 <--- (consumer, Zipfmandelbrot) >>> >>> The cascading network has 2 nodes. >>> These nodes has the same size of Content Store. >>> Consumer and producer are installed in nodes 1 and 2, respectively. >>> Zipfmendelbrot is set as the Interest traffic model for consumer. >>> >>> Random is the replacement policy for node 1 while either Random, Lru, or >>> Lfu is the replacement policy of node 2. >>> >>> The cache hit rate at node 1 (the first-hop node) should be consistent >>> and independent of the replacement policy deployed in node 2. >>> However, the results don't follow the above logic. >>> >>> The cache hit rate at node 1 when either Lru or Lfu is set as the >>> replacement policy of node 2 are exactly the same but different from when >>> Random is the replacement policy of node 2. >>> >>> In addition, I don't see any problem when Lfu or Lru is set as >>> replacement policy of node 1. >>> >>> Is it a bug or random seed problem? >>> Could you give me any idea? >>> Thanks a lot for your time. >>> >>> Regards, >>> Saran Tarnoi >>> >>> _______________________________________________ >>> 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: From sarantarnoi at gmail.com Fri Jun 7 08:06:07 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Sat, 8 Jun 2013 00:06:07 +0900 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Dear Saeid and All, The exact number of the content objects in the network is 10,000 different objects (one interest for one content object.) The Zipf parameters q = 0 and s = 0.5, 1.0, 1.5, and 2.0. In other words, Zipf-Mandelbrot is simplified to Zipf distribution. There is no link bottleneck due to the redundant link capacity, so all the interests are satisfied. The differences of hit rate depend on Zipf parameters. The summary of the cache hit percentage of node 1, which uses Random as replacement policy (the replacement policy of node 2 is varied), is below. s Lfu Lru Random 0.5 1.865 1.865 2.572 1.0 33.123 33.123 36.467 1.5 86.542 86.542 86.025 2.0 98.646 98.646 98.348 The difference is obvious when s=1.0. If you need more information, please let me know. Thank you. Regards, Saran 2013/6/7 Saeid Montazeri > Dear Saran, > > 1. May we know the total number of contents in the network. In addition, > what is the size distribution of the contents. (in total how many different > Data packets exist in the network). > 2. What is the difference between cache hit ratios? > > Best Regards, > Saeid > > > On Fri, Jun 7, 2013 at 7:52 PM, Saran Tarnoi wrote: > >> Dear Saeid and All, >> >> Thank you very much for your helpful answer. :) >> I also agree with your first thought. Two nodes may use the same >> generated sequence of random seed. >> >> In my experiment, the number of generated interests was quite small, >> 200,000 interests with 60,000 interest warm up period. >> The cache size is 100 objects. >> The scale is tiny but the difference of results obviously appears. >> >> I'm running simulation for 2,000,000 interests with 1,000,000 interest >> warm up period to see whether or not the interest number can help. >> Thank you again. >> >> Regards, >> Saran Tarnoi >> >> >> >> 2013/6/7 Saeid Montazeri >> >>> Dear Saran, >>> >>> Would you please let us more about your experiment setting: how long the >>> consumer generates Interests or how many requests are generated? >>> >>> Meanwhile, my guess is that the problem may be because of the sequence >>> of the random number that is used by random replacement policies. *If >>> both policies in node 1 and 2 use the same random number generator(or at >>> least dependent random number generators)*, the problem is because of >>> that. If we assume that is the case, suppose that a random number sequences >>> for cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet >>> will not be written to the cache). If only one replacement policy is random >>> then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, >>> if both of the nodes have random replacement policies, the replaced slot in >>> the first node depends on the misses in the second node. *If the >>> policies in node 1 and 2 use independent random generators*, I have no >>> idea. >>> In any case, would you please let us know for how many requests you did >>> the experiment. Because I think it should be related to the >>> transient behavior of the system and if you run the simulation for enough >>> long period of time, you may get pretty close results. >>> >>> Best Regards, >>> Saeid >>> >>> >>> >>> On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: >>> >>>> Hello Alex and All, >>>> >>>> I did some experiments and found some wired results. >>>> The experimental setup is as follows. >>>> >>>> (Random, Lru, or Lfu) node 2 <--- (producer) >>>> l >>>> l >>>> (Random) node 1 <--- (consumer, Zipfmandelbrot) >>>> >>>> The cascading network has 2 nodes. >>>> These nodes has the same size of Content Store. >>>> Consumer and producer are installed in nodes 1 and 2, respectively. >>>> Zipfmendelbrot is set as the Interest traffic model for consumer. >>>> >>>> Random is the replacement policy for node 1 while either Random, Lru, >>>> or Lfu is the replacement policy of node 2. >>>> >>>> The cache hit rate at node 1 (the first-hop node) should be consistent >>>> and independent of the replacement policy deployed in node 2. >>>> However, the results don't follow the above logic. >>>> >>>> The cache hit rate at node 1 when either Lru or Lfu is set as the >>>> replacement policy of node 2 are exactly the same but different from when >>>> Random is the replacement policy of node 2. >>>> >>>> In addition, I don't see any problem when Lfu or Lru is set as >>>> replacement policy of node 1. >>>> >>>> Is it a bug or random seed problem? >>>> Could you give me any idea? >>>> Thanks a lot for your time. >>>> >>>> Regards, >>>> Saran Tarnoi >>>> >>>> _______________________________________________ >>>> 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 >> > > -- 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: From alexander.afanasyev at ucla.edu Fri Jun 7 09:55:37 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 7 Jun 2013 09:55:37 -0700 Subject: [ndnSIM] question about fragmentation implementation In-Reply-To: <20130606012629.GF37869@armakuni.lastninja.net> References: <20130605232146.GE37869@armakuni.lastninja.net> <092AE5BA-BA05-4B34-AF34-DE50159AC1BA@ucla.edu> <20130606012629.GF37869@armakuni.lastninja.net> Message-ID: <0680B78C-4CB7-4B58-9EC5-E42CC81967E1@ucla.edu> Hi Naveen, Thanks for the explanation. So, it should be pretty straightforward to implement the intra-hop fragmentation. The following assumes that you don't care about Interest/Data packets. If you need to distinguish, you would need to use ndn::HeaderHelper::GetNdnPacketType method. (The "future" plan is to have SendInterestImpl and SendDataImpl eventually, but I haven't got to that point yet.) As a first step, you should create a new Face class, inherited from ndn::NetDeviceFace, overriding RegisterProtocolHandler and SendImpl and implementing new ReceiveFromNetDeviceFragmented method (similar to existing ReceiveFromNetDevice, but with different things in it). In SendImpl you would need to chop off packet into pieces and add appropriate fragmentation headers (you'll need to implement a fragmentation header class, similar way Interest/Data class are implemented, then use packet->AddHeader method to add header). After that, you can send packet same way it is done in NetDeviceFace::SendImpl (using m_netDevice->Send). For the opposite part, you will need to implement assembly in ReceiveFromNetDeviceFragmented, which you "register" in overloaded RegisterProtocolHandler method. Don't forget to change EthernetFrame type. So you'll need to do something like: m_node->RegisterProtocolHandler (MakeCallback (&FragmenationNetDeviceFace::ReceiveFromNetDeviceFragmented, this), FragmenationNetDeviceFace::ETHERNET_FRAME_TYPE, m_netDevice, true/*promiscuous mode*/); If should also call parent's class RegisterProtocolHandler: NetDeviceFace::RegisterProtocolHandler (handler); this way, non fragmented packets will go to NDN stack directly (so, the same NetDevice will properly handle fragmented and non-fragmented packets). After assembly, you can simply call Receive (p), which will propagate packet to NDN stack. After you implement your class, you will need to do something like this in your scenarios: a) create a method Ptr FragmentedNetDeviceFaceCallback (Ptr node, Ptr ndn, Ptr device) { NS_LOG_DEBUG ("Creating ndn::FragmentedNetDeviceFace on node " << node->GetId ()); Ptr face = CreateObject (node, device); ndn->AddFace (face); return face; } ... b) call UpdateNetDeviceFaceCreateCallback of ndn::StackHelper before you install stack on nodes ndn::StackHelper helper; helper.UpdateNetDeviceFaceCreateCallback (ndn::FragmentedNetDeviceFace::GetTypeId (), MakeCallback (FragmentedNetDeviceFaceCallback)); This way, a correct NetDeviceFace will be automatically created during Install phase. Let me know if you have questions. --- Alex On Jun 5, 2013, at 6:26 PM, Naveen Nathan wrote: > Hi Alex, > > Thanks for the prompt reply. > > See below. > >> I guess, the implementation way would depend on fragmentation type. I didn't not fully understood the terminology (intra-hop, cut through), but I guess one means that each router can chop off interest/data and the next router on the path will assemble it back before processing (like NDNLP does). The other way is something like IP fragmentation. > > Sorry, hopefully this will explain intra-hop versus cut-through: > > Intra-hop fragmentation: > * If a packet exceeds the MTU of an outgoing interface, it must break it into smaller packets (fragments) sized at the MTU. > > * The fragments are forwarded over the link. > > * The adjacent node/router will MUST receive all fragments, reassemble the original packet, before further processing (i.e. forward lookup, PIT lookup/satisfying interest, etc.). > > Cut-through fragmentation: > * This is essentially the same as IP fragmentation. If a packet exceeds the MTU of an outgoing interface, it breaks it into smaller fragments. Each fragment contains a header to allow forwarding independent of the other fragments. > > * Adjacent nodes will forward fragments individually and are not required to store/retain/buffer fragments. It may do so if it plans to reassemble and cache content. Final destination MUST receive all fragments and also reassemble the original packet. > > >> With the first type, you would need to implement a custom ndn::NetDeviceFace class. This face class would talk to the network with fragmented versions of packets, but present everything to NDN stack as normal Interest/Data packets. > > It would be ideal to have the packet format be at the NDN transport (perhaps what NDNLP uses), this way the fragmentation scheme is agnostic to the transport (TCP, UDP, Ethernet, etc.) used. > >> For the second type, I'm not really seeing how it can be implemented... Or I'm misunderstanding something. Isn't it router suppose to know the whole interest before figuring out what to do with the interest? Similar with data... > > Interest packets must be fragmented using intra-hop fragmentation/reassembly. Cut-through will not work, because you need to know the entire name before doing a FIB lookup. > > Content packets however can be fragmented in a cut-through manner. However, in some cases this still may not work (since the name and content fields are arbitrary size). > > > For now, I want to try implementing just the interest fragmentation > (intra-hop fragmentation and reassembly). This should be an easier task. > From there, I would like to introduce a more elaborate cut-through scheme. > > I have a cut-through implementation in CCNx, but the problem is that due > to the complexity of ccnd and the code, it is hard to keep maintained and > there's too many details missing (such as signature verification). It also > makes doing simulation difficult. That is why I would like to implement > in ndnsim first, and gather some interesting results. > > Let me know if you need more explanation. > > Thanks Alex. > > - Naveen From zguirayosra at gmail.com Sat Jun 8 03:11:41 2013 From: zguirayosra at gmail.com (Yosra Zguira) Date: Sat, 8 Jun 2013 12:11:41 +0200 Subject: [ndnSIM] Problem in execution of an example Message-ID: Hello everyone, I am new to using ndnSIM. I want to run the "ndn-simple" file which is under (~ / ns-3-allione/ndnSIM/ns-3/src/ndnSIM/examples). I write in the terminal ( ./waf --run ndn-simple) but it shows me an error ( ./waf: no such file or directory ). Knowing that I have installed the waf. Please help to run this script. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jun 8 09:28:59 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 8 Jun 2013 09:28:59 -0700 Subject: [ndnSIM] Problem in execution of an example In-Reply-To: References: Message-ID: <32CEECC1-BA2B-4AD3-8259-1193420D33DB@ucla.edu> Hi Yosra, From the path that you showed, I think something wrong with your installation. ndnSIM requires customized version of NS-3 and it needs to be placed into a specific location. Please check http://ndnsim.net/getting-started.html#downloading-ndnsim-source There are some step-by step instruction how to download everything, including ns-3 and ndnSIM, and how to run the example. --- Alex On Jun 8, 2013, at 3:11 AM, Yosra Zguira wrote: > Hello everyone, > > I am new to using ndnSIM. I want to run the "ndn-simple" file which is under (~ / ns-3-allione/ndnSIM/ns-3/src/ndnSIM/examples). > > I write in the terminal ( ./waf --run ndn-simple) but it shows me an error ( ./waf: no such file or directory ). > > Knowing that I have installed the waf. > Please help to run this script. > > Thank you. > _______________________________________________ > 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 saeid.montazeri at gmail.com Sun Jun 9 20:15:46 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Mon, 10 Jun 2013 11:15:46 +0800 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Dear Saran, I think if you try with different seeds and get the average, the difference may be disappeared even for s=1.0. Best Regards, Saeid On Fri, Jun 7, 2013 at 11:06 PM, Saran Tarnoi wrote: > Dear Saeid and All, > > The exact number of the content objects in the network is 10,000 different > objects (one interest for one content object.) > The Zipf parameters q = 0 and s = 0.5, 1.0, 1.5, and 2.0. In other words, > Zipf-Mandelbrot is simplified to Zipf distribution. > There is no link bottleneck due to the redundant link capacity, so all the > interests are satisfied. > > The differences of hit rate depend on Zipf parameters. > The summary of the cache hit percentage of node 1, which uses Random as > replacement policy (the replacement policy of node 2 is varied), is below. > > s Lfu Lru Random > 0.5 1.865 1.865 2.572 > 1.0 33.123 33.123 36.467 > 1.5 86.542 86.542 86.025 > 2.0 98.646 98.646 98.348 > > The difference is obvious when s=1.0. > If you need more information, please let me know. > Thank you. > > Regards, > Saran > > > > 2013/6/7 Saeid Montazeri > >> Dear Saran, >> >> 1. May we know the total number of contents in the network. In addition, >> what is the size distribution of the contents. (in total how many different >> Data packets exist in the network). >> 2. What is the difference between cache hit ratios? >> >> Best Regards, >> Saeid >> >> >> On Fri, Jun 7, 2013 at 7:52 PM, Saran Tarnoi wrote: >> >>> Dear Saeid and All, >>> >>> Thank you very much for your helpful answer. :) >>> I also agree with your first thought. Two nodes may use the same >>> generated sequence of random seed. >>> >>> In my experiment, the number of generated interests was quite small, >>> 200,000 interests with 60,000 interest warm up period. >>> The cache size is 100 objects. >>> The scale is tiny but the difference of results obviously appears. >>> >>> I'm running simulation for 2,000,000 interests with 1,000,000 interest >>> warm up period to see whether or not the interest number can help. >>> Thank you again. >>> >>> Regards, >>> Saran Tarnoi >>> >>> >>> >>> 2013/6/7 Saeid Montazeri >>> >>>> Dear Saran, >>>> >>>> Would you please let us more about your experiment setting: how long >>>> the consumer generates Interests or how many requests are generated? >>>> >>>> Meanwhile, my guess is that the problem may be because of the sequence >>>> of the random number that is used by random replacement policies. *If >>>> both policies in node 1 and 2 use the same random number generator(or at >>>> least dependent random number generators)*, the problem is because of >>>> that. If we assume that is the case, suppose that a random number sequences >>>> for cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet >>>> will not be written to the cache). If only one replacement policy is random >>>> then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, >>>> if both of the nodes have random replacement policies, the replaced slot in >>>> the first node depends on the misses in the second node. *If the >>>> policies in node 1 and 2 use independent random generators*, I have no >>>> idea. >>>> In any case, would you please let us know for how many requests you did >>>> the experiment. Because I think it should be related to the >>>> transient behavior of the system and if you run the simulation for enough >>>> long period of time, you may get pretty close results. >>>> >>>> Best Regards, >>>> Saeid >>>> >>>> >>>> >>>> On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: >>>> >>>>> Hello Alex and All, >>>>> >>>>> I did some experiments and found some wired results. >>>>> The experimental setup is as follows. >>>>> >>>>> (Random, Lru, or Lfu) node 2 <--- (producer) >>>>> l >>>>> l >>>>> (Random) node 1 <--- (consumer, Zipfmandelbrot) >>>>> >>>>> The cascading network has 2 nodes. >>>>> These nodes has the same size of Content Store. >>>>> Consumer and producer are installed in nodes 1 and 2, respectively. >>>>> Zipfmendelbrot is set as the Interest traffic model for consumer. >>>>> >>>>> Random is the replacement policy for node 1 while either Random, Lru, >>>>> or Lfu is the replacement policy of node 2. >>>>> >>>>> The cache hit rate at node 1 (the first-hop node) should be consistent >>>>> and independent of the replacement policy deployed in node 2. >>>>> However, the results don't follow the above logic. >>>>> >>>>> The cache hit rate at node 1 when either Lru or Lfu is set as the >>>>> replacement policy of node 2 are exactly the same but different from when >>>>> Random is the replacement policy of node 2. >>>>> >>>>> In addition, I don't see any problem when Lfu or Lru is set as >>>>> replacement policy of node 1. >>>>> >>>>> Is it a bug or random seed problem? >>>>> Could you give me any idea? >>>>> Thanks a lot for your time. >>>>> >>>>> Regards, >>>>> Saran Tarnoi >>>>> >>>>> _______________________________________________ >>>>> 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 >>> >> >> > > > -- > 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: From sarantarnoi at gmail.com Mon Jun 10 04:37:28 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Mon, 10 Jun 2013 20:37:28 +0900 Subject: [ndnSIM] CalculateRoutes and link cost Message-ID: Dear All, I'm curious how CalculateRoutes in cdnGlobalRoutingHelper actually works. Does it really take the link costs defined in topology file into routing consideration? I modified the link costs in topology file but the route didn't change at all. I found a very helpful guide about route metrics here. http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-March/000259.html However, cdnGlobalRoutingHelper.CalculateRoutes() don't follow the logic. It seems to me that it uses only the hop count as routing metric. If I misunderstand, please let me know. Thank you so much for your time. -- 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: From huyao0107 at gmail.com Mon Jun 10 07:47:29 2013 From: huyao0107 at gmail.com (yao hu) Date: Mon, 10 Jun 2013 23:47:29 +0900 Subject: [ndnSIM] nonce value deletion in PIT entry Message-ID: Hi Alex, I have two questions about implementation things in ndnsim? 1) About nonce value deletion in PIT entry. I know, for one node, one PIT entry has a list of nonces, could I just delete a specific nonce from the list of nonces, rather than deleting the whole PIT entry? 2) About on-path Data caching. Could I specify an Interest to fetch a Data from the content provider, and the Data will be not cached in intermediate nodes on the return path? This does not influence the Data in-network caching triggered by other Interests. Thanks very much for your reply! Regards, huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jun 10 11:00:05 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 10 Jun 2013 11:00:05 -0700 Subject: [ndnSIM] CalculateRoutes and link cost In-Reply-To: References: Message-ID: <6AC22B76-A48D-4397-91AB-D4DD590D12B8@ucla.edu> Hi Saran, There is one trick that is needed to activate link weights set up in topology file. Uou have to call topologyReader.ApplyOspfMetric (); after you installed NDN stack on nodes. I pushed a small example how to do it: https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-triangle-calculate-routes.cc The main reason why this requires a separate step is that these weights are applied on NDN level, which makes sense only after NDN stack is installed. However, to install NDN stack, one need to create nodes first. --- Alex On Jun 10, 2013, at 4:37 AM, Saran Tarnoi wrote: > Dear All, > > I'm curious how CalculateRoutes in cdnGlobalRoutingHelper actually works. > Does it really take the link costs defined in topology file into routing consideration? > I modified the link costs in topology file but the route didn't change at all. > > I found a very helpful guide about route metrics here. > http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-March/000259.html > > However, cdnGlobalRoutingHelper.CalculateRoutes() don't follow the logic. > It seems to me that it uses only the hop count as routing metric. > If I misunderstand, please let me know. > > Thank you so much for your time. > -- > 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 Mon Jun 10 11:06:59 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 10 Jun 2013 11:06:59 -0700 Subject: [ndnSIM] nonce value deletion in PIT entry In-Reply-To: References: Message-ID: Hi huyao, 1) It is not possible right now, but you can easily implement method pit::Entry::RemoveSeenNonce in pit/ndn-pit-entry.h|cc. The underlying data structure is a simple std::set. (Is there a reason you want this functionality?) 2) You can try to use content store that respects freshness field in DATA packets (http://ndnsim.net/cs.html#content-stores-respecting-freshness-field-of-contentobjects) and then set up different freshness parameter (SetFreshness) in different DATA packets. If you set freshness to 1ns (if you set up 0, freshness policy https://github.com/NDN-Routing/ndnSIM/blob/master/model/cs/custom-policies/freshness-policy.h#L107 will assume that DATA packet should be cached for as long as possible), which will force this specific packet to be removed from cache almost immediately. Alternatively, you can modify this policy (or better, create a new one) and treat freshness 0 as indication to disable caching. --- Alex On Jun 10, 2013, at 7:47 AM, yao hu wrote: > Hi Alex, > > I have two questions about implementation things in ndnsim? > > 1) About nonce value deletion in PIT entry. I know, for one node, one PIT entry has a list of nonces, could I just delete a specific nonce from the list of nonces, rather than deleting the whole PIT entry? > > 2) About on-path Data caching. Could I specify an Interest to fetch a Data from the content provider, and the Data will be not cached in intermediate nodes on the return path? This does not influence the Data in-network caching triggered by other Interests. > > Thanks very much for your reply! > > > Regards, > huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jun 10 11:29:42 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 10 Jun 2013 11:29:42 -0700 Subject: [ndnSIM] Inconsistency of Random replacement policy In-Reply-To: References: Message-ID: Hi Saran, I would also recommend to run your simulation with different seed: --RngRun= parameter in command line or Config::SetGlobal ("RngRun", IntegerValue (Run)); in the scenarion I have a suspicion that "similar" results you're observing for Lfu and Lru is that the only user of random stream is Zipf and Random policy on node1. So, in both cases, for the same RngRun parameter, you are getting exactly the same sequence of "random" numbers, and of course the results are exactly the same. When you install Random on the other node, you're basically getting something different, since sequences are different now. So, for your small experiment, try to make at least 10-20 independent runs with different RunRun (1, 2, 3, 4..., 20: this will properly initialize up NS-3 seeds), and then calculate measurement error and confidence intervals. I hope you get more explainable results then. --- Alex On Jun 9, 2013, at 8:15 PM, Saeid Montazeri wrote: > Dear Saran, > > I think if you try with different seeds and get the average, the difference may be disappeared even for s=1.0. > > Best Regards, > Saeid > > On Fri, Jun 7, 2013 at 11:06 PM, Saran Tarnoi wrote: > Dear Saeid and All, > > The exact number of the content objects in the network is 10,000 different objects (one interest for one content object.) > The Zipf parameters q = 0 and s = 0.5, 1.0, 1.5, and 2.0. In other words, Zipf-Mandelbrot is simplified to Zipf distribution. > There is no link bottleneck due to the redundant link capacity, so all the interests are satisfied. > > The differences of hit rate depend on Zipf parameters. > The summary of the cache hit percentage of node 1, which uses Random as replacement policy (the replacement policy of node 2 is varied), is below. > > s Lfu Lru Random > 0.5 1.865 1.865 2.572 > 1.0 33.123 33.123 36.467 > 1.5 86.542 86.542 86.025 > 2.0 98.646 98.646 98.348 > > The difference is obvious when s=1.0. > If you need more information, please let me know. > Thank you. > > Regards, > Saran > > > > 2013/6/7 Saeid Montazeri > Dear Saran, > > 1. May we know the total number of contents in the network. In addition, what is the size distribution of the contents. (in total how many different Data packets exist in the network). > 2. What is the difference between cache hit ratios? > > Best Regards, > Saeid > > > On Fri, Jun 7, 2013 at 7:52 PM, Saran Tarnoi wrote: > Dear Saeid and All, > > Thank you very much for your helpful answer. :) > I also agree with your first thought. Two nodes may use the same generated sequence of random seed. > > In my experiment, the number of generated interests was quite small, 200,000 interests with 60,000 interest warm up period. > The cache size is 100 objects. > The scale is tiny but the difference of results obviously appears. > > I'm running simulation for 2,000,000 interests with 1,000,000 interest warm up period to see whether or not the interest number can help. > Thank you again. > > Regards, > Saran Tarnoi > > > > 2013/6/7 Saeid Montazeri > Dear Saran, > > Would you please let us more about your experiment setting: how long the consumer generates Interests or how many requests are generated? > > Meanwhile, my guess is that the problem may be because of the sequence of the random number that is used by random replacement policies. If both policies in node 1 and 2 use the same random number generator(or at least dependent random number generators), the problem is because of that. If we assume that is the case, suppose that a random number sequences for cache size equals 2 be 1,2,1,2,2,1. (3 means that incoming Data packet will not be written to the cache). If only one replacement policy is random then 1,2,3,1,3,2,2,1 will be the replaced slots in the first node. However, if both of the nodes have random replacement policies, the replaced slot in the first node depends on the misses in the second node. If the policies in node 1 and 2 use independent random generators, I have no idea. > In any case, would you please let us know for how many requests you did the experiment. Because I think it should be related to the transient behavior of the system and if you run the simulation for enough long period of time, you may get pretty close results. > > Best Regards, > Saeid > > > > On Fri, Jun 7, 2013 at 4:19 PM, Saran Tarnoi wrote: > Hello Alex and All, > > I did some experiments and found some wired results. > The experimental setup is as follows. > > (Random, Lru, or Lfu) node 2 <--- (producer) > l > l > (Random) node 1 <--- (consumer, Zipfmandelbrot) > > The cascading network has 2 nodes. > These nodes has the same size of Content Store. > Consumer and producer are installed in nodes 1 and 2, respectively. > Zipfmendelbrot is set as the Interest traffic model for consumer. > > Random is the replacement policy for node 1 while either Random, Lru, or Lfu is the replacement policy of node 2. > > The cache hit rate at node 1 (the first-hop node) should be consistent and independent of the replacement policy deployed in node 2. > However, the results don't follow the above logic. > > The cache hit rate at node 1 when either Lru or Lfu is set as the replacement policy of node 2 are exactly the same but different from when Random is the replacement policy of node 2. > > In addition, I don't see any problem when Lfu or Lru is set as replacement policy of node 1. > > Is it a bug or random seed problem? > Could you give me any idea? > Thanks a lot for your time. > > Regards, > Saran Tarnoi > > _______________________________________________ > 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 > > > > > -- > 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 anilmaguluri at gmail.com Mon Jun 10 23:00:25 2013 From: anilmaguluri at gmail.com (Anil Kumar Maguluri) Date: Tue, 11 Jun 2013 11:30:25 +0530 Subject: [ndnSIM] Build Error Message-ID: Hi All, I am facing the below build error while doing .waf @ ns-3 dir under ndnSIM dir in UBUNTU. I am able to install the boot libraries successfully. I have followed the steps mentioned in http://ndnsim.net/faq.html#boost-libraries to install the boost libraries. ================================ [1020/2115] cxx: src/network/model/application.cc -> build/src/network/model/application.cc.1.o [1021/2115] cxx: src/network/model/address.cc -> build/src/network/model/address.cc.1.o [1022/2115] cxx: src/netanim/examples/wireless-animation.cc -> build/src/netanim/examples/wireless-animation.cc.4.o [1023/2115] cxx: src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc -> build/src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc.21.o [1024/2115] cxx: src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc -> build/src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.18.o [1025/2115] cxx: src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc -> build/src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc.17.o In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, from ./ns3/ndn-pit-entry.h:40, from ./ns3/ndnSIM-module.h:32, from ../src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc:24: /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, from ./ns3/ndn-pit-entry.h:40, from ./ns3/ndnSIM-module.h:32, from ../src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc:24: /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, from ./ns3/ndn-pit-entry.h:40, from ./ns3/ndnSIM-module.h:32, from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:24: /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? Waf: Leaving directory `/home/user/ndnSIM/ns-3/build' Build failed -> task in 'ndn-simple-with-pit-count-stats' failed (exit status 1): {task 167673996: cxx ndn-simple-with-pit-count-stats.cc -> ndn-simple-with-pit-count-stats.cc.21.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc.21.o'] -> task in 'ndn-simple-with-different-sizes-content-store' failed (exit status 1): {task 167317196: cxx ndn-simple-with-different-sizes-content-store.cc -> ndn-simple-with-different-sizes-content-store.cc.17.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc.17.o'] -> task in 'ndn-simple-with-cs-lfu' failed (exit status 1): {task 167334732: cxx ndn-simple-with-cs-lfu.cc -> ndn-simple-with-cs-lfu.cc.18.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.18.o'] user at anilmaguluri-ubuntu:~/ndnSIM/ns-3$ ================================ Please let me know how to resolve this. Thanks for your support. Thanks & Regards, Anil Kumar Maguluri -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jun 11 09:56:13 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 11 Jun 2013 09:56:13 -0700 Subject: [ndnSIM] Build Error In-Reply-To: References: Message-ID: <878EB782-E5AA-4E91-B680-D15BEA58C98D@ucla.edu> Hi Anil, Unfortunately, I was not able to reproduce the problem. Which version of Ubuntu you're using? If it is at least 12.04.2, then you can simply install boost libraries from packages (apt-get install libboost-all-dev) and NS-3 and ndnSIM should compile without problem (with boost 1.46) --- Alex On Jun 10, 2013, at 11:00 PM, Anil Kumar Maguluri wrote: > Hi All, > > I am facing the below build error while doing .waf @ ns-3 dir under ndnSIM dir in UBUNTU. > I am able to install the boot libraries successfully. I have followed the steps mentioned in http://ndnsim.net/faq.html#boost-libraries to install the boost libraries. > > ================================ > [1020/2115] cxx: src/network/model/application.cc -> build/src/network/model/application.cc.1.o > [1021/2115] cxx: src/network/model/address.cc -> build/src/network/model/address.cc.1.o > [1022/2115] cxx: src/netanim/examples/wireless-animation.cc -> build/src/netanim/examples/wireless-animation.cc.4.o > [1023/2115] cxx: src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc -> build/src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc.21.o > [1024/2115] cxx: src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc -> build/src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.18.o > [1025/2115] cxx: src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc -> build/src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc.17.o > In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, > from ./ns3/ndn-pit-entry.h:40, > from ./ns3/ndnSIM-module.h:32, > from ../src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc:24: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? > In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, > from ./ns3/ndn-pit-entry.h:40, > from ./ns3/ndnSIM-module.h:32, > from ../src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc:24: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? > In file included from /usr/local/include/boost/shared_ptr.hpp:17:0, > from ./ns3/ndn-pit-entry.h:40, > from ./ns3/ndnSIM-module.h:32, > from ../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc:24: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp: In member function ?void* boost::shared_ptr::_internal_get_untyped_deleter() const?: > /usr/local/include/boost/smart_ptr/shared_ptr.hpp:707:19: error: ?const class boost::detail::shared_count? has no member named ?get_untyped_deleter? > Waf: Leaving directory `/home/user/ndnSIM/ns-3/build' > Build failed > -> task in 'ndn-simple-with-pit-count-stats' failed (exit status 1): > {task 167673996: cxx ndn-simple-with-pit-count-stats.cc -> ndn-simple-with-pit-count-stats.cc.21.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-pit-count-stats.cc.21.o'] > -> task in 'ndn-simple-with-different-sizes-content-store' failed (exit status 1): > {task 167317196: cxx ndn-simple-with-different-sizes-content-store.cc -> ndn-simple-with-different-sizes-content-store.cc.17.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-different-sizes-content-store.cc.17.o'] > -> task in 'ndn-simple-with-cs-lfu' failed (exit status 1): > {task 167334732: cxx ndn-simple-with-cs-lfu.cc -> ndn-simple-with-cs-lfu.cc.18.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/atk-1.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtk-2.0', '-I/usr/lib/gtk-2.0/include', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pixman-1', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc', '-c', '-o', 'src/ndnSIM/examples/ndn-simple-with-cs-lfu.cc.18.o'] > user at anilmaguluri-ubuntu:~/ndnSIM/ns-3$ > > > ================================ > > > Please let me know how to resolve this. Thanks for your support. > > Thanks & Regards, > Anil Kumar Maguluri > _______________________________________________ > 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 huyao0107 at gmail.com Wed Jun 12 08:14:34 2013 From: huyao0107 at gmail.com (yao hu) Date: Thu, 13 Jun 2013 00:14:34 +0900 Subject: [ndnSIM] nonce value deletion in PIT entry In-Reply-To: References: Message-ID: Hi Alex, Thanks for your reply. My thought is that when an intersecting node receives a duplicate Interest (with the same nonce), it returns a kind of Interest Nack message to its downstream node which will delete the nonce value from the PIT entry, while it will not influence other pending Interest (with different Nonce) information. As for the fressness field in Data packets, could I specify a special value for responding just one kind of Interest, but not all Data packets in the simulation? Regards, huyao 2013/6/11 Alex Afanasyev > Hi huyao, > > 1) It is not possible right now, but you can easily implement method * > pit::Entry::RemoveSeenNonce* in *pit/ndn-pit-entry.h|cc*. The underlying > data structure is a simple std::set. (Is there a reason you want this > functionality?) > > 2) You can try to use content store that respects freshness field in DATA > packets ( > http://ndnsim.net/cs.html#content-stores-respecting-freshness-field-of-contentobjects) > and then set up different freshness parameter (SetFreshness) in different > DATA packets. If you set freshness to 1ns (if you set up 0, freshness > policy > https://github.com/NDN-Routing/ndnSIM/blob/master/model/cs/custom-policies/freshness-policy.h#L107 will > assume that DATA packet should be cached for as long as possible), which > will force this specific packet to be removed from cache almost immediately. > > Alternatively, you can modify this policy (or better, create a new one) > and treat freshness 0 as indication to disable caching. > > --- > Alex > > > On Jun 10, 2013, at 7:47 AM, yao hu wrote: > > Hi Alex, > > I have two questions about implementation things in ndnsim? > > 1) About nonce value deletion in PIT entry. I know, for one node, one PIT > entry has a list of nonces, could I just delete a specific nonce from the > list of nonces, rather than deleting the whole PIT entry? > > 2) About on-path Data caching. Could I specify an Interest to fetch a Data > from the content provider, and the Data will be not cached in intermediate > nodes on the return path? This does not influence the Data in-network > caching triggered by other Interests. > > Thanks very much for your reply! > > > Regards, > huyao > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blindeafer at 163.com Wed Jun 12 19:57:43 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Thu, 13 Jun 2013 10:57:43 +0800 (CST) Subject: [ndnSIM] Build failed Message-ID: <37ac9b55.48fd.13f3b77a113.Coremail.blindeafer@163.com> Hi All, When I build in file "ndnSIM-ddos-interest-flooding", it return an error: g++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. Waf: Leaving directory `/home/lam/ndnSIM/ndnSIM-Stats/build' Build failed -> task in 'interest-ddos-attack-and-mitigation-scenario' failed (exit status 4): {task 160146316: cxx interest-ddos-attack-and-mitigation-scenario.cc -> interest-ddos-attack-and-mitigation-scenario.cc.2.o} ['/usr/bin/g++', '-O3', '-g', '-std=c++0x', '-pthread', '-pthread', '-pthread', '-pthread', '-pthread', '-pthread', '-pthread', '-I/home/lam/ndnSIM/ndnSIM-Stats/build/extensions', '-I/home/lam/ndnSIM/ndnSIM-Stats/extensions', '-I/usr/local/include', '-I/usr/local/include/ns3-dev', '-I/usr/include/libxml2', '-DHAVE_NS3_NDNSIM=1', '-DHAVE_NS3_CORE=1', '-DHAVE_NS3_NETWORK=1', '-DHAVE_NS3_INTERNET=1', '-DHAVE_NS3_POINT_TO_POINT=1', '-DHAVE_NS3_TOPOLOGY_READ=1', '-DHAVE_NS3_APPLICATIONS=1', '-DHAVE_NS3_MOBILITY=1', '-DHAVE_NS3_VISUALIZER=1', '-DNS3_LOG_ENABLE=1', '-DNS3_ASSERT_ENABLE=1', '../scenarios/interest-ddos-attack-and-mitigation-scenario.cc', '-c', '-o', 'scenarios/interest-ddos-attack-and-mitigation-scenario.cc.2.o'] How can I resolve it? Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jun 12 20:01:39 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 12 Jun 2013 20:01:39 -0700 Subject: [ndnSIM] Build failed In-Reply-To: <37ac9b55.48fd.13f3b77a113.Coremail.blindeafer@163.com> References: <37ac9b55.48fd.13f3b77a113.Coremail.blindeafer@163.com> Message-ID: <0436E926-9F85-49D3-8408-428A7E50F1DE@ucla.edu> This is something interesting, since it is the compiler that is failing with segmentation fault. There is a small chance that your system does not have enough (virtual) memory to finalize the compilation, but I wouldn't be so sure about it. I can recommend to install clang compiler and try to compile the code with it: CXX=clang++ ./waf configure ./waf -- Alex Btw, are you using Ubuntu? If yes, then which version? On Jun 12, 2013, at 7:57 PM, ??? wrote: > Hi All, > When I build in file "ndnSIM-ddos-interest-flooding", it return an error: > > g++: internal compiler error: Segmentation fault (program cc1plus) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > Waf: Leaving directory `/home/lam/ndnSIM/ndnSIM-Stats/build' > Build failed > -> task in 'interest-ddos-attack-and-mitigation-scenario' failed (exit status 4): > {task 160146316: cxx interest-ddos-attack-and-mitigation-scenario.cc -> interest-ddos-attack-and-mitigation-scenario.cc.2.o} > ['/usr/bin/g++', '-O3', '-g', '-std=c++0x', '-pthread', '-pthread', '-pth! read', '- pthread', '-pthread', '-pthread', '-pthread', '-I/home/lam/ndnSIM/ndnSIM-Stats/build/extensions', '-I/home/lam/ndnSIM/ndnSIM-Stats/extensions', '-I/usr/local/include', '-I/usr/local/include/ns3-dev', '-I/usr/include/libxml2', '-DHAVE_NS3_NDNSIM=1', '-DHAVE_NS3_CORE=1', '-DHAVE_NS3_NETWORK=1', '-DHAVE_NS3_INTERNET=1', '-DHAVE_NS3_POINT_TO_POINT=1', '-DHAVE_NS3_TOPOLOGY_READ=1', '-DHAVE_NS3_APPLICATIONS=1', '-DHAVE_NS3_MOBILITY=1', '-DHAVE_NS3_VISUALIZER=1', '-DNS3_LOG_ENABLE=1', '-DNS3_ASSERT_ENABLE=1', '../scenarios/interest-ddos-attack-and-mitigation-scenario.cc', '-c', '-o', 'scenarios/interest-ddos-attack-and-mitigation-scenario.cc.2.o'] > > How can I resolve it? > > Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jun 12 20:04:04 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 12 Jun 2013 20:04:04 -0700 Subject: [ndnSIM] nonce value deletion in PIT entry In-Reply-To: References: Message-ID: Hi huyao, If Interests are getting to your producer app, then you can easily generate different types of data (with different freshness) as a response to different "kind" of Interests. Though, you would need to make modifications, or write a different one, producer app for that. --- Alex On Jun 12, 2013, at 8:14 AM, yao hu wrote: > Hi Alex, > > Thanks for your reply. > > My thought is that when an intersecting node receives a duplicate Interest (with the same nonce), it returns a kind of Interest Nack message to its downstream node which will delete the nonce value from the PIT entry, while it will not influence other pending Interest (with different Nonce) information. > > As for the fressness field in Data packets, could I specify a special value for responding just one kind of Interest, but not all Data packets in the simulation? > > Regards, > huyao > > > > 2013/6/11 Alex Afanasyev > Hi huyao, > > 1) It is not possible right now, but you can easily implement method pit::Entry::RemoveSeenNonce in pit/ndn-pit-entry.h|cc. The underlying data structure is a simple std::set. (Is there a reason you want this functionality?) > > 2) You can try to use content store that respects freshness field in DATA packets (http://ndnsim.net/cs.html#content-stores-respecting-freshness-field-of-contentobjects) and then set up different freshness parameter (SetFreshness) in different DATA packets. If you set freshness to 1ns (if you set up 0, freshness policy https://github.com/NDN-Routing/ndnSIM/blob/master/model/cs/custom-policies/freshness-policy.h#L107 will assume that DATA packet should be cached for as long as possible), which will force this specific packet to be removed from cache almost immediately. > > Alternatively, you can modify this policy (or better, create a new one) and treat freshness 0 as indication to disable caching. > > --- > Alex > > > On Jun 10, 2013, at 7:47 AM, yao hu wrote: > >> Hi Alex, >> >> I have two questions about implementation things in ndnsim? >> >> 1) About nonce value deletion in PIT entry. I know, for one node, one PIT entry has a list of nonces, could I just delete a specific nonce from the list of nonces, rather than deleting the whole PIT entry? >> >> 2) About on-path Data caching. Could I specify an Interest to fetch a Data from the content provider, and the Data will be not cached in intermediate nodes on the return path? This does not influence the Data in-network caching triggered by other Interests. >> >> Thanks very much for your reply! >> >> >> Regards, >> huyao > > _______________________________________________ > 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 Wed Jun 12 20:15:24 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 13 Jun 2013 11:15:24 +0800 Subject: [ndnSIM] ndnSIM Routing: best face Message-ID: Dear all, I want to select the best next hop (best next face) by propagation delay, but I am not sure whether it is support already by ndnSIM or not. Can anyone else give some hint? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China, 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jun 12 20:18:12 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 12 Jun 2013 20:18:12 -0700 Subject: [ndnSIM] ndnSIM Routing: best face In-Reply-To: References: Message-ID: <33517A33-D6BF-4484-BEA2-AD30A0500D13@ucla.edu> Hi Xiaoke, Can you explain a little bit more about what you mean by "propagation delay"? Is this something related to the link attached to the face? Or it is something similar to "RTT" value for a specific FIB entry for a specific face? --- Alex On Jun 12, 2013, at 8:15 PM, Xiaoke Jiang wrote: > Dear all, > I want to select the best next hop (best next face) by propagation delay, but I am not sure whether it is support already by ndnSIM or not. > > Can anyone else give some hint? > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China, 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Wed Jun 12 20:24:47 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 13 Jun 2013 11:24:47 +0800 Subject: [ndnSIM] ndnSIM Routing: best face In-Reply-To: <33517A33-D6BF-4484-BEA2-AD30A0500D13@ucla.edu> References: <33517A33-D6BF-4484-BEA2-AD30A0500D13@ucla.edu> Message-ID: <782098DA9D134CB2B73B17AC90908704@gmail.com> Hi Alex, Sorry for my mistake. What you said is right, I want to select best next face according to RTT and other factors, such as hop distance(default?), end2end bandwidth. I am not sure the current stat-of-art of ndnSIM. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China, 100084 On Thursday, June 13, 2013 at 11:18 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > Can you explain a little bit more about what you mean by "propagation delay"? Is this something related to the link attached to the face? Or it is something similar to "RTT" value for a specific FIB entry for a specific face? > > --- > Alex > > > On Jun 12, 2013, at 8:15 PM, Xiaoke Jiang wrote: > > Dear all, > > I want to select the best next hop (best next face) by propagation delay, but I am not sure whether it is support already by ndnSIM or not. > > > > Can anyone else give some hint? > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D Candidate, > > Dept. of Computer Science and Technology, > > Tsinghua University, P. R. China, 100084 > > > > > > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Jun 13 10:49:37 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 13 Jun 2013 10:49:37 -0700 Subject: [ndnSIM] ndnSIM Routing: best face In-Reply-To: <782098DA9D134CB2B73B17AC90908704@gmail.com> References: <33517A33-D6BF-4484-BEA2-AD30A0500D13@ucla.edu> <782098DA9D134CB2B73B17AC90908704@gmail.com> Message-ID: Hi Xiaoke, The first task would be to get this information into the FIB entry. There is, actually, already an RTT estimate that is maintained for each face in each FIB entry, which would the first step in what you want to achieve. To actually take into account this (an potentially other) information, you would need to modify implementation of FindBestCandidate of ndn::fib::Entry class. Ideally, this implementation should allow customization of different logics in simulation scenarios, but for now you can just simply modify the code. The current implementation relies on boost::multi_index-based data structure, that automatically "indices" entries based on composite index of face status (green/yellow/red) and routing cost. If you want, you can add third index (e.g., in between status and cost) that uses RTT as input. This way, just modification of the data structure can give you necessary effect. --- Alex On Jun 12, 2013, at 8:24 PM, Xiaoke Jiang wrote: > Hi Alex, > Sorry for my mistake. What you said is right, I want to select best next face according to RTT and other factors, such as hop distance(default?), end2end bandwidth. I am not sure the current stat-of-art of ndnSIM. > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D Candidate, > Dept. of Computer Science and Technology, > Tsinghua University, P. R. China, 100084 > On Thursday, June 13, 2013 at 11:18 AM, Alex Afanasyev wrote: > >> Hi Xiaoke, >> >> Can you explain a little bit more about what you mean by "propagation delay"? Is this something related to the link attached to the face? Or it is something similar to "RTT" value for a specific FIB entry for a specific face? >> >> --- >> Alex >> >> >> On Jun 12, 2013, at 8:15 PM, Xiaoke Jiang wrote: >> >>> Dear all, >>> I want to select the best next hop (best next face) by propagation delay, but I am not sure whether it is support already by ndnSIM or not. >>> >>> Can anyone else give some hint? >>> >>> thanks >>> >>> My Regards, >>> Xiaoke (Shock) Jiang ????? >>> >>> Ph.D Candidate, >>> Dept. of Computer Science and Technology, >>> Tsinghua University, P. R. China, 100084 > > _______________________________________________ > 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 Jun 13 19:11:40 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 14 Jun 2013 10:11:40 +0800 Subject: [ndnSIM] ndnSIM Routing: best face In-Reply-To: References: <33517A33-D6BF-4484-BEA2-AD30A0500D13@ucla.edu> <782098DA9D134CB2B73B17AC90908704@gmail.com> Message-ID: Thank you, Alex. I think I know how to change it. PS, now I got a digest from ndnSIM mailing list ervery day, but if I want to received every mail of ndnSIM, is it possible? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D Candidate, Dept. of Computer Science and Technology, Tsinghua University, P. R. China, 100084 On Friday, June 14, 2013 at 1:49 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > The first task would be to get this information into the FIB entry. There is, actually, already an RTT estimate that is maintained for each face in each FIB entry, which would the first step in what you want to achieve. > > To actually take into account this (an potentially other) information, you would need to modify implementation of FindBestCandidate of ndn::fib::Entry class. Ideally, this implementation should allow customization of different logics in simulation scenarios, but for now you can just simply modify the code. > > The current implementation relies on boost::multi_index-based data structure, that automatically "indices" entries based on composite index of face status (green/yellow/red) and routing cost. If you want, you can add third index (e.g., in between status and cost) that uses RTT as input. This way, just modification of the data structure can give you necessary effect. > > --- > Alex > > On Jun 12, 2013, at 8:24 PM, Xiaoke Jiang wrote: > > Hi Alex, > > Sorry for my mistake. What you said is right, I want to select best next face according to RTT and other factors, such as hop distance(default?), end2end bandwidth. I am not sure the current stat-of-art of ndnSIM. > > > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D Candidate, > > Dept. of Computer Science and Technology, > > Tsinghua University, P. R. China, 100084 > > > > > > > > > > On Thursday, June 13, 2013 at 11:18 AM, Alex Afanasyev wrote: > > > > > Hi Xiaoke, > > > > > > Can you explain a little bit more about what you mean by "propagation delay"? Is this something related to the link attached to the face? Or it is something similar to "RTT" value for a specific FIB entry for a specific face? > > > > > > --- > > > Alex > > > > > > > > > On Jun 12, 2013, at 8:15 PM, Xiaoke Jiang wrote: > > > > Dear all, > > > > I want to select the best next hop (best next face) by propagation delay, but I am not sure whether it is support already by ndnSIM or not. > > > > > > > > Can anyone else give some hint? > > > > > > > > thanks > > > > > > > > My Regards, > > > > Xiaoke (Shock) Jiang ????? > > > > > > > > Ph.D Candidate, > > > > Dept. of Computer Science and Technology, > > > > Tsinghua University, P. R. China, 100084 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > ndnSIM mailing list > > ndnSIM at lists.cs.ucla.edu (mailto:ndnSIM at lists.cs.ucla.edu) > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pinto2304 at gmail.com Fri Jun 14 00:51:33 2013 From: pinto2304 at gmail.com (Axel Pinto) Date: Fri, 14 Jun 2013 09:51:33 +0200 Subject: [ndnSIM] test Message-ID: Hi, I am doing some tests on the NDN. I am trying to show the impact of the number of user on the transmission time. I create one server, one router and several users. All the users are connected to the router and retrieve the same content at the same time. I thought that increasing the number of user will increase the transmission time but it is not the case. Do you have any explanation to this result. Best regards. Axel Pinto. -------------- next part -------------- An HTML attachment was scrubbed... URL: From blindeafer at 163.com Fri Jun 14 05:44:54 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Fri, 14 Jun 2013 20:44:54 +0800 (CST) Subject: [ndnSIM] About update Message-ID: <51b7ee28.28f20.13f42b7932d.Coremail.blindeafer@163.com> Hi All, Do you update the code use the command:git pull origin master? I downloaded the code from google a few months ago and today I tried to update the code many times,but every time it was susupend when downloading,could you tell me what is the reason? Reagrds. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Fri Jun 14 08:26:43 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Sat, 15 Jun 2013 00:26:43 +0900 Subject: [ndnSIM] test Message-ID: Hi Axel, What is the transmission time in your case? Is that the number of data packets served by server? If it is so, in my opinion, the number of data packets served by the producer (server) could be independent of the number of clients in your case. It is because all the clients are connected to the same router and they simultaneously ask for the same content. Consequently, the issued interests are aggregated at the router by PIT data structure. More specifically, when there is a pending PIT entry for the target content in PIT, the face ID of the successive interest that asks for the same target content is added to the entry. So,only one interest per a target content accesses the server. The server in turn sends a data packet in response to the pending interest(s). -- Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Jun 14 11:21:29 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 14 Jun 2013 11:21:29 -0700 Subject: [ndnSIM] About update In-Reply-To: <51b7ee28.28f20.13f42b7932d.Coremail.blindeafer@163.com> References: <51b7ee28.28f20.13f42b7932d.Coremail.blindeafer@163.com> Message-ID: <6279747B-CCF3-41B5-996F-0EEA2766DA16@ucla.edu> Hi! There are two pieces that should be updated: the NS-3 base and ndnSIM itself. cd git pull origin ndnSIM cd src/ndnSIM git pull origin master If these are not working, just try to re-download the whole thing, as described in http://ndnsim.net/getting-started.html#downloading-ndnsim-source --- Alex On Jun 14, 2013, at 5:44 AM, ??? wrote: > Hi All, > Do you update the code use the command:git pull origin master? > I downloaded the code from google a few months ago and today I tried to update the code many times,but every time it was susupend when downloading,could you tell me what is the reason? > > Reagrds. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mahdian.m at husky.neu.edu Fri Jun 14 20:50:52 2013 From: mahdian.m at husky.neu.edu (Milad Mahdian) Date: Fri, 14 Jun 2013 23:50:52 -0400 Subject: [ndnSIM] installing ndnSIM Message-ID: Hi Alex, I get this error while installing ndnSIM. I think there is something wrong with the source code: [1038/2041] cxx: src/fd-net-device/examples/fd2fd-onoff.cc -> build/src/fd-net-device/examples/fd2fd-onoff.cc.2.o ../src/fd-net-device/helper/creator-utils.cc: In function 'void ns3::SendSocket(const char*, int, int)': ../src/fd-net-device/helper/creator-utils.cc:60:3: error: 'strerror' was not declared in this scope ../src/fd-net-device/helper/creator-utils.cc:74:3: error: 'strerror' was not declared in this scope ../src/fd-net-device/helper/creator-utils.cc:78:3: error: 'strerror' was not declared in this scope ../src/fd-net-device/helper/creator-utils.cc:170:3: error: 'strerror' was not declared in this scope Regards, Milad Mahdian -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioannoa at scss.tcd.ie Sat Jun 15 06:03:18 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Sat, 15 Jun 2013 14:03:18 +0100 Subject: [ndnSIM] node's neighbors. Message-ID: <16c652d2c102191c3cbf746019581eb2.squirrel@webmail.scss.tcd.ie> Hello, I am trying to get the number of neighbors of each node that my interest packet is passing by. The calculation is about to be done though only when the content requested is not already stored, so can't use the content store, i believe, similar to the example posted here: https://github.com/cawka/ndnSIM-examples/blob/master/extensions/custom-cs/node-access-policy.h -at least i can't make it work! The calculated number of neighbors should be returned on the lookup function at my content store implementation class, e.g. if the function returns an integer should be called in the lookup function as that's the place where i check for the whether the content is in the content store or not. Any ideas maybe? Kind regards, Andrian. From blindeafer at 163.com Sat Jun 15 06:54:31 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Sat, 15 Jun 2013 21:54:31 +0800 (CST) Subject: [ndnSIM] Waf: The wscript in './ndnSIM/ns-3' is unreadable Message-ID: <865075e.aa0d.13f481daad8.Coremail.blindeafer@163.com> Hi All, Today,I updated the code,but then when I compiling it: ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib it return a error: Waf: The wscript in '/home/lam/ndnSIM/ns-3' is unreadable Traceback (most recent call last): File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Scripting.py", line 87, in waf_entry_point set_main_module(Context.run_dir+os.sep+Context.WSCRIPT_FILE) File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Scripting.py", line 110, in set_main_module Context.g_module=Context.load_module(file_path) File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/extras/compat15.py", line 88, in load_module ret=rev(path) File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Context.py", line 266, in load_module exec(compile(code,path,'exec'),module.__dict__) File "/home/lam/ndnSIM/ns-3/wscript", line 11 <<<<<<< HEAD ^ SyntaxError: invalid syntax How can I solve it? -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jun 15 09:59:21 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 15 Jun 2013 09:59:21 -0700 Subject: [ndnSIM] Waf: The wscript in './ndnSIM/ns-3' is unreadable In-Reply-To: <865075e.aa0d.13f481daad8.Coremail.blindeafer@163.com> References: <865075e.aa0d.13f481daad8.Coremail.blindeafer@163.com> Message-ID: This is something (merge conflict) that was caused by "pull" operation. Did you try to redownload the code? --- Alex On Jun 15, 2013, at 6:54 AM, ??? wrote: > Hi All, > Today,I updated the code,but then when I compiling it: ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib > it return a error: > Waf: The wscript in '/home/lam/ndnSIM/ns-3' is unreadable > Traceback (most recent call last): > File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Scripting.py", line 87, in waf_entry_point > set_main_module(Context.run_dir+os.sep+Context.WSCRIPT_FILE) > File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Scripting.py", line 110, in set_main_module > Context.g_module=Context.load_module(file_path) > File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/extras/compat15.py", line 88, in load_module > ret=rev(path) > File "/home/lam/ndnSIM/ns-3/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Context.py", line 266, in load_module > exec(compile(code,path,'exec'),module.__dict__) > File "/home/lam/ndnSIM/ns-3/wscript", line 11 > <<<<<<< HEAD > ^ > SyntaxError: invalid syntax > > How can I solve it? -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jun 15 10:16:11 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 15 Jun 2013 10:16:11 -0700 Subject: [ndnSIM] installing ndnSIM In-Reply-To: References: Message-ID: Hi Milad, This is related to a missing include in fd-net-device module. I have pushed a commit to my custom NS-3 repo that should solve the problem, but I will also file a bug report with NS-3 guys. You can pull the update of NS-3 and try again. Alternatively, you can just disable compilation of fd-net-device module via --enable-modules=.... ./waf configure parameter (http://www.nsnam.org/docs/manual/html/enable-modules.html) --- Alex On Jun 14, 2013, at 8:50 PM, Milad Mahdian wrote: > Hi Alex, > > I get this error while installing ndnSIM. I think there is something wrong with the source code: > > [1038/2041] cxx: src/fd-net-device/examples/fd2fd-onoff.cc -> build/src/fd-net-device/examples/fd2fd-onoff.cc.2.o > ../src/fd-net-device/helper/creator-utils.cc: In function 'void ns3::SendSocket(const char*, int, int)': > ../src/fd-net-device/helper/creator-utils.cc:60:3: error: 'strerror' was not declared in this scope > ../src/fd-net-device/helper/creator-utils.cc:74:3: error: 'strerror' was not declared in this scope > ../src/fd-net-device/helper/creator-utils.cc:78:3: error: 'strerror' was not declared in this scope > ../src/fd-net-device/helper/creator-utils.cc:170:3: error: 'strerror' was not declared in this scope > > Regards, > Milad Mahdian -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jun 15 10:24:12 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 15 Jun 2013 10:24:12 -0700 Subject: [ndnSIM] node's neighbors. In-Reply-To: <16c652d2c102191c3cbf746019581eb2.squirrel@webmail.scss.tcd.ie> References: <16c652d2c102191c3cbf746019581eb2.squirrel@webmail.scss.tcd.ie> Message-ID: <49A03D17-A82D-429B-9313-CDFAFDEC14F5@ucla.edu> Hi Andrian, I can help you with getting the "number" of neighbors, but how it is done depends on what exactly (where exactly) you want to use it. With cache policy, like node-access-policy, you would be able to get the number of neighbors (btw, this should also be properly defined, is it "neighbors connected using NetDeviceFace", or "number of faces, including application faces"?), but what's next? Is this info be used entirely by the cache or you want to use it somewhere else? --- Alex On Jun 15, 2013, at 6:03 AM, ioannoa at scss.tcd.ie wrote: > Hello, > > I am trying to get the number of neighbors of each node that my interest > packet is passing by. The calculation is about to be done though only when > the content requested is not already stored, so can't use the content > store, i believe, similar to the example posted here: > https://github.com/cawka/ndnSIM-examples/blob/master/extensions/custom-cs/node-access-policy.h > -at least i can't make it work! > > The calculated number of neighbors should be returned on the lookup > function at my content store implementation class, e.g. if the function > returns an integer should be called in the lookup function as that's the > place where i check for the whether the content is in the content store or > not. Any ideas maybe? > > Kind regards, > Andrian. > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sat Jun 15 10:43:31 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 15 Jun 2013 10:43:31 -0700 Subject: [ndnSIM] test In-Reply-To: References: Message-ID: <87D7B9D4-2D41-4E45-AD09-2290372F2A72@ucla.edu> Hi Axel, I agree with Saran, that we need a little bit more info about what exactly you're trying to evaluate. What exactly is your expectation of relation between number of users and transmission time? Are you trying to evaluate something related to congestion scenario or something else? Increasing number of users would increase transmission time if these users request more unique data that network can serve, so they need to "pace down" or re-request "lost" data. As Saran mentioned, if you your consumers request exactly the same pieces of data (e.g., you configured them with exactly the same prefix), then PIT and caches will efficiently eliminate effect of multiple users and network will be forwarding Interests/Data, as if there was only one user. Btw, which consumer type did you try to use in your evaluations? --- Alex On Jun 14, 2013, at 8:26 AM, Saran Tarnoi wrote: > Hi Axel, > > What is the transmission time in your case? > Is that the number of data packets served by server? > If it is so, in my opinion, the number of data packets served by the producer (server) could be independent of the number of clients in your case. > It is because all the clients are connected to the same router and they simultaneously ask for the same content. > Consequently, the issued interests are aggregated at the router by PIT data structure. > More specifically, when there is a pending PIT entry for the target content in PIT, the face ID of the successive interest that asks for the same target content is added to the entry. > So,only one interest per a target content accesses the server. > The server in turn sends a data packet in response to the pending interest(s). > > -- > Saran Tarnoi >> >> Hi, >> I am doing some tests on the NDN. I am trying to show the impact of the number of user on the transmission time. I create one server, one router and several users. All the users are connected to the router and retrieve the same content at the same time. I thought that increasing the number of user will increase the transmission time but it is not the case. Do you have any explanation to this result. >> Best regards. >> Axel Pinto. > From amin at ac.upc.edu Sun Jun 16 06:22:45 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sun, 16 Jun 2013 15:22:45 +0200 Subject: [ndnSIM] About update In-Reply-To: <6279747B-CCF3-41B5-996F-0EEA2766DA16@ucla.edu> References: <51b7ee28.28f20.13f42b7932d.Coremail.blindeafer@163.com> <6279747B-CCF3-41B5-996F-0EEA2766DA16@ucla.edu> Message-ID: <51BDBC25.2080900@ac.upc.edu> Hi! I updated my repo based on the recommended commands: cd git pull origin ndnSIM cd src/ndnSIM git pull origin master but after completing, i faced with following error when i ran "./waf --run=ndn-simple" or any .cc program: Waf: Entering directory `/home/bluebit/Documents/ndnSIM/ns-3/build' feature ' ' does not exist - bind at least one method to it feature 'n' does not exist - bind at least one method to it feature 's' does not exist - bind at least one method to it feature '3' does not exist - bind at least one method to it feature 'f' does not exist - bind at least one method to it feature 'u' does not exist - bind at least one method to it feature 'l' does not exist - bind at least one method to it feature 'l' does not exist - bind at least one method to it feature 'm' does not exist - bind at least one method to it feature 'o' does not exist - bind at least one method to it feature 'u' does not exist - bind at least one method to it feature 'l' does not exist - bind at least one method to it feature 'e' does not exist - bind at least one method to it feature 'h' does not exist - bind at least one method to it feature 'e' does not exist - bind at least one method to it feature 'a' does not exist - bind at least one method to it feature 'e' does not exist - bind at least one method to it feature 'r' does not exist - bind at least one method to it feature 's' does not exist - bind at least one method to it [ 936/1918] cxx: build/src/ndnSIM/bindings/ns3module.cc -> build/src/ndnSIM/bindings/ns3module.cc.7.o In file included from src/ndnSIM/bindings/ns3module.cc:1:0: src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnApp__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:1797:7: error: 'DoInitialize' is not a member of 'ns3::Application' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnFace__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:1930:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnForwardingStrategy__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2035:7: error: 'DoInitialize' is not a member of 'ns3::Object' In file included from src/ndnSIM/bindings/ns3module.cc:1:0: src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnL3Protocol__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2268:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnLimits__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2352:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnNetDeviceFace__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2478:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnRttEstimator__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2577:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.h: In member function 'void PyNs3NdnAppFace__PythonHelper::DoInitialize__parent_caller()': src/ndnSIM/bindings/ns3module.h:2698:7: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnApp__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:5419:9: error: 'DoInitialize' is not a member of 'ns3::Application' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnFace__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:7987:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnForwardingStrategy__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:13377:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnL3Protocol__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:15828:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnLimits__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:17175:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnNetDeviceFace__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:19037:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnRttEstimator__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:20546:9: error: 'DoInitialize' is not a member of 'ns3::Object' src/ndnSIM/bindings/ns3module.cc: In member function 'virtual void PyNs3NdnAppFace__PythonHelper::DoInitialize()': src/ndnSIM/bindings/ns3module.cc:22989:9: error: 'DoInitialize' is not a member of 'ns3::Object' Waf: Leaving directory `/home/bluebit/Documents/ndnSIM/ns-3/build' Build failed -> task in 'ns3module_ndnSIM' failed (exit status 1): {task 162111820: cxx ns3module.cc -> ns3module.cc.7.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-fPIC', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-Ibuild', '-I.', '-Ibuild/src/ndnSIM/bindings', '-Isrc/ndnSIM/bindings', '-I/usr/include/python2.7', '-I/usr/include/gtk-2.0', '-I/usr/lib/i386-linux-gnu/gtk-2.0/include', '-I/usr/include/atk-1.0', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/pixman-1', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/libxml2', '-I/usr/local/include', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_PACKET_H=1', '-DSQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DENABLE_GSL', '-DNS_DEPRECATED=', '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', 'src/ndnSIM/bindings/ns3module.cc', '-c', '-o', 'src/ndnSIM/bindings/ns3module.cc.7.o'] On 06/14/2013 08:21 ?.?, Alex Afanasyev wrote: > Hi! > > There are two pieces that should be updated: the NS-3 base and ndnSIM > itself. > > cd > git pull origin ndnSIM > > cd src/ndnSIM > git pull origin master > > > If these are not working, just try to re-download the whole thing, as > described in > http://ndnsim.net/getting-started.html#downloading-ndnsim-source > > --- > Alex > > On Jun 14, 2013, at 5:44 AM, ??? > wrote: > >> Hi All, >> Do you update the code use the command:git pull origin master? >> I downloaded the code from google a few months ago and today I tried >> to update the code many times,but every time it was susupend when >> downloading,could you tell me what is the reason? >> >> Reagrds. > > > _______________________________________________ > 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 amin at ac.upc.edu Sun Jun 16 08:47:14 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sun, 16 Jun 2013 17:47:14 +0200 Subject: [ndnSIM] Interest Flooding Attack Strategies Message-ID: <51BDDE02.1020100@ac.upc.edu> Hi, I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? Thank you in advance. /Amin From alexander.afanasyev at ucla.edu Sun Jun 16 11:02:21 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 16 Jun 2013 11:02:21 -0700 Subject: [ndnSIM] About update In-Reply-To: <51BDBC25.2080900@ac.upc.edu> References: <51b7ee28.28f20.13f42b7932d.Coremail.blindeafer@163.com> <6279747B-CCF3-41B5-996F-0EEA2766DA16@ucla.edu> <51BDBC25.2080900@ac.upc.edu> Message-ID: <780C8BFE-BDCB-4E8D-8096-D2FE864C0CE6@ucla.edu> Hi Amin, Not sure how, but you got a version mistmatch betweeen ndnSIM and NS-3. I would highly recommend to download the code again, at least NS-3 part, since I did significant non-mergeable changes in it. You can do something similar like mv ns-3-old git clone git://github.com/cawka/ns-3-dev-ndnSIM.git ns-3 mv ns-3-old/src/ndnSIM ns-3/src --- Alex On Jun 16, 2013, at 6:22 AM, Amin Karami wrote: > Hi! > I updated my repo based on the recommended commands: > cd > git pull origin ndnSIM > cd src/ndnSIM > git pull origin master > > but after completing, i faced with following error when i ran "./waf --run=ndn-simple" or any .cc program: > > Waf: Entering directory `/home/bluebit/Documents/ndnSIM/ns-3/build' > feature ' ' does not exist - bind at least one method to it > feature 'n' does not exist - bind at least one method to it > feature 's' does not exist - bind at least one method to it > feature '3' does not exist - bind at least one method to it > feature 'f' does not exist - bind at least one method to it > feature 'u' does not exist - bind at least one method to it > feature 'l' does not exist - bind at least one method to it > feature 'l' does not exist - bind at least one method to it > feature 'm' does not exist - bind at least one method to it > feature 'o' does not exist - bind at least one method to it > feature 'u' does not exist - bind at least one method to it > feature 'l' does not exist - bind at least one method to it > feature 'e' does not exist - bind at least one method to it > feature 'h' does not exist - bind at least one method to it > feature 'e' does not exist - bind at least one method to it > feature 'a' does not exist - bind at least one method to it > feature 'e' does not exist - bind at least one method to it > feature 'r' does not exist - bind at least one method to it > feature 's' does not exist - bind at least one method to it > [ 936/1918] cxx: build/src/ndnSIM/bindings/ns3module.cc -> build/src/ndnSIM/bindings/ns3module.cc.7.o > In file included from src/ndnSIM/bindings/ns3module.cc:1:0: > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnApp__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:1797:7: error: ?DoInitialize? is not a member of ?ns3::Application? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnFace__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:1930:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnForwardingStrategy__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2035:7: error: ?DoInitialize? is not a member of ?ns3::Object? > In file included from src/ndnSIM/bindings/ns3module.cc:1:0: > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnL3Protocol__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2268:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnLimits__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2352:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnNetDeviceFace__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2478:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnRttEstimator__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2577:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.h: In member function ?void PyNs3NdnAppFace__PythonHelper::DoInitialize__parent_caller()?: > src/ndnSIM/bindings/ns3module.h:2698:7: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnApp__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:5419:9: error: ?DoInitialize? is not a member of ?ns3::Application? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnFace__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:7987:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnForwardingStrategy__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:13377:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnL3Protocol__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:15828:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnLimits__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:17175:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnNetDeviceFace__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:19037:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnRttEstimator__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:20546:9: error: ?DoInitialize? is not a member of ?ns3::Object? > src/ndnSIM/bindings/ns3module.cc: In member function ?virtual void PyNs3NdnAppFace__PythonHelper::DoInitialize()?: > src/ndnSIM/bindings/ns3module.cc:22989:9: error: ?DoInitialize? is not a member of ?ns3::Object? > Waf: Leaving directory `/home/bluebit/Documents/ndnSIM/ns-3/build' > Build failed > -> task in 'ns3module_ndnSIM' failed (exit status 1): > {task 162111820: cxx ns3module.cc -> ns3module.cc.7.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-fPIC', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-Ibuild', '-I.', '-Ibuild/src/ndnSIM/bindings', '-Isrc/ndnSIM/bindings', '-I/usr/include/python2.7', '-I/usr/include/gtk-2.0', '-I/usr/lib/i386-linux-gnu/gtk-2.0/include', '-I/usr/include/atk-1.0', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/pixman-1', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/libxml2', '-I/usr/local/include', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_PACKET_H=1', '-DSQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DENABLE_GSL', '-DNS_DEPRECATED=', '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', 'src/ndnSIM/bindings/ns3module.cc', '-c', '-o', 'src/ndnSIM/bindings/ns3module.cc.7.o'] > > > On 06/14/2013 08:21 ?.?, Alex Afanasyev wrote: >> Hi! >> >> There are two pieces that should be updated: the NS-3 base and ndnSIM itself. >> >> cd >> git pull origin ndnSIM >> >> cd src/ndnSIM >> git pull origin master >> >> >> If these are not working, just try to re-download the whole thing, as described in http://ndnsim.net/getting-started.html#downloading-ndnsim-source >> >> --- >> Alex >> >> On Jun 14, 2013, at 5:44 AM, ??? wrote: >> >>> Hi All, >>> Do you update the code use the command:git pull origin master? >>> I downloaded the code from google a few months ago and today I tried to update the code many times,but every time it was susupend when downloading,could you tell me what is the reason? >>> >>> Reagrds. >> >> >> _______________________________________________ >> 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 1839750381 at qq.com Sun Jun 16 19:11:11 2013 From: 1839750381 at qq.com (=?ISO-8859-1?B?WGVl?=) Date: Mon, 17 Jun 2013 10:11:11 +0800 Subject: [ndnSIM] ns3 Wired Energy module Message-ID: Hi Alex I found energy module for wireless data usage consumption, can you give me a small example to use with wired network topology ? rgd, -Xee -------------- next part -------------- An HTML attachment was scrubbed... URL: From huyao0107 at gmail.com Mon Jun 17 09:40:53 2013 From: huyao0107 at gmail.com (yao hu) Date: Tue, 18 Jun 2013 01:40:53 +0900 Subject: [ndnSIM] dealing with duplicated Interests for data provider Message-ID: Hi Alex, For intermediate routers, they drop the subsequent Interests (with the same nonce) from the same requester to avoid the loop Interest path. But if the data provider receives two identical Interests (with the same nonce) from two different faces, it will still drop the subsequent incoming Interest? How about replying the Data both on these two faces? Because I think this is still meaningful to ensure the data retrieval. Thanks for your reply~ Regards, huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jun 17 16:34:04 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 17 Jun 2013 16:34:04 -0700 Subject: [ndnSIM] Interest Flooding Attack Strategies In-Reply-To: <51BDDE02.1020100@ac.upc.edu> References: <51BDDE02.1020100@ac.upc.edu> Message-ID: Hi Amin, 1. I would say that such a case should be considered as an attack, though whether it is "flooding" or not would depend on the consumer data fetching strategy. For example, if you use ConsumerWindow, then if it cannot fetch data, it will reduce it's window to one and would do re-tries very infrequently (at max RTO periods). In other case, if you use ConsumerCbr with high frequency, then this almost definitely would be an attack. Note that ConsumerCbr will do re-requests for the same data, which is a little bit different from "real" flooding attack, where requester will send unique requests all the time (like this DumbRequester example: http://ndnsim.net/applications.html#dumb-requester) 2. There is no publisherpublickeydigest in ndnSIM currently, but I'm not entirely sure about your question. What exactly do you want to achieve? 3. Again, ndnSIM doesn't yet support Exclude filter, but I'm working on it and it should be there relatively soon. However, exclude filter doesn't work this way, it allows you to exclude a specific name component(s) that goes after whatever you requested. For example: you send interest for /ndn/prefix/bla with exclude filter x1,x2,x3, meaning that you want some data packet that has prefix /ndn/prefix/bla but does not contain prefix /ndn/prefix/bla/x1 or /ndn/prefix/bla/x2 or /ndn/prefix/bla/x3 3.5 Not sure what is your question about KeyLocator. What functionality you want from it? Since ndnSIM is a simulator, there is no (and I would say, there should not be) actual verification process and it can be implemented using flags (e.g., in Signature field), making assumptions about these flags. --- Alex On Jun 16, 2013, at 8:47 AM, Amin Karami wrote: > Hi, > > I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: > 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? > > 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? > > 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? > > > Thank you in advance. > /Amin From alexander.afanasyev at ucla.edu Mon Jun 17 16:36:38 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 17 Jun 2013 16:36:38 -0700 Subject: [ndnSIM] Re: ns3 Wired Energy module In-Reply-To: References: Message-ID: Hi Xee, Unfortunately, I don't really have an example of the energy module with wired network topology. You may want to try to ask your question on more general NS-3 mailing list (NS-3 users https://groups.google.com/forum/#!forum/ns-3-users). --- Alex On Jun 16, 2013, at 7:11 PM, "Xee" <1839750381 at qq.com> wrote: > Hi Alex > > I found energy module for wireless data usage consumption, can you give me a small example to use with wired network topology ? > > rgd, > -Xee -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jun 17 16:46:22 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 17 Jun 2013 16:46:22 -0700 Subject: [ndnSIM] dealing with duplicated Interests for data provider In-Reply-To: References: Message-ID: <0BC7E6DF-A7E9-4564-AC1D-C855481D595B@ucla.edu> Hi huyao, This is a very good question. I completely agree that there is kind of ambiguity with what you routers-producers need to do when they receive duplicate interests and there is actually both options available in ndnSIM. By default, ndnSIM will reply both such interests, but you can configure as well to drop the second duplicate interests. Here is some details. When producer receives the first interest, it will immediately satisfies it, marking PIT entry to be erased. In default mode, the entry is immediately deleted, removing all the knowledge about previously seen nonces. You can configure PitEntryPruningTimeout (http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_pit.html#details), so this knowledge is retained for some time, effectively preventing second/third interest from being satisfied. Which way is the right one? I don't really have a definite answer... As you can see from the default mode, I tend to agree with you that the second Interest should be satisfied as well, but one can argue that this is kind of wasteful. --- Alex On Jun 17, 2013, at 9:40 AM, yao hu wrote: > Hi Alex, > > For intermediate routers, they drop the subsequent Interests (with the same nonce) from the same requester to avoid the loop Interest path. But if the data provider receives two identical Interests (with the same nonce) from two different faces, it will still drop the subsequent incoming Interest? How about replying the Data both on these two faces? Because I think this is still meaningful to ensure the data retrieval. > > Thanks for your reply~ > > Regards, > huyao -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Mon Jun 17 17:02:19 2013 From: amin at ac.upc.edu (Amin Karami) Date: Tue, 18 Jun 2013 02:02:19 +0200 Subject: [ndnSIM] Interest Flooding Attack Strategies In-Reply-To: References: <51BDDE02.1020100@ac.upc.edu> Message-ID: <51BFA38B.5010000@ac.upc.edu> Hi Alex, I am going to manipulate some fields of data packets in side of the publisher to construct unsatisfiable interest packets deliberately, such as: 1- 'publisherpublickeydigest': By changing the public key value of the packet. If there is no 'publisherpublickeydigest' field in current ndnSIM, Is there another way to change deliberately the data packet? 2- 'KeyLocator': change deliberately data packet's verification key (e.g., make fake/spurious key). On 06/18/2013 01:34 ?.?, Alex Afanasyev wrote: > Hi Amin, > > 1. I would say that such a case should be considered as an attack, though whether it is "flooding" or not would depend on the consumer data fetching strategy. For example, if you use ConsumerWindow, then if it cannot fetch data, it will reduce it's window to one and would do re-tries very infrequently (at max RTO periods). In other case, if you use ConsumerCbr with high frequency, then this almost definitely would be an attack. Note that ConsumerCbr will do re-requests for the same data, which is a little bit different from "real" flooding attack, where requester will send unique requests all the time (like this DumbRequester example: http://ndnsim.net/applications.html#dumb-requester) > > 2. There is no publisherpublickeydigest in ndnSIM currently, but I'm not entirely sure about your question. What exactly do you want to achieve? > > 3. Again, ndnSIM doesn't yet support Exclude filter, but I'm working on it and it should be there relatively soon. However, exclude filter doesn't work this way, it allows you to exclude a specific name component(s) that goes after whatever you requested. For example: > you send interest for /ndn/prefix/bla with exclude filter x1,x2,x3, meaning that you want some data packet that has prefix /ndn/prefix/bla but does not contain prefix > > /ndn/prefix/bla/x1 > or > /ndn/prefix/bla/x2 > or > /ndn/prefix/bla/x3 > > 3.5 Not sure what is your question about KeyLocator. What functionality you want from it? Since ndnSIM is a simulator, there is no (and I would say, there should not be) actual verification process and it can be implemented using flags (e.g., in Signature field), making assumptions about these flags. > > --- > Alex > > > On Jun 16, 2013, at 8:47 AM, Amin Karami wrote: > >> Hi, >> >> I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: >> 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? >> >> 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? >> >> 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? >> >> >> Thank you in advance. >> /Amin From alexander.afanasyev at ucla.edu Mon Jun 17 17:32:55 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 17 Jun 2013 17:32:55 -0700 Subject: [ndnSIM] Interest Flooding Attack Strategies In-Reply-To: <51BFA38B.5010000@ac.upc.edu> References: <51BDDE02.1020100@ac.upc.edu> <51BFA38B.5010000@ac.upc.edu> Message-ID: Hi Amin, I would say that for simulation purposes, you can simply use "Signature" fields that is currently available. Again, this is only for simulation purposes, but assuming that signature "1" (just number one) represents right key locator and genuine packet, while signature "2" (just number 2) represents wrong key locator and/or modified public key digest, would capture all the "wrongdoings" by the malicious nodes without incurring unnecessary overhead. Do you think it can work in your case? --- Alex On Jun 17, 2013, at 5:02 PM, Amin Karami wrote: > Hi Alex, > I am going to manipulate some fields of data packets in side of the publisher to construct unsatisfiable interest packets deliberately, such as: > 1- 'publisherpublickeydigest': By changing the public key value of the packet. > If there is no 'publisherpublickeydigest' field in current ndnSIM, Is there another way to change deliberately the data packet? > > 2- 'KeyLocator': change deliberately data packet's verification key (e.g., make fake/spurious key). > > > > On 06/18/2013 01:34 ?.?, Alex Afanasyev wrote: >> Hi Amin, >> >> 1. I would say that such a case should be considered as an attack, though whether it is "flooding" or not would depend on the consumer data fetching strategy. For example, if you use ConsumerWindow, then if it cannot fetch data, it will reduce it's window to one and would do re-tries very infrequently (at max RTO periods). In other case, if you use ConsumerCbr with high frequency, then this almost definitely would be an attack. Note that ConsumerCbr will do re-requests for the same data, which is a little bit different from "real" flooding attack, where requester will send unique requests all the time (like this DumbRequester example: http://ndnsim.net/applications.html#dumb-requester) >> >> 2. There is no publisherpublickeydigest in ndnSIM currently, but I'm not entirely sure about your question. What exactly do you want to achieve? >> >> 3. Again, ndnSIM doesn't yet support Exclude filter, but I'm working on it and it should be there relatively soon. However, exclude filter doesn't work this way, it allows you to exclude a specific name component(s) that goes after whatever you requested. For example: >> you send interest for /ndn/prefix/bla with exclude filter x1,x2,x3, meaning that you want some data packet that has prefix /ndn/prefix/bla but does not contain prefix >> >> /ndn/prefix/bla/x1 >> or >> /ndn/prefix/bla/x2 >> or >> /ndn/prefix/bla/x3 >> >> 3.5 Not sure what is your question about KeyLocator. What functionality you want from it? Since ndnSIM is a simulator, there is no (and I would say, there should not be) actual verification process and it can be implemented using flags (e.g., in Signature field), making assumptions about these flags. >> >> --- >> Alex >> >> >> On Jun 16, 2013, at 8:47 AM, Amin Karami wrote: >> >>> Hi, >>> >>> I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: >>> 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? >>> >>> 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? >>> >>> 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? >>> >>> >>> Thank you in advance. >>> /Amin From amin at ac.upc.edu Tue Jun 18 04:18:14 2013 From: amin at ac.upc.edu (Amin Karami) Date: Tue, 18 Jun 2013 13:18:14 +0200 Subject: [ndnSIM] Print PIT entry size In-Reply-To: References: <51655B49.4010000@ac.upc.edu> Message-ID: <51C041F6.2030907@ac.upc.edu> Hi Alex, Thank you for your very quick answers :-) I am going to print each PIT entry in a specific router in each second (in a periodic time) with: (1) Interest name (e.g., prefix), (2) RTT time of each satisfied Interest, (3) Interface number of each interest packet. My mean of RTT is the satisfaction time of each interest packet to receive desired content data. If an Interest packet has not been satisfied, the RTT can set to zero or infinity. Would you mind please telling me how is it possible to configure? /Amin On 04/11/2013 01:00 ?.?, Alex Afanasyev wrote: > Hi Amin, > > You can try to use a new example that I just uploadedhttp://ndnsim.net/metric.html#periodic-tracing-of-pending-interest-table-pit-size as a baseline for your implementation. > > Note that the number that you will get is an instantaneous size (how many records currently there are) of PIT on a node at that particular moment, and does not give any statistics how many records were created/satisfied. If you want this additional info, the tracing is a little bit more complicated and you can check another example (https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-simple-with-pit-operation-stats.cc). > > --- > Alex > > On Apr 10, 2013, at 5:30 AM, Amin Karami wrote: > >> Hi Alex, >> I am working with one example in ndnsim.net as:http://ndnsim.net/examples.html#node-bottleneck-topology >> I am going to print the number of empty record of PIT in first router (Rtr1) in every second in command prompt, such as below: >> (for example the primary PIT size for Rtr1 is 100) >> Time Node PIT size >> ------- ------- ----------- >> 1 Rtr1 98 >> 2 Rtr1 93 >> 3 Rtr1 94 >> 4 Rtr1 99 >> . >> . >> >> I could not find any relevant class in user guide to print this output. >> >> Would you mind please telling me how I can print this output? >> >> I am thankful for your guidance and support. >> >> >> Best Regards, >> Amin >> From huyao0107 at gmail.com Tue Jun 18 08:48:58 2013 From: huyao0107 at gmail.com (yao hu) Date: Wed, 19 Jun 2013 00:48:58 +0900 Subject: [ndnSIM] dealing with duplicated Interests for data provider In-Reply-To: <0BC7E6DF-A7E9-4564-AC1D-C855481D595B@ucla.edu> References: <0BC7E6DF-A7E9-4564-AC1D-C855481D595B@ucla.edu> Message-ID: Hi Alex, Thanks a lot for the details you provided. Regards, huyao 2013/6/18 Alex Afanasyev > Hi huyao, > > This is a very good question. I completely agree that there is kind of > ambiguity with what you routers-producers need to do when they receive > duplicate interests and there is actually both options available in ndnSIM. > By default, ndnSIM will reply both such interests, but you can configure > as well to drop the second duplicate interests. > > Here is some details. When producer receives the first interest, it will > immediately satisfies it, marking PIT entry to be erased. In default mode, > the entry is immediately deleted, removing all the knowledge about > previously seen nonces. You can configure PitEntryPruningTimeout ( > http://ndnsim.net/doxygen/classns3_1_1ndn_1_1_pit.html#details), so this > knowledge is retained for some time, effectively preventing second/third > interest from being satisfied. > > Which way is the right one? I don't really have a definite answer... As > you can see from the default mode, I tend to agree with you that the second > Interest should be satisfied as well, but one can argue that this is kind > of wasteful. > > --- > Alex > > On Jun 17, 2013, at 9:40 AM, yao hu wrote: > > Hi Alex, > > For intermediate routers, they drop the subsequent Interests (with the > same nonce) from the same requester to avoid the loop Interest path. But if > the data provider receives two identical Interests (with the same nonce) > from two different faces, it will still drop the subsequent incoming > Interest? How about replying the Data both on these two faces? Because I > think this is still meaningful to ensure the data retrieval. > > Thanks for your reply~ > > Regards, > huyao > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Wed Jun 19 04:37:09 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Wed, 19 Jun 2013 20:37:09 +0900 Subject: [ndnSIM] Trace driven simulation Message-ID: Dear All, I think it may be a good idea to have a TraceDriven Consumer app in ndnSIM. The concept is letting a consumer generates a number of interests whose names are read from a trace file. It will give more freedom to simulation scenario regarding the request traffic model. Could you give me an idea to make it? Thank you for your time. -- Regards, Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jun 19 15:39:51 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 19 Jun 2013 15:39:51 -0700 Subject: [ndnSIM] Trace driven simulation In-Reply-To: References: Message-ID: <60DA274A-F0C1-46F6-85FA-2EF3581044C3@ucla.edu> Hi Saran, Yes, this is definitely a good idea and we were actually planning to do something similar, but haven't done anything yet. There are a couple of ways you can make the trace-driven consumer. One way is to have a simple list of interest names, and then it should be consumer app that decides when exactly it wants to start requesting them. Another way is to have a list of names and (relative) times when these interests needs to be send out. In either case, you would need to write a completely new consumer implementation, since the ones that are in ndnSIM assume sequence number as essential part of the name (last component), which simplifies some logic with interest retransmission. Without this assumption (if you still need retransmission), you will need to keep track of the whole names of expressed interests. I have actually started some work to add richer NDN API for writing applications (e.g., you create a handler, express interests through handler, handler notifies you when data arrives or when there is a timeout), but the work is still in its very beginning and I don't even have a compilable/usable code to show yet. -- Alex On Jun 19, 2013, at 4:37 AM, Saran Tarnoi wrote: > Dear All, > > I think it may be a good idea to have a TraceDriven Consumer app in ndnSIM. > The concept is letting a consumer generates a number of interests whose names are read from a trace file. > It will give more freedom to simulation scenario regarding the request traffic model. > > Could you give me an idea to make it? > Thank you for your time. > > -- > Regards, > Saran Tarnoi From alexander.afanasyev at ucla.edu Wed Jun 19 15:49:43 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 19 Jun 2013 15:49:43 -0700 Subject: [ndnSIM] Re: Print PIT entry size In-Reply-To: <51C041F6.2030907@ac.upc.edu> References: <51655B49.4010000@ac.upc.edu> <51C041F6.2030907@ac.upc.edu> Message-ID: <31FB90B9-6685-4F8F-929A-73F6A28DB5F7@ucla.edu> Hi Amin, You may want to check examples/ndn-simple-with-pit-operation-stats.cc that allows you to print most of the information that you want. It doesn't have time information though, but you can add it by modifying (or creating new) utils/trie/aggregate-stats-policy.h: you would need to store time when entry is created every time it is created, and then add measurement when it is removed (check lfu-policy for the hint how to store custom data for each policy entry). I can try to help you with the implementation, but (as you may noticed by my delayed reply this time) I'm a little bit swamped this/next week. --- Alex On Jun 18, 2013, at 4:18 AM, Amin Karami wrote: > Hi Alex, > Thank you for your very quick answers :-) > I am going to print each PIT entry in a specific router in each second (in a periodic time) with: > (1) Interest name (e.g., prefix), (2) RTT time of each satisfied Interest, (3) Interface number of each interest packet. My mean of RTT is the satisfaction time of each interest packet to receive desired content data. If an Interest packet has not been satisfied, the RTT can set to zero or infinity. > > Would you mind please telling me how is it possible to configure? > > /Amin > > > On 04/11/2013 01:00 ?.?, Alex Afanasyev wrote: >> Hi Amin, >> >> You can try to use a new example that I just uploadedhttp://ndnsim.net/metric.html#periodic-tracing-of-pending-interest-table-pit-size as a baseline for your implementation. >> >> Note that the number that you will get is an instantaneous size (how many records currently there are) of PIT on a node at that particular moment, and does not give any statistics how many records were created/satisfied. If you want this additional info, the tracing is a little bit more complicated and you can check another example (https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-simple-with-pit-operation-stats.cc). >> >> --- >> Alex >> >> On Apr 10, 2013, at 5:30 AM, Amin Karami wrote: >> >>> Hi Alex, >>> I am working with one example in ndnsim.net as:http://ndnsim.net/examples.html#node-bottleneck-topology >>> I am going to print the number of empty record of PIT in first router (Rtr1) in every second in command prompt, such as below: >>> (for example the primary PIT size for Rtr1 is 100) >>> Time Node PIT size >>> ------- ------- ----------- >>> 1 Rtr1 98 >>> 2 Rtr1 93 >>> 3 Rtr1 94 >>> 4 Rtr1 99 >>> . >>> . >>> >>> I could not find any relevant class in user guide to print this output. >>> >>> Would you mind please telling me how I can print this output? >>> >>> I am thankful for your guidance and support. >>> >>> >>> Best Regards, >>> Amin >>> From matteo.virgilio at polito.it Thu Jun 20 01:37:08 2013 From: matteo.virgilio at polito.it (Matteo Virgilio) Date: Thu, 20 Jun 2013 10:37:08 +0200 Subject: [ndnSIM] Questions about ConsumerWindow Message-ID: <51C2BF34.1010800@polito.it> Hi All, I'm working on ndnSim and I have some questions about the ConsumerWindow. I'm somewhat unclear about the retransmissions management. It seems that the value used for the retransmission timeout is not the one used for the interest lifetime value, in fact in CheckRetxTimeout() only the rtt is considered (or an estimation of it). So, when this timeout occurs, a new interest packet (for the same name) is scheduled for retransmission. Is this right? If yes, I have another question, let's assume the following (simple) scenario: CLIENT---------ROUTER--------PRODUCER and we assume the clients is using 4s as interest lifetime. The client sends out one interest but the response doesn't arrive (for any reason). If the client retransmits the interest on a RTT basis (RTT could be very small with respect to the lifetime), it will see its interest discarded by the router because the router already has an (alive) entry for that name. So this kind of retransmission is useless. This lead to my final question: how is exactly managed the retransmission in consumerWindow implementation? What I'm missing? Thanks in advance. Best regards. Matteo From ioannoa at scss.tcd.ie Thu Jun 20 07:45:24 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Thu, 20 Jun 2013 15:45:24 +0100 Subject: [ndnSIM] ndnsim packet change. Message-ID: <38896308c4e2dd66fe5c65c6e79ea8e1.squirrel@webmail.scss.tcd.ie> Hello everyone, I have been struggling for a few days trying to change a field into my packet, but didn't get any luck, so i thought to ask for help. I am trying to alter the function into the Pit implementation class named Create. My issue is that i want to change a field into my interest packet, which is passed as a parameter to this Create function as: Ptr interest. I have tried copy constructors, const_cast without working though and only managed to change the value into the current function. But what i want is my interest packet to have these changes afterwards as well so sth temporal inside the function is not helping much. An obvious way would be to change the function into passing Ptr interest without the const but that gives me many other classes using it that way, so have to change them as well etc. before starting breaking the whole platform down, maybe you have some alternatives i could use? Kind regards, Andriana. From amin at ac.upc.edu Thu Jun 20 09:19:55 2013 From: amin at ac.upc.edu (Amin Karami) Date: Thu, 20 Jun 2013 18:19:55 +0200 Subject: [ndnSIM] error: program 'ndn-simple' not found; available programs are: ... Message-ID: <51C32BAB.8030203@ac.upc.edu> Hi, (1) When i want to run simulation scenarios from ndnSIM folder (in examples/ folder suc as ndn-simple.cc), i face with this error: program 'ndn-simple' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] But, i can run .cc scenarios files from NS-3 folder (in scratch/ folder) successfully. What is wrong here? (2) Also, when i run "./waf" with any option, it needs 'sudo'. What is wrong? /Amin From alexander.afanasyev at ucla.edu Thu Jun 20 09:01:30 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 20 Jun 2013 09:01:30 -0700 Subject: [ndnSIM] Questions about ConsumerWindow In-Reply-To: <51C2BF34.1010800@polito.it> References: <51C2BF34.1010800@polito.it> Message-ID: <2026A0F1-04E0-405C-9A22-260982293C64@ucla.edu> Hi Matteo, Your understanding about retransmission timeout in ndn::Consumer* and interest lifetime is correct---they are not directly related to each other. Interest lifetime parameter is configured, while retransmission timer is automatically set based in te observed RTT. There is on difference in the interest processing on router in your simple example. The router, seeing new interest from the client while it still has a pending interest for the same name, will not discard it, but will use it as a signal that client did't receive data within the expected time and wants to retry. This signal, in the simple example will result in simply forwarding the interest again to the producer, in more complex example when the router has multiple paths to the producer, an alternative face could be tried. Basically, interest lifetime is just a parameter indicated by the client (which may or may not be used by routers), specifying for how long the clients is willing to wait for the data arrival. It doesn't necessarily mean that the client cannot detect that something bad happened before that time, and if detected, it can reexpress the interest, signaling routers for assistance (e.g., without the existing PIT entry, routers would be unaware that client is reexpressing the same interest, not just sending a new one). You may want to check retransmission detection method in model/fw/ndn-forwarding-strategy.cc to see what is the exact logic. This retransmission detection can actually be disabled, making routers behave the same way you described, but it would result in inability of clients to signal about non-received data via interest retransmission. --- Alex On Jun 20, 2013, at 1:37 AM, Matteo Virgilio wrote: > Hi All, > I'm working on ndnSim and I have some questions about the ConsumerWindow. I'm somewhat unclear about the retransmissions management. It seems that the value used for the retransmission timeout is not the one used for the interest lifetime value, in fact in CheckRetxTimeout() only the rtt is considered (or an estimation of it). So, when this timeout occurs, a new interest packet (for the same name) is scheduled for retransmission. Is this right? > If yes, I have another question, let's assume the following (simple) scenario: > CLIENT---------ROUTER--------PRODUCER > and we assume the clients is using 4s as interest lifetime. The client sends out one interest but the response doesn't arrive (for any reason). If the client retransmits the interest on a RTT basis (RTT could be very small with respect to the lifetime), it will see its interest discarded by the router because the router already has an (alive) entry for that name. So this kind of retransmission is useless. This lead to my final question: how is exactly managed the retransmission in consumerWindow implementation? What I'm missing? > Thanks in advance. > Best regards. > > Matteo > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Thu Jun 20 09:10:05 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 20 Jun 2013 09:10:05 -0700 Subject: [ndnSIM] ndnsim packet change. In-Reply-To: <38896308c4e2dd66fe5c65c6e79ea8e1.squirrel@webmail.scss.tcd.ie> References: <38896308c4e2dd66fe5c65c6e79ea8e1.squirrel@webmail.scss.tcd.ie> Message-ID: <6845808F-3E0B-4C69-B78A-31589B5519F6@ucla.edu> There is a good chance that PIT is not exactly the right place to update interests, since it is really suppose to store only const reference to interest, which is used only for lookup purposes. Changing it to non-const could result in many unexpected results (side effects). If you really need to make a copy, which you can easily update, you xan use the following: Ptr rwInterest = Create (*origInterest); What you ideally want to do is to weite a forwarding strategy extension, in which you can override some methods/events, and there is a straightforward wag to update interest, since forwarding strategy is the one who owns the interest (non-const pointer). --- Alex On Jun 20, 2013, at 7:45 AM, ioannoa at scss.tcd.ie wrote: > Hello everyone, > > I have been struggling for a few days trying to change a field into my > packet, but didn't get any luck, so i thought to ask for help. > > I am trying to alter the function into the Pit implementation class named > Create. My issue is that i want to change a field into my interest packet, > which is passed as a parameter to this Create function as: Ptr Interest> interest. I have tried copy constructors, const_cast without > working though and only managed to change the value into the current > function. But what i want is my interest packet to have these changes > afterwards as well so sth temporal inside the function is not helping > much. An obvious way would be to change the function into passing > Ptr interest without the const but that gives me many other > classes using it that way, so have to change them as well etc. before > starting breaking the whole platform down, maybe you have some > alternatives i could use? > > Kind regards, > Andriana. > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Thu Jun 20 09:29:45 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 20 Jun 2013 09:29:45 -0700 Subject: [ndnSIM] error: program 'ndn-simple' not found; available programs are: ... In-Reply-To: <51C32BAB.8030203@ac.upc.edu> References: <51C32BAB.8030203@ac.upc.edu> Message-ID: Hi Amin, To make sure that examples are compiled in, you need to add --enable-examples flag to ./waf configure: ./waf configure --enable-examples I'm not sure why is if asking about sudo. Does it dhow an error otherwise? The only place it should happen is when you install. --- Alex On Jun 20, 2013, at 9:19 AM, Amin Karami wrote: > Hi, > (1) > When i want to run simulation scenarios from ndnSIM folder (in examples/ folder suc as ndn-simple.cc), i face with this error: > program 'ndn-simple' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] > > But, i can run .cc scenarios files from NS-3 folder (in scratch/ folder) successfully. > What is wrong here? > (2) > Also, when i run "./waf" with any option, it needs 'sudo'. What is wrong? > > /Amin > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From amin at ac.upc.edu Thu Jun 20 16:17:55 2013 From: amin at ac.upc.edu (Amin Karami) Date: Fri, 21 Jun 2013 01:17:55 +0200 Subject: [ndnSIM] error: program 'ndn-simple' not found; available programs are: ... In-Reply-To: References: <51C32BAB.8030203@ac.upc.edu> Message-ID: <51C38DA3.6070203@ac.upc.edu> Hi Alex, I added --enable-examples flag to ./waf configure, but problem has not been solved! So, I copied some scenarios from ndnSIM folder (examples/ folder) to NS-3 folder (scratch/ folder) to run them! Is there any solution? On 06/20/2013 06:29 ?.?, Alex Afanasyev wrote: > Hi Amin, > > To make sure that examples are compiled in, you need to add --enable-examples flag to ./waf configure: > > ./waf configure --enable-examples > > I'm not sure why is if asking about sudo. Does it dhow an error otherwise? The only place it should happen is when you install. > > --- > Alex > > On Jun 20, 2013, at 9:19 AM, Amin Karami wrote: > >> Hi, >> (1) >> When i want to run simulation scenarios from ndnSIM folder (in examples/ folder suc as ndn-simple.cc), i face with this error: >> program 'ndn-simple' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] >> >> But, i can run .cc scenarios files from NS-3 folder (in scratch/ folder) successfully. >> What is wrong here? >> (2) >> Also, when i run "./waf" with any option, it needs 'sudo'. What is wrong? >> >> /Amin >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Thu Jun 20 16:44:19 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 20 Jun 2013 16:44:19 -0700 Subject: [ndnSIM] error: program 'ndn-simple' not found; available programs are: ... In-Reply-To: <51C38DA3.6070203@ac.upc.edu> References: <51C32BAB.8030203@ac.upc.edu> <51C38DA3.6070203@ac.upc.edu> Message-ID: Hi Amin, You probably want to give us more input on what exactly is happening. If you share build/config.log, then I can probably say more. --- Alex On Jun 20, 2013, at 4:17 PM, Amin Karami wrote: > Hi Alex, > I added --enable-examples flag to ./waf configure, but problem has not been solved! > So, I copied some scenarios from ndnSIM folder (examples/ folder) to NS-3 folder (scratch/ folder) to run them! > > Is there any solution? > > On 06/20/2013 06:29 ?.?, Alex Afanasyev wrote: >> Hi Amin, >> >> To make sure that examples are compiled in, you need to add --enable-examples flag to ./waf configure: >> >> ./waf configure --enable-examples >> >> I'm not sure why is if asking about sudo. Does it dhow an error otherwise? The only place it should happen is when you install. >> >> --- >> Alex >> >> On Jun 20, 2013, at 9:19 AM, Amin Karami wrote: >> >>> Hi, >>> (1) >>> When i want to run simulation scenarios from ndnSIM folder (in examples/ folder suc as ndn-simple.cc), i face with this error: >>> program 'ndn-simple' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] >>> >>> But, i can run .cc scenarios files from NS-3 folder (in scratch/ folder) successfully. >>> What is wrong here? >>> (2) >>> Also, when i run "./waf" with any option, it needs 'sudo'. What is wrong? >>> >>> /Amin >>> _______________________________________________ >>> 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 From shock.jiang at gmail.com Thu Jun 20 23:57:27 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 21 Jun 2013 14:57:27 +0800 Subject: [ndnSIM] Is it possible to set packet loss rate of link (point-to-point link) Message-ID: Dear all, My experiment need assumption about loss rate, is it possible for ndnSIM to set it? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From matteo.virgilio at polito.it Fri Jun 21 00:27:23 2013 From: matteo.virgilio at polito.it (Matteo Virgilio) Date: Fri, 21 Jun 2013 09:27:23 +0200 Subject: [ndnSIM] Questions about ConsumerWindow In-Reply-To: <2026A0F1-04E0-405C-9A22-260982293C64@ucla.edu> References: <51C2BF34.1010800@polito.it> <2026A0F1-04E0-405C-9A22-260982293C64@ucla.edu> Message-ID: <51C4005B.4030803@polito.it> Thank you very much for the clarification, Alex. Very helpful. Matteo Il 20/06/2013 18:01, Alex Afanasyev ha scritto: > Hi Matteo, > > Your understanding about retransmission timeout in ndn::Consumer* and interest lifetime is correct---they are not directly related to each other. Interest lifetime parameter is configured, while retransmission timer is automatically set based in te observed RTT. > > There is on difference in the interest processing on router in your simple example. The router, seeing new interest from the client while it still has a pending interest for the same name, will not discard it, but will use it as a signal that client did't receive data within the expected time and wants to retry. This signal, in the simple example will result in simply forwarding the interest again to the producer, in more complex example when the router has multiple paths to the producer, an alternative face could be tried. > > Basically, interest lifetime is just a parameter indicated by the client (which may or may not be used by routers), specifying for how long the clients is willing to wait for the data arrival. It doesn't necessarily mean that the client cannot detect that something bad happened before that time, and if detected, it can reexpress the interest, signaling routers for assistance (e.g., without the existing PIT entry, routers would be unaware that client is reexpressing the same interest, not just sending a new one). > > You may want to check retransmission detection method in model/fw/ndn-forwarding-strategy.cc to see what is the exact logic. This retransmission detection can actually be disabled, making routers behave the same way you described, but it would result in inability of clients to signal about non-received data via interest retransmission. > > --- > Alex > > On Jun 20, 2013, at 1:37 AM, Matteo Virgilio wrote: > >> Hi All, >> I'm working on ndnSim and I have some questions about the ConsumerWindow. I'm somewhat unclear about the retransmissions management. It seems that the value used for the retransmission timeout is not the one used for the interest lifetime value, in fact in CheckRetxTimeout() only the rtt is considered (or an estimation of it). So, when this timeout occurs, a new interest packet (for the same name) is scheduled for retransmission. Is this right? >> If yes, I have another question, let's assume the following (simple) scenario: >> CLIENT---------ROUTER--------PRODUCER >> and we assume the clients is using 4s as interest lifetime. The client sends out one interest but the response doesn't arrive (for any reason). If the client retransmits the interest on a RTT basis (RTT could be very small with respect to the lifetime), it will see its interest discarded by the router because the router already has an (alive) entry for that name. So this kind of retransmission is useless. This lead to my final question: how is exactly managed the retransmission in consumerWindow implementation? What I'm missing? >> Thanks in advance. >> Best regards. >> >> Matteo >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From sarantarnoi at gmail.com Fri Jun 21 00:31:16 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Fri, 21 Jun 2013 16:31:16 +0900 Subject: [ndnSIM] Is it possible to set packet loss rate of link (point-to-point link) Message-ID: Hello Xiaoke, Regarding the packet loss simulation on links, you may check the following example: https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-grid-topo-plugin-loss.cc and https://github.com/NDN-Routing/ndnSIM/blob/master/examples/topologies/topo-grid-3x3-loss.txt -- Regards, Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Fri Jun 21 00:50:42 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Fri, 21 Jun 2013 15:50:42 +0800 Subject: [ndnSIM] Is it possible to set packet loss rate of link (point-to-point link) In-Reply-To: References: Message-ID: Thank you Saran, it is really helpful! thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Friday, June 21, 2013 at 3:31 PM, Saran Tarnoi wrote: > Hello Xiaoke, > > Regarding the packet loss simulation on links, you may check the following example: > https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-grid-topo-plugin-loss.cc > and > https://github.com/NDN-Routing/ndnSIM/blob/master/examples/topologies/topo-grid-3x3-loss.txt > > -- > Regards, > Saran Tarnoi > -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Fri Jun 21 01:06:15 2013 From: amin at ac.upc.edu (Amin Karami) Date: Fri, 21 Jun 2013 10:06:15 +0200 Subject: [ndnSIM] error: program 'ndn-simple' not found; available programs are: ... In-Reply-To: References: <51C32BAB.8030203@ac.upc.edu> <51C38DA3.6070203@ac.upc.edu> Message-ID: <51C40977.8060602@ac.upc.edu> Hi Alex, I have re-installed boost and the problem was solved! Thank you. On 06/21/2013 01:44 ?.?, Alex Afanasyev wrote: > Hi Amin, > > You probably want to give us more input on what exactly is happening. If you share build/config.log, then I can probably say more. > > --- > Alex > > On Jun 20, 2013, at 4:17 PM, Amin Karami wrote: > >> Hi Alex, >> I added --enable-examples flag to ./waf configure, but problem has not been solved! >> So, I copied some scenarios from ndnSIM folder (examples/ folder) to NS-3 folder (scratch/ folder) to run them! >> >> Is there any solution? >> >> On 06/20/2013 06:29 ?.?, Alex Afanasyev wrote: >>> Hi Amin, >>> >>> To make sure that examples are compiled in, you need to add --enable-examples flag to ./waf configure: >>> >>> ./waf configure --enable-examples >>> >>> I'm not sure why is if asking about sudo. Does it dhow an error otherwise? The only place it should happen is when you install. >>> >>> --- >>> Alex >>> >>> On Jun 20, 2013, at 9:19 AM, Amin Karami wrote: >>> >>>> Hi, >>>> (1) >>>> When i want to run simulation scenarios from ndnSIM folder (in examples/ folder suc as ndn-simple.cc), i face with this error: >>>> program 'ndn-simple' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] >>>> >>>> But, i can run .cc scenarios files from NS-3 folder (in scratch/ folder) successfully. >>>> What is wrong here? >>>> (2) >>>> Also, when i run "./waf" with any option, it needs 'sudo'. What is wrong? >>>> >>>> /Amin >>>> _______________________________________________ >>>> 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 From panhgshine at 163.com Fri Jun 21 01:18:12 2013 From: panhgshine at 163.com (panhgshine at 163.com) Date: Fri, 21 Jun 2013 16:18:12 +0800 (CST) Subject: [ndnSIM] Lru policy lookup and insert function Message-ID: <55b4d8f9.8351.13f65cfeb8b.Coremail.panhgshine@163.com> Hi Alex, I have modify a replacement policy based on LRU. I found that if lookup an item that did't insert the list, the program will break. And I read the API of boost::intrusive::list::splice(const_iterator p, list & x, const_iterator new_ele) function. It requires new_ele must point to an element contained in list x. So, I know the reason that program break. But, in real world, if the Lookup function in ContentStoreImpl execute before Add function in ContentStoreImpl, what would happen? And, can I modify the insert function in LRU policy to decide how to insert the item? Thank you! --Pan -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarantarnoi at gmail.com Fri Jun 21 02:40:48 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Fri, 21 Jun 2013 18:40:48 +0900 Subject: [ndnSIM] LFU and LRU replacement policies Message-ID: Hi All, I tested some experiments to see how each replacement policy change the traffic. Specifically, I want to study filtering effect in hierarchical caches. Unfortunately, I got some unexplainable results and hope that someone can kindly emphasize them. Theoretically, LFU evicts the "least frequently used" item from a cache when the cache needs more room for an item, while LRU discards the least recently used item. In page 58 of a legendary paper "*On Filter Effects in Web Caching Hierarchies,"* they clearly showed that LFU more effectively filters the popular items out from the Zipf-like traffic than LRU does. By using ndnSIM, the results do not follow those in the paper. I found that some (minority of) interests asking for very popular items are not filtered by LFU cache, they still go to the next CCN router while the ones asking for less popular items are filtered effectively. ZipfMandelbrot consumer app generates interest traffic by reducing the popularity of particular interests proportionally to the their index sequence. In other words, "/prefix/1" is generated more frequently than "/prefix/2", "/prefix/3", ..., "/prefix/N". I found that some interests with "/prefix/a" cannot find their target item in the cache while some interests with prefix "/prefix/a-i" and "/prefix/a+i" can, where i > 0. I think it should not be so in the cache with LFU implemented. Thus I infer from the results that LFU does not always evict the "least frequently used" from the content store. It seems to me that sometimes it can even randomly discard some of more frequently used items from the cache. This is the fact of LFU, the imperfection of my experiment, or a bug in Lfu policy? For LRU, I found that a more popular item can be found in the cache with a higher possibility than those of less popular items, so it is reasonable. If I misunderstand the logic of LFU, please let me know. Sorry for the long question. Thank you so much for your time. -- Regards, Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Fri Jun 21 07:01:17 2013 From: amin at ac.upc.edu (Amin Karami) Date: Fri, 21 Jun 2013 16:01:17 +0200 Subject: [ndnSIM] modification of 'OnInterest' in 'Producer' side Message-ID: <51C45CAD.6060907@ac.upc.edu> Hi, I am going to modify some fields in 'OnInterest' in side of the 'Producer'. e.g., signature of a specific content or freshness field of a specific content. I read this page to get more idea http://ndnsim.net/doxygen/ndn-producer_8cc_source.html But i could not understand how is it possible to implement in our scenarios? I appreciate in advance for any guidance in implementation Amin From alexander.afanasyev at ucla.edu Fri Jun 21 12:42:45 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 21 Jun 2013 12:42:45 -0700 Subject: [ndnSIM] Is it possible to set packet loss rate of link (point-to-point link) In-Reply-To: References: Message-ID: <0EEFADC9-9216-4E49-9C62-76E8FD58C38E@ucla.edu> Hi Xiaoke, NS-3 allows you to use various error models on links. For example, if you're using ndnSIM's annotated topology reader, I recently add ability to configure error models. Here is an example of topology file: https://github.com/NDN-Routing/ndnSIM/blob/master/examples/topologies/topo-grid-3x3-loss.txt and here is scenario example: https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-grid-topo-plugin-loss.cc --- Alex On Jun 20, 2013, at 11:57 PM, Xiaoke Jiang wrote: > Dear all, > My experiment need assumption about loss rate, is it possible for ndnSIM to set it? > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Jun 21 12:57:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 21 Jun 2013 12:57:28 -0700 Subject: [ndnSIM] Is it possible to set packet loss rate of link (point-to-point link) In-Reply-To: References: Message-ID: <2748ED48-5216-4156-B998-C2DE657463B1@ucla.edu> Oops. Didn't see that Saran already answered your question :) Just in case, here is the link with more information about available error models in NS-3: http://www.nsnam.org/docs/models/html/error-model.html And here is doxygen link about them: http://www.nsnam.org/doxygen/classns3_1_1_error_model.html --- Alex On Jun 21, 2013, at 12:50 AM, Xiaoke Jiang wrote: > Thank you Saran, it is really helpful! > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Friday, June 21, 2013 at 3:31 PM, Saran Tarnoi wrote: > >> Hello Xiaoke, >> >> Regarding the packet loss simulation on links, you may check the following example: >> https://github.com/NDN-Routing/ndnSIM/blob/master/examples/ndn-grid-topo-plugin-loss.cc >> and >> https://github.com/NDN-Routing/ndnSIM/blob/master/examples/topologies/topo-grid-3x3-loss.txt >> >> -- >> Regards, >> Saran Tarnoi >> > > _______________________________________________ > 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 Jun 21 13:05:40 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 21 Jun 2013 13:05:40 -0700 Subject: [ndnSIM] Lru policy lookup and insert function In-Reply-To: <55b4d8f9.8351.13f65cfeb8b.Coremail.panhgshine@163.com> References: <55b4d8f9.8351.13f65cfeb8b.Coremail.panhgshine@163.com> Message-ID: Hi Pan, I'm not quite sure what your particular problem is. Whenever "Lookup" is called before add on a container, it will just return that the item is not in the container and that's it. There would never be call to the policy, and if you're getting it, then something is wrong with policy-container consistency. Also, what do you mean by "modify ... how to insert"? With LRU you always either add to the end or don't add, in which case you have to return false (otherwise you may get inconsistency and crashes). --- Alex On Jun 21, 2013, at 1:18 AM, panhgshine at 163.com wrote: > Hi Alex, > > I have modify a replacement policy based on LRU. I found that if lookup an item that did't insert the list, the program will break. And I read the API of boost::intrusive::list::splice(const_iterator p, list & x, const_iterator new_ele) function. It requires new_ele must point to an element contained in list x. So, I know the reason that program break. But, in real world, if the Lookup function in ContentStoreImpl execute before Add function in ContentStoreImpl, what would happen? And, can I modify the insert function in LRU policy to decide how to insert the item? > > Thank you! > --Pan -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Jun 21 13:11:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 21 Jun 2013 13:11:57 -0700 Subject: [ndnSIM] modification of 'OnInterest' in 'Producer' side In-Reply-To: <51C45CAD.6060907@ac.upc.edu> References: <51C45CAD.6060907@ac.upc.edu> Message-ID: Hi Amin, You just add lines after line 122 in ndn-producer.cc with your custom settings to the created DATA packet. Like this: header->SetName (Create (interest->GetName ())); header->SetFreshness (m_freshness); header->SetSignature (1); If you want "signature" parameter to be configured in scenario, e.g., in this way: ndn::AppHelper producerHelper ("ns3::ndn::Producer"); producerHelper.SetPrefix ("/prefix"); producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); producerHelper.SetAttribute ("Signature", StringValue("1")); Then you would also need to make a couple of extra changes: in ndn-producer.h add new private variable uint32_t m_signature; in ndn-producer.cc in GetTypeId method (between line 66 and 67): .AddAttribute ("Signature", "Fake signature", UintegerValue (0), MakeUintegerAccessor(&Producer::m_signature), MakeUintegerChecker()) And then on line 123, do something like: header->SetSignature (m_signature); --- Alex On Jun 21, 2013, at 7:01 AM, Amin Karami wrote: > Hi, > I am going to modify some fields in 'OnInterest' in side of the 'Producer'. e.g., signature of a specific content or freshness field of a specific content. I read this page to get more idea http://ndnsim.net/doxygen/ndn-producer_8cc_source.html > But i could not understand how is it possible to implement in our scenarios? > > I appreciate in advance for any guidance in implementation > Amin > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Fri Jun 21 13:31:43 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 21 Jun 2013 13:31:43 -0700 Subject: [ndnSIM] LFU and LRU replacement policies In-Reply-To: References: Message-ID: <05978B68-FC73-45F6-A58C-0413CEA82DC0@ucla.edu> Hi Saran, Could it be related to the fact that current implementation of LFU is not really the right one? E.g., the current "rate" is not really a rate, but merely a popularity index since item got into the cache. To make it real frequency, we need to define some period and do periodic recalculation of rates... Do you know the details of LFU implementation used in the paper? --- Alex On Jun 21, 2013, at 2:40 AM, Saran Tarnoi wrote: > Hi All, > > I tested some experiments to see how each replacement policy change the traffic. > Specifically, I want to study filtering effect in hierarchical caches. > > Unfortunately, I got some unexplainable results and hope that someone can kindly emphasize them. > > Theoretically, LFU evicts the "least frequently used" item from a cache when the cache needs more room for an item, while LRU discards the least recently used item. > In page 58 of a legendary paper "On Filter Effects in Web Caching Hierarchies," they clearly showed that LFU more effectively filters the popular items out from the Zipf-like traffic than LRU does. > > By using ndnSIM, the results do not follow those in the paper. > I found that some (minority of) interests asking for very popular items are not filtered by LFU cache, they still go to the next CCN router while the ones asking for less popular items are filtered effectively. > > ZipfMandelbrot consumer app generates interest traffic by reducing the popularity of particular interests proportionally to the their index sequence. > In other words, "/prefix/1" is generated more frequently than "/prefix/2", "/prefix/3", ..., "/prefix/N". > > I found that some interests with "/prefix/a" cannot find their target item in the cache while some interests with prefix "/prefix/a-i" and "/prefix/a+i" can, where i > 0. > > I think it should not be so in the cache with LFU implemented. > Thus I infer from the results that LFU does not always evict the "least frequently used" from the content store. > It seems to me that sometimes it can even randomly discard some of more frequently used items from the cache. > This is the fact of LFU, the imperfection of my experiment, or a bug in Lfu policy? > > For LRU, I found that a more popular item can be found in the cache with a higher possibility than those of less popular items, so it is reasonable. > > If I misunderstand the logic of LFU, please let me know. > > Sorry for the long question. > Thank you so much for your time. > > -- > Regards, > Saran Tarnoi -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Fri Jun 21 15:51:18 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sat, 22 Jun 2013 00:51:18 +0200 Subject: [ndnSIM] Interest Flooding Attack Strategies In-Reply-To: References: <51BDDE02.1020100@ac.upc.edu> <51BFA38B.5010000@ac.upc.edu> Message-ID: <51C4D8E6.7070703@ac.upc.edu> Hi Alex, It is good and enough :-) There is an extra question: When the data packet is modified by signature field to make a wrong data packet, which node/router can aware of this modification in the way back? The first router that hold interest packet in PIT? or the first middle node which will receive data packet in the way back? /Amin On 06/18/2013 02:32 ?.?, Alex Afanasyev wrote: > Hi Amin, > > I would say that for simulation purposes, you can simply use "Signature" fields that is currently available. Again, this is only for simulation purposes, but assuming that signature "1" (just number one) represents right key locator and genuine packet, while signature "2" (just number 2) represents wrong key locator and/or modified public key digest, would capture all the "wrongdoings" by the malicious nodes without incurring unnecessary overhead. Do you think it can work in your case? > > --- > Alex > > On Jun 17, 2013, at 5:02 PM, Amin Karami wrote: > >> Hi Alex, >> I am going to manipulate some fields of data packets in side of the publisher to construct unsatisfiable interest packets deliberately, such as: >> 1- 'publisherpublickeydigest': By changing the public key value of the packet. >> If there is no 'publisherpublickeydigest' field in current ndnSIM, Is there another way to change deliberately the data packet? >> >> 2- 'KeyLocator': change deliberately data packet's verification key (e.g., make fake/spurious key). >> >> >> >> On 06/18/2013 01:34 ?.?, Alex Afanasyev wrote: >>> Hi Amin, >>> >>> 1. I would say that such a case should be considered as an attack, though whether it is "flooding" or not would depend on the consumer data fetching strategy. For example, if you use ConsumerWindow, then if it cannot fetch data, it will reduce it's window to one and would do re-tries very infrequently (at max RTO periods). In other case, if you use ConsumerCbr with high frequency, then this almost definitely would be an attack. Note that ConsumerCbr will do re-requests for the same data, which is a little bit different from "real" flooding attack, where requester will send unique requests all the time (like this DumbRequester example: http://ndnsim.net/applications.html#dumb-requester) >>> >>> 2. There is no publisherpublickeydigest in ndnSIM currently, but I'm not entirely sure about your question. What exactly do you want to achieve? >>> >>> 3. Again, ndnSIM doesn't yet support Exclude filter, but I'm working on it and it should be there relatively soon. However, exclude filter doesn't work this way, it allows you to exclude a specific name component(s) that goes after whatever you requested. For example: >>> you send interest for /ndn/prefix/bla with exclude filter x1,x2,x3, meaning that you want some data packet that has prefix /ndn/prefix/bla but does not contain prefix >>> >>> /ndn/prefix/bla/x1 >>> or >>> /ndn/prefix/bla/x2 >>> or >>> /ndn/prefix/bla/x3 >>> >>> 3.5 Not sure what is your question about KeyLocator. What functionality you want from it? Since ndnSIM is a simulator, there is no (and I would say, there should not be) actual verification process and it can be implemented using flags (e.g., in Signature field), making assumptions about these flags. >>> >>> --- >>> Alex >>> >>> >>> On Jun 16, 2013, at 8:47 AM, Amin Karami wrote: >>> >>>> Hi, >>>> >>>> I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: >>>> 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? >>>> >>>> 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? >>>> >>>> 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? >>>> >>>> >>>> Thank you in advance. >>>> /Amin From shock.jiang at gmail.com Fri Jun 21 21:58:53 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Sat, 22 Jun 2013 12:58:53 +0800 Subject: [ndnSIM] Is it possible to make NDN run on top of TCP & Python script Message-ID: Dear all, My experiment requires to run ndn on top of TCP, is it possible. And I am better at python, does ndnSIM support python script? Thank you! thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From htunhtunu at gmail.com Sat Jun 22 02:29:10 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Sat, 22 Jun 2013 18:29:10 +0900 Subject: [ndnSIM] Help for running ndnSIM Message-ID: Dear Alex, . When I am trying to run ndnSIM statful forwarding as the README. I can run example scenarios under the src/ndnSIM directory. But I try to run the scenarios from common-stateful-fw and I get the error message. When I am running the ./waf configure, I get this error "Checking for ns3-ndnSIM :not found" Where should I put this ndnSIM-common-stateful-fw directory? What is my misunderstanding? Pls guide me! Thanks in advance TUN TUN OO -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Sat Jun 22 06:08:51 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sat, 22 Jun 2013 15:08:51 +0200 Subject: [ndnSIM] Dumb Requester Message-ID: <51C5A1E3.5070200@ac.upc.edu> Hi! I have ran dumb request by following code: ndn::AppHelper consumerHelper ("DumbRequester"); consumerHelper.SetPrefix ("/dst1"); consumerHelper.Install ("Src1"); When i ran the simulator, an error occurs: assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: DumbRequester not found", file=../src/core/model/type-id.cc, line=419 terminate called without an active exception Command ['/home/bluebit/Documents/NDN Simulator/ns-3/build/scratch/ndn-dumb', '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). From amin at ac.upc.edu Sat Jun 22 13:08:25 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sat, 22 Jun 2013 22:08:25 +0200 Subject: [ndnSIM] Modification of 'Signature' field and irrational reports In-Reply-To: <51C4D8E6.7070703@ac.upc.edu> References: <51BDDE02.1020100@ac.upc.edu> <51BFA38B.5010000@ac.upc.edu> <51C4D8E6.7070703@ac.upc.edu> Message-ID: <51C60439.5060101@ac.upc.edu> Hi Alex, When i modified 'Signature' field (just number 2) in side of the producer, I saw some irrational reports in 'l3-rate-tracer.txt': 1- If we change signature field in side of the producer, we should have no any interest satisfy rate in side of the router or consumer because the right key is changed and we do not have interest satisfaction. Right? but I have interest satisfy rate same as when we do not change signature field. what is wrong? 2- When we change signature filed, which parameter should be changed in 'l3-rate-trace.txt'? OutData in producer side? or DropData in router side? or InterestSatisfiedRate in consumer side? or ...? because, I have not seen any significant changes when there is wrong signature or right signature! 3- Why the 'SatisfiedInterests' field is in the real format? Is not should be in the integer format? 4- What does 'OutInterest' mean in side of the producer? Why the producer needs to send interest? Thank you in advance for your all supports. /Amin From shock.jiang at gmail.com Sun Jun 23 01:46:14 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Sun, 23 Jun 2013 16:46:14 +0800 Subject: [ndnSIM] compiling error Message-ID: <0F29A006FB894015A30E21BE209B9FB1@gmail.com> Hi Alex, Today I reconfigure my local code on my mac os, then compiling gives me an error. Do you meet this before? [ 987/2043] cxx: src/internet/model/ipv4-raw-socket-factory-impl.cc -> build/src/internet/model/ipv4-raw-socket-factory-impl.cc.1.o In file included from ./ns3/ipv4-routing-protocol.h:25, from ./ns3/ipv4-list-routing.h:23, from ./ns3/ipv4-routing-helper.h:26, from ./ns3/ipv4-nix-vector-helper.h:25, from ./ns3/nix-vector-routing-module.h:10, from src/nix-vector-routing/bindings/ns3module.h:63, from src/nix-vector-routing/bindings/ns3module.cc:1: ./ns3/ipv4-header.h:88: error: expected identifier before numeric constant ./ns3/ipv4-header.h:88: error: expected `}' before numeric constant ./ns3/ipv4-header.h:88: error: expected unqualified-id before numeric constant ./ns3/ipv4-header.h:99: error: variable or field ?SetDscp? declared void thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jun 23 22:08:33 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:08:33 -0700 Subject: [ndnSIM] compiling error In-Reply-To: <0F29A006FB894015A30E21BE209B9FB1@gmail.com> References: <0F29A006FB894015A30E21BE209B9FB1@gmail.com> Message-ID: <49709615-5B2A-4A74-84C2-6CACAA21A6B5@ucla.edu> Hi Xiaoke, No, I haven't seen this error, though I'm using OSX to compile NS-3 all the time. Are you using clang or gcc compiler? I checked ipv4-header.h:88 file and the line corresponds to definition of CS5 identifier. It is possible (but not sure why) that something is defining CS5 as something else, which confuses the compilation. -- Alex On Jun 23, 2013, at 1:46 AM, Xiaoke Jiang wrote: > Hi Alex, > Today I reconfigure my local code on my mac os, then compiling gives me an error. Do you meet this before? > > [ 987/2043] cxx: src/internet/model/ipv4-raw-socket-factory-impl.cc -> build/src/internet/model/ipv4-raw-socket-factory-impl.cc.1.o > In file included from ./ns3/ipv4-routing-protocol.h:25, > from ./ns3/ipv4-list-routing.h:23, > from ./ns3/ipv4-routing-helper.h:26, > from ./ns3/ipv4-nix-vector-helper.h:25, > from ./ns3/nix-vector-routing-module.h:10, > from src/nix-vector-routing/bindings/ns3module.h:63, > from src/nix-vector-routing/bindings/ns3module.cc:1: > ./ns3/ipv4-header.h:88: error: expected identifier before numeric constant > ./ns3/ipv4-header.h:88: error: expected `}' before numeric constant > ./ns3/ipv4-header.h:88: error: expected unqualified-id before numeric constant > ./ns3/ipv4-header.h:99: error: variable or field ?SetDscp? declared void > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jun 23 22:11:10 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:11:10 -0700 Subject: [ndnSIM] Interest Flooding Attack Strategies In-Reply-To: <51C4D8E6.7070703@ac.upc.edu> References: <51BDDE02.1020100@ac.upc.edu> <51BFA38B.5010000@ac.upc.edu> <51C4D8E6.7070703@ac.upc.edu> Message-ID: Hi Amin, This is something that you would need to put in into the logic of your forwarding strategy. In the default strategies, neither of routers would know anything what Signature 2 means. You can check http://ndnsim.net/fw.html#writing-your-own-custom-strategy for example how to make custom strategies. --- Alex On Jun 21, 2013, at 3:51 PM, Amin Karami wrote: > Hi Alex, > It is good and enough :-) > There is an extra question: > When the data packet is modified by signature field to make a wrong data packet, which node/router can aware of this modification in the way back? The first router that hold interest packet in PIT? or the first middle node which will receive data packet in the way back? > > > /Amin > > On 06/18/2013 02:32 ?.?, Alex Afanasyev wrote: >> Hi Amin, >> >> I would say that for simulation purposes, you can simply use "Signature" fields that is currently available. Again, this is only for simulation purposes, but assuming that signature "1" (just number one) represents right key locator and genuine packet, while signature "2" (just number 2) represents wrong key locator and/or modified public key digest, would capture all the "wrongdoings" by the malicious nodes without incurring unnecessary overhead. Do you think it can work in your case? >> >> --- >> Alex >> >> On Jun 17, 2013, at 5:02 PM, Amin Karami wrote: >> >>> Hi Alex, >>> I am going to manipulate some fields of data packets in side of the publisher to construct unsatisfiable interest packets deliberately, such as: >>> 1- 'publisherpublickeydigest': By changing the public key value of the packet. >>> If there is no 'publisherpublickeydigest' field in current ndnSIM, Is there another way to change deliberately the data packet? >>> >>> 2- 'KeyLocator': change deliberately data packet's verification key (e.g., make fake/spurious key). >>> >>> >>> >>> On 06/18/2013 01:34 ?.?, Alex Afanasyev wrote: >>>> Hi Amin, >>>> >>>> 1. I would say that such a case should be considered as an attack, though whether it is "flooding" or not would depend on the consumer data fetching strategy. For example, if you use ConsumerWindow, then if it cannot fetch data, it will reduce it's window to one and would do re-tries very infrequently (at max RTO periods). In other case, if you use ConsumerCbr with high frequency, then this almost definitely would be an attack. Note that ConsumerCbr will do re-requests for the same data, which is a little bit different from "real" flooding attack, where requester will send unique requests all the time (like this DumbRequester example: http://ndnsim.net/applications.html#dumb-requester) >>>> >>>> 2. There is no publisherpublickeydigest in ndnSIM currently, but I'm not entirely sure about your question. What exactly do you want to achieve? >>>> >>>> 3. Again, ndnSIM doesn't yet support Exclude filter, but I'm working on it and it should be there relatively soon. However, exclude filter doesn't work this way, it allows you to exclude a specific name component(s) that goes after whatever you requested. For example: >>>> you send interest for /ndn/prefix/bla with exclude filter x1,x2,x3, meaning that you want some data packet that has prefix /ndn/prefix/bla but does not contain prefix >>>> >>>> /ndn/prefix/bla/x1 >>>> or >>>> /ndn/prefix/bla/x2 >>>> or >>>> /ndn/prefix/bla/x3 >>>> >>>> 3.5 Not sure what is your question about KeyLocator. What functionality you want from it? Since ndnSIM is a simulator, there is no (and I would say, there should not be) actual verification process and it can be implemented using flags (e.g., in Signature field), making assumptions about these flags. >>>> >>>> --- >>>> Alex >>>> >>>> >>>> On Jun 16, 2013, at 8:47 AM, Amin Karami wrote: >>>> >>>>> Hi, >>>>> >>>>> I want to run a scenario in ndnSIM with Interest Flooding Attack (IFA) purposes as non-existent contents requested. But i faced with some problems in ndnSIM as follows: >>>>> 1- If we declare a consumer with predefined interest requesting parameters, but do not define any producer to satisfy consumer interest packets, can it be such a interest flooding attack? >>>>> >>>>> 2- Set the 'PublisherPublicKeyDigest' field to a random value. because there is no public key would match this value, So, interest packets will remain unsatisfied. How can we modify this parameter in ndnSIM for a specific node? >>>>> >>>>> 3- Set the interest 'Exclude' filter to exclude all existing content starting with e.g., /ndn/prefix. how is it possible in ndnSIM for a specific node? How about 'KeyLocator' field? >>>>> >>>>> >>>>> Thank you in advance. >>>>> /Amin > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Jun 23 22:28:34 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:28:34 -0700 Subject: [ndnSIM] Is it possible to make NDN run on top of TCP & Python script In-Reply-To: References: Message-ID: Hi Xiaoke, It is technically possible, but would require making a special face that works over TCP. Do you want to try to implement such a face? Btw, what do you want to measure by running NDN over TCP? It is not really a "normal" mode for NDN. If you need tunneling over IP, then simple UDP should be enough... --- Alex On Jun 21, 2013, at 9:58 PM, Xiaoke Jiang wrote: > Dear all, > My experiment requires to run ndn on top of TCP, is it possible. > > And I am better at python, does ndnSIM support python script? > > Thank you! > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > _______________________________________________ > 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 Sun Jun 23 22:33:18 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:33:18 -0700 Subject: [ndnSIM] Help for running ndnSIM In-Reply-To: References: Message-ID: <52814C32-C232-4947-98E3-5B9EC28BDE85@ucla.edu> Hi Tun, Did you follow these instructions to install ndnSIM http://ndnsim.net/getting-started.html#downloading-ndnsim-source ? The error indicates that something is wrong with ndnSIM installation. I suspect that you are missing (or something is wrong with) boost libraries, so when you configure and install NS-3, ndnSIM module was not installed. As for ndnSIM-common-stateful-fw directory, you should put it anywhere outside NS-3 directory tree. For example: ~/ndnSIM/ns-3 <- directory with NS-3 ~/ndnSIM/ns-3/src/ndnSIM <- directory where ndnSIM is checked out ... ~/ndnSIM/pybindgen ~/ndnSIM/ndnSIM-common-stateful-fw --- Alex On Jun 22, 2013, at 2:29 AM, Tun Tun Oo wrote: > Dear Alex, > > . > When I am trying to run ndnSIM statful forwarding as the README. > I can run example scenarios under the src/ndnSIM directory. > But I try to run the scenarios from common-stateful-fw and I get the error message. > When I am running the ./waf configure, I get this error "Checking for ns3-ndnSIM :not found" > Where should I put this ndnSIM-common-stateful-fw directory? > What is my misunderstanding? > Pls guide me! > > Thanks in advance > > > TUN TUN OO > _______________________________________________ > 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 Sun Jun 23 22:37:55 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:37:55 -0700 Subject: [ndnSIM] Is it possible to make NDN run on top of TCP & Python script In-Reply-To: References: Message-ID: <0C7FB8F5-AE74-433E-90C0-99459825D02D@ucla.edu> Forgot to answer your second question. It is possible to write python scripts as a simulation scenario (and ndnSIM supports that), but I would not really recommend it. With python you have really limited control of what is happening and not every functionality is available through python. --- Alex On Jun 23, 2013, at 10:28 PM, Alex Afanasyev wrote: > Hi Xiaoke, > > It is technically possible, but would require making a special face that works over TCP. Do you want to try to implement such a face? > Btw, what do you want to measure by running NDN over TCP? It is not really a "normal" mode for NDN. If you need tunneling over IP, then simple UDP should be enough... > > --- > Alex > > On Jun 21, 2013, at 9:58 PM, Xiaoke Jiang wrote: > >> Dear all, >> My experiment requires to run ndn on top of TCP, is it possible. >> >> And I am better at python, does ndnSIM support python script? >> >> Thank you! >> >> thanks >> >> My Regards, >> Xiaoke (Shock) Jiang ????? >> >> Ph.D. Candidate, >> Department of Computer Science and Technology, >> Tsinghua University, Beijing, P.R.China. 100084 >> _______________________________________________ >> 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 Sun Jun 23 22:40:20 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:40:20 -0700 Subject: [ndnSIM] Dumb Requester In-Reply-To: <51C5A1E3.5070200@ac.upc.edu> References: <51C5A1E3.5070200@ac.upc.edu> Message-ID: <2C69A720-3B14-4A85-AA0C-B1A791462012@ucla.edu> Hi Amin, If you're using scratch/ folder, then you need to organize your code a little bit differently: mkdir scratch/ndn-dumb-scenario cp src/ndnSIM/examples/custom-apps/dumb-requester.* scratch/ndn-dumb-scenario/ mv scratch/ndn-dumb.cc scratch/ndn-dumb-scenario/ This way, NS-3 will know that all files under scratch/ndn-dumb-scenario/ need to be compiled together to create one scenario. --- Alex On Jun 22, 2013, at 6:08 AM, Amin Karami wrote: > Hi! > I have ran dumb request by following code: > ndn::AppHelper consumerHelper ("DumbRequester"); > consumerHelper.SetPrefix ("/dst1"); > consumerHelper.Install ("Src1"); > > When i ran the simulator, an error occurs: > > assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: DumbRequester not found", file=../src/core/model/type-id.cc, line=419 > terminate called without an active exception > Command ['/home/bluebit/Documents/NDN Simulator/ns-3/build/scratch/ndn-dumb', '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Jun 23 22:47:04 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 23 Jun 2013 22:47:04 -0700 Subject: [ndnSIM] Modification of 'Signature' field and irrational reports In-Reply-To: <51C60439.5060101@ac.upc.edu> References: <51BDDE02.1020100@ac.upc.edu> <51BFA38B.5010000@ac.upc.edu> <51C4D8E6.7070703@ac.upc.edu> <51C60439.5060101@ac.upc.edu> Message-ID: Hi Amin, As I mentioned in the other email, you really need to add additional processing logic in your custom forwarding strategy, otherwise it is no different which Signature is in data packet. first two number columns in l3-rate-tracer.txt are estimated "rates", that is why the numbers are not integer (e.g., average number of satisfied interests per second). If you need actual numbers, you can use other two numbers which represent absolute number of packets (and kilobytes) in the last second for the parameter. --- Alex On Jun 22, 2013, at 1:08 PM, Amin Karami wrote: > Hi Alex, > When i modified 'Signature' field (just number 2) in side of the producer, I saw some irrational reports in 'l3-rate-tracer.txt': > > 1- If we change signature field in side of the producer, we should have no any interest satisfy rate in side of the router or consumer because the right key is changed and we do not have interest satisfaction. Right? but I have interest satisfy rate same as when we do not change signature field. what is wrong? > > 2- When we change signature filed, which parameter should be changed in 'l3-rate-trace.txt'? OutData in producer side? or DropData in router side? or InterestSatisfiedRate in consumer side? or ...? > because, I have not seen any significant changes when there is wrong signature or right signature! > > 3- Why the 'SatisfiedInterests' field is in the real format? Is not should be in the integer format? > > 4- What does 'OutInterest' mean in side of the producer? Why the producer needs to send interest? > > > Thank you in advance for your all supports. > > /Amin > From sarantarnoi at gmail.com Mon Jun 24 01:58:06 2013 From: sarantarnoi at gmail.com (Saran Tarnoi) Date: Mon, 24 Jun 2013 17:58:06 +0900 Subject: [ndnSIM] LFU and LRU replacement policies In-Reply-To: <05978B68-FC73-45F6-A58C-0413CEA82DC0@ucla.edu> References: <05978B68-FC73-45F6-A58C-0413CEA82DC0@ucla.edu> Message-ID: Hi Alex, Thanks for your reply. I think I can explain the results now, namely, it is the nature of LFU replacement policy. Since LFU, in ndnSIM, uses the popularity index of the stored content as the eviction criterion, it may be some content objects which have the same lowest popularity index at the same time. As a result, one of them is evicted from the cache when more room is needed, and that content object will never obtain the popularity index it should have had throughout the simulation time. Besides, ZipfMandelbrot consumer app has inevitably imperfection of the generated interest popularity unless the we simulate a large enough simulation. The above could be the reason why only the minority of popular content didn't follow my understanding. However, please don't hesitate to let me know if I'm wrong. For the detail of LFU implementation in that paper, I found that they used LFU-Aging, which tries to evict the content object that used to be popular from a cache and keep the new popular in the cache. In other words, it also includes the aging of content to be criterion for replacement. In ndnSIM, we assume a static traffic model, so I think LFU aging is not necessary now. However, if we can model varying traffic (regarding content popularity), LFU-Aging will be strongly needed. Hope this help and any comment is very welcome. Thanks for your time. Regards, Saran Tarnoi 2013/6/22 Alex Afanasyev > Hi Saran, > > Could it be related to the fact that current implementation of LFU is not > really the right one? E.g., the current "rate" is not really a rate, but > merely a popularity index since item got into the cache. To make it real > frequency, we need to define some period and do periodic recalculation of > rates... > > Do you know the details of LFU implementation used in the paper? > > --- > Alex > > On Jun 21, 2013, at 2:40 AM, Saran Tarnoi wrote: > > Hi All, > > I tested some experiments to see how each replacement policy change the > traffic. > Specifically, I want to study filtering effect in hierarchical caches. > > Unfortunately, I got some unexplainable results and hope that someone can > kindly emphasize them. > > Theoretically, LFU evicts the "least frequently used" item from a cache > when the cache needs more room for an item, while LRU discards the least > recently used item. > In page 58 of a legendary paper "*On Filter Effects in Web Caching > Hierarchies,"* they clearly showed that LFU more effectively filters the > popular items out from the Zipf-like traffic than LRU does. > > By using ndnSIM, the results do not follow those in the paper. > I found that some (minority of) interests asking for very popular items > are not filtered by LFU cache, they still go to the next CCN router while > the ones asking for less popular items are filtered effectively. > > ZipfMandelbrot consumer app generates interest traffic by reducing the > popularity of particular interests proportionally to the their index > sequence. > In other words, "/prefix/1" is generated more frequently than > "/prefix/2", "/prefix/3", ..., "/prefix/N". > > I found that some interests with "/prefix/a" cannot find their target item > in the cache while some interests with prefix "/prefix/a-i" and > "/prefix/a+i" can, where i > 0. > > I think it should not be so in the cache with LFU implemented. > Thus I infer from the results that LFU does not always evict the "least > frequently used" from the content store. > It seems to me that sometimes it can even randomly discard some of more > frequently used items from the cache. > This is the fact of LFU, the imperfection of my experiment, or a bug in > Lfu policy? > > For LRU, I found that a more popular item can be found in the cache with a > higher possibility than those of less popular items, so it is reasonable. > > If I misunderstand the logic of LFU, please let me know. > > Sorry for the long question. > Thank you so much for your time. > > -- > Regards, > Saran Tarnoi > > > -- 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 shock.jiang at gmail.com Mon Jun 24 02:02:12 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Mon, 24 Jun 2013 17:02:12 +0800 Subject: [ndnSIM] Is it possible to make NDN run on top of TCP & Python script In-Reply-To: <0C7FB8F5-AE74-433E-90C0-99459825D02D@ucla.edu> References: <0C7FB8F5-AE74-433E-90C0-99459825D02D@ucla.edu> Message-ID: <3DC183F6690C43D88FF785FC950B306A@gmail.com> Thank you, Alex. In fact, I like ndnSIM very much and am willing to contribute more to it. But I am not sure whether I have enough time to do that, since I am preparing for a Infocom paper. Maybe after that I can try, OK? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Monday, June 24, 2013 at 1:37 PM, Alex Afanasyev wrote: > Forgot to answer your second question. It is possible to write python scripts as a simulation scenario (and ndnSIM supports that), but I would not really recommend it. With python you have really limited control of what is happening and not every functionality is available through python. > > --- > Alex > > On Jun 23, 2013, at 10:28 PM, Alex Afanasyev wrote: > > Hi Xiaoke, > > > > It is technically possible, but would require making a special face that works over TCP. Do you want to try to implement such a face? > > Btw, what do you want to measure by running NDN over TCP? It is not really a "normal" mode for NDN. If you need tunneling over IP, then simple UDP should be enough... > > > > --- > > Alex > > > > On Jun 21, 2013, at 9:58 PM, Xiaoke Jiang wrote: > > > Dear all, > > > My experiment requires to run ndn on top of TCP, is it possible. > > > > > > And I am better at python, does ndnSIM support python script? > > > > > > Thank you! > > > > > > thanks > > > > > > My Regards, > > > Xiaoke (Shock) Jiang ????? > > > > > > Ph.D. Candidate, > > > Department of Computer Science and Technology, > > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > > > _______________________________________________ > > > ndnSIM mailing list > > > ndnSIM at lists.cs.ucla.edu (mailto:ndnSIM at lists.cs.ucla.edu) > > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Mon Jun 24 04:03:28 2013 From: amin at ac.upc.edu (Amin Karami) Date: Mon, 24 Jun 2013 13:03:28 +0200 Subject: [ndnSIM] Dumb Requester In-Reply-To: <2C69A720-3B14-4A85-AA0C-B1A791462012@ucla.edu> References: <51C5A1E3.5070200@ac.upc.edu> <2C69A720-3B14-4A85-AA0C-B1A791462012@ucla.edu> Message-ID: <51C82780.8080604@ac.upc.edu> Hi Alex, I did your organization, but there is an error message (after ./waf --run==ndn-dumb --vis): from ../scratch/dumb-requester.h:23, from ../scratch/dumb-requester.h:23, from ../scratch/dumb-requester.h:23, from ../scratch/dumb-requester.cc:23: ./ns3/ndn-app-face.h:53:1: error: expected class-name before ?{? token ./ns3/ndn-app-face.h:55:10: error: ?TypeId? does not name a type ./ns3/ndn-app-face.h:67:28: error: ?ProtocolHandler? has not been declared ./ns3/ndn-app-face.h:74:11: error: ?ostream? in namespace ?std? does not name a type In file included from ../scratch/dumb-requester.h:32:0, from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: from ../src/ndnSIM/examples/custom-apps/dumb-requester.cc:23: ./ns3/ndn-interest.h:86:39: error: expected template-name before ? task in 'ndn-simple-with-content-freshness' failed (exit status 1): {task 177151180: cxx dumb-requester.cc -> dumb-requester.cc.5.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-pthread', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fno-strict-aliasing', '-I.', '-I..', '-I/usr/include/gtk-2.0', '-I/usr/lib/i386-linux-gnu/gtk-2.0/include', '-I/usr/include/atk-1.0', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/i386-linux-gnu/glib-2.0/include', '-I/usr/include/pixman-1', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/libxml2', '-I/usr/local/include', '-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNDEBUG', '../src/ndnSIM/examples/custom-apps/dumb-requester.cc', '-c', '-o', 'src/ndnSIM/examples/custom-apps/dumb-requester.cc.5.o'] On 06/24/2013 07:40 ?.?, Alex Afanasyev wrote: > Hi Amin, > > If you're using scratch/ folder, then you need to organize your code a little bit differently: > > mkdir scratch/ndn-dumb-scenario > cp src/ndnSIM/examples/custom-apps/dumb-requester.* scratch/ndn-dumb-scenario/ > mv scratch/ndn-dumb.cc scratch/ndn-dumb-scenario/ > > This way, NS-3 will know that all files under scratch/ndn-dumb-scenario/ need to be compiled together to create one scenario. > > --- > Alex > > On Jun 22, 2013, at 6:08 AM, Amin Karami wrote: > >> Hi! >> I have ran dumb request by following code: >> ndn::AppHelper consumerHelper ("DumbRequester"); >> consumerHelper.SetPrefix ("/dst1"); >> consumerHelper.Install ("Src1"); >> >> When i ran the simulator, an error occurs: >> >> assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: DumbRequester not found", file=../src/core/model/type-id.cc, line=419 >> terminate called without an active exception >> Command ['/home/bluebit/Documents/NDN Simulator/ns-3/build/scratch/ndn-dumb', '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Mon Jun 24 14:15:46 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 24 Jun 2013 14:15:46 -0700 Subject: [ndnSIM] Is it possible to make NDN run on top of TCP & Python script In-Reply-To: <3DC183F6690C43D88FF785FC950B306A@gmail.com> References: <0C7FB8F5-AE74-433E-90C0-99459825D02D@ucla.edu> <3DC183F6690C43D88FF785FC950B306A@gmail.com> Message-ID: <82726DD3-357F-4CDA-9C97-470F5E49A82A@ucla.edu> Hi Xiaoke, Sure, there is no rush. I actually tried to make a draft implementation for TCP-based faces, but I haven't done many tests, besides the most basic ones with. I pushed the code into a feature-tcp-face branch on github (https://github.com/NDN-Routing/ndnSIM/tree/feature-tcp-face). When you have time after you finished with the paper, I would appreciate if you can have a look and do more tests. --- Alex On Jun 24, 2013, at 2:02 AM, Xiaoke Jiang wrote: > Thank you, Alex. > In fact, I like ndnSIM very much and am willing to contribute more to it. But I am not sure whether I have enough time to do that, since I am preparing for a Infocom paper. Maybe after that I can try, OK? > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Monday, June 24, 2013 at 1:37 PM, Alex Afanasyev wrote: > >> Forgot to answer your second question. It is possible to write python scripts as a simulation scenario (and ndnSIM supports that), but I would not really recommend it. With python you have really limited control of what is happening and not every functionality is available through python. >> >> --- >> Alex >> >> On Jun 23, 2013, at 10:28 PM, Alex Afanasyev wrote: >> >>> Hi Xiaoke, >>> >>> It is technically possible, but would require making a special face that works over TCP. Do you want to try to implement such a face? >>> Btw, what do you want to measure by running NDN over TCP? It is not really a "normal" mode for NDN. If you need tunneling over IP, then simple UDP should be enough... >>> >>> --- >>> Alex >>> >>> On Jun 21, 2013, at 9:58 PM, Xiaoke Jiang wrote: >>> >>>> Dear all, >>>> My experiment requires to run ndn on top of TCP, is it possible. >>>> >>>> And I am better at python, does ndnSIM support python script? >>>> >>>> Thank you! >>>> >>>> thanks >>>> >>>> My Regards, >>>> Xiaoke (Shock) Jiang ????? >>>> >>>> Ph.D. Candidate, >>>> Department of Computer Science and Technology, >>>> Tsinghua University, Beijing, P.R.China. 100084 >>>> _______________________________________________ >>>> 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 Mon Jun 24 14:18:15 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 24 Jun 2013 14:18:15 -0700 Subject: [ndnSIM] Re: L3AggregateTracer In-Reply-To: References: Message-ID: Hi Flavio, by 1.000s you mean one second or thousand of seconds? If you wrote in your scenario something like ... Seconds (1.000) ..., then it actually means just one second, and since the tracer writes data only every seconds (by default), you're not getting any data written into the file. --- Alex On Jun 24, 2013, at 2:08 PM, Fl?vio Queiroz wrote: > Hi Alex, > I'm trying to simulate the following scenario: > > > Attacker====Router=====Consumer > || > || > || > Producer > > PIT_Size Router = 10.000 interest; > PIT_Size Attacker and Consumer = no limit ; > Pit_timeout Router = 1s; > Attack rate = ConsumerCbr exponential 7.000/s inexistent interest ; > Consumer rate = ConsumerCbr exponential 3.000/s existent interest ; > Simulation time = 1.000s > L3AggregateTracer > > The problem is that when the simulation ends the L3AggregateTracer > file is generated without values. > When I simulate with shorter times (10s, 100s) I have no problem. > Do you know what is happening? > Thank you in advance, > Fl?vio > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 841 bytes Desc: Message signed with OpenPGP using GPGMail URL: From alexander.afanasyev at ucla.edu Mon Jun 24 14:49:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 24 Jun 2013 14:49:07 -0700 Subject: [ndnSIM] L3AggregateTracer In-Reply-To: References: Message-ID: Can you try to specify this: aggTracers = ndn::L3AggregateTracer::InstallAll ("aggregate-trace.txt", Seconds (1.0)); This way you will get counters for each second, while being able to sum up everything by some other tool (e.g., R) afterwards. There could be two things. Either because of some segfault you're not getting to the end of the simulation (hopefully it is not the case and if you ask to write log every second, you may be able to find out whether it is the case or not). Another reason could be because of double precision number. 999.9999999 not necessarily less then 1000.0 in double. Try to specify 1000 for aggregate tracer and 1001 for total simulation time. --- Alex On Jun 24, 2013, at 2:34 PM, Fl?vio Queiroz wrote: > One thousand of seconds: http://pastebin.com/KQRQcg4Q > - ---- > Fl?vio > > > Em 24/06/13 18:18, Alex Afanasyev escreveu: > > Hi Flavio, > > > > by 1.000s you mean one second or thousand of seconds? If you wrote > > in your scenario something like ... Seconds (1.000) ..., then it > > actually means just one second, and since the tracer writes data > > only every seconds (by default), you're not getting any data > > written into the file. > > > > --- Alex > > > > On Jun 24, 2013, at 2:08 PM, Fl?vio Queiroz > > wrote: > > > >> Hi Alex, I'm trying to simulate the following scenario: > >> > >> > >> Attacker====Router=====Consumer || || || Producer > >> > >> PIT_Size Router = 10.000 interest; PIT_Size Attacker and Consumer > >> = no limit ; Pit_timeout Router = 1s; Attack rate = ConsumerCbr > >> exponential 7.000/s inexistent interest ; Consumer rate = > >> ConsumerCbr exponential 3.000/s existent interest ; Simulation > >> time = 1.000s L3AggregateTracer > >> > >> The problem is that when the simulation ends the > >> L3AggregateTracer file is generated without values. When I > >> simulate with shorter times (10s, 100s) I have no problem. Do you > >> know what is happening? Thank you in advance, Fl?vio > >> > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 841 bytes Desc: Message signed with OpenPGP using GPGMail URL: From shock.jiang at gmail.com Mon Jun 24 19:51:23 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Tue, 25 Jun 2013 10:51:23 +0800 Subject: [ndnSIM] compiling error In-Reply-To: <49709615-5B2A-4A74-84C2-6CACAA21A6B5@ucla.edu> References: <0F29A006FB894015A30E21BE209B9FB1@gmail.com> <49709615-5B2A-4A74-84C2-6CACAA21A6B5@ucla.edu> Message-ID: <58F8C439A2F649608A4C92A57672F19C@gmail.com> Hi Alex, I am using gcc 4.2.1; MacPorts 2.1.2; boost 1.53.0. It's quite confusing... thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Monday, June 24, 2013 at 1:08 PM, Alex Afanasyev wrote: > Hi Xiaoke, > > No, I haven't seen this error, though I'm using OSX to compile NS-3 all the time. Are you using clang or gcc compiler? > > I checked ipv4-header.h:88 file and the line corresponds to definition of CS5 identifier. It is possible (but not sure why) that something is defining CS5 as something else, which confuses the compilation. > > -- > Alex > > On Jun 23, 2013, at 1:46 AM, Xiaoke Jiang wrote: > > Hi Alex, > > Today I reconfigure my local code on my mac os, then compiling gives me an error. Do you meet this before? > > > > [ 987/2043] cxx: src/internet/model/ipv4-raw-socket-factory-impl.cc (http://ipv4-raw-socket-factory-impl.cc) -> build/src/internet/model/ipv4-raw-socket-factory-impl.cc.1.o > > In file included from ./ns3/ipv4-routing-protocol.h:25, > > from ./ns3/ipv4-list-routing.h:23, > > from ./ns3/ipv4-routing-helper.h:26, > > from ./ns3/ipv4-nix-vector-helper.h:25, > > from ./ns3/nix-vector-routing-module.h:10, > > from src/nix-vector-routing/bindings/ns3module.h:63, > > from src/nix-vector-routing/bindings/ns3module.cc:1 (http://ns3module.cc:1): > > ./ns3/ipv4-header.h:88: error: expected identifier before numeric constant > > ./ns3/ipv4-header.h:88: error: expected `}' before numeric constant > > ./ns3/ipv4-header.h:88: error: expected unqualified-id before numeric constant > > ./ns3/ipv4-header.h:99: error: variable or field ?SetDscp? declared void > > > > > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blindeafer at 163.com Tue Jun 25 18:28:06 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Wed, 26 Jun 2013 09:28:06 +0800 (CST) Subject: [ndnSIM] Cache Message-ID: <134a9d54.17237.13f7e1840a5.Coremail.blindeafer@163.com> Hi All, I have a question that troubles me, I wonder if a node decide whether to cache a content object according to some functions of forwarding strategy,just like OnData().And whether the Insert() method in replacement policy is done after a node decide to cache an object,replacement policy is nothing to decide what to cache? Than you! -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jun 25 18:32:27 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 25 Jun 2013 18:32:27 -0700 Subject: [ndnSIM] Cache In-Reply-To: <134a9d54.17237.13f7e1840a5.Coremail.blindeafer@163.com> References: <134a9d54.17237.13f7e1840a5.Coremail.blindeafer@163.com> Message-ID: <6565A774-2CF2-4201-87A0-29F2BD0D1A21@ucla.edu> Hi! I would say that it can be done in either place, depending on what is base for the decision. If you can base decision whether to cache or not just base on information available in the forwarding strategy, then you can do it there. At the same time, in the policy (e.g., at the point of insert() method call), you may have more information about the cache content: how many entries, which entries are old and should be evicted to make place for the new item, or whether the new item should not be cached for some reason). -- Alex On Jun 25, 2013, at 6:28 PM, ??? wrote: > Hi All, > I have a question that troubles me, I wonder if a node decide whether to cache a content object according to some functions of forwarding strategy,just like OnData().And whether the Insert() method in replacement policy is done after a node decide to cache an object,replacement policy is nothing to decide what to cache? > > Than you! -------------- next part -------------- An HTML attachment was scrubbed... URL: From igorcompuff at gmail.com Thu Jun 27 11:39:28 2013 From: igorcompuff at gmail.com (Igor) Date: Thu, 27 Jun 2013 15:39:28 -0300 Subject: [ndnSIM] Stop Simulation Message-ID: Hi Alex, I was wondering if is it possible to make the simulation ends only when there is no more events. I am making the simulations execute for 5 seconds, with the command Simulator::Stop (Seconds (5.0)), but when it is over, there are still a bunch of events remaining. Thank You in advance. Best regards, Igor Ribeiro. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Jun 27 13:42:15 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 27 Jun 2013 13:42:15 -0700 Subject: [ndnSIM] Install L3AggregateTracer In-Reply-To: References: Message-ID: <0B705615-34A0-418F-8E88-3BB57CC81B79@ucla.edu> Hi Fl?vio, I just added such ability. Instead of ndn::L3AggregateTracer::InstallAll, you can use ndn::L3AggregateTracer::Install function, which accept first parameter either NodeContainer or Node. I have implemented this only for L3AggregateTracer, but this functionality is greatly needed for other tracers as well. I would really appreciate if you or somebody else have time to do similar modifications to at least L3RateTraces and CSTracer. Thanks, Alex On Jun 26, 2013, at 8:05 PM, Fl?vio Queiroz wrote: > Hi Alex, > How can I install the L3AggregateTracer at only one node? > Thank you, > Fl?vio > > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 841 bytes Desc: Message signed with OpenPGP using GPGMail URL: From alexander.afanasyev at ucla.edu Fri Jun 28 12:28:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 28 Jun 2013 12:28:57 -0700 Subject: [ndnSIM] Stop Simulation In-Reply-To: References: Message-ID: <07340A66-971B-4CBA-93A1-1BF351D44B27@ucla.edu> Hi Igor, What do you mean by the "event"? There could be many events going on in your scenario, some of them could be designed to exist for the entire simulation. If you're referring to applications that are keep running, then it should be possible. What I did in some of my simulations is that I have scheduled stop time for my applications at some time, e.g., like this: consumerHelper.Install (nodes.Get (0)).Stop (Seconds (5.0)); While specifying that my simulation need to be stopped some time after that, say after 30 or 60 seconds after that. You can also specify stop time hours after you schedule stop of your application, since NS-3 will easily skip till the end when there are no events scheduled. --- Alex On Jun 27, 2013, at 11:39 AM, Igor wrote: > Hi Alex, > > I was wondering if is it possible to make the simulation ends only when there is no more events. I am making the simulations execute for 5 seconds, with the command Simulator::Stop (Seconds (5.0)), but when it is over, there are still a bunch of events remaining. > > Thank You in advance. > > Best regards, > > Igor Ribeiro. > _______________________________________________ > 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 Sat Jun 29 02:10:32 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Sat, 29 Jun 2013 17:10:32 +0800 Subject: [ndnSIM] how to trigger CheckRetxTimeout and drop packet Message-ID: <08F0D888D9C446278FBA4096B50AE120@gmail.com> Hi Alex, Now I am trying to watch the unsatisfied requests from a consumer. I noticed that there are packet loss in the network, but I can not find the consumer call the traceback function of timeout request. I have to questions: 1. Where is the queue for a node, how doest it drop packets? 2. Where and how a consumer trigger checkRetxTimeout? Thank you! thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Sat Jun 29 21:02:55 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Sun, 30 Jun 2013 12:02:55 +0800 Subject: [ndnSIM] how to trigger CheckRetxTimeout and drop packet In-Reply-To: <08F0D888D9C446278FBA4096B50AE120@gmail.com> References: <08F0D888D9C446278FBA4096B50AE120@gmail.com> Message-ID: <9109E87BD3534C89B939C14BD36B5262@gmail.com> Problem solved, due to my laciness of knowledge of C++ programming. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Saturday, June 29, 2013 at 5:10 PM, Xiaoke Jiang wrote: > Hi Alex, > Now I am trying to watch the unsatisfied requests from a consumer. I noticed that there are packet loss in the network, but I can not find the consumer call the traceback function of timeout request. I have to questions: > 1. Where is the queue for a node, how doest it drop packets? > 2. Where and how a consumer trigger checkRetxTimeout? > Thank you! > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Sun Jun 30 20:01:18 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Mon, 1 Jul 2013 11:01:18 +0800 Subject: [ndnSIM] Congestion Links and overloaded Nodes Message-ID: Dear all, Now I am trying to find the congestion link and overloaded nodes, where packets are dropped. Can anyone give me some hint? And is it possible for me find connect with a traceable variable? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Sun Jun 30 20:07:19 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Mon, 1 Jul 2013 11:07:19 +0800 Subject: [ndnSIM] Congestion Links and overloaded Nodes In-Reply-To: References: Message-ID: <1E49DB24512841C5BDEF6493909290B1@gmail.com> OK. I find a traceable variable from point-to-point-channel.h TracedCallback, // Packet being transmitted Ptr, // Transmitting NetDevice Ptr, // Receiving NetDevice Time, // Amount of time to transmit the pkt Time // Last bit receive time (relative to now) > m_dropPointToPoint; This can help me to pick the congestion link. But how can I pick the overloaded node of NDN? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Monday, July 1, 2013 at 11:01 AM, Xiaoke Jiang wrote: > Dear all, > Now I am trying to find the congestion link and overloaded nodes, where packets are dropped. Can anyone give me some hint? And is it possible for me find connect with a traceable variable? > > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Sun Jun 30 20:07:19 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Mon, 1 Jul 2013 11:07:19 +0800 Subject: [ndnSIM] Congestion Links and overloaded Nodes In-Reply-To: References: Message-ID: OK. I find a traceable variable from point-to-point-channel.h TracedCallback, // Packet being transmitted Ptr, // Transmitting NetDevice Ptr, // Receiving NetDevice Time, // Amount of time to transmit the pkt Time // Last bit receive time (relative to now) > m_dropPointToPoint; This can help me to pick the congestion link. But how can I pick the overloaded node of NDN? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Monday, July 1, 2013 at 11:01 AM, Xiaoke Jiang wrote: > Dear all, > Now I am trying to find the congestion link and overloaded nodes, where packets are dropped. Can anyone give me some hint? And is it possible for me find connect with a traceable variable? > > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: