From saeid.montazeri at gmail.com Mon Jul 1 01:12:14 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Mon, 1 Jul 2013 16:12:14 +0800 Subject: [ndnSIM] Abilene topology information Message-ID: Dear All, I am going to use abilene topology for my evaluation. I have a question: How should I distribute the consumers and producers in the topology. Obviously, the simplest way is random. However, I am thinking about something more reasonable! Meanwhile, it will be really helpful to have a reference for the link delay of the topology since the ndnSIM version does not have the link delays. Best Regards, Saeid -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Jul 1 09:58:46 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 1 Jul 2013 09:58:46 -0700 Subject: [ndnSIM] Congestion Links and overloaded Nodes In-Reply-To: References: Message-ID: Hi Xiaoke, I'm not quite sure what you mean be selecting overloaded node of NDN. With the packet drop trace callback, it is irrelevant which stack is used and you will get notified when packet is dropped because of the queue overflow (=? congestion). Do you have something else in mind related to overloaded in NDN? --- Alex On Jun 30, 2013, at 8:07 PM, Xiaoke Jiang wrote: > OK. I find a traceable variable from point-to-point-channel.h > TracedCallback Ptr, // 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 > > _______________________________________________ > 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 Jul 1 10:20:18 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 1 Jul 2013 10:20:18 -0700 Subject: [ndnSIM] Abilene topology information In-Reply-To: References: Message-ID: <572268AE-9736-4BA2-9DB5-176128B02AC5@ucla.edu> Hi Saeid, We have used Abilene topology, including link delays in https://github.com/cawka/ndnSIM-comcom-stateful-fw. Since Abilene topology is provided in several files, here is an example how to read it: RocketfuelWeightsReader rf_reader; string weights (topology+".weights"); string latencies (topology+".latencies"); rf_reader.SetFileName (weights); rf_reader.SetFileType (RocketfuelWeightsReader::WEIGHTS); rf_reader.Read (); rf_reader.SetFileName (latencies); rf_reader.SetFileType (RocketfuelWeightsReader::LATENCIES); rf_reader.Read (); As for your first question. I would say that the choice really depends on what exactly you're simulating. Abilene topology (if you're talking about the core topology) is really small and you don't have too much choice, even for random. In Interest Flooding simulation (https://github.com/cawka/ndnSIM-ddos-interest-flooding) we have used larger topology from RocketFuel (unfortunately no real link delays or bandwidths, but we did some randomization for that), where we selected different tiers of nodes based on their topological parameters (leaf nodes are customers, next level are gateways, the rest is a backbone) and then installed consumers on random subset of leaf nodes. Depending on where producer is installed (leaf, gw, backbone), you can get different results, as well as different real world scenario that it could represent. Hope it helps. --- Alex On Jul 1, 2013, at 1:12 AM, Saeid Montazeri wrote: > Dear All, > > I am going to use abilene topology for my evaluation. I have a question: > How should I distribute the consumers and producers in the topology. Obviously, the simplest way is random. However, I am thinking about something more reasonable! > > Meanwhile, it will be really helpful to have a reference for the link delay of the topology since the ndnSIM version does not have the link delays. > > Best Regards, > Saeid > _______________________________________________ > 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 Mon Jul 1 21:50:38 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Tue, 2 Jul 2013 12:50:38 +0800 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result Message-ID: <0D39B225AF1A498F872DF783657C51DC@gmail.com> Dear All, I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? 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 cghali at uci.edu Mon Jul 1 21:59:49 2013 From: cghali at uci.edu (Cesar Ghali) Date: Mon, 1 Jul 2013 21:59:49 -0700 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result In-Reply-To: <0D39B225AF1A498F872DF783657C51DC@gmail.com> References: <0D39B225AF1A498F872DF783657C51DC@gmail.com> Message-ID: <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> More details would be helpful, but I think it can be normal especially if powerful server has a different platform than the Mac OS. The random numbers generators could be implemented differently on both platforms. Cesar On Jul 1, 2013, at 9:50 PM, Xiaoke Jiang wrote: > Dear All, > I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? > > 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 saeid.montazeri at gmail.com Mon Jul 1 22:00:49 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Tue, 2 Jul 2013 13:00:49 +0800 Subject: [ndnSIM] Abilene topology information In-Reply-To: <572268AE-9736-4BA2-9DB5-176128B02AC5@ucla.edu> References: <572268AE-9736-4BA2-9DB5-176128B02AC5@ucla.edu> Message-ID: Dear Alex, Thanks a lot for the reply. May I have an estimate of the execution time of the Interest Flooding scenario (Please let me know the simulation time). Did you use MPI? If yes what was the number of processes? Best Regards, Saeid On Tue, Jul 2, 2013 at 1:20 AM, Alex Afanasyev wrote: > Hi Saeid, > > We have used Abilene topology, including link delays in > https://github.com/cawka/ndnSIM-comcom-stateful-fw. > > Since Abilene topology is provided in several files, here is an example > how to read it: > > RocketfuelWeightsReader rf_reader; > string weights (topology+".weights"); > string latencies (topology+".latencies"); > > rf_reader*.*SetFileName (weights); > rf_reader*.*SetFileType (RocketfuelWeightsReader::WEIGHTS); > rf_reader*.*Read (); > > rf_reader*.*SetFileName (latencies); > rf_reader*.*SetFileType (RocketfuelWeightsReader::LATENCIES); > rf_reader*.*Read (); > > > > As for your first question. I would say that the choice really depends on > what exactly you're simulating. Abilene topology (if you're talking about > the core topology) is really small and you don't have too much choice, even > for random. In Interest Flooding simulation ( > https://github.com/cawka/ndnSIM-ddos-interest-flooding) we have used > larger topology from RocketFuel (unfortunately no real link delays or > bandwidths, but we did some randomization for that), where we selected > different tiers of nodes based on their topological parameters (leaf nodes > are customers, next level are gateways, the rest is a backbone) and then > installed consumers on random subset of leaf nodes. Depending on where > producer is installed (leaf, gw, backbone), you can get different results, > as well as different real world scenario that it could represent. > > Hope it helps. > > --- > Alex > > On Jul 1, 2013, at 1:12 AM, Saeid Montazeri > wrote: > > Dear All, > > I am going to use abilene topology for my evaluation. I have a question: > How should I distribute the consumers and producers in the > topology. Obviously, the simplest way is random. However, I am thinking > about something more reasonable! > > Meanwhile, it will be really helpful to have a reference for the link > delay of the topology since the ndnSIM version does not have the link > delays. > > Best Regards, > Saeid > _______________________________________________ > 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 Mon Jul 1 22:02:11 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Tue, 2 Jul 2013 13:02:11 +0800 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result In-Reply-To: <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> References: <0D39B225AF1A498F872DF783657C51DC@gmail.com> <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> Message-ID: The server is ubuntu with AMD CPU. But I set the same seed in the script. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Tuesday, July 2, 2013 at 12:59 PM, Cesar Ghali wrote: > More details would be helpful, but I think it can be normal especially if powerful server has a different platform than the Mac OS. The random numbers generators could be implemented differently on both platforms. > > Cesar > > > On Jul 1, 2013, at 9:50 PM, Xiaoke Jiang wrote: > > Dear All, > > I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? > > > > 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 > > _______________________________________________ > 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 alexander.afanasyev at ucla.edu Tue Jul 2 08:14:38 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 2 Jul 2013 08:14:38 -0700 Subject: [ndnSIM] Abilene topology information In-Reply-To: References: <572268AE-9736-4BA2-9DB5-176128B02AC5@ucla.edu> Message-ID: Hi Saeid, I haven't used MPI, I just run different runs/scenarios in parallel (using ./run.py script, which in current form runs as many instances as the number of CPUs). I don't quite remember the exact timeline, I think it was about two days with 32 CPUs to finish all simulation runs for 4 different scenarios. --- Alex On Jul 1, 2013, at 10:00 PM, Saeid Montazeri wrote: > Dear Alex, > > Thanks a lot for the reply. May I have an estimate of the execution time of the Interest Flooding scenario (Please let me know the simulation time). Did you use MPI? If yes what was the number of processes? > > Best Regards, > Saeid > > On Tue, Jul 2, 2013 at 1:20 AM, Alex Afanasyev wrote: > Hi Saeid, > > We have used Abilene topology, including link delays in https://github.com/cawka/ndnSIM-comcom-stateful-fw. > > Since Abilene topology is provided in several files, here is an example how to read it: > > RocketfuelWeightsReader rf_reader; > string weights (topology+".weights"); > > string latencies (topology+".latencies"); > > > rf_reader.SetFileName (weights); > rf_reader.SetFileType (RocketfuelWeightsReader::WEIGHTS); > > rf_reader.Read (); > > rf_reader.SetFileName (latencies); > > rf_reader.SetFileType (RocketfuelWeightsReader::LATENCIES); > > rf_reader.Read (); > > > As for your first question. I would say that the choice really depends on what exactly you're simulating. Abilene topology (if you're talking about the core topology) is really small and you don't have too much choice, even for random. In Interest Flooding simulation (https://github.com/cawka/ndnSIM-ddos-interest-flooding) we have used larger topology from RocketFuel (unfortunately no real link delays or bandwidths, but we did some randomization for that), where we selected different tiers of nodes based on their topological parameters (leaf nodes are customers, next level are gateways, the rest is a backbone) and then installed consumers on random subset of leaf nodes. Depending on where producer is installed (leaf, gw, backbone), you can get different results, as well as different real world scenario that it could represent. > > Hope it helps. > > --- > Alex > > On Jul 1, 2013, at 1:12 AM, Saeid Montazeri wrote: > >> Dear All, >> >> I am going to use abilene topology for my evaluation. I have a question: >> How should I distribute the consumers and producers in the topology. Obviously, the simplest way is random. However, I am thinking about something more reasonable! >> >> Meanwhile, it will be really helpful to have a reference for the link delay of the topology since the ndnSIM version does not have the link delays. >> >> Best Regards, >> Saeid >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jul 2 08:16:54 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 2 Jul 2013 08:16:54 -0700 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result In-Reply-To: References: <0D39B225AF1A498F872DF783657C51DC@gmail.com> <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> Message-ID: Technically, you should be getting the same sequence of random values in NS-3... Just a couple of questions, by "same random seed" do you mean RngRun parameter? Do you use only NS-3 provided random variables or rely also on system's rand (system's rand may give different results on different platforms)? --- Alex On Jul 1, 2013, at 10:02 PM, Xiaoke Jiang wrote: > The server is ubuntu with AMD CPU. But I set the same seed in the script. > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Tuesday, July 2, 2013 at 12:59 PM, Cesar Ghali wrote: > >> More details would be helpful, but I think it can be normal especially if powerful server has a different platform than the Mac OS. The random numbers generators could be implemented differently on both platforms. >> >> Cesar >> >> >> On Jul 1, 2013, at 9:50 PM, Xiaoke Jiang wrote: >> >>> Dear All, >>> I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? >>> >>> 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 >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Tue Jul 2 09:10:02 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Wed, 3 Jul 2013 00:10:02 +0800 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result In-Reply-To: References: <0D39B225AF1A498F872DF783657C51DC@gmail.com> <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> Message-ID: Yes, I mean RngRun parameter. UniformVariable rng = UniformVariable(); SeedManager::SetSeed (seed); int j = rng.GetInteger(0, gwN-1); //[0, totnodes-1] Only random number here. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Tuesday, July 2, 2013 at 11:16 PM, Alex Afanasyev wrote: > Technically, you should be getting the same sequence of random values in NS-3... Just a couple of questions, by "same random seed" do you mean RngRun parameter? Do you use only NS-3 provided random variables or rely also on system's rand (system's rand may give different results on different platforms)? > > --- > Alex > > On Jul 1, 2013, at 10:02 PM, Xiaoke Jiang wrote: > > The server is ubuntu with AMD CPU. But I set the same seed in the script. > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Tuesday, July 2, 2013 at 12:59 PM, Cesar Ghali wrote: > > > > > More details would be helpful, but I think it can be normal especially if powerful server has a different platform than the Mac OS. The random numbers generators could be implemented differently on both platforms. > > > > > > Cesar > > > > > > > > > On Jul 1, 2013, at 9:50 PM, Xiaoke Jiang wrote: > > > > Dear All, > > > > I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? > > > > > > > > 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 > > > > > > _______________________________________________ > > > 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 > > > > > > > > > > > > _______________________________________________ > > 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 alexander.afanasyev at ucla.edu Tue Jul 2 09:34:55 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 2 Jul 2013 09:34:55 -0700 Subject: [ndnSIM] Same script, Same Random Seed, Different Machines, Get Different Simulation Result In-Reply-To: References: <0D39B225AF1A498F872DF783657C51DC@gmail.com> <8DFCD84C-7FAA-44D4-9DD8-5D195645540B@uci.edu> Message-ID: <398E0A67-26BE-4204-83DB-43A5B57B3539@ucla.edu> I tried the following scenario on a couple of platform (OSX, Linux Ubuntu, FreeBSD), getting exactly the same sequences of random variables. Please note that you don't need to (and I would highly recommend to not use it) setting seed manually. Rather, you just set Run parameter (e.g., using --RngRun command line argument), which should take care of initializing proper seeds to produce statistically different results. #include "ns3/core-module.h" using namespace ns3; int main (int argc, char **argv) { CommandLine cmd; cmd.Parse (argc, argv); UniformVariable rng = UniformVariable(); for (int i = 0; i < 80; i++) { int j = rng.GetInteger(0, 10000); //[0, totnodes-1] std::cout << j << " "; } std::cout << std::endl; } I saved this code into scratch/test.cc, run it, and got following results: [cawka at pistons ns-3 (ndnSIM)]$ for i in 1 2 3 4 5 6 7 8 9 10; do ./waf --run "test --RngRun=$i"; done Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.157s) 8166 6069 4956 3816 3691 8066 1008 5848 9391 6261 8220 5593 2457 8367 199 8387 9440 8354 617 5144 2215 3409 3763 3649 9586 4880 3519 3031 9221 7007 4731 3000 4601 1127 7602 47 5801 7522 5891 5209 1736 3425 8731 1568 3718 3795 7177 2675 6579 2865 5415 3707 5817 4688 1609 1246 8150 6344 4088 6243 5294 600 763 4677 5512 7143 9628 2485 1847 9964 7226 8578 7545 9183 5713 5198 6435 9111 4051 2675 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.148s) 6836 8126 6338 1457 4522 9102 8629 1901 6583 7050 8165 5193 6360 1606 6991 1493 2432 6110 8139 385 6567 6950 5474 8799 2557 1641 4976 6722 8343 8748 945 1360 7982 2278 792 9658 5460 8282 3015 705 2489 6197 5304 6084 741 3509 486 9977 3126 92 8881 9976 6669 5062 2970 6478 996 1079 4607 3506 2010 6872 5250 5818 6999 9061 2883 3599 8191 6183 389 2872 7 8334 8062 1185 8966 3747 2843 4720 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.149s) 7754 9677 8897 8782 2536 6827 184 9025 9117 3114 4018 807 6157 3916 6165 7242 5752 2978 1976 6881 2728 825 4978 449 8038 1586 8321 1450 3539 2518 4202 3821 8324 3316 6982 5512 7140 7936 5000 65 6720 3300 1111 1652 3912 334 5360 9679 5620 1737 8375 6948 6505 902 4164 4602 6266 7707 3196 7860 912 8028 4526 150 7724 1387 4690 3128 9344 8088 906 8713 2241 1284 7278 792 3854 9230 4738 4058 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.148s) 4812 1701 7360 7202 9972 7867 5035 6534 4766 63 4228 8649 7604 1282 3240 9539 1144 535 8625 8984 8058 6740 7778 3838 9918 388 3301 8898 3612 2354 3577 7935 615 8127 9955 9007 5499 6295 4635 716 4637 6180 4551 2043 3237 177 5538 6605 6331 2212 8716 5137 4375 1596 630 2598 3502 2706 7814 8111 9549 5638 4812 5219 640 8738 8108 5767 6887 689 3700 6985 3184 9221 9729 1536 6384 1688 2444 625 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.154s) 219 9515 1401 5270 5898 5489 7782 3923 3359 123 4529 9802 1346 1266 9154 9863 967 6289 9752 9162 1888 5686 3424 4143 9870 1242 6474 2198 6062 800 9982 5425 7258 7556 8475 4276 200 7074 6852 1149 8491 4963 9586 8346 7666 8139 3834 2416 7433 8554 8287 5808 8729 7414 6836 6723 7314 9410 1786 868 5152 7410 7398 2536 3339 4053 9412 2015 2175 7734 961 4048 615 7455 6203 8590 26 3763 6203 7995 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.148s) 8283 2702 6861 2181 7208 725 1478 2561 5361 1397 1783 4394 8875 9200 628 9893 724 9267 3058 3537 1715 9245 6824 771 8225 5378 1894 6306 6007 7457 4930 3410 699 4253 9170 426 1743 8761 7310 1278 4424 87 7358 7550 9819 4127 3552 7709 40 8366 2237 1582 9702 2688 1664 7997 7265 9600 4445 8765 8613 734 7356 4142 4498 6991 2072 5396 9457 6417 6131 8349 2086 3810 4421 2144 7779 3448 8575 5342 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.148s) 3282 2327 5280 743 978 6156 5143 3702 542 8938 7255 4051 1846 4040 453 67 6332 3241 8418 3983 277 6150 7040 1599 4082 9066 1545 8279 8111 20 8988 6899 6949 6234 8634 2115 3680 6894 8448 7625 9395 5924 1927 1781 9331 5156 3375 1848 333 598 1438 6814 9232 7275 8674 105 900 3919 5914 6809 9725 4668 7135 1183 9414 1689 7224 8710 4513 802 5440 3675 94 8849 2910 4748 4696 825 6379 1280 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.147s) 1755 3495 8686 5045 9265 59 71 5920 1365 6983 5992 8990 8494 1427 5696 5178 8805 8272 4827 7965 68 6687 6511 9864 2625 6090 842 1256 6032 7217 4272 6389 2089 7499 574 5018 72 7781 233 9008 4796 8529 7786 4001 6709 2648 4927 2409 7890 1057 4921 7292 8082 9470 7730 2201 3431 5738 9730 8219 4796 4845 2860 3937 6259 5255 124 7410 6194 8214 6563 4152 63 236 884 2191 4516 1412 5884 7052 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.158s) 9494 3021 8744 5436 8835 170 9883 1765 8187 2564 7727 6168 891 6451 7727 4001 7312 911 2621 5720 6113 4053 1735 2187 3582 6082 3156 1521 7042 3971 1716 909 7041 2953 3806 7903 1536 1068 986 2583 7439 2977 3074 4226 5816 7419 5391 1047 3880 3491 1796 2333 1396 6107 8951 7582 3771 3318 2118 3378 3472 1404 913 7920 5101 2410 6406 6048 3376 2743 9428 9021 7551 7256 9172 6283 6464 3548 8861 8190 Waf: Entering directory `/export/data/cawka/ndnSIM/ns-3/build' Waf: Leaving directory `/export/data/cawka/ndnSIM/ns-3/build' 'build' finished successfully (1.155s) 3200 5221 5686 4691 5942 746 9130 4307 5063 1495 9208 8163 8515 8128 5770 4358 6549 4527 6249 1418 3737 7933 8995 7456 7621 5809 2122 5098 4127 4419 7502 2221 9731 8782 7024 8321 549 6686 3355 8392 7511 5699 3722 2258 5022 3904 3701 5681 5660 556 2908 6966 710 1521 2462 6115 3770 5139 790 5291 9082 5028 2811 9959 2456 2767 5814 1735 9248 774 156 5760 8877 5197 4355 9554 4244 8469 4443 3765 --- Alex On Jul 2, 2013, at 9:10 AM, Xiaoke Jiang wrote: > Yes, I mean RngRun parameter. > > > UniformVariable rng = UniformVariable(); > SeedManager::SetSeed (seed); > int j = rng.GetInteger(0, gwN-1); //[0, totnodes-1] > > > Only random number here. > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Tuesday, July 2, 2013 at 11:16 PM, Alex Afanasyev wrote: > >> Technically, you should be getting the same sequence of random values in NS-3... Just a couple of questions, by "same random seed" do you mean RngRun parameter? Do you use only NS-3 provided random variables or rely also on system's rand (system's rand may give different results on different platforms)? >> >> --- >> Alex >> >> On Jul 1, 2013, at 10:02 PM, Xiaoke Jiang wrote: >> >>> The server is ubuntu with AMD CPU. But I set the same seed in the script. >>> >>> thanks >>> >>> My Regards, >>> Xiaoke (Shock) Jiang ????? >>> >>> Ph.D. Candidate, >>> Department of Computer Science and Technology, >>> Tsinghua University, Beijing, P.R.China. 100084 >>> On Tuesday, July 2, 2013 at 12:59 PM, Cesar Ghali wrote: >>> >>>> More details would be helpful, but I think it can be normal especially if powerful server has a different platform than the Mac OS. The random numbers generators could be implemented differently on both platforms. >>>> >>>> Cesar >>>> >>>> >>>> On Jul 1, 2013, at 9:50 PM, Xiaoke Jiang wrote: >>>> >>>>> Dear All, >>>>> I have written a script and set the same random seed. But I run the script on different machine, one is mac os air, the other is a powerful server. And I get different results, Is it normal? >>>>> >>>>> 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 >>>> >>>> _______________________________________________ >>>> ndnSIM mailing list >>>> ndnSIM at lists.cs.ucla.edu >>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >>> >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From cghali at uci.edu Tue Jul 2 16:49:25 2013 From: cghali at uci.edu (Cesar Ghali) Date: Tue, 02 Jul 2013 16:49:25 -0700 Subject: [ndnSIM] Accessing Interface in CS Message-ID: <51D36705.2000401@uci.edu> Hi all, Is there a way to know the interface an interest is received on in the current content store implementation? Thanks, Cesar From ihenrypan at 163.com Tue Jul 2 18:43:28 2013 From: ihenrypan at 163.com (Pan) Date: Wed, 3 Jul 2013 09:43:28 +0800 (CST) Subject: [ndnSIM] The weird results of replacement policy Message-ID: <2299c5.21a7.13fa232d9b7.Coremail.ihenrypan@163.com> Hi All, I did some experiments on replacement policy and the results were weird. The scenario just based on the ndn-simple.cc. The configuration information as follows: The network topology: +----------+ 1Mbps +--------+ 1Mbps +----------+ | consumer | <------------> | router | <------------> | producer | +----------+ 10ms +--------+ 10ms +----------+ The consumer is ConsumerZipfMandelbrot? model. NumberOfContents set to 1000. ContentStore size is 100. Simulation time is 60s. Now, I test exsiting replacement policy(Lru, Fifo and Random) by using the ndn::CsTracer to statis the cache hit rate. The cache hit rate of policy are: Lru: 26.7% Fifo: 23.8% Random: 33.2% Random policy's hit rate is greatest in every experiments. Random policy's hit rate should be least in the theory. It's weird. Is the scenario has problems? Could you explain the results for me? Thank you in advance. --- Pan -------------- next part -------------- An HTML attachment was scrubbed... URL: From htunhtunu at gmail.com Tue Jul 2 23:51:06 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Wed, 3 Jul 2013 15:51:06 +0900 Subject: [ndnSIM] Help for ConsumerWindow Message-ID: Dear All, Now I am just start to study about how ndn Interest congestion control work. Using the ndnsim.net's "ndn-tree-tracers.cc" and topo-tree.txt, I tested as follows. 1. Reduce the link speed of leaf-1 and leaf-3 to 1 Mbps 2. Change the apphelper as ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow"); consumerHelper.SetAttribute ("Window", StringValue ("1")); // Window size default 1 consumerHelper.SetAttribute ("PayloadSize", UintegerValue (1040)); // PayloadSize default 1040 3. Run with ./waf run=ndn-tree-tracers, it has no error but I didn't found any data output in rate-trace.txt My expected result is data rate in the graph should be changed for leaf-1 and leaf-3 according to the link speed. Pls guide me, what I am missing or misunderstanding.I am using the lastest version of ndnSIM. Thanks in advance. Best regards Tun Tun Oo -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Wed Jul 3 07:09:18 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Wed, 3 Jul 2013 22:09:18 +0800 Subject: [ndnSIM] How to choose the nearest server with App Instances Message-ID: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> Hi Alex, You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? 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 Wed Jul 3 08:07:04 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Wed, 3 Jul 2013 23:07:04 +0800 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> Message-ID: <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> Hi Alex, I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: > Hi Alex, > You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. > > I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? > > 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 alexander.afanasyev at ucla.edu Wed Jul 3 09:27:09 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 3 Jul 2013 09:27:09 -0700 Subject: [ndnSIM] Accessing Interface in CS In-Reply-To: <51D36705.2000401@uci.edu> References: <51D36705.2000401@uci.edu> Message-ID: <990F6793-7EC1-4350-B551-327B0AAF713E@ucla.edu> Hi Cesar, Unfortunately, not right now. I was planning to add this ability, but haven't done implementation yet. I was planning to use packet tags for that, but there are other choices for that. If you have time, it would be great if you can add this functionality to ndnSIM :) --- Alex On Jul 2, 2013, at 4:49 PM, Cesar Ghali wrote: > Hi all, > > Is there a way to know the interface an interest is received on in the current content store implementation? > > Thanks, > Cesar From alexander.afanasyev at ucla.edu Wed Jul 3 09:51:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 3 Jul 2013 09:51:57 -0700 Subject: [ndnSIM] Help for ConsumerWindow In-Reply-To: References: Message-ID: <0DCA9E4D-947E-4E0E-8254-F09D7EC936E5@ucla.edu> Hi Tun, For the ConsumerWindow you have to specify how much data the consumer wants to request. By default, this value is 0, so it doesn't do anything at all... You have two options to specify size: Option 1: Specify the number of pieces that consumer wants to request ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow"); consumerHelper.SetAttribute ("Window", StringValue ("1")); // Window size default 1 consumerHelper.SetAttribute ("MaxSeq", UintegerValue (100)); Options 2: Specify expected payload size (as you did) and specify size of the requested "file" in megabytes: ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow"); consumerHelper.SetAttribute ("Window", StringValue ("1")); // Window size default 1 consumerHelper.SetAttribute ("PayloadSize", UintegerValue (1040)); // PayloadSize default 1040 consumerHelper.SetAttribute ("Size", DoubleValue (1)); --- Alex On Jul 2, 2013, at 11:51 PM, Tun Tun Oo wrote: > Dear All, > > Now I am just start to study about how ndn Interest congestion control work. > Using the ndnsim.net's "ndn-tree-tracers.cc" and topo-tree.txt, I tested as follows. > 1. Reduce the link speed of leaf-1 and leaf-3 to 1 Mbps > 2. Change the apphelper as > ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow"); > consumerHelper.SetAttribute ("Window", StringValue ("1")); // Window size default 1 > consumerHelper.SetAttribute ("PayloadSize", UintegerValue (1040)); // PayloadSize default 1040 > 3. Run with ./waf run=ndn-tree-tracers, it has no error but I didn't found any data output in rate-trace.txt > > My expected result is data rate in the graph should be changed for leaf-1 and leaf-3 according to the link speed. > Pls guide me, what I am missing or misunderstanding.I am using the lastest version of ndnSIM. > Thanks in advance. > > Best regards > > 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 Wed Jul 3 09:56:33 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 3 Jul 2013 09:56:33 -0700 Subject: [ndnSIM] The weird results of replacement policy In-Reply-To: <2299c5.21a7.13fa232d9b7.Coremail.ihenrypan@163.com> References: <2299c5.21a7.13fa232d9b7.Coremail.ihenrypan@163.com> Message-ID: Hi Pan, You probably want to try to play with simulation parameters. First, run simulation for way more than just 60 seconds, since in 60 seconds you most likely does not get enough interest packets that form Zipf distribution. Other parameters to play with: try to increase content store size gradually and see what will change. Another thing is to see how ConsumerZipfMandelbrot? parameters affect the result. There is a small chance that there are "too many" popular items and Lru fails to keep all of them in cache, however I would mostly suspect short simulation time. --- Alex On Jul 2, 2013, at 6:43 PM, Pan wrote: > Hi All, > > I did some experiments on replacement policy and the results were weird. > > The scenario just based on the ndn-simple.cc. The configuration information as follows: > The network topology: > +----------+ 1Mbps +--------+ 1Mbps +----------+ > | consumer | <------------> | router | <------------> | producer | > +----------+ 10ms +--------+ 10ms +----------+ > The consumer is ConsumerZipfMandelbrot? model. NumberOfContents set to 1000. > ContentStore size is 100. > Simulation time is 60s. > > Now, I test exsiting replacement policy(Lru, Fifo and Random) by using the ndn::CsTracer to statis the cache hit rate. > The cache hit rate of policy are: > Lru: 26.7% > Fifo: 23.8% > Random: 33.2% > Random policy's hit rate is greatest in every experiments. Random policy's hit rate should be least in the theory. It's weird. > > Is the scenario has problems? > Could you explain the results for me? > Thank you in advance. > > --- > Pan -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Jul 3 10:22:02 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 3 Jul 2013 10:22:02 -0700 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> Message-ID: <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> Hi Xiaoke, I feel that in NDN, choice of a specific producer **should not** be consumer's task. It should NDN network job (e.g., forwarding strategy's job on a node) to figure out (based on signals from the consumers) that interest should be forwarded somewhere else. At the same time, consumer will just request data by name, without caring what is happening behind the scenes. --- Alex On Jul 3, 2013, at 8:07 AM, Xiaoke Jiang wrote: > Hi Alex, > I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: > >> Hi Alex, >> You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. >> >> I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? >> >> 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 cghali at uci.edu Wed Jul 3 15:00:21 2013 From: cghali at uci.edu (Cesar Ghali) Date: Wed, 03 Jul 2013 15:00:21 -0700 Subject: [ndnSIM] Accessing Interface in CS In-Reply-To: <990F6793-7EC1-4350-B551-327B0AAF713E@ucla.edu> References: <51D36705.2000401@uci.edu> <990F6793-7EC1-4350-B551-327B0AAF713E@ucla.edu> Message-ID: <51D49EF5.4060701@uci.edu> Thanks for the reply Alex. I will work on it and will let you know how it goes. Regards, Cesar On 07/03/2013 09:27 AM, Alex Afanasyev wrote: > Hi Cesar, > > Unfortunately, not right now. I was planning to add this ability, but haven't done implementation yet. I was planning to use packet tags for that, but there are other choices for that. If you have time, it would be great if you can add this functionality to ndnSIM :) > > --- > Alex > > On Jul 2, 2013, at 4:49 PM, Cesar Ghali wrote: > >> Hi all, >> >> Is there a way to know the interface an interest is received on in the current content store implementation? >> >> Thanks, >> Cesar From shock.jiang at gmail.com Wed Jul 3 17:17:59 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 4 Jul 2013 08:17:59 +0800 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> Message-ID: Hi Alex, you are right that NDN consumers do not need to select a producer. But for IP consumers, they have to. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Thursday, July 4, 2013 at 1:22 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > I feel that in NDN, choice of a specific producer **should not** be consumer's task. It should NDN network job (e.g., forwarding strategy's job on a node) to figure out (based on signals from the consumers) that interest should be forwarded somewhere else. At the same time, consumer will just request data by name, without caring what is happening behind the scenes. > > --- > Alex > > On Jul 3, 2013, at 8:07 AM, Xiaoke Jiang wrote: > > Hi Alex, > > I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. > > > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: > > > > > Hi Alex, > > > You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. > > > > > > I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? > > > > > > 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 shock.jiang at gmail.com Wed Jul 3 17:17:59 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 4 Jul 2013 08:17:59 +0800 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> Message-ID: Hi Alex, you are right that NDN consumers do not need to select a producer. But for IP consumers, they have to. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Thursday, July 4, 2013 at 1:22 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > I feel that in NDN, choice of a specific producer **should not** be consumer's task. It should NDN network job (e.g., forwarding strategy's job on a node) to figure out (based on signals from the consumers) that interest should be forwarded somewhere else. At the same time, consumer will just request data by name, without caring what is happening behind the scenes. > > --- > Alex > > On Jul 3, 2013, at 8:07 AM, Xiaoke Jiang wrote: > > Hi Alex, > > I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. > > > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: > > > > > Hi Alex, > > > You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. > > > > > > I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? > > > > > > 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 alexander.afanasyev at ucla.edu Wed Jul 3 17:23:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 3 Jul 2013 17:23:48 -0700 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> Message-ID: Oh. Sorry, I completely misread your question, didn't notice that you implementing IP/CDN. For the real CDNs you can try to approximate DNS-based style selection, when clients are getting list of "close by" nodes based on geographic approximation. Within the list, clients send request to any of them (all of them are "close"). Another approach, that is used in many overlay peer-to-peer IP networks, is to do some path evaluations (in advance?) to other peers. Hope it helps, Alex On Jul 3, 2013, at 5:17 PM, Xiaoke Jiang wrote: > Hi Alex, you are right that NDN consumers do not need to select a producer. But for IP consumers, they have to. > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Thursday, July 4, 2013 at 1:22 AM, Alex Afanasyev wrote: > >> Hi Xiaoke, >> >> I feel that in NDN, choice of a specific producer **should not** be consumer's task. It should NDN network job (e.g., forwarding strategy's job on a node) to figure out (based on signals from the consumers) that interest should be forwarded somewhere else. At the same time, consumer will just request data by name, without caring what is happening behind the scenes. >> >> --- >> Alex >> >> On Jul 3, 2013, at 8:07 AM, Xiaoke Jiang wrote: >> >>> Hi Alex, >>> I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. >>> >>> thanks >>> >>> My Regards, >>> Xiaoke (Shock) Jiang ????? >>> >>> Ph.D. Candidate, >>> Department of Computer Science and Technology, >>> Tsinghua University, Beijing, P.R.China. 100084 >>> On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: >>> >>>> Hi Alex, >>>> You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. >>>> >>>> I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? >>>> >>>> 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 >> > > _______________________________________________ > 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 Jul 3 17:28:13 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 4 Jul 2013 08:28:13 +0800 Subject: [ndnSIM] How to choose the nearest server with App Instances In-Reply-To: References: <8F6A60EBD9CD498DAA019D0AA5F2E95A@gmail.com> <0E3DE2B91AD1448D9D697BF4795EAF02@gmail.com> <1F147C00-5024-41E8-8AF3-86F2CE3DE251@ucla.edu> Message-ID: <4029037185784D3DB7B35C6643389010@gmail.com> Good Idea. In fact I think there should be a centralized controller, say DNS to help consumers to select the best surrogates. but currently I just make the every producer know the topology from FIB and choose the nearest or second nearest (if the request to the nearest server is timeout). A Question: are you interested in CDN? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Thursday, July 4, 2013 at 8:23 AM, Alex Afanasyev wrote: > Oh. Sorry, I completely misread your question, didn't notice that you implementing IP/CDN. > > For the real CDNs you can try to approximate DNS-based style selection, when clients are getting list of "close by" nodes based on geographic approximation. Within the list, clients send request to any of them (all of them are "close"). > > Another approach, that is used in many overlay peer-to-peer IP networks, is to do some path evaluations (in advance?) to other peers. > > Hope it helps, > Alex > > On Jul 3, 2013, at 5:17 PM, Xiaoke Jiang wrote: > > Hi Alex, you are right that NDN consumers do not need to select a producer. But for IP consumers, they have to. > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Thursday, July 4, 2013 at 1:22 AM, Alex Afanasyev wrote: > > > > > Hi Xiaoke, > > > > > > I feel that in NDN, choice of a specific producer **should not** be consumer's task. It should NDN network job (e.g., forwarding strategy's job on a node) to figure out (based on signals from the consumers) that interest should be forwarded somewhere else. At the same time, consumer will just request data by name, without caring what is happening behind the scenes. > > > > > > --- > > > Alex > > > > > > On Jul 3, 2013, at 8:07 AM, Xiaoke Jiang wrote: > > > > Hi Alex, > > > > I think I got some hints from example: triangle routes. So I will try myself to figure it out. But thank you all the same. > > > > > > > > > > > > thanks > > > > > > > > My Regards, > > > > Xiaoke (Shock) Jiang ????? > > > > > > > > Ph.D. Candidate, > > > > Department of Computer Science and Technology, > > > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > > > > > > > > > > > On Wednesday, July 3, 2013 at 10:09 PM, Xiaoke Jiang wrote: > > > > > > > > > Hi Alex, > > > > > You know I am simulating CDN scenario now. One of the problem is for the consumer for choose the best surrogate after request is timeout. But now I am not confusing on how to implement it. > > > > > > > > > > I created a class named CDNIPConsumer, which contains producerList and currentProducer. Timeout request triggers the rechoose another producer from producerList. Would you give me some hint? How to pick nearest/second nearest producer? > > > > > > > > > > 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 > > > > > > > _______________________________________________ > > 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 alexander.afanasyev at ucla.edu Thu Jul 4 09:50:12 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 4 Jul 2013 09:50:12 -0700 Subject: [ndnSIM] Error regarding Freshness in ndnSIM In-Reply-To: References: Message-ID: Hi Saran, Thank you for noticing and reporting the bug! After debugging I realized there is a small bug, that basically invalidated the logic of the policy policy. I have pushed the fix and policy should work as expected, including your scenario not failing the assert anymore. --- Alex On Jul 4, 2013, at 3:05 AM, Saran Tarnoi wrote: > Hello Alex, > > I found an error when I was playing with a modified scenario of ndn-simple-with-content-freshness.cc. > --- > assert failed. cond="tAbsolute >= TimeStep (m_currentTs)", file=../src/core/model/default-simulator-impl.cc, line=227 > terminate called without an active exception > --- > It seems to me that something went wrong about replacement policy and Freshness value. > The problem occurs when there are 2 producers with Freshness > 0 and the number of cached content objects reaches the cache size. > > My scenario file is attached to this email. > If your have some time, please try it. > Thank you so much for your time. > > Regards, > Saran Tarnoi > From alexander.afanasyev at ucla.edu Thu Jul 4 22:35:55 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 4 Jul 2013 22:35:55 -0700 Subject: [ndnSIM] Re: question for packet loss In-Reply-To: <201307051152174428025@qq.com> References: <201307051152174428025@qq.com> Message-ID: <7F2ECB94-2893-4887-989D-93F4EE03C398@ucla.edu> Hi Aaron, Yes, you can use any names in interests. If you use something like: // Consumer ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr"); // Consumer will request /prefix/0, /prefix/1, ... consumerHelper.SetPrefix ("/prefix"); consumerHelper.SetAttribute ("Frequency", StringValue ("10")); // 10 interests a second consumerHelper.Install (nodes.Get (0)); // first node You will have interests with prefixes /prefix/0, /prefix/1, etc. If you specify something else, then the other name will be used (you can have as many name components as you wish: /a/b/c/d). However, if you want the same client to send interests for different data, then you would need to write a custom application that does the job. For the guideline you can either check source code or this examples: http://ndnsim.net/applications.html#custom-applications. Regarding the visualizer question. Visualizer connects to trace sources from PointToPointNetDevice, WifiNetDevice, and other network device implementations. Green means a successful transfer of packet and red, in many cases, means either queue overflow drop (for PointToPointNetDevice), or some other drop for other devices. The packet loss is not related to ndnSIM implementation, but is purely NS-3 NetDevice things. To avoid the loss you have to control how much packets are send out over the interface... --- Alex On Jul 4, 2013, at 8:52 PM, aaronishere wrote: > Hi Alex, > > Is it possible to write different content names such as aaa, bbb, and ccc in a interest? > > Another is in the visualizer, the green arrow means packet flow, what does the red arrow mean? dropped packet? > I found that in the ndn-face.cc under the Face::Send (Ptr packet) function, there's SendImpl (packet). I'm not sure which class the SendImpl() belongs to. It seems that packet loss is from that function when returns 0, is there some way to avoid such packet loss? > > Thanks a lot! > Aaron -------------- next part -------------- An HTML attachment was scrubbed... URL: From shock.jiang at gmail.com Tue Jul 9 22:40:32 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Wed, 10 Jul 2013 13:40:32 +0800 Subject: [ndnSIM] how to disable a link Message-ID: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> Dear all, I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? 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 Tue Jul 9 23:09:59 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 9 Jul 2013 23:09:59 -0700 Subject: [ndnSIM] how to disable a link In-Reply-To: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> Message-ID: <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1") --- Alex On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: > Dear all, > I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? > > 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 shock.jiang at gmail.com Tue Jul 9 23:44:24 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Wed, 10 Jul 2013 14:44:24 +0800 Subject: [ndnSIM] how to disable a link In-Reply-To: <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> Message-ID: <6BBCB22291734FE5B43CF741E7971D32@gmail.com> thank you, Alex. But I have to fail the link at a specified time: Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); Simulator::Schedule(Seconds(hd), &face2->SetUp, false); The above two approaches are wrong. What is your suggestion? thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: > With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions > > To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1") > --- > Alex > > > On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: > > > Dear all, > > I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? > > > > 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 alexander.afanasyev at ucla.edu Wed Jul 10 10:22:00 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 10 Jul 2013 10:22:00 -0700 Subject: [ndnSIM] how to disable a link In-Reply-To: <6BBCB22291734FE5B43CF741E7971D32@gmail.com> References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> <6BBCB22291734FE5B43CF741E7971D32@gmail.com> Message-ID: <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> Hi Xiaoke, The approaches are not wrong, you just need to add a little bit of C++ syntax craziness to it :) Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face1, false); Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face2, false); Or, if you define the FailLink function (as a global function or static in some class), you can do a little bit simpler things void FailLinks (Ptr node1, Ptr node2) Simulator::Schedule (Seconds (10.0), FailLinks, Names::Find ("node1"), Names::Find ("node2")); I haven't checked, but I hope this code should compile. Let me know if it doesn't, so I'll double check. --- Alex On Jul 9, 2013, at 11:44 PM, Xiaoke Jiang wrote: > thank you, Alex. But I have to fail the link at a specified time: > > Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); > Simulator::Schedule(Seconds(hd), &face2->SetUp, false); > The above two approaches are wrong. What is your suggestion? > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: > >> With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions >> >> To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1")--- >> Alex >> >> On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: >> >>> Dear all, >>> I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? >>> >>> 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 shock.jiang at gmail.com Wed Jul 10 23:36:09 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 11 Jul 2013 14:36:09 +0800 Subject: [ndnSIM] how to disable a link In-Reply-To: <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> <6BBCB22291734FE5B43CF741E7971D32@gmail.com> <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> Message-ID: <3BCD2A6D9C9A44238B1059BBA7E3E8A7@gmail.com> Hi Alex, The code can compile without error, but the result may be not right. I disabled the one link at Seconds(5.0), some packets should be dropped, while I can't find any. I am trying to detect whether SetUp works. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Thursday, July 11, 2013 at 1:22 AM, Alex Afanasyev wrote: > Hi Xiaoke, > > The approaches are not wrong, you just need to add a little bit of C++ syntax craziness to it :) > > Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face1, false); > Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face2, false); > > Or, if you define the FailLink function (as a global function or static in some class), you can do a little bit simpler things > void FailLinks (Ptr node1, Ptr node2) > > > Simulator::Schedule (Seconds (10.0), FailLinks, Names::Find ("node1"), Names::Find ("node2")); > > > I haven't checked, but I hope this code should compile. Let me know if it doesn't, so I'll double check. > > --- > Alex > > > On Jul 9, 2013, at 11:44 PM, Xiaoke Jiang wrote: > > thank you, Alex. But I have to fail the link at a specified time: > > > > Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); > > Simulator::Schedule(Seconds(hd), &face2->SetUp, false); > > The above two approaches are wrong. What is your suggestion? > > > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: > > > > > With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions > > > > > > To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1")--- > > > Alex > > > > > > On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: > > > > > > > Dear all, > > > > I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? > > > > > > > > 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 alexander.afanasyev at ucla.edu Wed Jul 10 23:38:34 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 10 Jul 2013 23:38:34 -0700 Subject: [ndnSIM] how to disable a link In-Reply-To: <3BCD2A6D9C9A44238B1059BBA7E3E8A7@gmail.com> References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> <6BBCB22291734FE5B43CF741E7971D32@gmail.com> <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> <3BCD2A6D9C9A44238B1059BBA7E3E8A7@gmail.com> Message-ID: If you're trying to see packet drop on link layer (see red line in visualizer), then you would not see anything, since packet be dropped before coming to there (inside ndn::Face). --- Alex On Jul 10, 2013, at 11:36 PM, Xiaoke Jiang wrote: > Hi Alex, > The code can compile without error, but the result may be not right. > > I disabled the one link at Seconds(5.0), some packets should be dropped, while I can't find any. I am trying to detect whether SetUp works. > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Thursday, July 11, 2013 at 1:22 AM, Alex Afanasyev wrote: > >> Hi Xiaoke, >> >> The approaches are not wrong, you just need to add a little bit of C++ syntax craziness to it :) >> >> Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face1, false); >> Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face2, false); >> >> Or, if you define the FailLink function (as a global function or static in some class), you can do a little bit simpler things >> void >> FailLinks (Ptr node1, Ptr node2) >> >> Simulator::Schedule (Seconds (10.0), FailLinks, Names::Find ("node1"), Names::Find ("node2")); >> >> >> I haven't checked, but I hope this code should compile. Let me know if it doesn't, so I'll double check. >> >> --- >> Alex >> >> >> On Jul 9, 2013, at 11:44 PM, Xiaoke Jiang wrote: >> >>> thank you, Alex. But I have to fail the link at a specified time: >>> >>> Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); >>> Simulator::Schedule(Seconds(hd), &face2->SetUp, false); >>> The above two approaches are wrong. What is your suggestion? >>> >>> >>> thanks >>> >>> My Regards, >>> Xiaoke (Shock) Jiang ????? >>> >>> Ph.D. Candidate, >>> Department of Computer Science and Technology, >>> Tsinghua University, Beijing, P.R.China. 100084 >>> On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: >>> >>>> With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions >>>> >>>> To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1")--- >>>> Alex >>>> >>>> On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: >>>> >>>>> Dear all, >>>>> I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? >>>>> >>>>> 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 >>> >> > > _______________________________________________ > 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 Jul 10 23:41:43 2013 From: shock.jiang at gmail.com (Xiaoke Jiang) Date: Thu, 11 Jul 2013 14:41:43 +0800 Subject: [ndnSIM] how to disable a link In-Reply-To: References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> <6BBCB22291734FE5B43CF741E7971D32@gmail.com> <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> <3BCD2A6D9C9A44238B1059BBA7E3E8A7@gmail.com> Message-ID: In fact, I watched the simulation from several point: 1. drop packet: oss << "/NodeList/*/DeviceList/*/$ns3::PointToPointNetDevice/TxQueue/Drop"; //Config::Connect (oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDequeueSinkWithContext, stream)); Config::ConnectWithoutContext(oss.str(), MakeCallback(&P2PDropPacket)); 2.unsatisfied requests: timeout request entries of end consumers. thanks My Regards, Xiaoke (Shock) Jiang ????? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, P.R.China. 100084 On Thursday, July 11, 2013 at 2:38 PM, Alex Afanasyev wrote: > If you're trying to see packet drop on link layer (see red line in visualizer), then you would not see anything, since packet be dropped before coming to there (inside ndn::Face). > > --- > Alex > > On Jul 10, 2013, at 11:36 PM, Xiaoke Jiang wrote: > > Hi Alex, > > The code can compile without error, but the result may be not right. > > > > I disabled the one link at Seconds(5.0), some packets should be dropped, while I can't find any. I am trying to detect whether SetUp works. > > > > thanks > > > > My Regards, > > Xiaoke (Shock) Jiang ????? > > > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > On Thursday, July 11, 2013 at 1:22 AM, Alex Afanasyev wrote: > > > > > Hi Xiaoke, > > > > > > The approaches are not wrong, you just need to add a little bit of C++ syntax craziness to it :) > > > > > > Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face1, false); > > > Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face2, false); > > > > > > Or, if you define the FailLink function (as a global function or static in some class), you can do a little bit simpler things > > > void FailLinks (Ptr node1, Ptr node2) > > > > > > > > > Simulator::Schedule (Seconds (10.0), FailLinks, Names::Find ("node1"), Names::Find ("node2")); > > > > > > > > > I haven't checked, but I hope this code should compile. Let me know if it doesn't, so I'll double check. > > > > > > --- > > > Alex > > > > > > > > > On Jul 9, 2013, at 11:44 PM, Xiaoke Jiang wrote: > > > > thank you, Alex. But I have to fail the link at a specified time: > > > > > > > > Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); > > > > Simulator::Schedule(Seconds(hd), &face2->SetUp, false); > > > > The above two approaches are wrong. What is your suggestion? > > > > > > > > > > > > thanks > > > > > > > > My Regards, > > > > Xiaoke (Shock) Jiang ????? > > > > > > > > Ph.D. Candidate, > > > > Department of Computer Science and Technology, > > > > Tsinghua University, Beijing, P.R.China. 100084 > > > > > > > > > > > > > > > > > > > > On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: > > > > > > > > > With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions > > > > > > > > > > To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1")--- > > > > > Alex > > > > > > > > > > On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: > > > > > > > > > > > Dear all, > > > > > > I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? > > > > > > > > > > > > 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 > > > > > > > > > > > _______________________________________________ > > 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 alexander.afanasyev at ucla.edu Thu Jul 11 01:01:51 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 11 Jul 2013 01:01:51 -0700 Subject: [ndnSIM] how to disable a link In-Reply-To: References: <717F2099548C4CAA9A61DDA2C12976A8@gmail.com> <769C209D-2FC3-4041-89FE-19837C1F3ADB@ucla.edu> <6BBCB22291734FE5B43CF741E7971D32@gmail.com> <78D3327F-48B1-4D8C-8E71-078BFCDEA8E6@ucla.edu> <3BCD2A6D9C9A44238B1059BBA7E3E8A7@gmail.com> Message-ID: <85DE32A3-12B6-47FA-B7C0-DCE35370EAB5@ucla.edu> Hi Xiaoke, The first one, as I mentioned, will definitely not work. The second check should work... At least it worked when I did something similar in my simulations... --- Alex On Jul 10, 2013, at 11:41 PM, Xiaoke Jiang wrote: > In fact, I watched the simulation from several point: > > 1. drop packet: > oss << "/NodeList/*/DeviceList/*/$ns3::PointToPointNetDevice/TxQueue/Drop"; > //Config::Connect (oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDequeueSinkWithContext, stream)); > Config::ConnectWithoutContext(oss.str(), MakeCallback(&P2PDropPacket)); > > 2.unsatisfied requests: timeout request entries of end consumers. > > > > thanks > > My Regards, > Xiaoke (Shock) Jiang ????? > > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, P.R.China. 100084 > On Thursday, July 11, 2013 at 2:38 PM, Alex Afanasyev wrote: > >> If you're trying to see packet drop on link layer (see red line in visualizer), then you would not see anything, since packet be dropped before coming to there (inside ndn::Face). >> >> --- >> Alex >> >> On Jul 10, 2013, at 11:36 PM, Xiaoke Jiang wrote: >> >>> Hi Alex, >>> The code can compile without error, but the result may be not right. >>> >>> I disabled the one link at Seconds(5.0), some packets should be dropped, while I can't find any. I am trying to detect whether SetUp works. >>> >>> thanks >>> >>> My Regards, >>> Xiaoke (Shock) Jiang ????? >>> >>> Ph.D. Candidate, >>> Department of Computer Science and Technology, >>> Tsinghua University, Beijing, P.R.China. 100084 >>> On Thursday, July 11, 2013 at 1:22 AM, Alex Afanasyev wrote: >>> >>>> Hi Xiaoke, >>>> >>>> The approaches are not wrong, you just need to add a little bit of C++ syntax craziness to it :) >>>> >>>> Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face1, false); >>>> Simulator::Schedule(Seconds(hd), &ns3::ndn::Face::SetUp, face2, false); >>>> >>>> Or, if you define the FailLink function (as a global function or static in some class), you can do a little bit simpler things >>>> void >>>> FailLinks (Ptr node1, Ptr node2) >>>> >>>> Simulator::Schedule (Seconds (10.0), FailLinks, Names::Find ("node1"), Names::Find ("node2")); >>>> >>>> >>>> I haven't checked, but I hope this code should compile. Let me know if it doesn't, so I'll double check. >>>> >>>> --- >>>> Alex >>>> >>>> >>>> On Jul 9, 2013, at 11:44 PM, Xiaoke Jiang wrote: >>>> >>>>> thank you, Alex. But I have to fail the link at a specified time: >>>>> >>>>> Simulator::Schedule(Seconds(hd), &&ns3::ndn::Face::SetUp, face1, false); >>>>> Simulator::Schedule(Seconds(hd), &face2->SetUp, false); >>>>> The above two approaches are wrong. What is your suggestion? >>>>> >>>>> >>>>> thanks >>>>> >>>>> My Regards, >>>>> Xiaoke (Shock) Jiang ????? >>>>> >>>>> Ph.D. Candidate, >>>>> Department of Computer Science and Technology, >>>>> Tsinghua University, Beijing, P.R.China. 100084 >>>>> On Wednesday, July 10, 2013 at 2:09 PM, Alex Afanasyev wrote: >>>>> >>>>>> With point to point links you cannot remove any of them, but you can "fail" them. You can try to make something base on this example: http://ndnsim.net/faq.html#code-questions >>>>>> >>>>>> To get Ptr from string (defined in the topology file), just use something like this: Names::Find ("node1")--- >>>>>> Alex >>>>>> >>>>>> On Jul 9, 2013, at 10:40 PM, Xiaoke Jiang wrote: >>>>>> >>>>>>> Dear all, >>>>>>> I read a topology with AnnotatedTopologyReader, now I am trying to disable a link, say link between node1 and node2, anyone can give me any hint? >>>>>>> >>>>>>> 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 >>>>> >>>> >>> >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioannoa at scss.tcd.ie Thu Jul 11 05:47:28 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Thu, 11 Jul 2013 13:47:28 +0100 Subject: [ndnSIM] OnData function. Message-ID: Hello everyone, I was looking once again at the OnData function which handles a Content Object at each node and I was a bit confused with its code. It has a pitEntry == 0 and in that case it has to implement a caching action as well as a distinction between finding the content request in Pit or not. e.g. if (pitEntry == 0) { bool cached = false; if (m_cacheUnsolicitedData || (m_cacheUnsolicitedDataFromApps && (inFace->GetFlags () | Face::APPLICATION))) { FwHopCountTag hopCountTag; Ptr payloadCopy = payload->Copy (); payloadCopy->RemovePacketTag (hopCountTag); // Optimistically add or update entry in the content store cached = m_contentStore->Add (header, payloadCopy, , header->GetTimeSinceBirth());//(+) if (cached == true)//(+) std::cout << "I've cached packet# " << origPacket->GetUid() << " on Node# " << node->GetId() << std::endl;//(+) else std::cout << "I haven't cached packet# " << origPacket->GetUid() << " on Node# " << node->GetId() << std::endl;//(+) } else { // Drop data packet if PIT entry is not found // (unsolicited data packets should not "poison" content store) //drop dulicated or not requested data packet m_dropData (header, payload, inFace); } DidReceiveUnsolicitedData (inFace, header, payload, origPacket, cached); return; } else ........ But, my question is why so since if pitEntry is 0 it means the specific Content Object has not been requested, hence the Content Object should be dropped anyway. Could someone please help me understand why? Kind regards, Andriana. From alexander.afanasyev at ucla.edu Thu Jul 11 10:11:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 11 Jul 2013 10:11:28 -0700 Subject: [ndnSIM] OnData function. In-Reply-To: References: Message-ID: <0C4CA844-3103-4926-9014-C42F65D57A8C@ucla.edu> Hi Andriana, This provision has been implemented in order to support simulation of scenarios when caching data packets, even if they were not requested, is highly desirable. For example, in vehicular environments it is important to cache unsolicited traffic information data, given its importance and intermittent connectivity. These actually is not enabled by default, and if you want this code be enabled, you need to configure CacheUnsolicitedData attribute of the forwarding strategy to yes. There another use case of this code, for data packets that were received from the local application. All packets from local apps will be cached by default, even if they were not requested. In many cases it simplifies design of (more complex) NDN applications and aligns with the existing NDN implementations (CCNx project). --- Alex On Jul 11, 2013, at 5:47 AM, ioannoa at scss.tcd.ie wrote: > Hello everyone, > > I was looking once again at the OnData function which handles a Content > Object at each node and I was a bit confused with its code. > > It has a pitEntry == 0 and in that case it has to implement a caching > action as well as a distinction between finding the content request in Pit > or not. e.g. > > > if (pitEntry == 0) > { > bool cached = false; > > if (m_cacheUnsolicitedData || (m_cacheUnsolicitedDataFromApps && > (inFace->GetFlags () | Face::APPLICATION))) > { > FwHopCountTag hopCountTag; > > Ptr payloadCopy = payload->Copy (); > payloadCopy->RemovePacketTag (hopCountTag); > > // Optimistically add or update entry in the content store > cached = m_contentStore->Add (header, payloadCopy, , > header->GetTimeSinceBirth());//(+) > if (cached == true)//(+) > std::cout << "I've cached packet# " << origPacket->GetUid() << > " on Node# " << node->GetId() << std::endl;//(+) > else > std::cout << "I haven't cached packet# " << > origPacket->GetUid() << " on Node# " << node->GetId() << > std::endl;//(+) > } > else > { > // Drop data packet if PIT entry is not found > // (unsolicited data packets should not "poison" content store) > > //drop dulicated or not requested data packet > m_dropData (header, payload, inFace); > } > > DidReceiveUnsolicitedData (inFace, header, payload, origPacket, cached); > return; > } > else > ........ > > > But, my question is why so since if pitEntry is 0 it means the specific > Content Object has not been requested, hence the Content Object should be > dropped anyway. Could someone please help me understand why? > > Kind regards, > Andriana. From alexander.afanasyev at ucla.edu Fri Jul 12 08:47:09 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 12 Jul 2013 08:47:09 -0700 Subject: [ndnSIM] PIT lifetime (maximum time = 2s) In-Reply-To: References: Message-ID: Hi Fl?vio, This options was meant to define an upper bound on PIT entry lifetime, not the actual lifetime of interests. However, in the current code, it is not (yet/anymore) used anywhere. What you would want instead is configure your application. If you're using ndn::Consumer* app, then you can do it during application creation stage: ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr"); consumerHelper.SetPrefix (prefix); consumerHelper.SetAttribute ("LifeTime", TimeValue (Seconds (10.0))); consumerHelper.Install (consumerNodes); --- Alex On Jul 12, 2013, at 5:45 AM, Fl?vio Queiroz wrote: > Hi Alex, > How do I set the PIT lifetime greater than 2s? > In example "ndn-simple-max-pit-entry-lifetime.cc": > > Config::Set ("/NodeList/1/$ns3::ndn::Pit/MaxPitEntryLifetime", > TimeValue (Seconds (10.0))); > > the PIT lifetime is 2s. > > ( http://pastebin.com/eSmHKJn6 ) > Thank You, > Fl?vio > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- 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 natalya.rozhnova at lip6.fr Sat Jul 13 05:46:57 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sat, 13 Jul 2013 19:46:57 +0700 Subject: [ndnSIM] boost includes Message-ID: <1478051373719617@web29d.yandex.ru> An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 06:00:09 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sat, 13 Jul 2013 20:00:09 +0700 Subject: [ndnSIM] boost includes In-Reply-To: <1554601373720341@web14e.yandex.ru> Message-ID: <1554991373720409@web14e.yandex.ru> An HTML attachment was scrubbed... URL: From mahdian.m at husky.neu.edu Sat Jul 13 13:03:21 2013 From: mahdian.m at husky.neu.edu (Milad Mahdian) Date: Sun, 14 Jul 2013 00:33:21 +0430 Subject: [ndnSIM] Forwarding strategy for wireless network Message-ID: Hi Alex, We are working on a wireless scenario in which nodes are chosen randomly as a relay. I was wondering if there is such a forwarding strategy that relays are chosen randomly. Also, is there any support for multipath routing in ndnSIM? Regards, Milad -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jul 13 15:27:46 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 13 Jul 2013 15:27:46 -0700 Subject: [ndnSIM] boost includes In-Reply-To: <1554991373720409@web14e.yandex.ru> References: <1554991373720409@web14e.yandex.ru> Message-ID: <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> Hi Natalya, Just curious, what did you do to solve the problem? --- Alex On Jul 13, 2013, at 6:00 AM, Natalya Rozhnova wrote: > Hi again, > > Problem is resolved. :) > > > 13.07.2013, 19:46, "Natalya Rozhnova" : >> Hi Alex, >> >> I have a question about boost library. I'm using boost version 1.53 on mac os. Everything works fine until I include the file ndn-name.h to basic class queue.h of network module. I added ndnSIM module as a dependency in wscript of network module. But I get a following error: >> ./ns3/ndn-name.h:35:25: error: boost/ref.hpp: No such file or directory >> >> I don't understand why it doesn't compile when I include ndn-name.h in Network module and compile otherwise... >> >> Thanks, >> Natalya >> > > > -------- End of forwarded message -------- > > > -- > Cordialement, > Natalya Rozhnova > PhD Student > Universit? Pierre et Marie Curie - Sorbonne Universit?s - www.upmc.fr > Laboratoire d'informatique de Paris 6 (LIP6) - Network and Performance Analysis Group (NPA) - www.lip6.fr > Le Centre National de la Recherche Scientifique (CNRS) - www.cnrs.fr > Content-Centric Networking - ccnx.org > ANR CONNECT project - anr-connect.org > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 15:36:24 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 05:36:24 +0700 Subject: [ndnSIM] boost includes In-Reply-To: <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> References: <1554991373720409@web14e.yandex.ru> <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> Message-ID: <84821373754984@web22f.yandex.ru> An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 16:06:17 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 06:06:17 +0700 Subject: [ndnSIM] queue type Message-ID: <303171373756777@web14h.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jul 13 16:39:33 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 13 Jul 2013 16:39:33 -0700 Subject: [ndnSIM] queue type In-Reply-To: <303171373756777@web14h.yandex.ru> References: <303171373756777@web14h.yandex.ru> Message-ID: Do you need to specify different queue types on different nodes? In any case, setting queue types is not yet supported, but could be easily added. --- Alex On Jul 13, 2013, at 4:06 PM, Natalya Rozhnova wrote: > Hi Alex, > > Is it possible to specify the queue type using topology reader? If so, how could I do it? > > Thanks, > Natalya From natalya.rozhnova at lip6.fr Sat Jul 13 16:45:25 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 06:45:25 +0700 Subject: [ndnSIM] queue type In-Reply-To: References: <303171373756777@web14h.yandex.ru> Message-ID: <191921373759125@web11g.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sat Jul 13 16:46:16 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 13 Jul 2013 16:46:16 -0700 Subject: [ndnSIM] boost includes In-Reply-To: <84821373754984@web22f.yandex.ru> References: <1554991373720409@web14e.yandex.ru> <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> <84821373754984@web22f.yandex.ru> Message-ID: Btw. I'm not sure that adding ndn-name.h to queue.h is the right way to go. It basically introduces some circular module dependencies (ndnSIM depends on network and now network module depends on ndnSIM...). Just wonder why adding this include to a derivative queue (type that you're working on) is not enough? The reason you're getting the error is that network module is not configured with boost libraries support. Even though you got rid of the error right now, you may have bigger problems later (at the linking stage). If you really want to keep the include, I would add boost dependencies into network module as well (similar how it is done in src/ndnSIM/wscript). --- Alex On Jul 13, 2013, at 3:36 PM, Natalya Rozhnova wrote: > Hi Alex, > > My boost library has been installed to "/opt/local/include/boost" by default. I just created a symbolic link between /usr/include and /opt/local/include/boost. May be this is not a very good solution but it avoids to reinstall boost... > > Natalya > > 14.07.2013, 05:27, "Alex Afanasyev" : >> Hi Natalya, >> >> Just curious, what did you do to solve the problem? >> >> --- >> Alex >> >> On Jul 13, 2013, at 6:00 AM, Natalya Rozhnova wrote: >> >>> Hi again, >>> >>> Problem is resolved. :) >>> >>> >>> 13.07.2013, 19:46, "Natalya Rozhnova" : >>>> Hi Alex, >>>> >>>> I have a question about boost library. I'm using boost version 1.53 on mac os. Everything works fine until I include the file ndn-name.h to basic class queue.h of network module. I added ndnSIM module as a dependency in wscript of network module. But I get a following error: >>>> ./ns3/ndn-name.h:35:25: error: boost/ref.hpp: No such file or directory >>>> >>>> I don't understand why it doesn't compile when I include ndn-name.h in Network module and compile otherwise... >>>> >>>> Thanks, >>>> Natalya >>>> >>> >>> >>> -------- End of forwarded message -------- >>> >>> >>> -- >>> Cordialement, >>> Natalya Rozhnova >>> PhD Student >>> Universit? Pierre et Marie Curie - Sorbonne Universit?s - www.upmc.fr >>> Laboratoire d'informatique de Paris 6 (LIP6) - Network and Performance Analysis Group (NPA) - www.lip6.fr >>> Le Centre National de la Recherche Scientifique (CNRS) - www.cnrs.fr >>> Content-Centric Networking - ccnx.org >>> ANR CONNECT project - anr-connect.org >>> _______________________________________________ >>> 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 Sat Jul 13 16:47:24 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sat, 13 Jul 2013 16:47:24 -0700 Subject: [ndnSIM] queue type In-Reply-To: <191921373759125@web11g.yandex.ru> References: <303171373756777@web14h.yandex.ru> <191921373759125@web11g.yandex.ru> Message-ID: <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> Can you give me some examples of how would you set different queue types, if you create topology manually? --- Alex On Jul 13, 2013, at 4:45 PM, Natalya Rozhnova wrote: > Yes, ideally I wanted to use different types on different nodes... > > Natalya > > > 14.07.2013, 06:39, "Alex Afanasyev" : >> Do you need to specify different queue types on different nodes? >> >> In any case, setting queue types is not yet supported, but could be easily added. >> >> --- >> Alex >> >> On Jul 13, 2013, at 4:06 PM, Natalya Rozhnova wrote: >> >> Hi Alex, >> >> Is it possible to specify the queue type using topology reader? If so, how could I do it? >> >> Thanks, >> Natalya > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 17:05:22 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 07:05:22 +0700 Subject: [ndnSIM] boost includes In-Reply-To: References: <1554991373720409@web14e.yandex.ru> <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> <84821373754984@web22f.yandex.ru> Message-ID: <1647341373760322@web27d.yandex.ru> An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 17:30:57 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 07:30:57 +0700 Subject: [ndnSIM] queue type In-Reply-To: <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> References: <303171373756777@web14h.yandex.ru> <191921373759125@web11g.yandex.ru> <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> Message-ID: <380641373761857@web17g.yandex.ru> An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sat Jul 13 17:38:17 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Sun, 14 Jul 2013 07:38:17 +0700 Subject: [ndnSIM] queue type In-Reply-To: <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> References: <303171373756777@web14h.yandex.ru> <191921373759125@web11g.yandex.ru> <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> Message-ID: <1649151373762297@web23e.yandex.ru> An HTML attachment was scrubbed... URL: From mahdian.m at husky.neu.edu Sun Jul 14 13:28:55 2013 From: mahdian.m at husky.neu.edu (Milad Mahdian) Date: Mon, 15 Jul 2013 00:58:55 +0430 Subject: [ndnSIM] Fwd: Forwarding strategy for wireless network In-Reply-To: References: Message-ID: Hi Alex, Assuming one node is trying to send a packet to another node over a wireless channel, I was wondering how I can simulate this communication in ndnSIM. in another word, as in ndnSIM nodes are communicating through interfaces, how one can simulate a wireless communication over a wireless channel. Regards, Milad Mahdian ---------- Forwarded message ---------- From: Milad Mahdian Date: Sun, Jul 14, 2013 at 12:33 AM Subject: Forwarding strategy for wireless network To: ndnsim at lists.cs.ucla.edu Cc: Edmund Yeh , melis yetkinler Hi Alex, We are working on a wireless scenario in which nodes are chosen randomly as a relay. I was wondering if there is such a forwarding strategy that relays are chosen randomly. Also, is there any support for multipath routing in ndnSIM? Regards, Milad -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jul 14 15:39:03 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 14 Jul 2013 15:39:03 -0700 Subject: [ndnSIM] queue type In-Reply-To: <1649151373762297@web23e.yandex.ru> References: <303171373756777@web14h.yandex.ru> <191921373759125@web11g.yandex.ru> <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> <1649151373762297@web23e.yandex.ru> Message-ID: <8527CFB9-9530-43D3-96DB-4D7303ED4CCE@ucla.edu> Hi Natalya, I have pushed a commit that implements ability to specify custom queue and queue parameters in topology file (https://github.com/NDN-Routing/ndnSIM/commit/0aa1136514f2d2ab72d28c949c36050a5d56c336). Note that queue type and parameters are set the same for both ends. Also, the change required a small API update in the base NS-3, so you will need to update you NS-3 as well (there is one new commit). --- Alex On Jul 13, 2013, at 5:38 PM, Natalya Rozhnova wrote: > Probably, set up it like that would be more correct: > ObjectFactory factory; > factory.SetTypeId("ns3::PointToPointNetDevice"); > Ptr devA = factory.Create (); > devA->SetAddress (Mac48Address::Allocate ()); > nodes.Get (1)->AddDevice (devA); > > factory.SetTypeId("ns3::DropTailQueue"); > Ptr queueA = factory.Create (); > devA->SetQueue (queueA); > > Natalya > > 14.07.2013, 06:47, "Alex Afanasyev" : >> Can you give me some examples of how would you set different queue types, if you create topology manually? >> >> --- >> Alex >> >> On Jul 13, 2013, at 4:45 PM, Natalya Rozhnova wrote: >> >>> Yes, ideally I wanted to use different types on different nodes... >>> >>> Natalya >>> >>> >>> 14.07.2013, 06:39, "Alex Afanasyev" : >>>> Do you need to specify different queue types on different nodes? >>>> >>>> In any case, setting queue types is not yet supported, but could be easily added. >>>> >>>> --- >>>> Alex >>>> >>>> On Jul 13, 2013, at 4:06 PM, Natalya Rozhnova wrote: >>>> >>>> Hi Alex, >>>> >>>> Is it possible to specify the queue type using topology reader? If so, how could I do it? >>>> >>>> Thanks, >>>> Natalya >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jul 14 15:54:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 14 Jul 2013 15:54:57 -0700 Subject: [ndnSIM] Fwd: Forwarding strategy for wireless network In-Reply-To: References: Message-ID: <2BD346E0-3DAF-49B7-97AB-89CE394C7B8E@ucla.edu> Hi Milad, Sorry for my delayed reply. Currently, there are no strategies that implement smart wireless-aware forwarding are implemented in ndnSIM. I think I already pointed you to an extension that does some wireless-based forwarding in vehicular environments (https://github.com/cawka/ndnSIM-nom-rapid-car2car), but it is not exactly what are you looking for. As for the implementation, you may want to start with creating a new custom strategy class that is derived from ndn::ForwardingStrategy and overload a couple of methods, including SatisfyPendingInterest, CanSendOutInterest, DoPropagateInterest and may be some others. The key point is that you should enable "forwarding" to the incoming face (since in wifi scenarios this is an intended behavior). Also, you should be careful to terminate such "relaying" at some point. As for multipath routing. It is NDN feature (nonce in interests effectively prevent any looping, so it is supported by ndnSIM). Another question is how exactly this multipath is implemented in the forwarding strategy. --- Alex On Jul 14, 2013, at 1:28 PM, Milad Mahdian wrote: > Hi Alex, > > Assuming one node is trying to send a packet to another node over a wireless channel, I was wondering how I can simulate this communication in ndnSIM. in another word, as in ndnSIM nodes are communicating through interfaces, how one can simulate a wireless communication over a wireless channel. > > Regards, > Milad Mahdian > > ---------- Forwarded message ---------- > From: Milad Mahdian > Date: Sun, Jul 14, 2013 at 12:33 AM > Subject: Forwarding strategy for wireless network > To: ndnsim at lists.cs.ucla.edu > Cc: Edmund Yeh , melis yetkinler > > > Hi Alex, > > We are working on a wireless scenario in which nodes are chosen randomly as a relay. I was wondering if there is such a forwarding strategy that relays are chosen randomly. Also, is there any support for multipath routing in ndnSIM? > > Regards, > Milad > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From natalya.rozhnova at lip6.fr Sun Jul 14 15:56:51 2013 From: natalya.rozhnova at lip6.fr (Natalya Rozhnova) Date: Mon, 15 Jul 2013 05:56:51 +0700 Subject: [ndnSIM] queue type In-Reply-To: <8527CFB9-9530-43D3-96DB-4D7303ED4CCE@ucla.edu> References: <303171373756777@web14h.yandex.ru> <191921373759125@web11g.yandex.ru> <4486A7A5-1CEC-40B7-AD9A-466F834C1306@ucla.edu> <1649151373762297@web23e.yandex.ru> <8527CFB9-9530-43D3-96DB-4D7303ED4CCE@ucla.edu> Message-ID: <155551373842611@web7f.yandex.ru> An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jul 14 16:18:28 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 14 Jul 2013 16:18:28 -0700 Subject: [ndnSIM] boost includes In-Reply-To: <1647341373760322@web27d.yandex.ru> References: <1554991373720409@web14e.yandex.ru> <0A774451-5925-4BD7-B1E9-1F643366B6F8@ucla.edu> <84821373754984@web22f.yandex.ru> <1647341373760322@web27d.yandex.ru> Message-ID: <9B88AD78-8E35-464D-AFA3-0F6A59C79C34@ucla.edu> Hi again, These are actually the errors that I was hinting to. Even though you could "compile" without errors, there you couldn't link. In any case, I have suspicion that counting can be easily done in a class that simply derives from Queue and then implements custom queuing. At the same time, if you just want to count enqueue/dequeue/drop, then you can easily implement this without even touching Queue implementation, using TraceSources, in similar manner L2RateTracer is implemented (ulits/tracers/l2-tracer.h|cc, utils/tracers/l2-rate-tracer.h|cc). So, you basically need to create a class that will do counting and "attach" to Enqueue, Dequeue, and Drop traces (http://www.nsnam.org/doxygen-release/classns3_1_1_queue.html#details). And this implementation should be either inside ndnSIM module, in a separate module that depends on ndnSIM module, or in an separate project that depends on NS-3 and ndnSIM module (like in these example: https://github.com/cawka/ndnSIM-ddos-interest-flooding). --- Alex On Jul 13, 2013, at 5:05 PM, Natalya Rozhnova wrote: > Oh, I don't have my own derivative queue. My implementation has completely changed since we talked about. > I actually need to count the number of data packets in the queue per flow. Where flow is defined by prefix name. So, the first idea was to create a std::map and dynamically keep the queue lengths per prefix name and then access to the map whenever I need it. (I need to access it in Forwarding Strategy) > But I got an error: Undefined symbols for architecture x86_64 ...etc... > > btw, it's still an open question... Do you have any idea how to implement this ? > > Natalya > > > 14.07.2013, 06:47, "Alex Afanasyev" : >> Btw. I'm not sure that adding ndn-name.h to queue.h is the right way to go. It basically introduces some circular module dependencies (ndnSIM depends on network and now network module depends on ndnSIM...). Just wonder why adding this include to a derivative queue (type that you're working on) is not enough? >> >> The reason you're getting the error is that network module is not configured with boost libraries support. Even though you got rid of the error right now, you may have bigger problems later (at the linking stage). If you really want to keep the include, I would add boost dependencies into network module as well (similar how it is done in src/ndnSIM/wscript). >> >> --- >> Alex >> >> On Jul 13, 2013, at 3:36 PM, Natalya Rozhnova wrote: >> >>> Hi Alex, >>> >>> My boost library has been installed to "/opt/local/include/boost" by default. I just created a symbolic link between /usr/include and /opt/local/include/boost. May be this is not a very good solution but it avoids to reinstall boost... >>> >>> Natalya >>> >>> 14.07.2013, 05:27, "Alex Afanasyev" : >>>> Hi Natalya, >>>> >>>> Just curious, what did you do to solve the problem? >>>> >>>> --- >>>> Alex >>>> >>>> On Jul 13, 2013, at 6:00 AM, Natalya Rozhnova wrote: >>>> >>>>> Hi again, >>>>> >>>>> Problem is resolved. :) >>>>> >>>>> >>>>> 13.07.2013, 19:46, "Natalya Rozhnova" : >>>>>> Hi Alex, >>>>>> >>>>>> I have a question about boost library. I'm using boost version 1.53 on mac os. Everything works fine until I include the file ndn-name.h to basic class queue.h of network module. I added ndnSIM module as a dependency in wscript of network module. But I get a following error: >>>>>> ./ns3/ndn-name.h:35:25: error: boost/ref.hpp: No such file or directory >>>>>> >>>>>> I don't understand why it doesn't compile when I include ndn-name.h in Network module and compile otherwise... >>>>>> >>>>>> Thanks, >>>>>> Natalya >>>>>> >>>>> >>>>> >>>>> -------- End of forwarded message -------- >>>>> >>>>> >>>>> -- >>>>> Cordialement, >>>>> Natalya Rozhnova >>>>> PhD Student >>>>> Universit? Pierre et Marie Curie - Sorbonne Universit?s - www.upmc.fr >>>>> Laboratoire d'informatique de Paris 6 (LIP6) - Network and Performance Analysis Group (NPA) - www.lip6.fr >>>>> Le Centre National de la Recherche Scientifique (CNRS) - www.cnrs.fr >>>>> Content-Centric Networking - ccnx.org >>>>> ANR CONNECT project - anr-connect.org >>>>> _______________________________________________ >>>>> ndnSIM mailing list >>>>> ndnSIM at lists.cs.ucla.edu >>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From john.mckendry at gmail.com Sun Jul 14 18:36:01 2013 From: john.mckendry at gmail.com (John McKendry) Date: Sun, 14 Jul 2013 21:36:01 -0400 Subject: [ndnSIM] Fwd: Forwarding strategy for wireless network In-Reply-To: <2BD346E0-3DAF-49B7-97AB-89CE394C7B8E@ucla.edu> References: <2BD346E0-3DAF-49B7-97AB-89CE394C7B8E@ucla.edu> Message-ID: For the past eight months I have been working on a version of ndnSIM for wireless mobile ad-hoc networks, so maybe it will be useful to share some experience. (Unfortunately I don't think the sponsoring agency will let me share the actual code.) The biggest problem I had to deal with is that the Face abstraction is implicitly a point-to-point link to a single neighbor node, and wireless links are inherently broadcast. I considered a scheme in which each node maintains separate faces for every other node in the network, but that didn't seem like a good solution for a network with hundreds of nodes, with neighbors appearing and disappearing and reappearing unpredictably based on mobility. What I use instead is a Neighbor structure consisting of a Face and a MAC address; this Neighbor structure becomes the addressing unit for the network. The Face <=> (one neighbor node) equivalence is a central feature of the CCN architecture, so replacing the Face with something else required changes to the rest of ndnSIM. (To be clear, I still use Faces to represent different network devices; the nodes in my network may have multiple wireless interfaces, each of which is a separate Face.) Most of the work went into changing the FIB and PIT. I ended up creating parallel wireless versions of each, called WFIB and WPIT. The entries in these tables store next-hop information using the Neighbor structure rather than the Face. I also had to change the Interest packet to include a FromNode MAC address so that I could construct the Neighbor information when I received an Interest. Again I created a parallel wireless version, called WInterest. And that meant that I had to add an OnWInterest( ) method to my Forwarding Strategy, so I ended up writing a parallel Wireless Forwarding Strategy class, WFW. I added a SendTo( ) method to the Face class so that I can send packets to a specific MAC address. I should have done this in a child class (AdHocNetDeviceFace or something) but I was in a hurry. Lastly, I created a rudimentary routing protocol using broadcast flooding with a new message type, called Announcement. Producers send Announcements for their prefixes periodically, and these Announcements are used to populate and refresh the WFIBs. Like the WInterest, the Announcement contains a FromNode field that lets each node construct a path to the Producer. When a node propagates an Announcement it places its own MAC address into the FromNode field and then broadcasts it. I haven't finished with this; I don't have funding to keep working on it right now, and I know of many ways it can be improved. But it does work. I hope this is useful to anyone who is trying to do CCN/Named Data Networking in a mobile wireless environment. It's my impression that the CCN architecture has some built-in biases in favor of stable enterprise-scale networks, so making it work in a wireless MANET will require breaking a few eggs. John On Sun, Jul 14, 2013 at 6:54 PM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Milad, > > Sorry for my delayed reply. Currently, there are no strategies that > implement smart wireless-aware forwarding are implemented in ndnSIM. I > think I already pointed you to an extension that does some wireless-based > forwarding in vehicular environments ( > https://github.com/cawka/ndnSIM-nom-rapid-car2car), but it is not exactly > what are you looking for. > > As for the implementation, you may want to start with creating a new > custom strategy class that is derived from ndn::ForwardingStrategy and > overload a couple of methods, > including SatisfyPendingInterest, CanSendOutInterest, DoPropagateInterest > and may be some others. The key point is that you should enable > "forwarding" to the incoming face (since in wifi scenarios this is an > intended behavior). Also, you should be careful to terminate such > "relaying" at some point. > > As for multipath routing. It is NDN feature (nonce in interests > effectively prevent any looping, so it is supported by ndnSIM). Another > question is how exactly this multipath is implemented in the forwarding > strategy. > > --- > Alex > > On Jul 14, 2013, at 1:28 PM, Milad Mahdian > wrote: > > Hi Alex, > > Assuming one node is trying to send a packet to another node over a > wireless channel, I was wondering how I can simulate this communication in > ndnSIM. in another word, as in ndnSIM nodes are communicating through > interfaces, how one can simulate a wireless communication over a wireless > channel. > > Regards, > Milad Mahdian > > ---------- Forwarded message ---------- > From: Milad Mahdian > Date: Sun, Jul 14, 2013 at 12:33 AM > Subject: Forwarding strategy for wireless network > To: ndnsim at lists.cs.ucla.edu > Cc: Edmund Yeh , melis yetkinler < > melisyetkinler at gmail.com> > > > Hi Alex, > > We are working on a wireless scenario in which nodes are chosen randomly > as a relay. I was wondering if there is such a forwarding strategy that > relays are chosen randomly. Also, is there any support for multipath > routing in ndnSIM? > > Regards, > Milad > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From limenghan1101 at gmail.com Tue Jul 16 22:19:38 2013 From: limenghan1101 at gmail.com (=?GB2312?B?wO7Dz7qt?=) Date: Wed, 17 Jul 2013 13:19:38 +0800 Subject: [ndnSIM] compiling error Message-ID: Hi Alex, Today I updated my ns-3 and ndnSIM code on my ubuntu 12.04, then compiling gave me an error. I forgot if I have updated gcc compiler, and I don't know whether the version of the compiler can cause this error. [1549/2123] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. Waf: Leaving directory `/home/parallels/ndnSIM/ns-3/build' Build failed -> task in 'ns3module_lte' failed (exit status 4): {task 47737680: 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', '-fstack-protector', '-fno-strict-aliasing', '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-I.', '-I..', '-Isrc/lte/bindings', '-I../src/lte/bindings', '-I/usr/include/python2.7', '-I/usr/include/gtk-2.0', '-I/usr/lib/x86_64-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/x86_64-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_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_DL=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNS_DEPRECATED=', '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', 'src/lte/bindings/ns3module.cc', '-c', '-o', 'src/lte/bindings/ns3module.cc.7.o'] -- Menghan Li Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, China. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jul 16 22:24:29 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 16 Jul 2013 22:24:29 -0700 Subject: [ndnSIM] compiling error In-Reply-To: References: Message-ID: <414DD663-A93D-400F-BD03-459C63BC5D3A@ucla.edu> This one looks like some system problem related python bindings (which are optional). You should be able to successfully compile if you disable them: ./waf configure --disable-python ./waf --- Alex On Jul 16, 2013, at 10:19 PM, ??? wrote: > Hi Alex, > > Today I updated my ns-3 and ndnSIM code on my ubuntu 12.04, then compiling gave me an error. I forgot if I have updated gcc compiler, and I don't know whether the version of the compiler can cause this error. > > [1549/2123] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o > g++: internal compiler error: Killed (program cc1plus) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > Waf: Leaving directory `/home/parallels/ndnSIM/ns-3/build' > Build failed > -> task in 'ns3module_lte' failed (exit status 4): > {task 47737680: 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', '-fstack-protector', '-fno-strict-aliasing', '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-I.', '-I..', '-Isrc/lte/bindings', '-I../src/lte/bindings', '-I/usr/include/python2.7', '-I/usr/include/gtk-2.0', '-I/usr/lib/x86_64-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/x86_64-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_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_DL=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNS_DEPRECATED=', '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', 'src/lte/bindings/ns3module.cc', '-c', '-o', 'src/lte/bindings/ns3module.cc.7.o'] > > > -- > Menghan Li > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, China. > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From limenghan1101 at gmail.com Tue Jul 16 22:39:13 2013 From: limenghan1101 at gmail.com (=?GB2312?B?wO7Dz7qt?=) Date: Wed, 17 Jul 2013 13:39:13 +0800 Subject: [ndnSIM] compiling error In-Reply-To: <414DD663-A93D-400F-BD03-459C63BC5D3A@ucla.edu> References: <414DD663-A93D-400F-BD03-459C63BC5D3A@ucla.edu> Message-ID: Thanks! If I want to use visualizer and is there any other method to fix this error? 2013/7/17 Alex Afanasyev > This one looks like some system problem related python bindings (which are > optional). You should be able to successfully compile if you disable them: > > ./waf configure --disable-python > ./waf > > --- > Alex > > On Jul 16, 2013, at 10:19 PM, ??? wrote: > > > Hi Alex, > > > > Today I updated my ns-3 and ndnSIM code on my ubuntu 12.04, then > compiling gave me an error. I forgot if I have updated gcc compiler, and I > don't know whether the version of the compiler can cause this error. > > > > [1549/2123] cxx: build/src/lte/bindings/ns3module.cc -> > build/src/lte/bindings/ns3module.cc.7.o > > g++: internal compiler error: Killed (program cc1plus) > > Please submit a full bug report, > > with preprocessed source if appropriate. > > See for instructions. > > Waf: Leaving directory `/home/parallels/ndnSIM/ns-3/build' > > Build failed > > -> task in 'ns3module_lte' failed (exit status 4): > > {task 47737680: 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', '-fstack-protector', '-fno-strict-aliasing', > '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', > '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', > '-fno-strict-aliasing', '-I.', '-I..', '-Isrc/lte/bindings', > '-I../src/lte/bindings', '-I/usr/include/python2.7', > '-I/usr/include/gtk-2.0', '-I/usr/lib/x86_64-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/x86_64-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_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', > '-DHAVE_PACKET_H=1', '-DHAVE_DL=1', '-DHAVE_SQLITE3=1', > '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNS_DEPRECATED=', > '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', > 'src/lte/bindings/ns3module.cc', '-c', '-o', > 'src/lte/bindings/ns3module.cc.7.o'] > > > > > > -- > > Menghan Li > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, China. > > _______________________________________________ > > ndnSIM mailing list > > ndnSIM at lists.cs.ucla.edu > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -- ????Menghan Li? Ph.D. Candidate, Department of Computer Science and Technology, Tsinghua University, Beijing, China. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jul 16 23:06:24 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 16 Jul 2013 23:06:24 -0700 Subject: [ndnSIM] compiling error In-Reply-To: References: <414DD663-A93D-400F-BD03-459C63BC5D3A@ucla.edu> Message-ID: <33C71FCC-3F7B-4E6A-9407-1B5AFAAF0842@ucla.edu> I can suggest to try different compiler (though I didn't not have such problems with my 12.04 installation...), but not sure if it would help. For example, you can install clang compiler and then CC=clang CXX=clang++ CXXFLAGS="-g -O0 -Wall -Qunused-arguments -Wno-unused-variable -Wno-unused-variable -Wno-unneeded-internal-declaration -Wno-unused-private-field -fcolor-diagnostics" ./waf configure --enable-tests --enable-examples (you need these extra options to make suppress verbose warnings from clang) --- Alex On Jul 16, 2013, at 10:39 PM, ??? wrote: > Thanks! If I want to use visualizer and is there any other method to fix this error? > > > 2013/7/17 Alex Afanasyev > This one looks like some system problem related python bindings (which are optional). You should be able to successfully compile if you disable them: > > ./waf configure --disable-python > ./waf > > --- > Alex > > On Jul 16, 2013, at 10:19 PM, ??? wrote: > > > Hi Alex, > > > > Today I updated my ns-3 and ndnSIM code on my ubuntu 12.04, then compiling gave me an error. I forgot if I have updated gcc compiler, and I don't know whether the version of the compiler can cause this error. > > > > [1549/2123] cxx: build/src/lte/bindings/ns3module.cc -> build/src/lte/bindings/ns3module.cc.7.o > > g++: internal compiler error: Killed (program cc1plus) > > Please submit a full bug report, > > with preprocessed source if appropriate. > > See for instructions. > > Waf: Leaving directory `/home/parallels/ndnSIM/ns-3/build' > > Build failed > > -> task in 'ns3module_lte' failed (exit status 4): > > {task 47737680: 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', '-fstack-protector', '-fno-strict-aliasing', '-fvisibility=hidden', '-Wno-array-bounds', '-pthread', '-pthread', '-fno-strict-aliasing', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-I.', '-I..', '-Isrc/lte/bindings', '-I../src/lte/bindings', '-I/usr/include/python2.7', '-I/usr/include/gtk-2.0', '-I/usr/lib/x86_64-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/x86_64-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_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_DL=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DNS_DEPRECATED=', '-DNS3_DEPRECATED_H', '-DNDEBUG', '-DNDEBUG', 'src/lte/bindings/ns3module.cc', '-c', '-o', 'src/lte/bindings/ns3module.cc.7.o'] > > > > > > -- > > Menghan Li > > Ph.D. Candidate, > > Department of Computer Science and Technology, > > Tsinghua University, Beijing, China. > > _______________________________________________ > > ndnSIM mailing list > > ndnSIM at lists.cs.ucla.edu > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > > -- > ????Menghan Li? > Ph.D. Candidate, > Department of Computer Science and Technology, > Tsinghua University, Beijing, China. > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From htunhtunu at gmail.com Wed Jul 17 08:07:49 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Thu, 18 Jul 2013 00:07:49 +0900 Subject: [ndnSIM] ConsumerWindow and Congestion Message-ID: Dear Alex I did an experiment using the 8-node bottleneck scenario with ConsumerWindows application. As topology, I arranged as similar to the 6-node bottleneck scenario. C1\ /P1 \ / /-------R1---------R2---------R3-------R4 \ / \ C2 P2 All the access link are 10 Mbps/10 ms and all routers are 1 Mpbs/10 ms. I set the Size Attribute of ConsumerWindow as 2 Mbyte and other setting as default. I found the some strange behaviors from graph-output First 3 sec simulation two consumers are working as usual. Next 20 sec only one consumer (c1)can send and receive. After 20 sec two consumers can send and receive. >From 23 sec to end of simulation (40 sec) only one consumer (c2) is sending and receiving. I would like to know your advice of what is wrong in this experiment? Thanks in advance. Regards TUN -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Jul 18 08:34:53 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 18 Jul 2013 08:34:53 -0700 Subject: [ndnSIM] ConsumerWindow and Congestion In-Reply-To: References: Message-ID: <46F071A0-EBBA-4B68-83C8-D66FA0B29035@ucla.edu> Hi Tun, The behavior you're observing is probably not wrong, it just that ConsumerWindow is not equal to TCP. ConsumerWindow has very simplistic congestion-related logic implemented, so it causes such an oscillations and weirdnesses. You may want to consider implementing a more aggressive and more TCP-like consumer, or you can also enable NACKs (EnableNACKs parameter for the forwarding strategy), which may improve (but probably not going to completely solve) your problem. --- Alex On Jul 17, 2013, at 8:07 AM, Tun Tun Oo wrote: > Dear Alex > > I did an experiment using the 8-node bottleneck scenario with ConsumerWindows application. As topology, I arranged as similar to the 6-node bottleneck scenario. > C1\ /P1 > \ / > /-------R1---------R2---------R3-------R4 \ > / \ > C2 P2 > > All the access link are 10 Mbps/10 ms and all routers are 1 Mpbs/10 ms. > I set the Size Attribute of ConsumerWindow as 2 Mbyte and other setting as default. > I found the some strange behaviors from graph-output > First 3 sec simulation two consumers are working as usual. > Next 20 sec only one consumer (c1)can send and receive. > After 20 sec two consumers can send and receive. > From 23 sec to end of simulation (40 sec) only one consumer (c2) is sending and receiving. > > I would like to know your advice of what is wrong in this experiment? > Thanks in advance. > > Regards > > TUN > > > > > > > _______________________________________________ > 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 Fri Jul 19 07:23:41 2013 From: saeid.montazeri at gmail.com (Saeid Montazeri) Date: Fri, 19 Jul 2013 22:23:41 +0800 Subject: [ndnSIM] CcnxGlobalRouting Message-ID: All dears, My question is about CcnxGlobalRouting. Does it calculate the routes based on shortest path? Regarding CalculateRoutes function, it is also mentioned that "Implementation of route calculation is heavily based on Boost Graph Library". What kind of dependency is implied? Best Regards, Saeid -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Fri Jul 19 07:29:01 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Fri, 19 Jul 2013 07:29:01 -0700 Subject: [ndnSIM] CcnxGlobalRouting In-Reply-To: References: Message-ID: <4BE6ECA1-7F58-443B-A00B-9C1659E17922@ucla.edu> Hi Saeid, ndn::GlobalRouting uses Dijkstra algorithm for shortest (in terms of configured metric) route calculation. What I meant by boost library dependency is that instead of reimplementing Dijkstra from scratch, ndn::GlobalRouting uses boost's implementation of the algorithm. Btw. Currently, there are two versions of route calculations in ndn::GlobalRouting. One version (CalculateRoutes) calculate just one shortest route (to each globally registered prefix), and another version calculate "neighbor-independent" set routes (i.e., if destination can be reached through the face if the face was the only one working, this face will be added to FIB). --- Alex On Jul 19, 2013, at 7:23 AM, Saeid Montazeri wrote: > All dears, > > My question is about CcnxGlobalRouting. Does it calculate the routes based on shortest path? > Regarding CalculateRoutes function, it is also mentioned that "Implementation of route calculation is heavily based on Boost Graph Library". What kind of dependency is implied? > > Best Regards, > Saeid From blindeafer at 163.com Sun Jul 21 02:19:11 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Sun, 21 Jul 2013 17:19:11 +0800 (CST) Subject: [ndnSIM] Cache according to hopcount Message-ID: <3a1c1cdb.21f1.140008686b1.Coremail.blindeafer@163.com> Hi All, I would like to implement a hopcount-based cache policy,it is that each node will cache a content with a particular hopcount number,such as 3.Before a content is going to be sent,the hopcount of a content will be set to be 0 if it is cached, If I would modify the OnData() function?How can I implement the policy? Thank you Beat regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jul 21 10:39:24 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 21 Jul 2013 10:39:24 -0700 Subject: [ndnSIM] Cache according to hopcount In-Reply-To: <3a1c1cdb.21f1.140008686b1.Coremail.blindeafer@163.com> References: <3a1c1cdb.21f1.140008686b1.Coremail.blindeafer@163.com> Message-ID: Hi! ndnSIM tracks the hop count in complimentary packet tag structure FwHopCountTag. To create a policy, you will need to create a new "policy" header file (e.g., similar to lru-policy) and in insert method put something like this: ... inline bool insert (typename parent_trie::iterator item) { Ptr pkt = item->payload ()->GetPacket (); FwHopCountTag tag; pkt->PeekPacketTag (tag); if (tag.Get () == 3) { policy_container::push_back (*item); return true; } else { return false; } } ... --- Alex On Jul 21, 2013, at 2:19 AM, ??? wrote: > Hi All, > I would like to implement a hopcount-based cache policy,it is that each node will cache a content with a particular hopcount number,such as 3.Before a content is going to be sent,the hopcount of a content will be set to be 0 if it is cached, > If I would modify the OnData() function?How can I implement the policy? > Thank you > > Beat 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: From htunhtunu at gmail.com Sun Jul 21 20:57:49 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Mon, 22 Jul 2013 12:57:49 +0900 Subject: [ndnSIM] ndnSIM Digest, Vol 8, Issue 17 In-Reply-To: References: Message-ID: Dear Alex, Thanks a lot for your contribution. As you mention, by using the enable NACKs the result is improved. We have to do some tuning of consumerWindows app for better result as TCP. In this sense, some sample model such as limit-window, rtt-estimator, rtt-deviation, etc are required to improve. This just my thinking about it and I am not quite sure. Could you advice me what I am missing or mis-understanding. Thanks again. Rgds TUN On Mon, Jul 22, 2013 at 2:39 AM, wrote: > 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. ConsumerWindow and Congestion (Tun Tun Oo) > 2. Re: ConsumerWindow and Congestion (Alex Afanasyev) > 3. CcnxGlobalRouting (Saeid Montazeri) > 4. Re: CcnxGlobalRouting (Alex Afanasyev) > 5. Cache according to hopcount (???) > 6. Re: Cache according to hopcount (Alex Afanasyev) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 18 Jul 2013 00:07:49 +0900 > From: Tun Tun Oo > To: ndnsim at lists.cs.ucla.edu > Subject: [ndnSIM] ConsumerWindow and Congestion > Message-ID: > CQwmXYoXMwLhxv3oUuzOHeQg+i3Co2Whx8-g at mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > Dear Alex > > I did an experiment using the 8-node bottleneck scenario with > ConsumerWindows application. As topology, I arranged as similar to the > 6-node bottleneck scenario. > C1\ /P1 > \ / > /-------R1---------R2---------R3-------R4 \ > / \ > C2 P2 > > All the access link are 10 Mbps/10 ms and all routers are 1 Mpbs/10 ms. > I set the Size Attribute of ConsumerWindow as 2 Mbyte and other setting as > default. > I found the some strange behaviors from graph-output > First 3 sec simulation two consumers are working as usual. > Next 20 sec only one consumer (c1)can send and receive. > After 20 sec two consumers can send and receive. > >From 23 sec to end of simulation (40 sec) only one consumer (c2) is > sending > and receiving. > > I would like to know your advice of what is wrong in this experiment? > Thanks in advance. > > Regards > > TUN > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130718/1f2129b7/attachment-0001.html > > > > ------------------------------ > > Message: 2 > Date: Thu, 18 Jul 2013 08:34:53 -0700 > From: Alex Afanasyev > To: Tun Tun Oo > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] ConsumerWindow and Congestion > Message-ID: <46F071A0-EBBA-4B68-83C8-D66FA0B29035 at ucla.edu> > Content-Type: text/plain; charset="iso-8859-1" > > Hi Tun, > > The behavior you're observing is probably not wrong, it just that > ConsumerWindow is not equal to TCP. ConsumerWindow has very simplistic > congestion-related logic implemented, so it causes such an oscillations and > weirdnesses. You may want to consider implementing a more aggressive and > more TCP-like consumer, or you can also enable NACKs (EnableNACKs parameter > for the forwarding strategy), which may improve (but probably not going to > completely solve) your problem. > > --- > Alex > > On Jul 17, 2013, at 8:07 AM, Tun Tun Oo wrote: > > > Dear Alex > > > > I did an experiment using the 8-node bottleneck scenario with > ConsumerWindows application. As topology, I arranged as similar to the > 6-node bottleneck scenario. > > C1\ /P1 > > \ / > > /-------R1---------R2---------R3-------R4 \ > > / \ > > C2 P2 > > > > All the access link are 10 Mbps/10 ms and all routers are 1 Mpbs/10 ms. > > I set the Size Attribute of ConsumerWindow as 2 Mbyte and other setting > as default. > > I found the some strange behaviors from graph-output > > First 3 sec simulation two consumers are working as usual. > > Next 20 sec only one consumer (c1)can send and receive. > > After 20 sec two consumers can send and receive. > > From 23 sec to end of simulation (40 sec) only one consumer (c2) is > sending and receiving. > > > > I would like to know your advice of what is wrong in this experiment? > > Thanks in advance. > > > > Regards > > > > TUN > > > > > > > > > > > > > > _______________________________________________ > > ndnSIM mailing list > > ndnSIM at lists.cs.ucla.edu > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130718/d86f4e8a/attachment-0001.html > > > > ------------------------------ > > Message: 3 > Date: Fri, 19 Jul 2013 22:23:41 +0800 > From: Saeid Montazeri > To: ndnsim at lists.cs.ucla.edu > Subject: [ndnSIM] CcnxGlobalRouting > Message-ID: > JSHnAcvFg at mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > All dears, > > My question is about CcnxGlobalRouting. Does it calculate the routes based > on shortest path? > Regarding CalculateRoutes function, it is also mentioned that > "Implementation of route calculation is heavily based on Boost Graph > Library". What kind of dependency is implied? > > Best Regards, > Saeid > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130719/53a6c4a0/attachment-0001.html > > > > ------------------------------ > > Message: 4 > Date: Fri, 19 Jul 2013 07:29:01 -0700 > From: Alex Afanasyev > To: Saeid Montazeri > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] CcnxGlobalRouting > Message-ID: <4BE6ECA1-7F58-443B-A00B-9C1659E17922 at ucla.edu> > Content-Type: text/plain; charset=iso-8859-1 > > Hi Saeid, > > ndn::GlobalRouting uses Dijkstra algorithm for shortest (in terms of > configured metric) route calculation. What I meant by boost library > dependency is that instead of reimplementing Dijkstra from scratch, > ndn::GlobalRouting uses boost's implementation of the algorithm. > > Btw. Currently, there are two versions of route calculations in > ndn::GlobalRouting. One version (CalculateRoutes) calculate just one > shortest route (to each globally registered prefix), and another version > calculate "neighbor-independent" set routes (i.e., if destination can be > reached through the face if the face was the only one working, this face > will be added to FIB). > > --- > Alex > > On Jul 19, 2013, at 7:23 AM, Saeid Montazeri > wrote: > > > All dears, > > > > My question is about CcnxGlobalRouting. Does it calculate the routes > based on shortest path? > > Regarding CalculateRoutes function, it is also mentioned that > "Implementation of route calculation is heavily based on Boost Graph > Library". What kind of dependency is implied? > > > > Best Regards, > > Saeid > > > > ------------------------------ > > Message: 5 > Date: Sun, 21 Jul 2013 17:19:11 +0800 (CST) > From: ??? > To: ndnsim > Subject: [ndnSIM] Cache according to hopcount > Message-ID: <3a1c1cdb.21f1.140008686b1.Coremail.blindeafer at 163.com> > Content-Type: text/plain; charset="gbk" > > Hi All, > I would like to implement a hopcount-based cache policy,it is that each > node will cache a content with a particular hopcount number,such as > 3.Before a content is going to be sent,the hopcount of a content will be > set to be 0 if it is cached, > If I would modify the OnData() function?How can I implement the policy? > Thank you > > > Beat regards. > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130721/eb76b763/attachment-0001.html > > > > ------------------------------ > > Message: 6 > Date: Sun, 21 Jul 2013 10:39:24 -0700 > From: Alex Afanasyev > To: ??? > Cc: ndnsim > Subject: Re: [ndnSIM] Cache according to hopcount > Message-ID: > Content-Type: text/plain; charset="utf-8" > > Hi! > > ndnSIM tracks the hop count in complimentary packet tag structure > FwHopCountTag. To create a policy, you will need to create a new "policy" > header file (e.g., similar to lru-policy) and in insert method put > something like this: > > > ... > > inline bool > insert (typename parent_trie::iterator item) > { > Ptr pkt = item->payload ()->GetPacket (); > FwHopCountTag tag; > pkt->PeekPacketTag (tag); > > if (tag.Get () == 3) > { > policy_container::push_back (*item); > return true; > } > else > { > return false; > } > > } > > ... > > --- > Alex > > On Jul 21, 2013, at 2:19 AM, ??? wrote: > > > Hi All, > > I would like to implement a hopcount-based cache policy,it is that each > node will cache a content with a particular hopcount number,such as > 3.Before a content is going to be sent,the hopcount of a content will be > set to be 0 if it is cached, > > If I would modify the OnData() function?How can I implement the policy? > > Thank you > > > > Beat 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: < > http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20130721/f4d45cf7/attachment.html > > > > ------------------------------ > > 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 8, Issue 17 > ************************************* > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kele86838437 at gmail.com Tue Jul 23 00:58:11 2013 From: kele86838437 at gmail.com (chen dqing) Date: Tue, 23 Jul 2013 15:58:11 +0800 Subject: [ndnSIM] cache mechanism Message-ID: Dear all, I want to implement a cache mechanism like this. There are two nodes A<---->B. When B's content store is full,continuing to add, it will pop content object named 'b'. How can B push 'b' back to A(Assuming that A has enough space)? Anyone can give me a hint? Thanks My Regards Chendq -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jul 23 10:32:20 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 23 Jul 2013 10:32:20 -0700 Subject: [ndnSIM] ndnSIM Digest, Vol 8, Issue 17 In-Reply-To: References: Message-ID: Hi Tun, There is definitely a lot of things to be improved. Even without enabling NACKs, there could be an implementation of consumerWindow that replicates to some extent more aggressive versions of TCP, such as Cubic or Compound TCP. Enabling NACKs basically enables explicit notifications from the network about available resources and again, a lot of can be improved here. --- Alex On Jul 21, 2013, at 8:57 PM, Tun Tun Oo wrote: > Dear Alex, > > Thanks a lot for your contribution. > As you mention, by using the enable NACKs the result is improved. > We have to do some tuning of consumerWindows app for better result as TCP. > In this sense, some sample model such as limit-window, rtt-estimator, rtt-deviation, etc are required to improve. > This just my thinking about it and I am not quite sure. > Could you advice me what I am missing or mis-understanding. > Thanks again. > > Rgds > TUN > > Date: Thu, 18 Jul 2013 08:34:53 -0700 > From: Alex Afanasyev > To: Tun Tun Oo > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] ConsumerWindow and Congestion > Message-ID: <46F071A0-EBBA-4B68-83C8-D66FA0B29035 at ucla.edu> > Content-Type: text/plain; charset="iso-8859-1" > > Hi Tun, > > The behavior you're observing is probably not wrong, it just that ConsumerWindow is not equal to TCP. ConsumerWindow has very simplistic congestion-related logic implemented, so it causes such an oscillations and weirdnesses. You may want to consider implementing a more aggressive and more TCP-like consumer, or you can also enable NACKs (EnableNACKs parameter for the forwarding strategy), which may improve (but probably not going to completely solve) your problem. > > --- > Alex > > On Jul 17, 2013, at 8:07 AM, Tun Tun Oo wrote: > > > Dear Alex > > > > I did an experiment using the 8-node bottleneck scenario with ConsumerWindows application. As topology, I arranged as similar to the 6-node bottleneck scenario. > > C1\ /P1 > > \ / > > /-------R1---------R2---------R3-------R4 \ > > / \ > > C2 P2 > > > > All the access link are 10 Mbps/10 ms and all routers are 1 Mpbs/10 ms. > > I set the Size Attribute of ConsumerWindow as 2 Mbyte and other setting as default. > > I found the some strange behaviors from graph-output > > First 3 sec simulation two consumers are working as usual. > > Next 20 sec only one consumer (c1)can send and receive. > > After 20 sec two consumers can send and receive. > > From 23 sec to end of simulation (40 sec) only one consumer (c2) is sending and receiving. > > > > I would like to know your advice of what is wrong in this experiment? > > Thanks in advance. > > > > Regards > > > > TUN -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Jul 23 10:36:38 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 23 Jul 2013 10:36:38 -0700 Subject: [ndnSIM] cache mechanism In-Reply-To: References: Message-ID: <2BD512B9-1FC5-4A08-81D8-484B780DD1FE@ucla.edu> Hi Chen, In the current implementations, when Data packet is cached, it loses all memory on where this Data packet came from. So, you may need to do some extensions to retain such memory. After this part is done, the rest could be relatively easy: you need to create a policy, similar to utils/trie/lru-policy.h that implements the right logic in "insert" method. --- Alex On Jul 23, 2013, at 12:58 AM, chen dqing wrote: > Dear all, > I want to implement a cache mechanism like this. > There are two nodes A<---->B. > When B's content store is full,continuing to add, it will pop content object named 'b'. > How can B push 'b' back to A(Assuming that A has enough space)? Anyone can give me a hint? > > Thanks > > My Regards > Chendq > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From gniliamg at gmail.com Sun Jul 28 04:52:40 2013 From: gniliamg at gmail.com (Prasertsak U.) Date: Sun, 28 Jul 2013 18:52:40 +0700 Subject: [ndnSIM] How to get nonce value from the reply object? Message-ID: Dear All, I'm trying to use nonce value from the reply step to map something in the buffer. Unfortunately, I'm not found the way to get nonce value from the reply object in the method "*OnContentObject".* Anybody knows the way or some hints for mapping between request packet and the reply packet. (I mean any headers or fields like a nonce of Interest packet) *Overview Diagram for mapping:* (1) Create Interest Packet -----> (2) Keep sender nonce value -----> (3) waiting for reply (4) Receive Reply content -----> (*5)* Get nonce value from reply objects*------> (6) mapping with the buffer in step-2 ----> etc. Thank you. Regards, Prasertsak U. Computing Department, Silpakorn University, Thailand. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gniliamg at gmail.com Sun Jul 28 07:01:31 2013 From: gniliamg at gmail.com (Prasertsak U.) Date: Sun, 28 Jul 2013 21:01:31 +0700 Subject: [ndnSIM] How to get nonce value from the reply object? In-Reply-To: References: Message-ID: For now, I solve my problem already, which workaround by signature field of ContentObject. // @Provider App. void OnInterest(...) { ndn::ContentObjectHeader data; ... data.SetSignature(interest->GetNonce()); ... } // @Consumer App. void OnContentObject (...) { ... uint32_t reply_nonce = contentObject->GetSignature(); ... } Regards, Prasertsak U. On Sun, Jul 28, 2013 at 6:52 PM, Prasertsak U. wrote: > Dear All, > > I'm trying to use nonce value from the reply step to map something in the > buffer. > Unfortunately, I'm not found the way to get nonce value from the reply > object in the method "*OnContentObject".* Anybody knows the way or some > hints for mapping between request packet and the reply packet. (I mean any > headers or fields like a nonce of Interest packet) > > *Overview Diagram for mapping:* > (1) Create Interest Packet -----> (2) Keep sender nonce value -----> (3) > waiting for reply > (4) Receive Reply content -----> (*5)* Get nonce value from reply objects*------> > (6) mapping with the buffer in step-2 ----> etc. > > > Thank you. > > Regards, > Prasertsak U. > > Computing Department, Silpakorn University, Thailand. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Jul 28 15:40:22 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 28 Jul 2013 15:40:22 -0700 Subject: [ndnSIM] How to get nonce value from the reply object? In-Reply-To: References: Message-ID: Hi! With Data packet you can really put anything inside as part of the content. There are many ways to do that, but in NS-3 the preferred method is to use a custom header. It can be something like this: class NonceHeader : public Header { public: static TypeId GetTypeId (void) { static TypeId tid = TypeId ("ns3::NonceHeader") .SetParent
() ; return tid; } NonceHeader () : m_nonce (0) { } NonceHeader (uint32_t nonce) : m_nonce (nonce { } uint32_t GetNonce () const { return m_length; } virtual TypeId GetInstanceTypeId (void) const { return NonceHeader::GetTypeId (); } virtual void Print (std::ostream &os) const { os << m_nonce; } virtual uint32_t GetSerializedSize (void) const { return 4; } virtual void Serialize (Buffer::Iterator start) const { start.WriteU32 (m_nonce); } virtual uint32_t Deserialize (Buffer::Iterator start) { m_nonce = start.ReadU32 (); return 4; } private: uint32_t m_nonce; }; ... // in producer void OnInterest (Ptr interest) { Ptr content = Create (m_virtualPayloadSize); // or just Ptr content = Create (); if you don't need data packet to carry virtual payload NonceHeader hdr (intereset->GetNonce ()); content->AddHeader (hdr); Ptr data = Create (content); // the rest is standard from apps/ndn-producer.cc } // in consumer void OnContentObject (Ptr data) { NonceHeader hdr; data->GetPayload ()->PeekHeader (hdr); uint32_t echoedNonce = hdr->GetNonce (); // use it somehow } --- Alex PS My example uses API from version 0.5 of ndnSIM, which is a little bit different from the "old" one. On Jul 28, 2013, at 7:01 AM, Prasertsak U. wrote: > For now, I solve my problem already, which workaround by signature field of ContentObject. > > // @Provider App. > void OnInterest(...) > { > ndn::ContentObjectHeader data; > ... > data.SetSignature(interest->GetNonce()); > ... > } > > // @Consumer App. > void OnContentObject (...) > { > ... > uint32_t reply_nonce = contentObject->GetSignature(); > ... > } > > Regards, > Prasertsak U. > > > On Sun, Jul 28, 2013 at 6:52 PM, Prasertsak U. wrote: > Dear All, > > I'm trying to use nonce value from the reply step to map something in the buffer. > Unfortunately, I'm not found the way to get nonce value from the reply object in the method "OnContentObject". Anybody knows the way or some hints for mapping between request packet and the reply packet. (I mean any headers or fields like a nonce of Interest packet) > > Overview Diagram for mapping: > (1) Create Interest Packet -----> (2) Keep sender nonce value -----> (3) waiting for reply > (4) Receive Reply content -----> (*5) Get nonce value from reply objects ------> > (6) mapping with the buffer in step-2 ----> etc. > > > Thank you. > > Regards, > Prasertsak U. > > Computing Department, Silpakorn University, Thailand. > > > _______________________________________________ > 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 Jul 28 15:54:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 28 Jul 2013 15:54:48 -0700 Subject: [ndnSIM] Announcing release candidate 1 for ndnSIM version 0.5 Message-ID: Hi guys, We are proud to announce a release candidate 1 for ndnSIM version 0.5, which includes a number of changes, not all of them are (will be) backward compatible with previous releases. The code has been merged to the master branch, but if you prefer using the old version, please use tag v0.4.3 (e.g., git checkout -b old-version v0.4.3). Highlights of what is new/changed since the previous release: - Advanced application API * now it is possible to write full featured applications * possibility to write simulation scenarios as well as simulated applications in python - Redesigned/simplified/unified API for Interest and Data packets, Forwarding strategy * not fully backward compatible, but simple to adapt (There could be more changes coming regarding refactoring in the final release of version 0.5) - Exclude filter support * other interest selectors may be coming, if requested (let us know) - Support for overlay-based simulations * using ndn::TcpFace and ndn::UdpFace (in ip-faces plugin, enabled by default) - Support for multiple wire format selectable at runtime * optimized and simplified ndnSIM format (default format) * full-featured (but not too optimal) CCNb format To switch to CCNb, set ndn::WireFormat global variable, e.g.: Config::SetGlobal ("ndn::WireFormat", IntegerValue (ndn::Wire::WIRE_FORMAT_CCNB) * other experimental formats may be added later As always, comments, suggestion, code contributions, feature requests, and issues in ndnSIM issue tracker (http://redmine.named-data.net/projects/ndnsim) are always welcome and highly appreciated! Sincerely, ndnSIM team From alexander.afanasyev at ucla.edu Sun Jul 28 16:00:39 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 28 Jul 2013 16:00:39 -0700 Subject: [ndnSIM] Distributed cache in ndnSIM In-Reply-To: <51F3ED51.2030909@gmail.com> References: <51F3ED51.2030909@gmail.com> Message-ID: Hi Michael, Did you take a look to the current implementation of content store policies (utils/trie/lru-policy.h, utils/trie/lfu-policy.h, model/cs/custom-policies/freshness-policy.h)? While some policies are cache replacement (LRU, LFU, ...), they can be used as cache "placement" policies as well. If the mapping function can be applied individually on each node, then the implementation could be very straightforward. If explicit collaboration is needed, it also can be implemented, but is more complicated. --- Alex On Jul 27, 2013, at 8:54 AM, Michael K. wrote: > Hi, > > I am currently experimenting with ndnSIM. I would like to implement (and evaluate) a distributed cache in NDN, that is: > m nodes (caches) form a (collaborative) domain > a hash function maps content onto exactly one node (responsible for caching) > Unfortunately, I am not sure whether this is easily realizable in ndnSIM. Therefore, I would appreciate it to hear your suggestions of where and how to start. > Thanks and best regards, > > Michael -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- 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 blindeafer at 163.com Sun Jul 28 20:53:11 2013 From: blindeafer at 163.com (=?GBK?B?s8LKpMC2?=) Date: Mon, 29 Jul 2013 11:53:11 +0800 (CST) Subject: [ndnSIM] some questions Message-ID: <56bb6694.858d.140288ef2d1.Coremail.blindeafer@163.com> Hi All, I just know the payload in CS is a valid entry and learn the entry from some documents,it contains the content name and the content.There are some questions puzzled me these days. 1.What is the relationship between payload and entry? 2.whether the entry containes the name of content in ndnSIM? 3.If the second is true,whether the name of an entry in CS or the other two structures is the name of the node or the full name of content like some documents present? 4.Whether all the ptr packets in ndnSIM are the same format like the http://ndnsim.net/ndnsim-packet-formats.html? 5.I read the ContentStoreIMpl::lookup(),what is the formats of FullyFormedNdnPacket,Header and Packet form the three methods (node->payload ()->GetFullyFormedNdnPacket (),node->payload ()->GetHeader (),node->payload ()->GetPacket ())? Thank you Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gniliamg at gmail.com Mon Jul 29 05:51:42 2013 From: gniliamg at gmail.com (Prasertsak U.) Date: Mon, 29 Jul 2013 19:51:42 +0700 Subject: [ndnSIM] How to get nonce value from the reply object? In-Reply-To: References: Message-ID: Dear Alex, Thank you very much about your guide. Regards, Prasertsak U. On Mon, Jul 29, 2013 at 5:40 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi! > > With Data packet you can really put anything inside as part of the > content. There are many ways to do that, but in NS-3 the preferred method > is to use a custom header. It can be something like this: > > class NonceHeader : public Header{public: > static TypeId GetTypeId (void) > { > static TypeId tid = TypeId ("ns3::NonceHeader") > .SetParent
() > ; > return tid; > } > > NonceHeader () > : m_nonce (0) > { > } > > NonceHeader (uint32_t nonce) > : m_nonce (nonce > { > } > > uint32_t > GetNonce () const > { > return m_length; > } > > virtual TypeId > GetInstanceTypeId (void) const > { > return NonceHeader::GetTypeId (); > } > > virtual void > Print (std::ostream &os) const > { > os << m_nonce; > } > > virtual uint32_t > GetSerializedSize (void) const > { > return 4; > } > > virtual void > Serialize (Buffer::Iterator start) const > { > start.WriteU32 (m_nonce); > } > > virtual uint32_t > Deserialize (Buffer::Iterator start) > { > m_nonce = start.ReadU32 (); > return 4; > } > private: > uint32_t m_nonce;}; > ... > // in producervoidOnInterest (Ptr interest){ > Ptr content = Create (m_virtualPayloadSize); > // or just Ptr content = Create (); if you don't need data packet to carry virtual payload > NonceHeader hdr (intereset->GetNonce ()); > content->AddHeader (hdr); > > Ptr data = Create (content); > > // the rest is standard from apps/ndn-producer.cc} > // in consumervoidOnContentObject (Ptr data){ > NonceHeader hdr; > data->GetPayload ()->PeekHeader (hdr); > > uint32_t echoedNonce = hdr->GetNonce (); > // use it somehow} > > --- > Alex > > PS > My example uses API from version 0.5 of ndnSIM, which is a little bit > different from the "old" one. > > On Jul 28, 2013, at 7:01 AM, Prasertsak U. wrote: > > For now, I solve my problem already, which workaround by signature field > of ContentObject. > > // @Provider App. > void OnInterest(...) > { > ndn::ContentObjectHeader data; > ... > data.SetSignature(interest->GetNonce()); > ... > } > > // @Consumer App. > void OnContentObject (...) > { > ... > uint32_t reply_nonce = contentObject->GetSignature(); > ... > } > > Regards, > Prasertsak U. > > > On Sun, Jul 28, 2013 at 6:52 PM, Prasertsak U. wrote: > >> Dear All, >> >> I'm trying to use nonce value from the reply step to map something in the >> buffer. >> Unfortunately, I'm not found the way to get nonce value from the reply >> object in the method "*OnContentObject".* Anybody knows the way or some >> hints for mapping between request packet and the reply packet. (I mean any >> headers or fields like a nonce of Interest packet) >> >> *Overview Diagram for mapping:* >> (1) Create Interest Packet -----> (2) Keep sender nonce value -----> (3) >> waiting for reply >> (4) Receive Reply content -----> (*5)* Get nonce value from reply objects >> * ------> >> (6) mapping with the buffer in step-2 ----> etc. >> >> >> Thank you. >> >> Regards, >> Prasertsak U. >> >> Computing Department, Silpakorn University, Thailand. >> >> > _______________________________________________ > 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 Jul 29 19:34:22 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 29 Jul 2013 19:34:22 -0700 Subject: [ndnSIM] some questions In-Reply-To: <56bb6694.858d.140288ef2d1.Coremail.blindeafer@163.com> References: <56bb6694.858d.140288ef2d1.Coremail.blindeafer@163.com> Message-ID: <9671DB2C-AE7D-408D-A091-95E6CDC6082E@ucla.edu> Hi! 1. CS is using a generalized data structure (trie: utils/trie/trie-with-policy.h), so that's why there is a word "payload", and not something specific. In the context of content store, payload is the content store entry. 2. CS store entry contains data packet, which contains name 4. Ptr is a general abstraction of a packet in NS-3 in general. ndnSIM uses Interest and Data packets, which in version before 0.5 are actually so called "headers" that are added to Ptr, and since 0.5 they are wrappers on top of Ptr (which internally use "header" to add to packet). By default, ndnSIM uses packet formats defined in the document that you linked. In version 0.5 it is also possible to use other format (currently, the only other format is CCNx's ccnb) 5. I would recommend to check out version 0.5, since it got a little bit more straightforward, especially in this case. CS stores Ptr object, which internally has reference to it's payload (Ptr) and wire format (also Ptr). Hope my answers didn't confuse you too much :) --- Alex On Jul 28, 2013, at 8:53 PM, ??? wrote: > Hi All, > I just know the payload in CS is a valid entry and learn the entry from some documents,it contains the content name and the content.There are some questions puzzled me these days. > 1.What is the relationship between payload and entry? > 2.whether the entry containes the name of content in ndnSIM? > 3.If the second is true,whether the name of an entry in CS or the other two structures is the name of the node or the full name of content like some documents present? > 4.Whether all the ptr packets in ndnSIM are the same format like the http://ndnsim.net/ndnsim-packet-formats.html?&n bsp; > 5.I read the ContentStoreIMpl::lookup(),what is the formats of FullyFormedNdnPacket,Header and Packet form the three methods (node->payload ()->GetFullyFormedNdnPacket (),node->payload ()->GetHeader (),node->payload ()->GetPacket ())? > > Thank you > > Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: