From dalbertmm at yahoo.com.br Sun Dec 1 06:00:15 2013 From: dalbertmm at yahoo.com.br (Dalbert M) Date: Sun, 1 Dec 2013 06:00:15 -0800 (PST) Subject: [ndnSIM] About entries of m_queue??? Message-ID: <1385906415.50191.YahooMailNeo@web161901.mail.bf1.yahoo.com> Hiho, How should be the best way to print de entries of : ItemQueue m_queue;? ??? Knowing that the definition of ItemQueue is : typedef std::list ItemQueue; Best Regards Dalbert -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Dec 1 11:55:09 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 11:55:09 -0800 Subject: [ndnSIM] Routes not respected In-Reply-To: References: Message-ID: <93447912-425F-4862-8B2A-3BF3F9B711A4@ucla.edu> Hi Fabrizio, You may want to disable default routes (either delete the line with SetDefaultRoutes, or set parameter to false). The reason for "diverting" is that SetDefaultRoutes cause several alternative "routes" to the destination, some of which are probably wrong. And the forwardingStrategy, given the alternatives may try to send interests towards non-best-route-face. --- Alex On Nov 27, 2013, at 11:42 AM, fabrizio saponaro wrote: > Hi Alex, > > How is it possible that if I set a route of a simple node, for example in this way: > ndn::StackHelper::AddRoute (router3, "/", router2, 2); > > happens that sometimes some packet go toward others destinations (in dependence of the capacity of the links and the size of PITs) not include in the node's Fib? > > Other useful informations could be the configuration of the nodes: > ndn::StackHelper ccnxHelper; > ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute"); > ccnxHelper.SetPit ("ns3::ndn::pit::Random", "MaxSize", "100"); > ccnxHelper.SetContentStore ("ns3::ndn::cs::Lru", "MaxSize", "1"); > ccnxHelper.SetDefaultRoutes (true); > ccnxHelper.InstallAll(); > > > Best regards, > Fabrizio > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Dec 1 12:02:32 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:02:32 -0800 Subject: [ndnSIM] About entries of m_queue??? In-Reply-To: <1385906415.50191.YahooMailNeo@web161901.mail.bf1.yahoo.com> References: <1385906415.50191.YahooMailNeo@web161901.mail.bf1.yahoo.com> Message-ID: <30D63D0D-0334-4B28-9D5E-84400EB14D39@ucla.edu> Hi Dalbert, I'm guessing your question is about https://github.com/cawka/ndnSIM-nom-rapid-car2car scenario. As you copied here, ItemQueue is just a typedef of the STL's list container, so the standard iterator-based loop will give you access to all entries, which you can print: for (ItemQueue::iterator it = m_queue.begin(); it != m_queue.end(); it++) { std::cout << *(it->m_name) << std::endl; } --- Alex On Dec 1, 2013, at 6:00 AM, Dalbert M wrote: > Hiho, > > How should be the best way to print de entries of : > > ItemQueue m_queue; ??? > > > Knowing that the definition of ItemQueue is : > > typedef std::list ItemQueue; > > > Best Regards > > Dalbert > _______________________________________________ > 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 Dec 1 12:08:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:08:07 -0800 Subject: [ndnSIM] (no subject) In-Reply-To: References: Message-ID: Thanks Chen! Just want to add that currently, to "add" a component to a name, you basically need to construct a new name, appending parts from the old name. In Isuru's example it would be something like this: Ptr newName = Create(); newName->append(oldname.GetPrefix(1)); newName->append("video"); newName->append(oldname.GetPostfix(1)); --- Alex On Nov 30, 2013, at 9:38 PM, chen dqing wrote: > Hi Isuru, > http://ndnsim.net/applications.html#producer-example-interest-hijacker > > There is an example to hijacker incoming Interests.You can write your own procedure that insert string into the name of Interests in Hijacker::OnIntrest method. > > Chen > > > 2013/11/30 > Hi, > > Is there a way to insert string in between a one of the current name, in the application. > > eg. > First name: prefix/hello > > "video" should be added in between "prefix" and "hello" so that the > > new name: prefix/video/hello > > Many thanks, > Isuru > > _______________________________________________ > 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 Dec 1 12:12:26 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:12:26 -0800 Subject: [ndnSIM] How to put some information to an Interest? In-Reply-To: References: Message-ID: <592E600B-9A5E-45EF-A182-78F9DFE8DB00@ucla.edu> Hi Dex, The only reason for the Set/GetPayload in Interest is to provide a mechanism to set so called PacketTags (these tags can be associated only with Packet class). These PacketTags, I think, should help you in your case. What you need is to create a class, similar to https://github.com/NDN-Routing/ndnSIM/blob/master/utils/ndn-fw-hop-count-tag.h and then Add this tag to the Interest's "payload" before sending out and Remove (=read) the tag after receiving. --- Alex On Nov 27, 2013, at 6:25 AM, ?? wrote: > Hi, Alex > > I want to put some parameters into an Interest for the purpose that a downlink node may convey some control information that designed by myself to a uplink node. Then I found that Interest class has a function named SetPayload(). Could I use SetPayload()? Should I design a new application? Could you please present a simple example file? > > > ---------- > Dex -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Dec 1 12:26:20 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:26:20 -0800 Subject: [ndnSIM] ndnSIM: hijacker doesn't work and empty PIT In-Reply-To: References: Message-ID: <62C7FA7A-6BC5-4A6D-8BAE-18D2E9455E67@ucla.edu> Hi Fabrizio, Have you solved your problem yet? In the scenario you have attached I cannot see how did you use the global routing controller, which may be the reason of a strange behavior. Hijacker app would work only if it can attract Interests for specific prefix. That is, the longest prefix match should be the hijacked prefix. --- Alex On Nov 24, 2013, at 1:42 PM, fabrizio saponaro wrote: > I'm working on a simple tree topology. I want that one specific node (a router) works like an hijacker, so I tried to set this node to Hijacker but this node works like a normal node and forward everything to the correct destination. > > Furthermore I can't fill the PITs of every node of the topology, if I try to simulate the application, every PIT is empty, but with the visualizer I can see that every packet pass toward every node. > > This is my code: > > // Install CCNx stack on all nodes > ndn::StackHelper ccnxHelper; > ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute"); > ccnxHelper.SetPit ("ns3::ndn::pit::SerializedSize", "MaxSize", "100"); > ccnxHelper.SetContentStore ("ns3::ndn::cs::Lru", "MaxSize", "1"); // Content Store OFF > ccnxHelper.InstallAll (); > > // Installing global routing interface on all nodes > ndn::GlobalRoutingHelper ccnxGlobalRoutingHelper; > ccnxGlobalRoutingHelper.InstallAll (); > > // Getting containers for the consumer/producer > Ptr consumer1 = Names::Find ("leaf-1"); > Ptr consumer2 = Names::Find ("leaf-2"); > Ptr consumer4 = Names::Find ("leaf-4"); > Ptr producer = Names::Find ("leaf-3"); > Ptr router3 = Names::Find ("rtr-3"); > Ptr router2 = Names::Find ("rtr-2"); > Ptr router1 = Names::Find ("rtr-1"); > > > //consumerswindow > ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow"); > consumerHelper.SetAttribute ("Window", UintegerValue (100)); > consumerHelper.SetAttribute ("Size", StringValue("0.1")); > consumerHelper.SetPrefix ("/rtr-3/leaf-3"); > consumerHelper.Install (consumer1); > consumerHelper.SetPrefix ("/rtr-3/leaf-3"); > consumerHelper.Install (consumer2); > > //hijaker router1 > ndn::AppHelper hijackerHelper ("Hijacker"); > hijackerHelper.Install (router1); > > //attacker consumercbr > ndn::AppHelper consumerHelper_attack ("ns3::ndn::ConsumerCbr"); > consumerHelper_attack.SetAttribute ("Frequency", StringValue ("1")); > consumerHelper_attack.SetPrefix ("/rtr-3/leaf-3"); > consumerHelper_attack.Install (consumer4); > > > //producer leaf-3 > ndn::AppHelper producerHelper ("ns3::ndn::Producer"); > producerHelper.SetAttribute ("PayloadSize", StringValue("1024")); > > ccnxGlobalRoutingHelper.AddOrigins ("/rtr-3", producer); > producerHelper.SetPrefix ("/rtr-3"); > producerHelper.Install (producer); > > // Calculate and install FIBs > ccnxGlobalRoutingHelper.CalculateRoutes (); > > Simulator::Schedule (Seconds (1.0), printPitStats, router1); //print statistics about PIT > Simulator::Stop (Seconds (5.0)); > Simulator::Run (); > Simulator::Destroy (); > Where am I wrong? > > > > _______________________________________________ > 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 Dec 1 12:46:52 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:46:52 -0800 Subject: [ndnSIM] Tracing RTT values of PIT entries In-Reply-To: <5295E4AA.8080606@ac.upc.edu> References: <5295E4AA.8080606@ac.upc.edu> Message-ID: <1DD16C19-B3BF-4E1B-9CBB-190BA24930D5@ucla.edu> Hi Amin, >From what I can guess, other PIT entries are simply getting satisfied. The three that you're seeing is basically a "pipeline" based on bandwidth-delay-product in the system. --- Alex On Nov 27, 2013, at 4:25 AM, Amin Karami wrote: > Hi Alex, > I design a simple scenario as follows: > c1---> > c2---> R3 ----> R2 ----> p1 > c3---> > > c1,c2 and c3 are connected to R3. In the first 3 seconds, just c1 sends Interest packets. When I printed the RTT values of PIT entries in R3, I face with below output: > > 1 R3 PIT Size: 3 > ========= > /dst1/%00%01P > mean of RTT: 0.00966371, Variance of RTT: 0.000361557 > Prefix: /dst1/%00%01P > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 2647520711 > ========= > /dst1/%00%01R > mean of RTT: 0.00966371, Variance of RTT: 0.000361557 > Prefix: /dst1/%00%01R > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 3120749414 > ========= > /dst1/%00%01Q > mean of RTT: 0.00966371, Variance of RTT: 0.000361557 > Prefix: /dst1/%00%01Q > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 315221540 > > 2 R3 PIT Size: 3 > ========= > /dst1/%00%02%C6 > mean of RTT: 0.0100666, Variance of RTT: 0.000979842 > Prefix: /dst1/%00%02%C6 > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 2858765059 > ========= > /dst1/%00%02%C7 > mean of RTT: 0.0100666, Variance of RTT: 0.000979842 > Prefix: /dst1/%00%02%C7 > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 629247679 > ========= > /dst1/%00%02%C8 > mean of RTT: 0.0100666, Variance of RTT: 0.000979842 > Prefix: /dst1/%00%02%C8 > In: dev[10]=net(0,0-10) > Out: dev[10]=net(1,9-10) > Nonces: 2514818005 > > > The rate of sending Interests is 400 per second for c1. As you seen, in each second, just 3 entries accommodate in PIT for routing purpose in FIB. What is the problem? Where is other about 397 Interest packets? > > My implementation for printing RTT values are: > > void PeriodicStatsPrinter (Ptr node, Time next) > { > Ptr pit = node->GetObject (); > std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" > << Names::FindName (node) << "\t" > << "PIT Size: " << pit->GetSize () << "\t" > for (Ptr entry = pit->Begin (); entry != pit->End (); entry = pit->Next (entry)) > { > std::cout << "=========" << std::endl; > std::cout << entry->GetPrefix () << std::endl; > for (FaceMetricContainer::type::index::type::iterator metric = entry->GetFibEntry()->m_faces.get ().begin(); metric != entry->GetFibEntry()->m_faces.get ().end(); metric++) > { > std::cout << "mean of RTT: " << metric->GetSRtt ().ToDouble(Time::S) << ", Variance of RTT: " << metric->GetRttVar().ToDouble(Time::S) << "\n"; > } > std::cout << *entry << std::endl; > } > Simulator::Schedule (next, PeriodicStatsPrinter, node, next); > } > > > > Best Regards, > Amin > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Dec 1 12:53:50 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 12:53:50 -0800 Subject: [ndnSIM] Re: How to display the total value In-Reply-To: References: Message-ID: <6C08DA81-7815-4FFB-8B2E-1247A1537913@ucla.edu> Hi Yowaraj, I'm not very confident what exactly you're trying to sum up and why do you have multiple entries for the same sequence number for the same node.. But in any case. If you want to group data by second, you need to adjust time column as well. Something like: data$Time = floor(data$Time) Alternatively, I can suggest you to import data into sqlite3 database and do a simple select-based operation there. I may be faster (if you have a lot of data) and more straightforward. --- Alex On Nov 23, 2013, at 4:26 AM, Yowaraj Chhetri wrote: > Dear all, > I am new to R and ggplot2 to display data acquired from ndnSim, When I run the flowing code, it displays HopCount 4 and 2 at time 10sec respectively and 4 and 4 in time 11sec. But I want to have it display as 6 (sum of HopCount) in time 10sec and similarly sum of HopCount 8 for 11sec...and so on. How to do that, Please help me. > > app-delays-trace.txt > Time Node AppId SeqNo Type HopCount > 10.0057 leaf-1 1 0 LastDelay 4 > 10.0057 leaf-1 1 0 FullDelay 4 > 10.0066 leaf-1 1 1 LastDelay 2 > 10.0066 leaf-1 1 1 FullDelay 2 > 11.0029 leaf-2 2 0 LastDelay 2 > 11.0029 leaf-2 2 0 FullDelay 2 > 11.0057 leaf-1 1 0 LastDelay 4 > 11.0057 leaf-1 1 0 FullDelay 4 > 11.0057 leaf-1 1 0 LastDelay 4 > 11.0057 leaf-1 1 0 FullDelay 4 > > My original code is > > data = read.table ("app-delays-trace.txt", header=T) > data$Node = factor (data$Node) > data$AppId <- factor(data$AppId) > data$HopCount <- data$HopCount > data$Type = factor (data$Type) > > > # exlude irrelevant types > data = subset (data, Type %in% c("FullDelay")) > data = subset (data, Node %in% c("leaf-1")) > data = subset (data, AppId %in% c("1")) > > # combine stats from all faces > data.combined = summaryBy (. ~ Time + Node + AppId + Type, data=data, FUN=sum) > > g.root <- ggplot (data.combined) + > geom_point (aes (x=Time, y=HopCount.sum, color=Type), size=0.5) + > geom_line (aes (x=Time, y=HopCount.sum, color=Type), size=0.5) + > ylab ("Hop Count") > > print (g.root) > > png ("app-delay-1.png", width=500, height=250) > print (g.root) > dev.off () > > > With kind regards, > > Yowaraj Chhetri > Japan From amin at ac.upc.edu Sun Dec 1 13:03:54 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sun, 01 Dec 2013 22:03:54 +0100 Subject: [ndnSIM] Tracing RTT values of PIT entries In-Reply-To: <1DD16C19-B3BF-4E1B-9CBB-190BA24930D5@ucla.edu> References: <5295E4AA.8080606@ac.upc.edu> <1DD16C19-B3BF-4E1B-9CBB-190BA24930D5@ucla.edu> Message-ID: <529BA43A.9060208@ac.upc.edu> Hi Alex, It means that, we can not print all the RTT time for all satisfied PIT entries? /Amin On 12/01/2013 09:46 ?.?, Alex Afanasyev wrote: > Hi Amin, > > From what I can guess, other PIT entries are simply getting satisfied. The three that you're seeing is basically a "pipeline" based on bandwidth-delay-product in the system. > > --- > Alex > > On Nov 27, 2013, at 4:25 AM, Amin Karami wrote: > >> Hi Alex, >> I design a simple scenario as follows: >> c1---> >> c2---> R3 ----> R2 ----> p1 >> c3---> >> >> c1,c2 and c3 are connected to R3. In the first 3 seconds, just c1 sends Interest packets. When I printed the RTT values of PIT entries in R3, I face with below output: >> >> 1 R3 PIT Size: 3 >> ========= >> /dst1/%00%01P >> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >> Prefix: /dst1/%00%01P >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 2647520711 >> ========= >> /dst1/%00%01R >> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >> Prefix: /dst1/%00%01R >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 3120749414 >> ========= >> /dst1/%00%01Q >> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >> Prefix: /dst1/%00%01Q >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 315221540 >> >> 2 R3 PIT Size: 3 >> ========= >> /dst1/%00%02%C6 >> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >> Prefix: /dst1/%00%02%C6 >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 2858765059 >> ========= >> /dst1/%00%02%C7 >> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >> Prefix: /dst1/%00%02%C7 >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 629247679 >> ========= >> /dst1/%00%02%C8 >> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >> Prefix: /dst1/%00%02%C8 >> In: dev[10]=net(0,0-10) >> Out: dev[10]=net(1,9-10) >> Nonces: 2514818005 >> >> >> The rate of sending Interests is 400 per second for c1. As you seen, in each second, just 3 entries accommodate in PIT for routing purpose in FIB. What is the problem? Where is other about 397 Interest packets? >> >> My implementation for printing RTT values are: >> >> void PeriodicStatsPrinter (Ptr node, Time next) >> { >> Ptr pit = node->GetObject (); >> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >> << Names::FindName (node) << "\t" >> << "PIT Size: " << pit->GetSize () << "\t" >> for (Ptr entry = pit->Begin (); entry != pit->End (); entry = pit->Next (entry)) >> { >> std::cout << "=========" << std::endl; >> std::cout << entry->GetPrefix () << std::endl; >> for (FaceMetricContainer::type::index::type::iterator metric = entry->GetFibEntry()->m_faces.get ().begin(); metric != entry->GetFibEntry()->m_faces.get ().end(); metric++) >> { >> std::cout << "mean of RTT: " << metric->GetSRtt ().ToDouble(Time::S) << ", Variance of RTT: " << metric->GetRttVar().ToDouble(Time::S) << "\n"; >> } >> std::cout << *entry << std::endl; >> } >> Simulator::Schedule (next, PeriodicStatsPrinter, node, next); >> } >> >> >> >> Best Regards, >> Amin >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Dec 1 13:20:50 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 1 Dec 2013 13:20:50 -0800 Subject: [ndnSIM] Tracing RTT values of PIT entries In-Reply-To: <529BA43A.9060208@ac.upc.edu> References: <5295E4AA.8080606@ac.upc.edu> <1DD16C19-B3BF-4E1B-9CBB-190BA24930D5@ucla.edu> <529BA43A.9060208@ac.upc.edu> Message-ID: <44E1FCE2-E60C-4347-A541-EDD20F1BF3B2@ucla.edu> You can, but it cannot be done using a scheduled event. You need a more intrusive change in the simulator, ideally adding a new trace source that is fired every time new RTT update is received. --- Alex On Dec 1, 2013, at 1:03 PM, Amin Karami wrote: > Hi Alex, > It means that, we can not print all the RTT time for all satisfied PIT entries? > > /Amin > > On 12/01/2013 09:46 ?.?, Alex Afanasyev wrote: >> Hi Amin, >> >> From what I can guess, other PIT entries are simply getting satisfied. The three that you're seeing is basically a "pipeline" based on bandwidth-delay-product in the system. >> >> --- >> Alex >> >> On Nov 27, 2013, at 4:25 AM, Amin Karami wrote: >> >>> Hi Alex, >>> I design a simple scenario as follows: >>> c1---> >>> c2---> R3 ----> R2 ----> p1 >>> c3---> >>> >>> c1,c2 and c3 are connected to R3. In the first 3 seconds, just c1 sends Interest packets. When I printed the RTT values of PIT entries in R3, I face with below output: >>> >>> 1 R3 PIT Size: 3 >>> ========= >>> /dst1/%00%01P >>> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >>> Prefix: /dst1/%00%01P >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 2647520711 >>> ========= >>> /dst1/%00%01R >>> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >>> Prefix: /dst1/%00%01R >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 3120749414 >>> ========= >>> /dst1/%00%01Q >>> mean of RTT: 0.00966371, Variance of RTT: 0.000361557 >>> Prefix: /dst1/%00%01Q >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 315221540 >>> >>> 2 R3 PIT Size: 3 >>> ========= >>> /dst1/%00%02%C6 >>> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >>> Prefix: /dst1/%00%02%C6 >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 2858765059 >>> ========= >>> /dst1/%00%02%C7 >>> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >>> Prefix: /dst1/%00%02%C7 >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 629247679 >>> ========= >>> /dst1/%00%02%C8 >>> mean of RTT: 0.0100666, Variance of RTT: 0.000979842 >>> Prefix: /dst1/%00%02%C8 >>> In: dev[10]=net(0,0-10) >>> Out: dev[10]=net(1,9-10) >>> Nonces: 2514818005 >>> >>> >>> The rate of sending Interests is 400 per second for c1. As you seen, in each second, just 3 entries accommodate in PIT for routing purpose in FIB. What is the problem? Where is other about 397 Interest packets? >>> >>> My implementation for printing RTT values are: >>> >>> void PeriodicStatsPrinter (Ptr node, Time next) >>> { >>> Ptr pit = node->GetObject (); >>> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >>> << Names::FindName (node) << "\t" >>> << "PIT Size: " << pit->GetSize () << "\t" >>> for (Ptr entry = pit->Begin (); entry != pit->End (); entry = pit->Next (entry)) >>> { >>> std::cout << "=========" << std::endl; >>> std::cout << entry->GetPrefix () << std::endl; >>> for (FaceMetricContainer::type::index::type::iterator metric = entry->GetFibEntry()->m_faces.get ().begin(); metric != entry->GetFibEntry()->m_faces.get ().end(); metric++) >>> { >>> std::cout << "mean of RTT: " << metric->GetSRtt ().ToDouble(Time::S) << ", Variance of RTT: " << metric->GetRttVar().ToDouble(Time::S) << "\n"; >>> } >>> std::cout << *entry << std::endl; >>> } >>> Simulator::Schedule (next, PeriodicStatsPrinter, node, next); >>> } >>> >>> >>> >>> Best Regards, >>> Amin >>> >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From dalbertmm at yahoo.com.br Sun Dec 1 17:10:51 2013 From: dalbertmm at yahoo.com.br (Dalbert M) Date: Sun, 1 Dec 2013 17:10:51 -0800 (PST) Subject: [ndnSIM] About entries of m_queue??? In-Reply-To: <30D63D0D-0334-4B28-9D5E-84400EB14D39@ucla.edu> References: <1385906415.50191.YahooMailNeo@web161901.mail.bf1.yahoo.com> <30D63D0D-0334-4B28-9D5E-84400EB14D39@ucla.edu> Message-ID: <1385946651.59718.YahooMailNeo@web161905.mail.bf1.yahoo.com> Hi Alex, That was exactly what i needed. Thanks a lot. Dalbert Em Domingo, 1 de Dezembro de 2013 18:02, Alex Afanasyev escreveu: Hi Dalbert, I'm guessing your question is about?https://github.com/cawka/ndnSIM-nom-rapid-car2car?scenario. As you copied here, ItemQueue is just a typedef of the STL's list container, so the standard iterator-based loop will give you access to all entries, which you can print: for (ItemQueue::iterator it = m_queue.begin(); it != m_queue.end(); it++) { ? ? std::cout << *(it->m_name) << std::endl; } --- Alex On Dec 1, 2013, at 6:00 AM, Dalbert M wrote: Hiho, > >How should be the best way to print de entries of : > >ItemQueue m_queue;? ??? > > >Knowing that the definition of ItemQueue is : > >typedef std::list ItemQueue; > > >Best Regards > >Dalbert_______________________________________________ >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 fab.batta at gmail.com Mon Dec 2 08:52:28 2013 From: fab.batta at gmail.com (fabrizio saponaro) Date: Mon, 2 Dec 2013 17:52:28 +0100 Subject: [ndnSIM] PIT Usage Message-ID: Hi, I would to know the size of the PIT memory occupied, I saw the topic at this link ( http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-February/000070.html) and so now I'm using the SerializedSize policy, but I've a doubt. According to documentation the MaxSize parameter would be in bytes, but, why if I put a number as 10, 10000, or 0.001 my result it's always the same? In my network the only consumer is a ConsumerCbr with frequency at 10000 interest per second, I want to know the usage memory of the pit of the first router on the path of the Interest toward the producer and for now, if set different pit size and I try to print the pitstats for this router, my result is always: 1 5 rtr-2 10280 2.15462 5 rtr-2 20233 3.30924 5 rtr-2 20000 4.28132 5 rtr-2 20000 ... So, how is it possible that if the size pit is in bytes I got more of 20000 entries with a size of 10 bytes, and why I cannot get the amount of bytes occupied? Best regards, Fabrizio -------------- next part -------------- An HTML attachment was scrubbed... URL: From i.liyanage at surrey.ac.uk Mon Dec 2 10:35:30 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Mon, 2 Dec 2013 18:35:30 +0000 Subject: [ndnSIM] Exception boost::exception_detail::clone_impl Message-ID: <441fe5f0560a414e96d6c3e27d9d8f79@DB4PR06MB224.eurprd06.prod.outlook.com> Hi, Is there any particular reason to throw following exception. boost::exception_detail::clone_impl Many Thanks, Isuru -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Dec 2 12:10:35 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 2 Dec 2013 12:10:35 -0800 Subject: [ndnSIM] Exception boost::exception_detail::clone_impl In-Reply-To: <441fe5f0560a414e96d6c3e27d9d8f79@DB4PR06MB224.eurprd06.prod.outlook.com> References: <441fe5f0560a414e96d6c3e27d9d8f79@DB4PR06MB224.eurprd06.prod.outlook.com> Message-ID: <83DBFE07-B8EE-4AB1-A044-1626CC1D53E7@ucla.edu> Hi Isuru, Most likely you're trying to create a name from an invalid URI. You can get a more meaningful error if you catch boost::exception like this: #include "ns3/ndnSIM/ndn.cxx/detail/error.h" ... try { ndn::Name test("invalid-URI-name--no-initial-slash"); } catch (boost::exception &e) { if (const std::string *error = boost::get_error_info (e)) { std::cerr << *error << std::endl; } } --- Alex On Dec 2, 2013, at 10:35 AM, wrote: > Hi, > > Is there any particular reason to throw following exception. > > boost::exception_detail::clone_impl > > Many Thanks, > Isuru > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Wed Dec 4 02:35:31 2013 From: amin at ac.upc.edu (Amin Karami) Date: Wed, 04 Dec 2013 11:35:31 +0100 Subject: [ndnSIM] Print Queue length Message-ID: <529F0573.6000003@ac.upc.edu> Hi Alex, I am going to print Queue length in a specific interface of a router. I wrote below function: void PeriodicStatsPrinter (Ptr node, Time next) Ptr pit = node->GetObject (); Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node Ptr toDev = CH->GetDevice (1); \\ access to its queue PointerValue txQueue; toDev->GetAttribute ("TxQueue", txQueue); std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" << Names::FindName (node) << "\t" << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; 1- But, i faced with this error: ../scratch/RTT/RTT.cc: In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: ../scratch/RTT/RTT.cc:44:6: error: expected primary-expression before ?< References: Message-ID: Dear Alex, I did an experiment to trace the metrics with l3-rate-tracer. I found that InData and OutData are much lower than expected for consumer node. Therefore I tried with your example scenario "ndn-tree-tracer" and examined the trace output file. I found that "Kilobytes" field for InData and OutData are missing for all the leaf node. I paste first 0.5 s of the output and attached the whole trace file. I would like to request you for helping me how to correct the problem. I didn't see this problem in older version. Could you clarify me whether is it problem of my system. Thanks you for your contribution. Sincerely yours, TUN Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw 0.5 leaf-1 0 dev[0]=net(0,0-4) InInterests 0 0 0 0 0.5 leaf-1 0 dev[0]=net(0,0-4) OutInterests 80 2.81094 50 1.75684 0.5 leaf-1 0 dev[0]=net(0,0-4) InData 80 0 50 0 0.5 leaf-1 0 dev[0]=net(0,0-4) OutData 0 0 0 0 0.5 leaf-1 1 dev=local(1) InInterests 80 0 50 0 0.5 leaf-1 1 dev=local(1) OutInterests 0 0 0 0 0.5 leaf-1 1 dev=local(1) InData 0 0 0 0 0.5 leaf-1 1 dev=local(1) OutData 80 0 50 0 0.5 leaf-2 0 dev[1]=net(0,1-4) InInterests 0 0 0 0 0.5 leaf-2 0 dev[1]=net(0,1-4) OutInterests 80 2.81094 50 1.75684 0.5 leaf-2 0 dev[1]=net(0,1-4) InData 80 0 50 0 0.5 leaf-2 0 dev[1]=net(0,1-4) OutData 0 0 0 0 0.5 leaf-2 1 dev=local(1) InInterests 80 0 50 0 0.5 leaf-2 1 dev=local(1) OutInterests 0 0 0 0 0.5 leaf-2 1 dev=local(1) InData 0 0 0 0 0.5 leaf-2 1 dev=local(1) OutData 80 0 50 0 0.5 leaf-3 0 dev[2]=net(0,2-5) InInterests 0 0 0 0 0.5 leaf-3 0 dev[2]=net(0,2-5) OutInterests 80 2.81094 50 1.75684 0.5 leaf-3 0 dev[2]=net(0,2-5) InData 80 0 50 0 0.5 leaf-3 0 dev[2]=net(0,2-5) OutData 0 0 0 0 0.5 leaf-3 1 dev=local(1) InInterests 80 0 50 0 0.5 leaf-3 1 dev=local(1) OutInterests 0 0 0 0 0.5 leaf-3 1 dev=local(1) InData 0 0 0 0 0.5 leaf-3 1 dev=local(1) OutData 80 0 50 0 0.5 leaf-4 0 dev[3]=net(0,3-5) InInterests 0 0 0 0 0.5 leaf-4 0 dev[3]=net(0,3-5) OutInterests 80 2.81094 50 1.75684 0.5 leaf-4 0 dev[3]=net(0,3-5) InData 80 0 50 0 0.5 leaf-4 0 dev[3]=net(0,3-5) OutData 0 0 0 0 0.5 leaf-4 1 dev=local(1) InInterests 80 0 50 0 0.5 leaf-4 1 dev=local(1) OutInterests 0 0 0 0 0.5 leaf-4 1 dev=local(1) InData 0 0 0 0 0.5 leaf-4 1 dev=local(1) OutData 80 0 50 0 Ps/ I cannot attached the file because of the size. Sorry! -------------- next part -------------- An HTML attachment was scrubbed... URL: From iliamo at ucla.edu Thu Dec 5 10:59:16 2013 From: iliamo at ucla.edu (Ilya Moiseenko) Date: Thu, 5 Dec 2013 10:59:16 -0800 Subject: [ndnSIM] Print Queue length In-Reply-To: <529F0573.6000003@ac.upc.edu> References: <529F0573.6000003@ac.upc.edu> Message-ID: <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> Hi Amin 1) m_maxPackets is indeed private. However, you can access this value by attribute named ?MaxPackets" See http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_drop_tail_queue.html for details 2) Technically you can do this in NS3. And in real life routers can have different queue sizes. Ilya On Dec 4, 2013, at 2:35 AM, Amin Karami wrote: > Hi Alex, > I am going to print Queue length in a specific interface of a router. I wrote below function: > > void PeriodicStatsPrinter (Ptr node, Time next) > Ptr pit = node->GetObject (); > Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node > Ptr toDev = CH->GetDevice (1); \\ access to its queue > PointerValue txQueue; > toDev->GetAttribute ("TxQueue", txQueue); > std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" > << Names::FindName (node) << "\t" > << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; > > 1- But, i faced with this error: > ../scratch/RTT/RTT.cc: In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: > ../scratch/RTT/RTT.cc:44:6: error: expected primary-expression before ?< ./ns3/drop-tail-queue.h:68:12: error: ?uint32_t ns3::DropTailQueue::m_maxPackets? is private > ../scratch/RTT/RTT.cc:44:58: error: within this context > > 2- Could i define two Queue lengths for a specific interface in routers? from inside and outside of a link. Or both should be equal? > > > /Amin > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From amin at ac.upc.edu Thu Dec 5 15:10:47 2013 From: amin at ac.upc.edu (Amin Karami) Date: Fri, 06 Dec 2013 00:10:47 +0100 Subject: [ndnSIM] Print Queue length In-Reply-To: <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> References: <529F0573.6000003@ac.upc.edu> <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> Message-ID: <52A107F7.9010805@ac.upc.edu> Hi llya! I want to print the number of filled elements in queue in an interface in a specific time, not original (predefined) size of the queue. I think, i posted wrong title for my question :-) I could not find related attribute in your suggested link. I found these attributes: *Mode, **MaxPackets, **MaxBytes* Is there any suggestion? Thank you in advance. /Amin On 12/05/2013 07:59 ?.?, Ilya Moiseenko wrote: > Hi Amin > > 1) m_maxPackets is indeed private. > However, you can access this value by attribute named ?MaxPackets" > See http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_drop_tail_queue.html for details > > 2) Technically you can do this in NS3. And in real life routers can have different queue sizes. > > > Ilya > > On Dec 4, 2013, at 2:35 AM, Amin Karami wrote: > >> Hi Alex, >> I am going to print Queue length in a specific interface of a router. I wrote below function: >> >> void PeriodicStatsPrinter (Ptr node, Time next) >> Ptr pit = node->GetObject (); >> Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node >> Ptr toDev = CH->GetDevice (1); \\ access to its queue >> PointerValue txQueue; >> toDev->GetAttribute ("TxQueue", txQueue); >> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >> << Names::FindName (node) << "\t" >> << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; >> >> 1- But, i faced with this error: >> ../scratch/RTT/RTT.cc: In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: >> ../scratch/RTT/RTT.cc:44:6: error: expected primary-expression before ?<> ./ns3/drop-tail-queue.h:68:12: error: ?uint32_t ns3::DropTailQueue::m_maxPackets? is private >> ../scratch/RTT/RTT.cc:44:58: error: within this context >> >> 2- Could i define two Queue lengths for a specific interface in routers? from inside and outside of a link. Or both should be equal? >> >> >> /Amin >> _______________________________________________ >> 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 iliamo at ucla.edu Thu Dec 5 15:17:36 2013 From: iliamo at ucla.edu (Ilya Moiseenko) Date: Thu, 5 Dec 2013 15:17:36 -0800 Subject: [ndnSIM] Print Queue length In-Reply-To: <52A107F7.9010805@ac.upc.edu> References: <529F0573.6000003@ac.upc.edu> <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> <52A107F7.9010805@ac.upc.edu> Message-ID: <832B3DCA-2CA5-4E1F-9B59-784F0A9A4DC4@ucla.edu> The parent class Queue has a method ?GetNPackets? http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_queue.html#a50dcb693d5325708d8c90770f795eabc Ilya On Dec 5, 2013, at 3:10 PM, Amin Karami wrote: > Hi llya! > I want to print the number of filled elements in queue in an interface in a specific time, not original (predefined) size of the queue. I think, i posted wrong title for my question :-) > I could not find related attribute in your suggested link. I found these attributes: Mode, MaxPackets, MaxBytes > > Is there any suggestion? > > > Thank you in advance. > > /Amin > > On 12/05/2013 07:59 ?.?, Ilya Moiseenko wrote: >> Hi Amin >> >> 1) m_maxPackets is indeed private. >> However, you can access this value by attribute named ?MaxPackets" >> See http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_drop_tail_queue.html for details >> >> 2) Technically you can do this in NS3. And in real life routers can have different queue sizes. >> >> >> Ilya >> >> On Dec 4, 2013, at 2:35 AM, Amin Karami wrote: >> >>> Hi Alex, >>> I am going to print Queue length in a specific interface of a router. I wrote below function: >>> >>> void PeriodicStatsPrinter (Ptr node, Time next) >>> Ptr pit = node->GetObject (); >>> Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node >>> Ptr toDev = CH->GetDevice (1); \\ access to its queue >>> PointerValue txQueue; >>> toDev->GetAttribute ("TxQueue", txQueue); >>> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >>> << Names::FindName (node) << "\t" >>> << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; >>> >>> 1- But, i faced with this error: >>> ../scratch/RTT/RTT.cc: In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: >>> ../scratch/RTT/RTT.cc:44:6: error: expected primary-expression before ?<>> ./ns3/drop-tail-queue.h:68:12: error: ?uint32_t ns3::DropTailQueue::m_maxPackets? is private >>> ../scratch/RTT/RTT.cc:44:58: error: within this context >>> >>> 2- Could i define two Queue lengths for a specific interface in routers? from inside and outside of a link. Or both should be equal? >>> >>> >>> /Amin >>> _______________________________________________ >>> ndnSIM mailing list >>> ndnSIM at lists.cs.ucla.edu >>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Thu Dec 5 15:44:23 2013 From: amin at ac.upc.edu (Amin Karami) Date: Fri, 06 Dec 2013 00:44:23 +0100 Subject: [ndnSIM] Print Queue length In-Reply-To: <832B3DCA-2CA5-4E1F-9B59-784F0A9A4DC4@ucla.edu> References: <529F0573.6000003@ac.upc.edu> <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> <52A107F7.9010805@ac.upc.edu> <832B3DCA-2CA5-4E1F-9B59-784F0A9A4DC4@ucla.edu> Message-ID: <52A10FD7.2080809@ac.upc.edu> Yes, I used this code: // get current queue size uint32_t k; Ptr pit = node->GetObject (); Ptr CH1 = node->GetDevice(2)->GetChannel(); Ptr toDev = CH1->GetDevice (1); PointerValue txQueue; toDev->GetAttribute ("TxQueue", txQueue); k = txQueue.Get ()->GetNPackets(); When i print "k", it is zero. Is there any wrong in my code? If my code is true, i may call wrong GetDevice number! /Amin On 12/06/2013 12:17 ?.?, Ilya Moiseenko wrote: > The parent class Queue has a method ?GetNPackets? > http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_queue.html#a50dcb693d5325708d8c90770f795eabc > > Ilya > > On Dec 5, 2013, at 3:10 PM, Amin Karami > wrote: > >> Hi llya! >> I want to print the number of filled elements in queue in an >> interface in a specific time, not original (predefined) size of the >> queue. I think, i posted wrong title for my question :-) >> I could not find related attribute in your suggested link. I found >> these attributes: *Mode, **MaxPackets, **MaxBytes* >> >> Is there any suggestion? >> >> >> Thank you in advance. >> >> /Amin >> >> On 12/05/2013 07:59 ?.?, Ilya Moiseenko wrote: >>> Hi Amin >>> >>> 1) m_maxPackets is indeed private. >>> However, you can access this value by attribute named ?MaxPackets" >>> Seehttp://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_drop_tail_queue.html for details >>> >>> 2) Technically you can do this in NS3. And in real life routers can have different queue sizes. >>> >>> >>> Ilya >>> >>> On Dec 4, 2013, at 2:35 AM, Amin Karami wrote: >>> >>>> Hi Alex, >>>> I am going to print Queue length in a specific interface of a router. I wrote below function: >>>> >>>> void PeriodicStatsPrinter (Ptr node, Time next) >>>> Ptr pit = node->GetObject (); >>>> Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node >>>> Ptr toDev = CH->GetDevice (1); \\ access to its queue >>>> PointerValue txQueue; >>>> toDev->GetAttribute ("TxQueue", txQueue); >>>> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >>>> << Names::FindName (node) << "\t" >>>> << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; >>>> >>>> 1- But, i faced with this error: >>>> ../scratch/RTT/RTT.cc : In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: >>>> ../scratch/RTT/RTT.cc :44:6: error: expected primary-expression before ?<>>> ./ns3/drop-tail-queue.h:68:12: error: ?uint32_t ns3::DropTailQueue::m_maxPackets? is private >>>> ../scratch/RTT/RTT.cc :44:58: error: within this context >>>> >>>> 2- Could i define two Queue lengths for a specific interface in routers? from inside and outside of a link. Or both should be equal? >>>> >>>> >>>> /Amin >>>> _______________________________________________ >>>> ndnSIM mailing list >>>> ndnSIM at lists.cs.ucla.edu >>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 5 15:49:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 5 Dec 2013 15:49:57 -0800 Subject: [ndnSIM] Print Queue length In-Reply-To: <52A10FD7.2080809@ac.upc.edu> References: <529F0573.6000003@ac.upc.edu> <47A853E0-017A-4981-8E20-B04905415746@ucla.edu> <52A107F7.9010805@ac.upc.edu> <832B3DCA-2CA5-4E1F-9B59-784F0A9A4DC4@ucla.edu> <52A10FD7.2080809@ac.upc.edu> Message-ID: <2B1B2968-339E-4C7D-A3FB-15DC8CD18A4C@ucla.edu> Are you sure that you have anything in queue? Do you have bursts or traffic/are you links fully saturated all the time? --- Alex On Dec 5, 2013, at 3:44 PM, Amin Karami wrote: > Yes, I used this code: > > // get current queue size > uint32_t k; > Ptr pit = node->GetObject (); > Ptr CH1 = node->GetDevice(2)->GetChannel(); > Ptr toDev = CH1->GetDevice (1); > PointerValue txQueue; > toDev->GetAttribute ("TxQueue", txQueue); > k = txQueue.Get ()->GetNPackets(); > > > When i print "k", it is zero. Is there any wrong in my code? If my code is true, i may call wrong GetDevice number! > > /Amin > > > On 12/06/2013 12:17 ?.?, Ilya Moiseenko wrote: >> The parent class Queue has a method ?GetNPackets? >> http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_queue.html#a50dcb693d5325708d8c90770f795eabc >> >> Ilya >> >> On Dec 5, 2013, at 3:10 PM, Amin Karami wrote: >> >>> Hi llya! >>> I want to print the number of filled elements in queue in an interface in a specific time, not original (predefined) size of the queue. I think, i posted wrong title for my question :-) >>> I could not find related attribute in your suggested link. I found these attributes: Mode, MaxPackets, MaxBytes >>> >>> Is there any suggestion? >>> >>> >>> Thank you in advance. >>> >>> /Amin >>> >>> On 12/05/2013 07:59 ?.?, Ilya Moiseenko wrote: >>>> Hi Amin >>>> >>>> 1) m_maxPackets is indeed private. >>>> However, you can access this value by attribute named ?MaxPackets" >>>> See http://www.nsnam.org/docs/release/3.18/doxygen/classns3_1_1_drop_tail_queue.html for details >>>> >>>> 2) Technically you can do this in NS3. And in real life routers can have different queue sizes. >>>> >>>> >>>> Ilya >>>> >>>> On Dec 4, 2013, at 2:35 AM, Amin Karami wrote: >>>> >>>>> Hi Alex, >>>>> I am going to print Queue length in a specific interface of a router. I wrote below function: >>>>> >>>>> void PeriodicStatsPrinter (Ptr node, Time next) >>>>> Ptr pit = node->GetObject (); >>>>> Ptr CH = node->GetDevice(2)->GetChannel(); \\ 2nd interface of the node >>>>> Ptr toDev = CH->GetDevice (1); \\ access to its queue >>>>> PointerValue txQueue; >>>>> toDev->GetAttribute ("TxQueue", txQueue); >>>>> std::cout << Simulator::Now ().ToDouble (Time::S) << "\t" >>>>> << Names::FindName (node) << "\t" >>>>> << "Max Packets of Queue: " << txQueue.Get ()->m_maxPackets << "\n"; >>>>> >>>>> 1- But, i faced with this error: >>>>> ../scratch/RTT/RTT.cc: In function ?void PeriodicStatsPrinter(ns3::Ptr, ns3::Time)?: >>>>> ../scratch/RTT/RTT.cc:44:6: error: expected primary-expression before ?<>>>> ./ns3/drop-tail-queue.h:68:12: error: ?uint32_t ns3::DropTailQueue::m_maxPackets? is private >>>>> ../scratch/RTT/RTT.cc:44:58: error: within this context >>>>> >>>>> 2- Could i define two Queue lengths for a specific interface in routers? from inside and outside of a link. Or both should be equal? >>>>> >>>>> >>>>> /Amin >>>>> _______________________________________________ >>>>> ndnSIM mailing list >>>>> ndnSIM at lists.cs.ucla.edu >>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 5 15:57:23 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 5 Dec 2013 15:57:23 -0800 Subject: [ndnSIM] Fwd: Request to solve a problem of L3 rate tracer In-Reply-To: References: Message-ID: Hi Tun, I found some nasty little bug in the ndnSIM code, which caused the problem. I pushed the update to the repo, so try to update/recompile and check if everything is ok now. --- Alex On Dec 5, 2013, at 2:30 AM, Tun Tun Oo wrote: > > Dear Alex, > > I did an experiment to trace the metrics with l3-rate-tracer. > I found that InData and OutData are much lower than expected for consumer node. > Therefore I tried with your example scenario "ndn-tree-tracer" and examined the trace output file. > I found that "Kilobytes" field for InData and OutData are missing for all the leaf node. > I paste first 0.5 s of the output and attached the whole trace file. > > I would like to request you for helping me how to correct the problem. > I didn't see this problem in older version. Could you clarify me whether is it problem of my system. > Thanks you for your contribution. > > Sincerely yours, > TUN > > > Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw > 0.5 leaf-1 0 dev[0]=net(0,0-4) InInterests 0 0 0 0 > 0.5 leaf-1 0 dev[0]=net(0,0-4) OutInterests 80 2.81094 50 1.75684 > > 0.5 leaf-1 0 dev[0]=net(0,0-4) InData 80 0 50 0 > 0.5 leaf-1 0 dev[0]=net(0,0-4) OutData 0 0 0 0 > > 0.5 leaf-1 1 dev=local(1) InInterests 80 0 50 0 > 0.5 leaf-1 1 dev=local(1) OutInterests 0 0 0 0 > > 0.5 leaf-1 1 dev=local(1) InData 0 0 0 0 > 0.5 leaf-1 1 dev=local(1) OutData 80 0 50 0 > > 0.5 leaf-2 0 dev[1]=net(0,1-4) InInterests 0 0 0 0 > 0.5 leaf-2 0 dev[1]=net(0,1-4) OutInterests 80 2.81094 50 1.75684 > > 0.5 leaf-2 0 dev[1]=net(0,1-4) InData 80 0 50 0 > 0.5 leaf-2 0 dev[1]=net(0,1-4) OutData 0 0 0 0 > > 0.5 leaf-2 1 dev=local(1) InInterests 80 0 50 0 > 0.5 leaf-2 1 dev=local(1) OutInterests 0 0 0 0 > > 0.5 leaf-2 1 dev=local(1) InData 0 0 0 0 > 0.5 leaf-2 1 dev=local(1) OutData 80 0 50 0 > > 0.5 leaf-3 0 dev[2]=net(0,2-5) InInterests 0 0 0 0 > 0.5 leaf-3 0 dev[2]=net(0,2-5) OutInterests 80 2.81094 50 1.75684 > > 0.5 leaf-3 0 dev[2]=net(0,2-5) InData 80 0 50 0 > 0.5 leaf-3 0 dev[2]=net(0,2-5) OutData 0 0 0 0 > > 0.5 leaf-3 1 dev=local(1) InInterests 80 0 50 0 > 0.5 leaf-3 1 dev=local(1) OutInterests 0 0 0 0 > > 0.5 leaf-3 1 dev=local(1) InData 0 0 0 0 > 0.5 leaf-3 1 dev=local(1) OutData 80 0 50 0 > > 0.5 leaf-4 0 dev[3]=net(0,3-5) InInterests 0 0 0 0 > 0.5 leaf-4 0 dev[3]=net(0,3-5) OutInterests 80 2.81094 50 1.75684 > > 0.5 leaf-4 0 dev[3]=net(0,3-5) InData 80 0 50 0 > 0.5 leaf-4 0 dev[3]=net(0,3-5) OutData 0 0 0 0 > > 0.5 leaf-4 1 dev=local(1) InInterests 80 0 50 0 > 0.5 leaf-4 1 dev=local(1) OutInterests 0 0 0 0 > > 0.5 leaf-4 1 dev=local(1) InData 0 0 0 0 > 0.5 leaf-4 1 dev=local(1) OutData 80 0 50 0 > > Ps/ I cannot attached the file because of the size. Sorry! > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From lata.manju25 at gmail.com Fri Dec 6 04:23:23 2013 From: lata.manju25 at gmail.com (Manju lata) Date: Fri, 6 Dec 2013 17:53:23 +0530 Subject: [ndnSIM] Regarding car2car example. Message-ID: Hello Sir, I am working on wireless scenario. I am new to ndnSIM so I am learning with examples. But when I tried to run the car2car example by putting all the source files in the scratch folder I am getting some errors. Steps which I followed are as follows 1. manjulata at manjulata-HP-Pavilion-dv4-Notebook-PC:~/Desktop/ndnSIM/ns-3$ ./waf configure Result: 'configure' finished successfully (10.723s) 2. manjulata at manjulata-HP-Pavilion-dv4-Notebook-PC:~/Desktop/ndnSIM/ns-3$ ./waf --run car-pusher Waf: Entering directory `/home/manjulata/Desktop/ndnSIM/ns-3/build' program 'car-pusher' not found; available programs are: ['rocketfuel-maps-cch-to-annotaded', 'src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded', 'results', 'scratch/results/results', 'try', 'scratch/try', 'ndn-simple-edit', 'scratch/ndn-simple-edit', 'try1', 'scratch/try1', 'ndn-simple-wifi-editing-new', 'scratch/ndn-simple-wifi-editing-new', 'ndn-simple-wifi-edit', 'scratch/ndn-simple-wifi-edit', 'graphs', 'scratch/graphs/graphs', 'scenarios', 'scratch/scenarios/scenarios', 'extensions', 'scratch/extensions/extensions', 'third_edit', 'scratch/third_edit', 'thesis_wireless_topology', 'scratch/thesis_wireless_topology', 'scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] Please help. Thanks & Regards Manjulata -------------- next part -------------- An HTML attachment was scrubbed... URL: From lata.manju25 at gmail.com Sat Dec 7 06:29:28 2013 From: lata.manju25 at gmail.com (Manju lata) Date: Sat, 7 Dec 2013 19:59:28 +0530 Subject: [ndnSIM] Uninstall ndnSIM Message-ID: Hello Sir, Accidently I have removed some important files from ns-3 folder which I can't recover. So I want to uninstall ndnSIM and install it again. But I don't know how to uninstall it. Please help me to uninstall ndnSIM. Thanks & regards Manjulata -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Sat Dec 7 14:42:04 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sat, 07 Dec 2013 23:42:04 +0100 Subject: [ndnSIM] The number of cache hit/miss and PIT entries per interface Message-ID: <52A3A43C.1040003@ac.upc.edu> Hi Alex and ndnSIM users, For evaluation of some methods, we need specific information such as the number of cache hit/miss and the number of PIT entries per interface in each time interval. How is it possible with ndnSIM? Thank you in advance for any help. /Amin From iliamo at ucla.edu Sat Dec 7 21:08:58 2013 From: iliamo at ucla.edu (Ilya Moiseenko) Date: Sat, 7 Dec 2013 21:08:58 -0800 Subject: [ndnSIM] Uninstall ndnSIM In-Reply-To: References: Message-ID: Hi Manju, "sudo ./waf clean" should do the job Ilya On Dec 7, 2013, at 6:29 AM, Manju lata wrote: > Hello Sir, > > > Accidently I have removed some important files from ns-3 folder which I can't recover. So I want to uninstall ndnSIM and install it again. But I don't know how to uninstall it. > Please help me to uninstall ndnSIM. > > > > Thanks & regards > Manjulata > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From iliamo at ucla.edu Sat Dec 7 21:14:38 2013 From: iliamo at ucla.edu (Ilya Moiseenko) Date: Sat, 7 Dec 2013 21:14:38 -0800 Subject: [ndnSIM] Regarding car2car example. In-Reply-To: References: Message-ID: <65CB4FA6-C19F-49A8-B095-151FAE9F6FF7@ucla.edu> Hi Manju, Looks like you a trying to run ndnSIM-nom-rapid-car2car scenarios. In this case you cannot simply copy files to a scratch folder due to the dependencies in the code. These scenarios should be built and run from an external (to ndnSIM) directory. Please, read carefully README file on how to setup car2car scenarios. Ilya On Dec 6, 2013, at 4:23 AM, Manju lata wrote: > Hello Sir, > > I am working on wireless scenario. I am new to ndnSIM so I am learning with examples. But when I tried to run the car2car example by putting all the source files in the scratch folder I am getting some errors. Steps which I followed are as follows > > 1. manjulata at manjulata-HP-Pavilion-dv4-Notebook-PC:~/Desktop/ndnSIM/ns-3$ ./waf configure > > Result: 'configure' finished successfully (10.723s) > > 2. manjulata at manjulata-HP-Pavilion-dv4-Notebook-PC:~/Desktop/ndnSIM/ns-3$ ./waf --run car-pusher > > Waf: Entering directory `/home/manjulata/Desktop/ndnSIM/ns-3/build' > program 'car-pusher' not found; available programs are: ['rocketfuel-maps-cch-to-annotaded', 'src/ndnSIM/tools/rocketfuel-maps-cch-to-annotaded', 'results', 'scratch/results/results', 'try', 'scratch/try', 'ndn-simple-edit', 'scratch/ndn-simple-edit', 'try1', 'scratch/try1', 'ndn-simple-wifi-editing-new', 'scratch/ndn-simple-wifi-editing-new', 'ndn-simple-wifi-edit', 'scratch/ndn-simple-wifi-edit', 'graphs', 'scratch/graphs/graphs', 'scenarios', 'scratch/scenarios/scenarios', 'extensions', 'scratch/extensions/extensions', 'third_edit', 'scratch/third_edit', 'thesis_wireless_topology', 'scratch/thesis_wireless_topology', 'scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspected-doxygen', 'utils/print-introspected-doxygen', 'emu-sock-creator', 'src/emu/emu-sock-creator', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator'] > > Please help. > > Thanks & Regards > Manjulata > _______________________________________________ > 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 iliamo at ucla.edu Sat Dec 7 21:25:22 2013 From: iliamo at ucla.edu (Ilya Moiseenko) Date: Sat, 7 Dec 2013 21:25:22 -0800 Subject: [ndnSIM] The number of cache hit/miss and PIT entries per interface In-Reply-To: <52A3A43C.1040003@ac.upc.edu> References: <52A3A43C.1040003@ac.upc.edu> Message-ID: Hi Amin, > For evaluation of some methods, we need specific information such as the number of cache hit/miss Take a look at utils/tracers/ndn-cs-tracer.cc > and the number of PIT entries per interface in each time interval. 1st option - implement a similar tracer as ndn-cs-tracer 2nd option - take a look at model/pit/ndn-pit-entry.cc, a method UpdateLifetime is called pretty frequently, so you can output all interfaces that belong to a each PIT entry. Ilya On Dec 7, 2013, at 2:42 PM, Amin Karami wrote: > Hi Alex and ndnSIM users, > For evaluation of some methods, we need specific information such as the number of cache hit/miss and the number of PIT entries per interface in each time interval. > > How is it possible with ndnSIM? > > Thank you in advance for any help. > > /Amin > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From lata.manju25 at gmail.com Sun Dec 8 00:16:31 2013 From: lata.manju25 at gmail.com (Manju lata) Date: Sun, 8 Dec 2013 13:46:31 +0530 Subject: [ndnSIM] AODV throughput and delay code in ns-3 Message-ID: Hello, How can I calculate the throughput and delay of aodv routing protocol in both the cases when nodes are static and mobile in wifi network. Regards Manjulata -------------- next part -------------- An HTML attachment was scrubbed... URL: From lata.manju25 at gmail.com Sun Dec 8 00:32:02 2013 From: lata.manju25 at gmail.com (Manju lata) Date: Sun, 8 Dec 2013 14:02:02 +0530 Subject: [ndnSIM] WIFI Throughput Calculation Message-ID: Hello, I am working on a wireless scenario where nodes are mobile and each node is working either as producer or consumer. I want to integrate aodv protocol in the scenario. But I don't know how to make it possible using ndnSIM. Please help. Regards Manjulata -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Sun Dec 8 02:10:08 2013 From: amin at ac.upc.edu (Amin Karami) Date: Sun, 08 Dec 2013 11:10:08 +0100 Subject: [ndnSIM] The number of cache hit/miss and PIT entries per interface In-Reply-To: References: <52A3A43C.1040003@ac.upc.edu> Message-ID: <52A44580.9060100@ac.upc.edu> Hi llya, Does guide page "https://github.com/NDN-Routing/ndnSIM/blob/master/model/pit/ndn-pit-entry.cc" print all the recorded Interest packets from interfaces in PIT? Because, as Alex clarified, the implementation is basically a 'pipeline' based on bandwidth-delay-product in the system. Is it right? /Amin On 12/08/2013 06:25 ?.?, Ilya Moiseenko wrote: > Hi Amin, > >> For evaluation of some methods, we need specific information such as the number of cache hit/miss > Take a look at utils/tracers/ndn-cs-tracer.cc > >> and the number of PIT entries per interface in each time interval. > 1st option - implement a similar tracer as ndn-cs-tracer > 2nd option - take a look at model/pit/ndn-pit-entry.cc, a method UpdateLifetime is called pretty frequently, so you can output all interfaces that belong to a each PIT entry. > > Ilya > > On Dec 7, 2013, at 2:42 PM, Amin Karami wrote: > >> Hi Alex and ndnSIM users, >> For evaluation of some methods, we need specific information such as the number of cache hit/miss and the number of PIT entries per interface in each time interval. >> >> How is it possible with ndnSIM? >> >> Thank you in advance for any help. >> >> /Amin >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From fab.batta at gmail.com Sun Dec 8 08:38:57 2013 From: fab.batta at gmail.com (fabrizio saponaro) Date: Sun, 8 Dec 2013 17:38:57 +0100 Subject: [ndnSIM] PIT Usage In-Reply-To: References: Message-ID: I hope someone can help me! 2013/12/2 fabrizio saponaro > Hi, > I would to know the size of the PIT memory occupied, I saw the topic at > this link ( > http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-February/000070.html) > and so now I'm using the SerializedSize policy, but I've a doubt. > According to documentation the MaxSize parameter would be in bytes, but, > why if I put a number as 10, 10000, or 0.001 my result it's always the same? > > In my network the only consumer is a ConsumerCbr with frequency at 10000 > interest per second, I want to know the usage memory of the pit of the > first router on the path of the Interest toward the producer and for now, > if set different pit size and I try to print the pitstats for this router, > my result is always: > 1 5 rtr-2 10280 > 2.15462 5 rtr-2 20233 > 3.30924 5 rtr-2 20000 > 4.28132 5 rtr-2 20000 > ... > > So, how is it possible that if the size pit is in bytes I got more of > 20000 entries with a size of 10 bytes, and why I cannot get the amount of > bytes occupied? > > Best regards, > Fabrizio > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Dec 8 11:48:07 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 8 Dec 2013 11:48:07 -0800 Subject: [ndnSIM] Uninstall ndnSIM In-Reply-To: References: Message-ID: <0DDC9F4D-1806-4638-A886-E2012C75E3A4@ucla.edu> Ho Manju, You may need a little bit more than that. If you haven't modified ndnSIM and didn't write any scenarios, just simply re-download everything, configure, compile, and install. This will override anything that was installed before (no real need for uninstalling). If you have modified, then you should back up your modifications, then re-download, re-apply modification, and then the standard configure, compile, install. --- Alex On Dec 7, 2013, at 9:08 PM, Ilya Moiseenko wrote: > Hi Manju, > > "sudo ./waf clean" should do the job > > Ilya > > > On Dec 7, 2013, at 6:29 AM, Manju lata wrote: > >> Hello Sir, >> >> >> Accidently I have removed some important files from ns-3 folder which I can't recover. So I want to uninstall ndnSIM and install it again. But I don't know how to uninstall it. >> Please help me to uninstall ndnSIM. >> >> >> >> Thanks & regards >> Manjulata >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Sun Dec 8 13:51:30 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 8 Dec 2013 13:51:30 -0800 Subject: [ndnSIM] PIT Usage In-Reply-To: References: Message-ID: <2A4C2E50-FD09-4FCF-9C55-1D67DDACDB86@ucla.edu> Hi Fabrizio, This could have been related to the bug that I recently fixed. Can you try again with the most recent version of ndnSIM and see if the problem still exists. Also, do you have a specific reason to use SerializedSize policy? --- Alex On Dec 8, 2013, at 8:38 AM, fabrizio saponaro wrote: > I hope someone can help me! > > > 2013/12/2 fabrizio saponaro > Hi, > I would to know the size of the PIT memory occupied, I saw the topic at this link (http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-February/000070.html) and so now I'm using the SerializedSize policy, but I've a doubt. > According to documentation the MaxSize parameter would be in bytes, but, why if I put a number as 10, 10000, or 0.001 my result it's always the same? > > In my network the only consumer is a ConsumerCbr with frequency at 10000 interest per second, I want to know the usage memory of the pit of the first router on the path of the Interest toward the producer and for now, if set different pit size and I try to print the pitstats for this router, my result is always: > 1 5 rtr-2 10280 > 2.15462 5 rtr-2 20233 > 3.30924 5 rtr-2 20000 > 4.28132 5 rtr-2 20000 > ... > > So, how is it possible that if the size pit is in bytes I got more of 20000 entries with a size of 10 bytes, and why I cannot get the amount of bytes occupied? > > Best regards, > Fabrizio > > _______________________________________________ > 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 i.liyanage at surrey.ac.uk Sun Dec 8 14:37:29 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Sun, 8 Dec 2013 22:37:29 +0000 Subject: [ndnSIM] Calculate Routes Message-ID: <9ef6a9248811456a8f0b79211764b68c@AMSPR06MB213.eurprd06.prod.outlook.com> Hi, Is there a way to run "ndn::GlobalRoutingHelper CalculateRoutes ()" at a middle of the simulation. (may be at a given time other than at the beginning of the simulation). Many Thanks, Isuru -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Dec 8 15:46:05 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 8 Dec 2013 15:46:05 -0800 Subject: [ndnSIM] Calculate Routes In-Reply-To: <9ef6a9248811456a8f0b79211764b68c@AMSPR06MB213.eurprd06.prod.outlook.com> References: <9ef6a9248811456a8f0b79211764b68c@AMSPR06MB213.eurprd06.prod.outlook.com> Message-ID: <930EFE21-952E-4C40-92B5-1EACBFC31ABE@ucla.edu> Hi Isuru, You can simply schedule an event at a specific time using Simulator::Schedule --- Alex > On Dec 8, 2013, at 2:37 PM, wrote: > > Hi, > > Is there a way to run "ndn::GlobalRoutingHelper CalculateRoutes ()" at a middle of the simulation. (may be at a given time other than at the beginning of the simulation). > > Many Thanks, > Isuru > _______________________________________________ > 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 xuxux2006 at 126.com Sun Dec 8 19:26:02 2013 From: xuxux2006 at 126.com (xuxux2006 at 126.com) Date: Mon, 9 Dec 2013 11:26:02 +0800 Subject: [ndnSIM] Help: A SIGSEGV error in ndnSIM fib entry Message-ID: <2013120911260099261926@126.com> Hi Alex, Ilya and every ndnSIM users, I found a problem in ndn-fib-entry.h. When I called the founction GetRoutingCost() of ndn-fib-entry.h in DoPropagateInterest of flooding.cc , I caught a SIGSEGV error. I did this just as previous calling GetStatus() in flooding.cc. The bt result of gdb about this error is listed below: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #0 0xb4be06d4 in std::string::begin() () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #1 0xb677dcb2 in boost::range_detail::range_begin (c=...) at /usr/include/boost/range/begin.hpp:49 #2 0xb677d737 in boost::range_adl_barrier::begin (r=...) at /usr/include/boost/range/begin.hpp:108 #3 0xb677cf61 in boost::iterator_range_detail::iterator_range_impl<__gnu_cxx::__normal_iterator >::adl_begin (r=...) at /usr/include/boost/range/iterator_range_core.hpp:56 #4 0xb677c91e in boost::iterator_range<__gnu_cxx::__normal_iterator >::iterator_range ( this=0xbfffe010, r=...) at /usr/include/boost/range/iterator_range_core.hpp:204 #5 0xb677be9f in boost::make_iterator_range (r=...) at /usr/include/boost/range/iterator_range_core.hpp:556 #6 0xb677b2c4 in boost::range_detail::make_range (r=...) at /usr/include/boost/range/as_literal.hpp:93 #7 0xb677a4ee in boost::as_literal (r=...) at /usr/include/boost/range/as_literal.hpp:102 #8 0xb6779663 in boost::algorithm::iter_split >, std::string, boost::algorithm::detail::token_finderF > > (Result=..., Input=..., Finder=...) at /usr/include/boost/algorithm/string/iter_find.hpp:153 #9 0xb677882f in boost::algorithm::split >, std::string, boost::algorithm::detail::is_any_ofF > (Result=..., Input=..., Pred=..., eCompress=boost::algorithm::token_compress_off) at /usr/include/boost/algorithm/string/split.hpp:149 #10 0xb67768f8 in ns3::ndn::ConsumerCbr::SendPacket (this=0x8390390) at ../src/ndnSIM/apps/ndn-consumer-cbr.cc:229 #11 0xb67779a9 in ns3::EventMemberImpl0::Notify (this=0x84fb408) at ./ns3/make-event.h:96 #12 0xb5035e4b in ns3::EventImpl::Invoke (this=0x84fb408) at ../src/core/model/event-impl.cc:45 #13 0xb5039f88 in ns3::DefaultSimulatorImpl::ProcessOneEvent (this=0x809a380) at ../src/core/model/default-simulator-impl.cc:138 #14 0xb503a1a8 in ns3::DefaultSimulatorImpl::Run (this=0x809a380) at ../src/core/model/default-simulator-impl.cc:193 #15 0xb5036c51 in ns3::Simulator::Run () at ../src/core/model/simulator.cc:160 #16 0x08059c3f in main (argc=2, argv=0xbffff184) at ../src/ndnSIM/examples/ndn-tree-cs-tracers.cc:473 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I am confused, why the GetStatus() can be called here but the GetRoutingCost() can not? Please help. I have tried several times, but still have this problem. Look forward your help. Thanks & Regards Kevin Xu -------------- next part -------------- An HTML attachment was scrubbed... URL: From aloulounarjes at yahoo.fr Mon Dec 9 12:10:10 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Mon, 9 Dec 2013 20:10:10 +0000 (GMT) Subject: [ndnSIM] Forwarding Strategy Message-ID: <1386619810.87000.YahooMailNeo@web172106.mail.ir2.yahoo.com> Hi ndn-sim users, I have two questions: 1) I want to know if I can use different ForwardingStrategy in the same network? 2) How can I?distinguish between node and consumer and provider in the strategy Layer? Thanks, Best Reagards -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Mon Dec 9 12:25:48 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 9 Dec 2013 12:25:48 -0800 Subject: [ndnSIM] Forwarding Strategy In-Reply-To: <1386619810.87000.YahooMailNeo@web172106.mail.ir2.yahoo.com> References: <1386619810.87000.YahooMailNeo@web172106.mail.ir2.yahoo.com> Message-ID: <3DD38E16-EA41-4BA7-91EC-0D721C94E208@ucla.edu> Hi Narjes, 1) Yes, you can use different strategies on different nodes. You just need to do a little bit more work to set up you simulation scenario. Something like this ndn::StackHelper ndnHelper; ndnHelper.SetForwardingStrategy("strategy1"); ndnHelper.Install(?node1?); ndnHelper.SetForwardingStrategy("strategy2"); ndnHelper.install(?node2?); 2) What exactly do you mean by "distinguishing"? What do you want to achieve? At the strategy layer you're dealing with Interests and Data, which have names. Name (or prefix) is basically the only thing you have. Consumers by definition are sending Interests and producers are generating and publishing data. --- Alex On Dec 9, 2013, at 12:10 PM, narjes aloulou wrote: > > > Hi ndn-sim users, > > I have two questions: > 1) I want to know if I can use different ForwardingStrategy in the same network? > 2) How can I distinguish between node and consumer and provider in the strategy Layer? > > Thanks, > > Best Reagards > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Mon Dec 9 14:03:03 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 9 Dec 2013 14:03:03 -0800 Subject: [ndnSIM] Help: A SIGSEGV error in ndnSIM fib entry In-Reply-To: <2013120911260099261926@126.com> References: <2013120911260099261926@126.com> Message-ID: <22486DF7-82A5-4FAA-ADD0-AA87D5E5CF70@ucla.edu> Hi Kevin, I tried to put std::cerr << metricFace.GetRoutingCost() << std::endl; into DoPropagateInterest and then run ndn-simple scenario. I got no errors or segfaults. GetStatus/GetRoutingCost are the same type of the calls, accessing the same data structure in the same way. So, not sure why you're getting the segfault. --- Alex On Dec 8, 2013, at 7:26 PM, xuxux2006 at 126.com wrote: > Hi Alex, Ilya and every ndnSIM users, > I found a problem in ndn-fib-entry.h. When I called the founction GetRoutingCost() of ndn-fib-entry.h in DoPropagateInterest of flooding.cc , I caught a SIGSEGV error. I did this just as previous calling GetStatus() in flooding.cc. The bt result of gdb about this error is listed below: > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > #0 0xb4be06d4 in std::string::begin() () from /usr/lib/i386-linux-gnu/libstdc++.so.6 > #1 0xb677dcb2 in boost::range_detail::range_begin (c=...) at /usr/include/boost/range/begin.hpp:49 > #2 0xb677d737 in boost::range_adl_barrier::begin (r=...) at /usr/include/boost/range/begin.hpp:108 > #3 0xb677cf61 in boost::iterator_range_detail::iterator_range_impl<__gnu_cxx::__normal_iterator >::adl_begin (r=...) at /usr/include/boost/range/iterator_range_core.hpp:56 > #4 0xb677c91e in boost::iterator_range<__gnu_cxx::__normal_iterator >::iterator_range ( > this=0xbfffe010, r=...) at /usr/include/boost/range/iterator_range_core.hpp:204 > #5 0xb677be9f in boost::make_iterator_range (r=...) at /usr/include/boost/range/iterator_range_core.hpp:556 > #6 0xb677b2c4 in boost::range_detail::make_range (r=...) at /usr/include/boost/range/as_literal.hpp:93 > #7 0xb677a4ee in boost::as_literal (r=...) at /usr/include/boost/range/as_literal.hpp:102 > #8 0xb6779663 in boost::algorithm::iter_split >, std::string, boost::algorithm::detail::token_finderF > > (Result=..., Input=..., Finder=...) > at /usr/include/boost/algorithm/string/iter_find.hpp:153 > #9 0xb677882f in boost::algorithm::split >, std::string, boost::algorithm::detail::is_any_ofF > (Result=..., Input=..., Pred=..., eCompress=boost::algorithm::token_compress_off) > at /usr/include/boost/algorithm/string/split.hpp:149 > #10 0xb67768f8 in ns3::ndn::ConsumerCbr::SendPacket (this=0x8390390) at ../src/ndnSIM/apps/ndn-consumer-cbr.cc:229 > #11 0xb67779a9 in ns3::EventMemberImpl0::Notify (this=0x84fb408) at ./ns3/make-event.h:96 > #12 0xb5035e4b in ns3::EventImpl::Invoke (this=0x84fb408) at ../src/core/model/event-impl.cc:45 > #13 0xb5039f88 in ns3::DefaultSimulatorImpl::ProcessOneEvent (this=0x809a380) at ../src/core/model/default-simulator-impl.cc:138 > #14 0xb503a1a8 in ns3::DefaultSimulatorImpl::Run (this=0x809a380) at ../src/core/model/default-simulator-impl.cc:193 > #15 0xb5036c51 in ns3::Simulator::Run () at ../src/core/model/simulator.cc:160 > #16 0x08059c3f in main (argc=2, argv=0xbffff184) at ../src/ndnSIM/examples/ndn-tree-cs-tracers.cc:473 > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > I am confused, why the GetStatus() can be called here but the GetRoutingCost() can not? > Please help. I have tried several times, but still have this problem. Look forward your help. > Thanks & Regards > Kevin Xu > _______________________________________________ > 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 aloulounarjes at yahoo.fr Tue Dec 10 01:25:43 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Tue, 10 Dec 2013 09:25:43 +0000 (GMT) Subject: [ndnSIM] Forwarding Strategy In-Reply-To: <3DD38E16-EA41-4BA7-91EC-0D721C94E208@ucla.edu> References: <1386619810.87000.YahooMailNeo@web172106.mail.ir2.yahoo.com> <3DD38E16-EA41-4BA7-91EC-0D721C94E208@ucla.edu> Message-ID: <1386667543.12676.YahooMailNeo@web172106.mail.ir2.yahoo.com> Thanks Alex, your answer resolves my problem.. Le Lundi 9 d?cembre 2013 21h25, Alex Afanasyev a ?crit : Hi Narjes, 1) Yes, you can use different strategies on different nodes.? You just need to do a little bit more work to set up you simulation scenario.? Something like this ndn::StackHelper ndnHelper; ndnHelper.SetForwardingStrategy("strategy1"); ndnHelper.Install(?node1?); ndnHelper.SetForwardingStrategy("strategy2"); ndnHelper.install(?node2?); 2) What exactly do you mean by "distinguishing"?? What do you want to achieve? At the strategy layer you're dealing with Interests and Data, which have names.? Name (or prefix) is basically the only thing you have.? Consumers by definition are sending Interests and producers are generating and publishing data. --- Alex On Dec 9, 2013, at 12:10 PM, narjes aloulou wrote: > > > Hi ndn-sim users, > > I have two questions: > 1) I want to know if I can use different ForwardingStrategy in the same network? > 2) How can I distinguish between node and consumer and provider in the strategy Layer? > > Thanks, > > Best Reagards > > _______________________________________________ > 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 aloulounarjes at yahoo.fr Tue Dec 10 01:27:04 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Tue, 10 Dec 2013 09:27:04 +0000 (GMT) Subject: [ndnSIM] (no subject) Message-ID: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> Hi, I want to send an interest to globalRouter from a node. So, I would know the globalRouter adresse from the Forwarding Strategy Layer (of any node).Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From drirawassim+ndnsim at gmail.com Tue Dec 10 01:36:55 2013 From: drirawassim+ndnsim at gmail.com (Wassim Drira) Date: Tue, 10 Dec 2013 12:36:55 +0300 Subject: [ndnSIM] (no subject) In-Reply-To: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> References: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> Message-ID: Hi, First, there is no addresses in ndnSim. Interests are sent for names. Second, what do you mean by gloabalRouter address? Regards On Tue, Dec 10, 2013 at 12:27 PM, narjes aloulou wrote: > Hi, > > I want to send an interest to globalRouter from a node. > So, I would know the globalRouter adresse from the Forwarding Strategy > Layer (of any node). > Thanks > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aloulounarjes at yahoo.fr Tue Dec 10 02:03:10 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Tue, 10 Dec 2013 10:03:10 +0000 (GMT) Subject: [ndnSIM] (no subject) In-Reply-To: References: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> Message-ID: <1386669790.92733.YahooMailNeo@web172103.mail.ir2.yahoo.com> Hi, I want to send an interest to globalRouter in the method " ForwardingStrategy::TrySendOutInterest " which face must I use? Le Mardi 10 d?cembre 2013 10h37, Wassim Drira a ?crit : Hi, First, there is no addresses in ndnSim. Interests are sent for names. Second, what do you mean by gloabalRouter address? Regards On Tue, Dec 10, 2013 at 12:27 PM, narjes aloulou wrote: Hi, > > >I want to send an interest to globalRouter from a node. >So, I would know the globalRouter adresse from the Forwarding Strategy Layer (of any node).Thanks > > > >_______________________________________________ >ndnSIM mailing list >ndnSIM at lists.cs.ucla.edu >http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Tue Dec 10 09:41:56 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Tue, 10 Dec 2013 09:41:56 -0800 Subject: [ndnSIM] (no subject) In-Reply-To: <1386669790.92733.YahooMailNeo@web172103.mail.ir2.yahoo.com> References: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> <1386669790.92733.YahooMailNeo@web172103.mail.ir2.yahoo.com> Message-ID: Hi Narjes, I also not sure what do you mean by "globalRouter". If it has anything to do with ndn::GlobalRoutingController, then there isn't such entity. It's just a simulation abstraction to calculate routes, not a simulated node. If it is something else, then you need to explain what exactly you want to do. --- Alex On Dec 10, 2013, at 2:03 AM, narjes aloulou wrote: > Hi, > > I want to send an interest to globalRouter in the method " ForwardingStrategy::TrySendOutInterest " > which face must I use? > > > Le Mardi 10 d?cembre 2013 10h37, Wassim Drira a ?crit : > Hi, > > First, there is no addresses in ndnSim. Interests are sent for names. > Second, what do you mean by gloabalRouter address? > > Regards > > > On Tue, Dec 10, 2013 at 12:27 PM, narjes aloulou wrote: > Hi, > > I want to send an interest to globalRouter from a node. > So, I would know the globalRouter adresse from the Forwarding Strategy Layer (of any node). > Thanks > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From aloulounarjes at yahoo.fr Tue Dec 10 09:56:23 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Tue, 10 Dec 2013 17:56:23 +0000 (GMT) Subject: [ndnSIM] (no subject) In-Reply-To: References: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> <1386669790.92733.YahooMailNeo@web172103.mail.ir2.yahoo.com> Message-ID: <1386698183.98821.YahooMailNeo@web172103.mail.ir2.yahoo.com> Hi Alex, I want? use a centralized node "controller" that have a global? routing table and it can calculate routes. This controller publish the information that it is a controller to all nodes. So each node can asks him about any route. My question : I must use a simple provider and make it as a controller or I must use the ndn::GlobalRoutingController ? Thanks for help? Le Mardi 10 d?cembre 2013 18h42, Alex Afanasyev a ?crit : Hi Narjes, I also not sure what do you mean by "globalRouter".? If it has anything to do with ndn::GlobalRoutingController, then there isn't such entity.? It's just a simulation abstraction to calculate routes, not a simulated node.? If it is something else, then you need to explain what exactly you want to do. --- Alex On Dec 10, 2013, at 2:03 AM, narjes aloulou wrote: > Hi, > > I want to send an interest to globalRouter in the method " ForwardingStrategy::TrySendOutInterest " > which face must I use? > > > Le Mardi 10 d?cembre 2013 10h37, Wassim Drira a ?crit : > Hi, > > First, there is no addresses in ndnSim. Interests are sent for names. > Second, what do you mean by gloabalRouter address? > > Regards > > > On Tue, Dec 10, 2013 at 12:27 PM, narjes aloulou wrote: > Hi, > > I want to send an interest to globalRouter from a node. > So, I would know the globalRouter adresse from the Forwarding Strategy Layer (of any node). > Thanks > > > _______________________________________________ > 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 masri.sahri at gmail.com Tue Dec 10 23:46:44 2013 From: masri.sahri at gmail.com (nor masri sahri) Date: Wed, 11 Dec 2013 16:46:44 +0900 Subject: [ndnSIM] supporting other library? Message-ID: Hi Alex and all, just want to ask whether ndnsim support other addtional library for example matlab etc? Regards, masri.sahri -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Dec 11 11:21:25 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 11 Dec 2013 11:21:25 -0800 Subject: [ndnSIM] supporting other library? In-Reply-To: References: Message-ID: This is not exactly question about ndnSIM. If the library can be "added" to a C++ program (e.g., you know exactly or can detect which compile and link flags to add), then you can do it in NS-3/ndnSIM as well, since it is an ordinary C++ program. However, I remember someone on this list was trying to make matlab work with NS-3 and had some complex problems, but I don't recall the details. --- Alex On Dec 10, 2013, at 11:46 PM, nor masri sahri wrote: > Hi Alex and all, > just want to ask whether ndnsim support other addtional library for example matlab etc? > > Regards, > > masri.sahri From alexander.afanasyev at ucla.edu Wed Dec 11 11:27:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 11 Dec 2013 11:27:57 -0800 Subject: [ndnSIM] (no subject) In-Reply-To: <1386698183.98821.YahooMailNeo@web172103.mail.ir2.yahoo.com> References: <1386667624.54027.YahooMailNeo@web172104.mail.ir2.yahoo.com> <1386669790.92733.YahooMailNeo@web172103.mail.ir2.yahoo.com> <1386698183.98821.YahooMailNeo@web172103.mail.ir2.yahoo.com> Message-ID: Hi Narjes, All of these depends on what exactly you want to simulate. If you want to simulate packet flow to/from a "controller" and evaluate it in some form, then you have to implement your own controller application and applications that need to be installed in all nodes. How exactly you can implement it, it is up to you. In NDN you don't normally have node identifier, unless you assign a name prefix for the node and advertise this prefix somehow. You may use ndn::GlobalRoutingController only if your simulation doesn't really care about how routing is set up and just needs to have valid routes to destination prefixes. --- Alex On Dec 10, 2013, at 9:56 AM, narjes aloulou wrote: > Hi Alex, > > I want use a centralized node "controller" that have a global routing table and it can calculate routes. This controller publish the information that it is a controller to all nodes. So each node can asks him about any route. > > My question : I must use a simple provider and make it as a controller or I must use the ndn::GlobalRoutingController ? > > Thanks for help > > > > Le Mardi 10 d?cembre 2013 18h42, Alex Afanasyev a ?crit : > Hi Narjes, > > I also not sure what do you mean by "globalRouter". If it has anything to do with ndn::GlobalRoutingController, then there isn't such entity. It's just a simulation abstraction to calculate routes, not a simulated node. If it is something else, then you need to explain what exactly you want to do. > > --- > Alex > > On Dec 10, 2013, at 2:03 AM, narjes aloulou wrote: > > > Hi, > > > > I want to send an interest to globalRouter in the method " ForwardingStrategy::TrySendOutInterest " > > which face must I use? > > > > > > Le Mardi 10 d?cembre 2013 10h37, Wassim Drira a ?crit : > > Hi, > > > > First, there is no addresses in ndnSim. Interests are sent for names. > > Second, what do you mean by gloabalRouter address? > > > > Regards > > > > > > On Tue, Dec 10, 2013 at 12:27 PM, narjes aloulou wrote: > > Hi, > > > > I want to send an interest to globalRouter from a node. > > So, I would know the globalRouter adresse from the Forwarding Strategy Layer (of any node). > > Thanks > > > > > > _______________________________________________ > > 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 amin at ac.upc.edu Wed Dec 11 14:05:56 2013 From: amin at ac.upc.edu (Amin Karami) Date: Wed, 11 Dec 2013 23:05:56 +0100 Subject: [ndnSIM] supporting other library? In-Reply-To: References: Message-ID: <52A8E1C4.10004@ac.upc.edu> Hi, I tried too much for adding MATLAB engine into nsnSIM environment to make an integration between them. Unfortunately, my efforts were without result. I am not 100% sure, but i am sure 99.999% that it is not possible. The solution is that, convert your matlab code to c/c++ by matlab compiler, then call them into ndnSIM scenarios. I did this job and could integrate successfully my matlab application and ndnSIM. Good luck! Amin On 12/11/2013 08:21 ?.?, Alex Afanasyev wrote: > This is not exactly question about ndnSIM. If the library can be "added" to a C++ program (e.g., you know exactly or can detect which compile and link flags to add), then you can do it in NS-3/ndnSIM as well, since it is an ordinary C++ program. > > However, I remember someone on this list was trying to make matlab work with NS-3 and had some complex problems, but I don't recall the details. > > --- > Alex > > On Dec 10, 2013, at 11:46 PM, nor masri sahri wrote: > >> Hi Alex and all, >> just want to ask whether ndnsim support other addtional library for example matlab etc? >> >> Regards, >> >> masri.sahri > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From masri.sahri at gmail.com Wed Dec 11 15:36:27 2013 From: masri.sahri at gmail.com (Nor Masri Sahri) Date: Thu, 12 Dec 2013 08:36:27 +0900 Subject: [ndnSIM] supporting other library? In-Reply-To: <52A8E1C4.10004@ac.upc.edu> References: <52A8E1C4.10004@ac.upc.edu> Message-ID: <5491E948-DC67-4241-81B5-70885269F1F6@gmail.com> Thanks to all for the info and howto. Really appreciate you guys Sent from my iPhone > On 2013/12/12, at 7:05, Amin Karami wrote: > > Hi, > I tried too much for adding MATLAB engine into nsnSIM environment to make an integration between them. Unfortunately, my efforts were without result. I am not 100% sure, but i am sure 99.999% that it is not possible. The solution is that, convert your matlab code to c/c++ by matlab compiler, then call them into ndnSIM scenarios. > I did this job and could integrate successfully my matlab application and ndnSIM. > > > Good luck! > Amin > >> On 12/11/2013 08:21 ?.?, Alex Afanasyev wrote: >> This is not exactly question about ndnSIM. If the library can be "added" to a C++ program (e.g., you know exactly or can detect which compile and link flags to add), then you can do it in NS-3/ndnSIM as well, since it is an ordinary C++ program. >> >> However, I remember someone on this list was trying to make matlab work with NS-3 and had some complex problems, but I don't recall the details. >> >> --- >> Alex >> >>> On Dec 10, 2013, at 11:46 PM, nor masri sahri wrote: >>> >>> Hi Alex and all, >>> just want to ask whether ndnsim support other addtional library for example matlab etc? >>> >>> Regards, >>> >>> masri.sahri >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From htunhtunu at gmail.com Wed Dec 11 22:56:11 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Thu, 12 Dec 2013 15:56:11 +0900 Subject: [ndnSIM] Extension of Nack packet Message-ID: Dear Alex, I would like to try an idea for responding whenever Data packet received as in the scenario. Data Packet flow ::Consumer <-------R1<-----------R2<--------------Producer ACK-Data :: Consumer ------->R1----------->R2-------------->Producer For this purpose, I need to create a new packet, just a name, ACK-Data. As my understanding, it is similar like nack and I try to implement this packet as an extension of nack. Firstly, I prepared it as nack type and then I tried with following code OnData (Ptrface, Ptrdata) { Ptr name = Create(data->GetName ()); Ptr ack= Create (); ack->SetNack (Interest::ACK_Data); ack->SetName (name); face->SendInterest (ack); } When running, it doesn't receive the reply packet. I am not confidence about the coding and could you give me a kindly guidance? Thanks you Sincerely yours TUN -------------- next part -------------- An HTML attachment was scrubbed... URL: From cheewii126 at gmail.com Thu Dec 12 00:32:23 2013 From: cheewii126 at gmail.com (Quan Wei) Date: Thu, 12 Dec 2013 16:32:23 +0800 Subject: [ndnSIM] =?gb2312?b?SG93IHRvIGFkZCBMVEUgbW9kdWxlIGludG8gbmRuc2lt?= =?gb2312?b?LWNhcjJjYXKjvw==?= Message-ID: Dear Alex, We have tried to add Lte interface into the Car node based on the ndnsim-car2car sources. In detail, we modified the car-relay.cc by adding the head files: ------------------------------------------------------- #include "ns3/lte-module.h" #include "ns3/lte-helper.h" ------------------------------------------------------- and the create LTE object codes: ------------------------------------------------------------------------------------------ Ptr lteHelper = CreateObject (); NetDeviceContainer ueDevs = lteHelper->InstallUeDevice (nodes);. ------------------------------------------------------------------------------------------ When we conduct the "./waf", it shows the following errors: ---------------------------------------------------------------------------------------------- [11/11] cxxprogram: build/scenarios/car-relay.cc.3.o build/extensions/car-relay-tracer.cc.1.o build/extensions/custom-constant-velocity-mobility-model.cc.1.o build/extensions/geo-tag.cc.1.o build/extensions/highway-position-allocator.cc.1.o build/extensions/ndn-fw-v2v.cc.1.o build/extensions/ndn-v2v-net-device-face.cc.1.o build/extensions/v2v-tracer.cc.1.o -> build/car-relay scenarios/car-relay.cc.3.o: In function `CreateObject': /usr/local/include/ns3-dev/ns3/object.h:393: undefined reference to `ns3::LteHelper::LteHelper()' scenarios/car-relay.cc.3.o: In function `CompleteConstruct': /usr/local/include/ns3-dev/ns3/object.h:385: undefined reference to `ns3::LteHelper::GetTypeId()' scenarios/car-relay.cc.3.o: In function `main': /home/cheewii/ndnSIM/ndnSIM-nom-rapid-car2car/build/../scenarios/car-relay.cc:166: undefined reference to `ns3::LteHelper::InstallUeDevice(ns3::NodeContainer)' collect2: error: ld returned 1 exit status Waf: Leaving directory `/home/cheewii/ndnSIM/ndnSIM-nom-rapid-car2car/build' -------------------------------------------------------------------------------- It seems that the compiling is finished but there are some problems in the linking process with lte module, is it right? How can we reslove this problem? Thank you very much. cheewii -------------- next part -------------- An HTML attachment was scrubbed... URL: From htunhtunu at gmail.com Sun Dec 15 03:14:58 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Sun, 15 Dec 2013 20:14:58 +0900 Subject: [ndnSIM] Print Queue Length Message-ID: Dear Alex, By following the question of Print Queue Length from Amin Karamil( http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-December/000995.html), I tried by setting the ConsumerCbr to 1000 per second while bottleneck capacity is only 1 Mbps and queue size to 300 pkts. I print out GetNPackets () for every 0.01 sec but I didn't see any output from it.I mean it is always zero. I asked same question to Amin and he replied as same situation and advised me for requesting you. Thanks you Sincerely yours TUN -------------- next part -------------- An HTML attachment was scrubbed... URL: From i.liyanage at surrey.ac.uk Sun Dec 15 10:17:14 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Sun, 15 Dec 2013 18:17:14 +0000 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy Message-ID: Hi, In ndn-forwading-strategy.h, I declared variable. std::set m_allowCS; and tried to access in one of the applications by following code Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix"); forwardingstat->m_allowCS.insert(*inName); This compiles fine. but once I run this, simulator exit without any output. Could you point out what's wrong. Many Thanks, Isuru -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioannoa at scss.tcd.ie Mon Dec 16 11:10:23 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Mon, 16 Dec 2013 19:10:23 -0000 Subject: [ndnSIM] additional fields in an interest Message-ID: <617c99b90d1b73c291f84f02975496f0.squirrel@webmail.scss.tcd.ie> hello everyone, I have previously used ndnsim code for my simulations but as accidents do happen i now need to re-implement my stuff in the new one! Fun! So, the thing is i had some additional fields in the interest and the content object but now it seems that the classes have changed and i have no idea how to go through it. What happened to the content object class and why is the file of this implementation empty? At the moment i only tried to add a filed in interest.h and interested.cc but i am getting a message of : ../src/ndnSIM/model/ndn-interest.h:249: warning: ?ns3::ndn::Interest::m_dcValue? will be initialized after at the constructor where i have: Interest::Interest (Ptr payload/* = Create ()*/) : m_name () , m_scope (0xFF) , m_interestLifetime (Seconds (0)) , m_nonce (0) , m_dcValue (0) , m_nackType (NORMAL_INTEREST) , m_exclude (0) , m_payload (payload) , m_wire (0) { if (m_payload == 0) // just in case { m_payload = Create (); } } Could someone advice how to deal with it or if i could find the old version of the code which i am more familiar with to work? Kind regards, Andriana. From alexander.afanasyev at ucla.edu Mon Dec 16 11:16:57 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 16 Dec 2013 11:16:57 -0800 Subject: [ndnSIM] additional fields in an interest In-Reply-To: <617c99b90d1b73c291f84f02975496f0.squirrel@webmail.scss.tcd.ie> References: <617c99b90d1b73c291f84f02975496f0.squirrel@webmail.scss.tcd.ie> Message-ID: <842D21E5-781F-4C63-B23E-74718552F25D@ucla.edu> Hi Andriana, There were several "major" changes with the code relatively recently. One thing is that content object was renamed to "Data", so you can find all the relevant code in model/ndn-data.h|cc files. As for the warning you're getting. This is about initialization order of member variables. In C++ they are initialized in the order they are declared, not in the order you specified in the constructor. In your case it doesn't matter, but the compiler is over-paranoid and is "suggesting" to correct either definition (put definition of m_dcValue between m_nonce and m_nackType) or the constructor. --- Alex On Dec 16, 2013, at 11:10 AM, ioannoa at scss.tcd.ie wrote: > hello everyone, > > I have previously used ndnsim code for my simulations but as accidents do > happen i now need to re-implement my stuff in the new one! Fun! > > So, the thing is i had some additional fields in the interest and the > content object but now it seems that the classes have changed and i have > no idea how to go through it. > > What happened to the content object class and why is the file of this > implementation empty? > > At the moment i only tried to add a filed in interest.h and interested.cc > but i am getting a message of : > > ../src/ndnSIM/model/ndn-interest.h:249: warning: > ?ns3::ndn::Interest::m_dcValue? will be initialized after > at the constructor where i have: > > > Interest::Interest (Ptr payload/* = Create ()*/) > : m_name () > , m_scope (0xFF) > , m_interestLifetime (Seconds (0)) > , m_nonce (0) > , m_dcValue (0) > , m_nackType (NORMAL_INTEREST) > , m_exclude (0) > , m_payload (payload) > , m_wire (0) > { > if (m_payload == 0) // just in case > { > m_payload = Create (); > } > } > > Could someone advice how to deal with it or if i could find the old > version of the code which i am more familiar with to work? > > Kind regards, > Andriana. > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Mon Dec 16 11:26:25 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 16 Dec 2013 11:26:25 -0800 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: References: Message-ID: <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> Is it just terminates without any output or terminates with an error? If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, ./waf --run --command-template 'gdb --args %s' --- Alex On Dec 15, 2013, at 10:17 AM, wrote: > Hi, > > In ndn-forwading-strategy.h, I declared variable. > std::set m_allowCS; > > and tried to access in one of the applications by following code > Ptr forwardingstat = GetNode()->GetObject(); > Ptr inName = Create ("/prefix"); > forwardingstat->m_allowCS.insert(*inName); > > This compiles fine. > but once I run this, simulator exit without any output. Could you point out what's wrong. > > Many Thanks, > Isuru > _______________________________________________ > 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 i.liyanage at surrey.ac.uk Mon Dec 16 11:43:14 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Mon, 16 Dec 2013 19:43:14 +0000 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> Message-ID: <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com> Hi Alex, It terminates without anything once I click the simulate button. I will try with the debugger as well. Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. Many Thanks, Isuru ________________________________ From: Alexander Afanasyev on behalf of Alex Afanasyev Sent: 16 December 2013 19:26 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Is it just terminates without any output or terminates with an error? If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, ./waf --run --command-template 'gdb --args %s' --- Alex On Dec 15, 2013, at 10:17 AM, > > wrote: Hi, In ndn-forwading-strategy.h, I declared variable. std::set m_allowCS; and tried to access in one of the applications by following code Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix"); forwardingstat->m_allowCS.insert(*inName); This compiles fine. but once I run this, simulator exit without any output. Could you point out what's wrong. Many Thanks, Isuru _______________________________________________ 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 Dec 16 11:47:44 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 16 Dec 2013 11:47:44 -0800 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com> References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com> Message-ID: Hi Isuru, Are you running simulation in the visualizer? Try to run without it and in debug mode (in case you have compiled with ./waf configure -d optimized, re-compile with ./waf configure -d debug or just ./waf configure). The variable declaration seems right. The problem that I could think of is that you're trying to use it in application's constructor, when neither Node() nor strategy objects are not yet set. Btw. What the effect you're trying to achieve? Normally (in "real world") applications cannot directly communicate with the forwarding daemon. Or is it something that is simulation-specific? --- Alex On Dec 16, 2013, at 11:43 AM, wrote: > Hi Alex, > > It terminates without anything once I click the simulate button. > I will try with the debugger as well. > > Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. > > Many Thanks, > Isuru > From: Alexander Afanasyev on behalf of Alex Afanasyev > Sent: 16 December 2013 19:26 > To: Liyanage IU Mr (PG/R - Electronic Eng) > Cc: ndnsim > Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy > > Is it just terminates without any output or terminates with an error? > > If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, > > ./waf --run --command-template 'gdb --args %s' > > --- > Alex > > On Dec 15, 2013, at 10:17 AM, wrote: > >> Hi, >> >> In ndn-forwading-strategy.h, I declared variable. >> std::set m_allowCS; >> >> and tried to access in one of the applications by following code >> Ptr forwardingstat = GetNode()->GetObject(); >> Ptr inName = Create ("/prefix"); >> forwardingstat->m_allowCS.insert(*inName); >> >> This compiles fine. >> but once I run this, simulator exit without any output. Could you point out what's wrong. >> >> Many Thanks, >> Isuru >> _______________________________________________ >> 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 Mon Dec 16 11:53:42 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 16 Dec 2013 11:53:42 -0800 Subject: [ndnSIM] Print Queue Length In-Reply-To: References: Message-ID: What are the delays on your links? If delays are small, you basically don't have any queueing at all, since everything is getting through without being enqueued. Also. To have queues build up, you have to ensure that demands exceeds supply on the node in question. Do you have that? --- Alex On Dec 15, 2013, at 3:14 AM, Tun Tun Oo wrote: > Dear Alex, > > By following the question of Print Queue Length from Amin Karamil(http://www.lists.cs.ucla.edu/pipermail/ndnsim/2013-December/000995.html), I tried by setting the ConsumerCbr to 1000 per second while bottleneck capacity is only 1 Mbps and queue size to 300 pkts. > I print out GetNPackets () for every 0.01 sec but I didn't see any output from it.I mean it is always zero. I asked same question to Amin and he replied as same situation and advised me for requesting you. > > Thanks you > > Sincerely yours > TUN -------------- next part -------------- An HTML attachment was scrubbed... URL: From i.liyanage at surrey.ac.uk Mon Dec 16 12:37:29 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Mon, 16 Dec 2013 20:37:29 +0000 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com>, Message-ID: Hi Alex, I compiled without the -d optimized and ran without the visualizer. Then it just compile and nothing is displayed in the terminal. I entered the code in StartApplication() function. I was trying to build a collaborative caching application. Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix/thisfix/"); forwardingstat->addAllowCS(inName); If I comment out the third line(line in red) it works fine. Many Thanks, Isuru ________________________________ From: Alexander Afanasyev on behalf of Alex Afanasyev Sent: 16 December 2013 19:47 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Hi Isuru, Are you running simulation in the visualizer? Try to run without it and in debug mode (in case you have compiled with ./waf configure -d optimized, re-compile with ./waf configure -d debug or just ./waf configure). The variable declaration seems right. The problem that I could think of is that you're trying to use it in application's constructor, when neither Node() nor strategy objects are not yet set. Btw. What the effect you're trying to achieve? Normally (in "real world") applications cannot directly communicate with the forwarding daemon. Or is it something that is simulation-specific? --- Alex On Dec 16, 2013, at 11:43 AM, > > wrote: Hi Alex, It terminates without anything once I click the simulate button. I will try with the debugger as well. Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. Many Thanks, Isuru ________________________________ From: Alexander Afanasyev > on behalf of Alex Afanasyev > Sent: 16 December 2013 19:26 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Is it just terminates without any output or terminates with an error? If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, ./waf --run --command-template 'gdb --args %s' --- Alex On Dec 15, 2013, at 10:17 AM, > > wrote: Hi, In ndn-forwading-strategy.h, I declared variable. std::set m_allowCS; and tried to access in one of the applications by following code Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix"); forwardingstat->m_allowCS.insert(*inName); This compiles fine. but once I run this, simulator exit without any output. Could you point out what's wrong. Many Thanks, Isuru _______________________________________________ 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 Mon Dec 16 13:30:02 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Mon, 16 Dec 2013 13:30:02 -0800 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com>, Message-ID: Hi Isuru, I have tried to follow your implementation (added set container in the forwarding strategy and the added a prefix in StartApplication). Everything worked as expected. If you can share your code, I can try to run it and see what is wrong. Btw. What are you expecting to see on the terminal? --- Alex On Dec 16, 2013, at 12:37 PM, wrote: > Hi Alex, > > I compiled without the -d optimized and ran without the visualizer. > Then it just compile and nothing is displayed in the terminal. > > I entered the code in StartApplication() function. > > I was trying to build a collaborative caching application. > > Ptr forwardingstat = GetNode()->GetObject(); > Ptr inName = Create ("/prefix/thisfix/"); > forwardingstat->addAllowCS(inName); > > If I comment out the third line(line in red) it works fine. > > Many Thanks, > Isuru > From: Alexander Afanasyev on behalf of Alex Afanasyev > Sent: 16 December 2013 19:47 > To: Liyanage IU Mr (PG/R - Electronic Eng) > Cc: ndnsim > Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy > > Hi Isuru, > > Are you running simulation in the visualizer? Try to run without it and in debug mode (in case you have compiled with ./waf configure -d optimized, re-compile with ./waf configure -d debug or just ./waf configure). > > The variable declaration seems right. The problem that I could think of is that you're trying to use it in application's constructor, when neither Node() nor strategy objects are not yet set. > > Btw. What the effect you're trying to achieve? Normally (in "real world") applications cannot directly communicate with the forwarding daemon. Or is it something that is simulation-specific? > > --- > Alex > > On Dec 16, 2013, at 11:43 AM, wrote: > >> Hi Alex, >> >> It terminates without anything once I click the simulate button. >> I will try with the debugger as well. >> >> Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. >> >> Many Thanks, >> Isuru >> From: Alexander Afanasyev on behalf of Alex Afanasyev >> Sent: 16 December 2013 19:26 >> To: Liyanage IU Mr (PG/R - Electronic Eng) >> Cc: ndnsim >> Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy >> >> Is it just terminates without any output or terminates with an error? >> >> If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, >> >> ./waf --run --command-template 'gdb --args %s' >> >> --- >> Alex >> >> On Dec 15, 2013, at 10:17 AM, wrote: >> >>> Hi, >>> >>> In ndn-forwading-strategy.h, I declared variable. >>> std::set m_allowCS; >>> >>> and tried to access in one of the applications by following code >>> Ptr forwardingstat = GetNode()->GetObject(); >>> Ptr inName = Create ("/prefix"); >>> forwardingstat->m_allowCS.insert(*inName); >>> >>> This compiles fine. >>> but once I run this, simulator exit without any output. Could you point out what's wrong. >>> >>> Many Thanks, >>> Isuru >>> _______________________________________________ >>> 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 masri.sahri at gmail.com Mon Dec 16 21:32:08 2013 From: masri.sahri at gmail.com (nor masri sahri) Date: Tue, 17 Dec 2013 14:32:08 +0900 Subject: [ndnSIM] segmentation In-Reply-To: <04A3ADD9-05F1-4AA8-AA17-E016AE13D242@ucla.edu> References: <88FAA69C-4DF9-4A4D-99D8-DD6BA98D6D23@ucla.edu> <04A3ADD9-05F1-4AA8-AA17-E016AE13D242@ucla.edu> Message-ID: hi alex and all, let me explain my project scenario. I wanted to have all the packet of a file is in the Producer buffer/cache. for example, let say file A consist of 100 chunks and all the chunks of the content object (namely /prefix0, /prefix1,,,,/prefix99) is already in the cache of Producer node, so when consumer send interest for content object name /prefix, Producer will reply directly from his cache. I really have no idea on this (relatively new user), please give me suggestion on this matter. thank you On Tue, Nov 19, 2013 at 3:48 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Masri, > > If I understand correctly, you want to do some kind of "prefetching"/Data > "pre-publishing". What you can do is to enable unrestrictive caching from > local applications using *CacheUnsolicitedDataFromApps* attribute. > > Config::SetDefault("ns3::ndn::ForwardingStrategy::CacheUnsolicitedDataFromApps", > BooleanValue(true)); > > After that, you can simply "publish" any number of data packets into local > node's cache as a response to the incoming Interests; and any further > Interests for the published Data will be answered directly from the cache. > > Would that work for you? > > --- > Alex > > On Nov 17, 2013, at 4:45 PM, nor masri sahri > wrote: > > hi alex, thank you for the clarification. > need idea from sifu Alex ;) > 1. i plan to break packets into segment. > default size of payload is 1024 and i plan to break into 4 packets BUT > named in one segment. For example, /prefix 0 to /prefix 4 is named under > Segment 1. When Consumer send FIRST Interest , it will fetch the segment > name (in this case Segment 1, and Producer will reply packet /prefix 0 to > /prefix 4, 256 bytes each). And the following Interest will fetch Segment 2 > and so on. > Can you give some advice on how to do this, your help is really > appreciated. > > > > On Fri, Nov 15, 2013 at 1:41 AM, Alex Afanasyev < > alexander.afanasyev at ucla.edu> wrote: > >> Hi Masri, >> >> You're seeing the correct behavior. The consumer application explicitly >> requests (as it is done in majority cases in NDN) specific Data packets, >> which can be interpreted as a part of a large content. >> >> Another small comment. None of the implemented consumer applications in >> ndnSIM wait for the arrival of Data before sending another Interest. >> Instead, the number of sent interest is controlled either by rate >> (ConsumerCbr) or "outstanding Interest window" (ConsumerWindow). >> >> --- >> Alex >> >> On Nov 12, 2013, at 9:54 PM, nor masri sahri >> wrote: >> >> hi alex and all, >> correct me if i am wrong about my interpretation. >> from the example file (ndn-simple.cc), i just did simple rule to set >> maximum number of prefix to be requested (i set to max = 200) to see how it >> works.(assuming the size of /prefix name file is consist of 200 segment) >> >> 1. consumer send interest for data name /prefix >> 2. Producer will reply /prefix 0 (part or chunk or segment of /prefix >> named file) >> 3. when consumer receive /prefix 0, consumer will send another interest >> for the same file name (/prefix) >> 4. producer will reply /prefix 1 since that is the sequence number for >> the complete named data of /prefix >> >> im quite confused when i see the ns log file >> >> 0s 0 ndn.Consumer:SendPacket() >> 0s 0 ndn.Consumer:SendPacket(): [INFO ] > Interest for 0 >> 0s 0 ndn.Consumer:WillSendOutInterest(): [DEBUG] Trying to add 0 with >> +0.0ns. already 0 items >> 0.020496s 2 ndn.Producer:OnInterest(0x8c01308, 0x8c0db70) >> 0.020496s 2 ndn.Producer:OnInterest(): [INFO ] node(2) respodning with >> Data: /prefix/%00 >> 0.057472s 0 ndn.Consumer:OnData(0x8c00d38, 0x8c0d260) >> 0.057472s 0 ndn.Consumer:OnData(): [INFO ] < DATA for 0 >> 0.1s 0 ndn.Consumer:SendPacket() >> 0.1s 0 ndn.Consumer:SendPacket(): [INFO ] > Interest for 1 >> 0.1s 0 ndn.Consumer:WillSendOutInterest(): [DEBUG] Trying to add 1 with >> +100000000.0ns. already 0 items >> 0.120512s 2 ndn.Producer:OnInterest(0x8c01308, 0x8c0f7f0) >> 0.120512s 2 ndn.Producer:OnInterest(): [INFO ] node(2) respodning with >> Data: /prefix/%00%01 >> 0.157504s 0 ndn.Consumer:OnData(0x8c00d38, 0x8c0f5b0) >> 0.157504s 0 ndn.Consumer:OnData(): [INFO ] < DATA for 1 >> >> Is Consumer request specifically for /prefix 0 at the first time and when >> he get the data, the consumer send another interest for next data which is >> /prefix 1? >> >> In this scenario, it is presumed that the size of /prefix is max 200 >> segment. >> >> >> Sorry about my question, little confused. >> >> I am planning to do research on window on NDNsim. Need advice. Many thanks >> >> >> >> -- >> Regards, >> >> masri.sahri >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> >> > > > -- > Regards, > > masri.sahri > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > -- Regards, masri.sahri -------------- next part -------------- An HTML attachment was scrubbed... URL: From i.liyanage at surrey.ac.uk Tue Dec 17 05:02:14 2013 From: i.liyanage at surrey.ac.uk (i.liyanage at surrey.ac.uk) Date: Tue, 17 Dec 2013 13:02:14 +0000 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com>, , Message-ID: <9531a96d49cb4e289b6d37e23604a50d@DB4PR06MB224.eurprd06.prod.outlook.com> Hi Alex, I tried writing the code in ndnSIM/apps folder and it worked fine. But when I use the same code in scenario folder (used scenario template of yours) it fails as i mentioned. It must be something regarded to the scenario template..... As if I include the file "ns3/ndn-forwarding-strategy.h" it says my variable(set container) is not defined, ../extensions/testsimple.cc:109:19: error: ?class ns3::ndn::ForwardingStrategy? has no member named ?m_allowCS? so I have to include the complete path to the above header file. Then it compiles fine. but end abruptly. In the terminal I just want to confirm whether the program works by looking at the log messages. I attached the following files which I modified. ../scenario/extensions/testsimple.h - modified from ndn-producer ../scenario/extensions/testsimple.cc ../scenario/scenarios/simple.cc - modified from ndn-simple ndnSIM/model/fw/ndn-forwarding-strategy.h ndnSIM/model/fw/ndn-forwarding-strategy.cc Many Thanks, Isuru ________________________________ From: Alexander Afanasyev on behalf of Alex Afanasyev Sent: 16 December 2013 21:30 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Hi Isuru, I have tried to follow your implementation (added set container in the forwarding strategy and the added a prefix in StartApplication). Everything worked as expected. If you can share your code, I can try to run it and see what is wrong. Btw. What are you expecting to see on the terminal? ---s Alex On Dec 16, 2013, at 12:37 PM, > > wrote: Hi Alex, I compiled without the -d optimized and ran without the visualizer. Then it just compile and nothing is displayed in the terminal. I entered the code in StartApplication() function. I was trying to build a collaborative caching application. Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix/thisfix/"); forwardingstat->addAllowCS(inName); If I comment out the third line(line in red) it works fine. Many Thanks, Isuru ________________________________ From: Alexander Afanasyev > on behalf of Alex Afanasyev > Sent: 16 December 2013 19:47 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Hi Isuru, Are you running simulation in the visualizer? Try to run without it and in debug mode (in case you have compiled with ./waf configure -d optimized, re-compile with ./waf configure -d debug or just ./waf configure). The variable declaration seems right. The problem that I could think of is that you're trying to use it in application's constructor, when neither Node() nor strategy objects are not yet set. Btw. What the effect you're trying to achieve? Normally (in "real world") applications cannot directly communicate with the forwarding daemon. Or is it something that is simulation-specific? --- Alex On Dec 16, 2013, at 11:43 AM, > > wrote: Hi Alex, It terminates without anything once I click the simulate button. I will try with the debugger as well. Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. Many Thanks, Isuru ________________________________ From: Alexander Afanasyev > on behalf of Alex Afanasyev > Sent: 16 December 2013 19:26 To: Liyanage IU Mr (PG/R - Electronic Eng) Cc: ndnsim Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy Is it just terminates without any output or terminates with an error? If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, ./waf --run --command-template 'gdb --args %s' --- Alex On Dec 15, 2013, at 10:17 AM, > > wrote: Hi, In ndn-forwading-strategy.h, I declared variable. std::set m_allowCS; and tried to access in one of the applications by following code Ptr forwardingstat = GetNode()->GetObject(); Ptr inName = Create ("/prefix"); forwardingstat->m_allowCS.insert(*inName); This compiles fine. but once I run this, simulator exit without any output. Could you point out what's wrong. Many Thanks, Isuru _______________________________________________ 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: ndn-forwarding-strategy.cc Type: text/x-c++src Size: 19070 bytes Desc: ndn-forwarding-strategy.cc URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ndn-forwarding-strategy.h Type: text/x-chdr Size: 17571 bytes Desc: ndn-forwarding-strategy.h URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: testsimple.cc Type: text/x-c++src Size: 5359 bytes Desc: testsimple.cc URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: testsimple.h Type: text/x-chdr Size: 2074 bytes Desc: testsimple.h URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: simple.cc Type: text/x-c++src Size: 3315 bytes Desc: simple.cc URL: From aloulounarjes at yahoo.fr Tue Dec 17 05:42:11 2013 From: aloulounarjes at yahoo.fr (narjes aloulou) Date: Tue, 17 Dec 2013 13:42:11 +0000 (GMT) Subject: [ndnSIM] Interest Extension Message-ID: <1387287731.33552.YahooMailNeo@web172104.mail.ir2.yahoo.com> Hi Alex and ndn-sim users, I want to add a field in the Interest, however this field may be sometimes empty. So, I must use another class that extends ??Interest?? class or I just add a new NackType?? Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From Mohammad.Hovaidi.Ardestani at aalto.fi Tue Dec 17 09:07:03 2013 From: Mohammad.Hovaidi.Ardestani at aalto.fi (Mohammad) Date: Tue, 17 Dec 2013 19:07:03 +0200 Subject: [ndnSIM] Link Throughput Message-ID: <000001cefb4a$6b5ad670$42108350$@aalto.fi> Hello everyone! Does anybody know how I can calculate the link throughput in ndnSIM scenarios? -Mohammad -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioannoa at scss.tcd.ie Tue Dec 17 11:33:38 2013 From: ioannoa at scss.tcd.ie (ioannoa at scss.tcd.ie) Date: Tue, 17 Dec 2013 19:33:38 -0000 Subject: [ndnSIM] Change of interest in forwarding class Message-ID: hello everyone, I am trying to update my interest along the forwarding path by including an additional field on it. The value changes in the TrySendOutInterest function using the copy Interest constructor, the value is called dcValue: //---------------------------------------------------------- Interest::Interest (const Interest &interest)//(+) : m_name (Create (interest.GetName ())) , m_scope (interest.m_scope) , m_interestLifetime (interest.m_interestLifetime) , m_nonce (interest.m_nonce) , m_dcValue (interest.dcValue)//(+) , m_nackType (interest.m_nackType) , m_exclude (interest.m_exclude ? Create (*interest.GetExclude ()) : 0) , m_payload (interest.GetPayload ()->Copy ()) , m_wire (0) { NS_LOG_FUNCTION ("correct copy constructor with dc value"); } //---------------------------------------------------------- My TrySendOutInterest is listed below: //---------------------------------------------------------- bool ForwardingStrategy::TrySendOutInterest (Ptr inFace, Ptr outFace, Ptr interest, Ptr pitEntry) { if (!CanSendOutInterest (inFace, outFace, interest, pitEntry)) { return false; } pitEntry->AddOutgoing (outFace); Ptr node = m_pit->GetObject (); bool successSend = false; Ptr new_interest; //transmission if (((int)interest->GetDcValue()) < ((int) numberOfNeighbors(node))) { new_interest->SetDcValue(numberOfNeighbors(node)); new_interest->SetNonce (1000);//(+) ------- successSend = outFace->SendInterest (new_interest); } else { new_interest = Create (*interest); successSend = outFace->SendInterest (new_interest); } if (!successSend) { m_dropInterests (interest, outFace); } DidSendOutInterest (inFace, outFace, new_interest, pitEntry); return true; //---------------------------------------------------------- The issue is that every time the Interest comes on the next node the additional value (of dc) is not updated but is equal to zero as stated in the Interest constructor. Why is not the update propagated to the next node? What is that i am missing? I checked the interest nonce in order to verify that the copy constructor works ok. The nonce value is updated and propagated as required - changed - at the next node but not the dcValue one. In the Interest classes i have only stated the SetDcValue and GetDcValue functions as well as including the dcValue in the constructor. I haven't though changed any other functions, maybe this is sty required to do? Any help? Kind regards, Andriana. From fab.batta at gmail.com Tue Dec 17 16:33:51 2013 From: fab.batta at gmail.com (fabrizio saponaro) Date: Wed, 18 Dec 2013 01:33:51 +0100 Subject: [ndnSIM] pit entry size Message-ID: Hi Alex, is there a way to know how many bytes occupies an entry-pit? I need this in my forwarding strategy (still empty), because I want to know how many bytes of PIT are used by interests arrived on a specific interface. I thought to use in my OnInterest(face,interest): Ptr pitEntry = m_pit->Lookup (*interest); and a method that returns the entry-pit size in bytes, but there isn't. Is there another method? Best regards, Fabrizio -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Dec 18 12:57:34 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 12:57:34 -0800 Subject: [ndnSIM] =?utf-8?q?How_to_add_LTE_module_into_ndnsim-car2car?= =?utf-8?b?77yf?= In-Reply-To: References: Message-ID: <82B95C4F-8528-41CD-BB8A-EECF7AF869AB@ucla.edu> Hi Quan, You may want to edit wscript file (line 64) and add lte to the list of NS-3 modules that the scenario requires. This way, the scenario will be linked to LTE module as well and you should not get the compilation error. --- Alex On Dec 12, 2013, at 12:32 AM, Quan Wei wrote: > Dear Alex, > > We have tried to add Lte interface into the Car node based on the ndnsim-car2car sources. > > In detail, we modified the car-relay.cc by adding the head files: > ------------------------------------------------------- > #include "ns3/lte-module.h" > #include "ns3/lte-helper.h" > ------------------------------------------------------- > > and the create LTE object codes: > ------------------------------------------------------------------------------------------ > Ptr lteHelper = CreateObject (); > NetDeviceContainer ueDevs = lteHelper->InstallUeDevice (nodes);. > ------------------------------------------------------------------------------------------ > > When we conduct the "./waf", it shows the following errors: > ---------------------------------------------------------------------------------------------- > [11/11] cxxprogram: build/scenarios/car-relay.cc.3.o build/extensions/car-relay-tracer.cc.1.o build/extensions/custom-constant-velocity-mobility-model.cc.1.o build/extensions/geo-tag.cc.1.o build/extensions/highway-position-allocator.cc.1.o build/extensions/ndn-fw-v2v.cc.1.o build/extensions/ndn-v2v-net-device-face.cc.1.o build/extensions/v2v-tracer.cc.1.o -> build/car-relay > scenarios/car-relay.cc.3.o: In function `CreateObject': > /usr/local/include/ns3-dev/ns3/object.h:393: undefined reference to `ns3::LteHelper::LteHelper()' > scenarios/car-relay.cc.3.o: In function `CompleteConstruct': > /usr/local/include/ns3-dev/ns3/object.h:385: undefined reference to `ns3::LteHelper::GetTypeId()' > scenarios/car-relay.cc.3.o: In function `main': > /home/cheewii/ndnSIM/ndnSIM-nom-rapid-car2car/build/../scenarios/car-relay.cc:166: undefined reference to `ns3::LteHelper::InstallUeDevice(ns3::NodeContainer)' > collect2: error: ld returned 1 exit status > Waf: Leaving directory `/home/cheewii/ndnSIM/ndnSIM-nom-rapid-car2car/build' > -------------------------------------------------------------------------------- > > It seems that the compiling is finished but there are some problems in the linking process with lte module, is it right? > > How can we reslove this problem? > > Thank you very much. > > cheewii > > > > > > > > > > > > > > > > > _______________________________________________ > 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 Dec 18 13:08:10 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:08:10 -0800 Subject: [ndnSIM] pit entry size In-Reply-To: References: Message-ID: <138EFAD7-67B4-4B7C-9F01-E92AAF4FE318@ucla.edu> Hi Fabrizio, It may be hard to estimate size in bytes of a PIT entry itself, since it has more other things than just an interest packet and it depends on a particular implementation how much these "other" thing are taking. If you want to know just the size of the Interest that is associated with the PIT entry, than it is possible. pitEntry->GetInterest()->GetWire()->GetSize(); will give you size in bytes of the associated interest. --- Alex On Dec 17, 2013, at 4:33 PM, fabrizio saponaro wrote: > Hi Alex, > > is there a way to know how many bytes occupies an entry-pit? > I need this in my forwarding strategy (still empty), because I want to know how many bytes of PIT are used by interests arrived on a specific interface. > I thought to use in my OnInterest(face,interest): > Ptr pitEntry = m_pit->Lookup (*interest); > and a method that returns the entry-pit size in bytes, but there isn't. Is there another method? > > Best regards, > Fabrizio From alexander.afanasyev at ucla.edu Wed Dec 18 13:11:41 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:11:41 -0800 Subject: [ndnSIM] Change of interest in forwarding class In-Reply-To: References: Message-ID: <193A4DF5-DBA8-4452-9826-1E6E4051FE7F@ucla.edu> Hi Andriana, Updating ndn::Interest abstraction is not enough, since it is only abstraction and whenever Interest is send out to another node it gets serialized to the wire format and then deserialized to the abstraction on the other node. What you need is to amend ndnSIM packet format, in terms of defining how exactly your new fields fits into the packet and in terms of implementing this change. In particular, assuming you're using the default packet format, you need to update Interest::GetSerializedSize, Interest::Serialize, and Interest::Deserialize methods in https://github.com/NDN-Routing/ndnSIM/blob/master/model/wire/ndnsim.cc#L102. --- Alex On Dec 17, 2013, at 11:33 AM, ioannoa at scss.tcd.ie wrote: > hello everyone, > > I am trying to update my interest along the forwarding path by including > an additional field on it. The value changes in the TrySendOutInterest > function using the copy Interest constructor, the value is called dcValue: > //---------------------------------------------------------- > Interest::Interest (const Interest &interest)//(+) : m_name > (Create (interest.GetName ())) > , m_scope (interest.m_scope) > , m_interestLifetime (interest.m_interestLifetime) > , m_nonce (interest.m_nonce) > , m_dcValue (interest.dcValue)//(+) > , m_nackType (interest.m_nackType) > , m_exclude (interest.m_exclude ? Create > (*interest.GetExclude ()) : 0) > , m_payload (interest.GetPayload ()->Copy ()) > , m_wire (0) > { > NS_LOG_FUNCTION ("correct copy constructor with dc value"); > } > //---------------------------------------------------------- > > My TrySendOutInterest is listed below: > > //---------------------------------------------------------- > bool > ForwardingStrategy::TrySendOutInterest (Ptr inFace, > Ptr outFace, > Ptr interest, > Ptr pitEntry) > { > if (!CanSendOutInterest (inFace, outFace, interest, pitEntry)) > { > return false; > } > > pitEntry->AddOutgoing (outFace); > Ptr node = m_pit->GetObject (); > > bool successSend = false; > Ptr new_interest; > //transmission > if (((int)interest->GetDcValue()) < ((int) numberOfNeighbors(node))) { > new_interest->SetDcValue(numberOfNeighbors(node)); > new_interest->SetNonce (1000);//(+) ------- > successSend = outFace->SendInterest (new_interest); > } > else > { > new_interest = Create (*interest); > successSend = outFace->SendInterest (new_interest); > } > if (!successSend) > { > m_dropInterests (interest, outFace); > } > DidSendOutInterest (inFace, outFace, new_interest, pitEntry); > > return true; > //---------------------------------------------------------- > > The issue is that every time the Interest comes on the next node the > additional value (of dc) is not updated but is equal to zero as stated in > the Interest constructor. Why is not the update propagated to the next > node? What is that i am missing? I checked the interest nonce in order to > verify that the copy constructor works ok. The nonce value is updated and > propagated as required - changed - at the next node but not the dcValue > one. > > In the Interest classes i have only stated the SetDcValue and GetDcValue > functions as well as including the dcValue in the constructor. I haven't > though changed any other functions, maybe this is sty required to do? > > Any help? > > Kind regards, > Andriana. > From alexander.afanasyev at ucla.edu Wed Dec 18 13:16:21 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:16:21 -0800 Subject: [ndnSIM] Interest Extension In-Reply-To: <1387287731.33552.YahooMailNeo@web172104.mail.ir2.yahoo.com> References: <1387287731.33552.YahooMailNeo@web172104.mail.ir2.yahoo.com> Message-ID: <7A569D71-801E-41FD-895A-1F2C50DDBD10@ucla.edu> Hi Narjes, It depends on the level of the extension you want to achieve. If the existing nack field is sufficient for you (and you're not using it for anything else), then you can just redefine its meaning. Otherwise, you can do similar thing what Andriana did (check out the other thread): update ndn::Interest abstraction and update wire format generation/parsing. Extending Interest class wouldn't work, since it would involve considerable changes in the code. --- Alex On Dec 17, 2013, at 5:42 AM, narjes aloulou wrote: > Hi Alex and ndn-sim users, > > I want to add a field in the Interest, however this field may be sometimes empty. > So, I must use another class that extends ? Interest ? class or I just add a new NackType ? > > Thanks > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Wed Dec 18 13:19:24 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:19:24 -0800 Subject: [ndnSIM] declaring a variable in ndn-forwarding-strategy In-Reply-To: <9531a96d49cb4e289b6d37e23604a50d@DB4PR06MB224.eurprd06.prod.outlook.com> References: , <92F8208C-DFA5-40A7-B893-ED1121A1C8A7@ucla.edu> <5b7f749a929546d8a672adb6125baefd@DB4PR06MB224.eurprd06.prod.outlook.com>, , <9531a96d49cb4e289b6d37e23604a50d@DB4PR06MB224.eurprd06.prod.outlook.com> Message-ID: Hi Isuru, You may be having a code inconsistency effect. Did you install the modified and compiled NS-3 code and recompiled the scenario code afterwards? If so, are you using the same model (debug or optimized) in both? I had similar problem when I accidentally installed debug version of NS-3 (and I had previously installed optimized version of unmodified NS-3), then compiled scenario in optimized mode. Everything got compiled (the header files are correct), but then I was getting run time errors (the actual library is wrong). --- Alex On Dec 17, 2013, at 5:02 AM, i.liyanage at surrey.ac.uk wrote: > Hi Alex, > > I tried writing the code in ndnSIM/apps folder and it worked fine. > > But when I use the same code in scenario folder (used scenario template of yours) it fails as i mentioned. > > It must be something regarded to the scenario template..... > As if I include the file "ns3/ndn-forwarding-strategy.h" it says my variable(set container) is not defined, > ../extensions/testsimple.cc:109:19: error: ?class ns3::ndn::ForwardingStrategy? has no member named ?m_allowCS? > so I have to include the complete path to the above header file. Then it compiles fine. but end abruptly. > > > In the terminal I just want to confirm whether the program works by looking at the log messages. > > I attached the following files which I modified. > ../scenario/extensions/testsimple.h - modified from ndn-producer > ../scenario/extensions/testsimple.cc > ../scenario/scenarios/simple.cc - modified from ndn-simple > > ndnSIM/model/fw/ndn-forwarding-strategy.h > ndnSIM/model/fw/ndn-forwarding-strategy.cc > > Many Thanks, > Isuru > From: Alexander Afanasyev on behalf of Alex Afanasyev > Sent: 16 December 2013 21:30 > To: Liyanage IU Mr (PG/R - Electronic Eng) > Cc: ndnsim > Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy > > Hi Isuru, > > I have tried to follow your implementation (added set container in the forwarding strategy and the added a prefix in StartApplication). Everything worked as expected. > > If you can share your code, I can try to run it and see what is wrong. > > Btw. What are you expecting to see on the terminal? > > ---s > Alex > > On Dec 16, 2013, at 12:37 PM, wrote: > >> Hi Alex, >> >> I compiled without the -d optimized and ran without the visualizer. >> Then it just compile and nothing is displayed in the terminal. >> >> I entered the code in StartApplication() function. >> >> I was trying to build a collaborative caching application. >> >> Ptr forwardingstat = GetNode()->GetObject(); >> Ptr inName = Create ("/prefix/thisfix/"); >> forwardingstat->addAllowCS(inName); >> >> If I comment out the third line(line in red) it works fine. >> >> Many Thanks, >> Isuru >> From: Alexander Afanasyev on behalf of Alex Afanasyev >> Sent: 16 December 2013 19:47 >> To: Liyanage IU Mr (PG/R - Electronic Eng) >> Cc: ndnsim >> Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy >> >> Hi Isuru, >> >> Are you running simulation in the visualizer? Try to run without it and in debug mode (in case you have compiled with ./waf configure -d optimized, re-compile with ./waf configure -d debug or just ./waf configure). >> >> The variable declaration seems right. The problem that I could think of is that you're trying to use it in application's constructor, when neither Node() nor strategy objects are not yet set. >> >> Btw. What the effect you're trying to achieve? Normally (in "real world") applications cannot directly communicate with the forwarding daemon. Or is it something that is simulation-specific? >> >> --- >> Alex >> >> On Dec 16, 2013, at 11:43 AM, wrote: >> >>> Hi Alex, >>> >>> It terminates without anything once I click the simulate button. >>> I will try with the debugger as well. >>> >>> Could you suggest me a way to declare this kind of variable which could be accessed in both forwadingStrategy class and in an application. >>> >>> Many Thanks, >>> Isuru >>> From: Alexander Afanasyev on behalf of Alex Afanasyev >>> Sent: 16 December 2013 19:26 >>> To: Liyanage IU Mr (PG/R - Electronic Eng) >>> Cc: ndnsim >>> Subject: Re: [ndnSIM] declaring a variable in ndn-forwarding-strategy >>> >>> Is it just terminates without any output or terminates with an error? >>> >>> If it is an error, then try to run in a debugger, so you can see what exactly is causing the error. For example, >>> >>> ./waf --run --command-template 'gdb --args %s' >>> >>> --- >>> Alex >>> >>> On Dec 15, 2013, at 10:17 AM, wrote: >>> >>>> Hi, >>>> >>>> In ndn-forwading-strategy.h, I declared variable. >>>> std::set m_allowCS; >>>> >>>> and tried to access in one of the applications by following code >>>> Ptr forwardingstat = GetNode()->GetObject(); >>>> Ptr inName = Create ("/prefix"); >>>> forwardingstat->m_allowCS.insert(*inName); >>>> >>>> This compiles fine. >>>> but once I run this, simulator exit without any output. Could you point out what's wrong. >>>> >>>> Many Thanks, >>>> Isuru >>>> _______________________________________________ >>>> 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 Wed Dec 18 13:20:49 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:20:49 -0800 Subject: [ndnSIM] help In-Reply-To: References: Message-ID: If you set MaxSize 0, it means that PIT is not limited. You have to set some limit that is not 0. --- Alex On Dec 17, 2013, at 8:36 AM, sajjad zarei wrote: > > hi. > I am intending to simulate flooding DDoS attack against PIT in NDN. > I need to use class below in order to limit PIT size! > > ndnHelper.SetPit ("ns3::ndn::pit::...", > "MaxSize", "0"); > > when I used "persistent".I didn't see customer DDoS and no new interest was dropped. > > I am looking for a policy such that if PIT is full, new interests are dropped. > would you please help me with suggesting an appropriate solution to the issue above. > From alexander.afanasyev at ucla.edu Wed Dec 18 13:28:14 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:28:14 -0800 Subject: [ndnSIM] Extension of Nack packet In-Reply-To: References: Message-ID: <281B6114-C8BF-4E77-B4B9-D029099A43D4@ucla.edu> Hi Tun, When you saying that "it doesn't receive", where are you expecting to receive it? I mean, which function? Depending on which strategy class you're modifying, this could be in different places. If you're modifying directly ndn-forwarding-strategy.cc, then the packet will arrive in OnInterest() call. If you are modifying anything that inherited from fw::Nacks class, then it will be in OnNack() method. You can check the implementation of OnInterest in fw::Nacks class to the get idea how this happens. -- Alex On Dec 11, 2013, at 10:56 PM, Tun Tun Oo wrote: > Dear Alex, > > I would like to try an idea for responding whenever Data packet received as in the scenario. > > Data Packet flow ::Consumer <-------R1<-----------R2<--------------Producer > ACK-Data :: Consumer ------->R1----------->R2-------------->Producer > > For this purpose, I need to create a new packet, just a name, ACK-Data. > As my understanding, it is similar like nack and I try to implement this packet as an extension of nack. > Firstly, I prepared it as nack type and then I tried with following code > > OnData (Ptrface, > Ptrdata) > { > Ptr name = Create(data->GetName ()); > > Ptr ack= Create (); > > ack->SetNack (Interest::ACK_Data); > > ack->SetName (name); > > face->SendInterest (ack); > } > > When running, it doesn't receive the reply packet. > I am not confidence about the coding and could you give me a kindly guidance? > Thanks you > > Sincerely yours > TUN > > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim From alexander.afanasyev at ucla.edu Wed Dec 18 13:42:18 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Wed, 18 Dec 2013 13:42:18 -0800 Subject: [ndnSIM] Network Throughput In-Reply-To: <003701cef7f5$588718e0$09954aa0$@aalto.fi> References: <80982E95-80FF-4371-902D-935D100ECC0D@ucla.edu> <3624B2EF-2F2E-4F92-8430-CFB3BBD8FC80@ucla.edu> <003701cef7f5$588718e0$09954aa0$@aalto.fi> Message-ID: <6C3BCECF-66EB-4641-9DAB-2908C9911E30@ucla.edu> Hi Mohammad, I run a ndn-simple scenario, where I have added L3RateTracer (ndn::L3RateTracer::InstallAll ("rate-trace.txt", Seconds (1.0));) and modified frequency of interests to be 1000. The resulting rate-trace.txt is consistent with the results in the visualizer and shows almost full utilization of the 1Mbps channel. Here is a selected results from the trace (only for Node 0/face0 and InData parameter): Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw ... 17 0 0 dev[0]=net(0,0-1) InData 117.834 122.087 118 122.259 ... As you can see, it shows that the estimated rate is 122.087 Kilobytes/s, which is 976.696 Kilobits/s which is 1000136 bytes/s (this value is not 100k, because there is estimation and errors). --- Alex On Dec 13, 2013, at 3:20 AM, Mohammad wrote: > Hi Alex, > I still have problems with finding link throughput. In 1Mbps link I get the 1300Kbytes throughput based on your explanation. I guess the link throughput should not be greater than 250Kbytes. Is there any other metric to get the channel throughput? > > Thanks! > > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, August 21, 2013 9:05 PM > To: Hovaidi Ardestani Mohammad > Subject: Re: [ndnSIM] Network Throughput > > Yes. It should be a rough equivalent (at least I'm using it in my scenarios), which excludes any layer-2 overhead. Just make sure you summing up based on individual faces, and distringuish between In and Out packet types. > > --- > Alex > > > On Aug 21, 2013, at 11:01 AM, Hovaidi Ardestani Mohammad wrote: > > > Hi Alex! > What if we add throughputs off all packet types together? Is the result equal to throughput of channel or at least reasonable approximation of it? > I need to have some parameters to measure the performance of the technique used to control congestion. > Thanks again! > > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, August 21, 2013 7:25 PM > To: Hovaidi Ardestani Mohammad > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] Network Throughput > > Hi Mohammad, > > ndn::L3RateTracer provides several metrics, including throughput estimation for each packet type (the 7th column "Kilobytes"). It could be not exactly the throughput in the channel (for that you would need to extend L2RateTracer implementation, which is now very limited), but in most cases is a very good approximation of the throughput with breakdown by NDN packet types. > > --- > Alex > > On Aug 21, 2013, at 8:59 AM, Hovaidi Ardestani Mohammad wrote: > > > > Hello, > I am wondering how it is possible to measure network throughput in ndnSIM scenario. The number of satisfied interest packets are given in l3-rate-tracer , but I am not quite sure whether it is the actual throughput or at least it can help to find it. > Thanks for your response in advance. > -Mohammad -------------- next part -------------- An HTML attachment was scrubbed... URL: From htunhtunu at gmail.com Wed Dec 18 22:01:22 2013 From: htunhtunu at gmail.com (Tun Tun Oo) Date: Thu, 19 Dec 2013 15:01:22 +0900 Subject: [ndnSIM] Extension of Nack packet In-Reply-To: <281B6114-C8BF-4E77-B4B9-D029099A43D4@ucla.edu> References: <281B6114-C8BF-4E77-B4B9-D029099A43D4@ucla.edu> Message-ID: Dear Alex, Thanks you so much for your advice for nack extension and correction for print queue length. Both are very helpful for me. For your question of receiving nack function, I checked only nack vailidty using DidReceiveValidNack. I should check it firstly at the OnNack as your advice. In case if I couldn't receive it at OnNack, what could be the problem? I have one more question, if I want to send node information ( queue length, link capacity) as a feedback using the NACK packet, how should I do? Now I am studying the guide from http://www.nsnam.org/support/faq/miscellaneous/. to implement it. Is there any nddSIM specific method?I realized that in the nack packet format, there is a payload field. How can I use payload field to send data? Sincerely yours TUN On Thu, Dec 19, 2013 at 6:28 AM, Alex Afanasyev < alexander.afanasyev at ucla.edu> wrote: > Hi Tun, > > When you saying that "it doesn't receive", where are you expecting to > receive it? I mean, which function? > > Depending on which strategy class you're modifying, this could be in > different places. If you're modifying directly ndn-forwarding-strategy.cc, > then the packet will arrive in OnInterest() call. > > If you are modifying anything that inherited from fw::Nacks class, then it > will be in OnNack() method. You can check the implementation of OnInterest > in fw::Nacks class to the get idea how this happens. > > -- > Alex > > On Dec 11, 2013, at 10:56 PM, Tun Tun Oo wrote: > > > Dear Alex, > > > > I would like to try an idea for responding whenever Data packet received > as in the scenario. > > > > Data Packet flow ::Consumer > <-------R1<-----------R2<--------------Producer > > ACK-Data :: Consumer > ------->R1----------->R2-------------->Producer > > > > For this purpose, I need to create a new packet, just a name, ACK-Data. > > As my understanding, it is similar like nack and I try to implement this > packet as an extension of nack. > > Firstly, I prepared it as nack type and then I tried with following code > > > > OnData (Ptrface, > > Ptrdata) > > { > > Ptr name = Create(data->GetName ()); > > > > Ptr ack= Create (); > > > > ack->SetNack (Interest::ACK_Data); > > > > ack->SetName (name); > > > > face->SendInterest (ack); > > } > > > > When running, it doesn't receive the reply packet. > > I am not confidence about the coding and could you give me a kindly > guidance? > > Thanks you > > > > Sincerely yours > > 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 anilj.mailing at gmail.com Wed Dec 18 23:18:48 2013 From: anilj.mailing at gmail.com (Anil J) Date: Wed, 18 Dec 2013 23:18:48 -0800 Subject: [ndnSIM] fatal error: ns3/ndnSIM-module.h: No such file or directory Message-ID: Hi, I installed the boost library as described in the http://ndnsim.net/faq.html#installing-boost-libraries. After this, configuration of the ns-3 was successful using the command: ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples However, after compilation using ./waf it fails with the following error message. vm1 at ubuntu:~/wsn/ndnSIM/ns-3$ ./waf Waf: Entering directory `/home/vm1/wsn/ndnSIM/ns-3/build' [1029/2442] cxx: examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc -> build/examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o .*./examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc:24:31: fatal error: ns3/ndnSIM-module.h: No such file or directory* compilation terminated. Waf: Leaving directory `/home/vm1/wsn/ndnSIM/ns-3/build' Build failed -> task in 'rocketfuel-maps-cch-to-annotaded' failed (exit status 1): {task 62289936: cxx rocketfuel-maps-cch-to-annotaded.cc -> rocketfuel-maps-cch-to-annotaded.cc.3.o} ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-Iexamples/ndnSIM-sample-topologies/extensions', '-I../examples/ndnSIM-sample-topologies/extensions', '-I/usr/local/include', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '../examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc', '-c', '-o', 'examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o'] I checked that the file "*ndnSIM-module.h" *exists in path "ns-3/build/ns3/ndnSIM-module.h". I even tried reconfiguring ns-3 code with following change, but no success. ./waf configure --includedir=/home/vm1/ndnSIM/ns-3/build --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples Can someone please help to resolve this problem? Will it be wise to copy the content of ndnSIM/ns-3/build/ns3 to the /usr/local/include so that it finds the header? /anil. -------------- next part -------------- An HTML attachment was scrubbed... URL: From anilj.mailing at gmail.com Wed Dec 18 23:35:17 2013 From: anilj.mailing at gmail.com (Anil J) Date: Wed, 18 Dec 2013 23:35:17 -0800 Subject: [ndnSIM] fatal error: ns3/ndnSIM-module.h: No such file or directory In-Reply-To: References: Message-ID: One thing I noticed. There are some examples of template-based simulations provided under the ink:\ http://ndnsim.net/getting-started.html I had put these example directories under ns-3/examples folder, and that was the issue. I just moved these folders (ndnSIM-comcom-stateful-fw, ndnSIM-examples, ndnSIM-nom-rapid-car2car, ndnSIM-sample-topologies) out from here, and the ns-3 compilation worked. No question is: if I have to use/test these nsnSIM examples, where do I move these folders so that they get compiled and we can test them? Thanks, /anil. On Wed, Dec 18, 2013 at 11:18 PM, Anil J wrote: > Hi, > > I installed the boost library as described in the > http://ndnsim.net/faq.html#installing-boost-libraries. > > After this, configuration of the ns-3 was successful using the command: > > ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples > > However, after compilation using ./waf it fails with the following error > message. > > vm1 at ubuntu:~/wsn/ndnSIM/ns-3$ ./waf > Waf: Entering directory `/home/vm1/wsn/ndnSIM/ns-3/build' > [1029/2442] cxx: > examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc > -> > build/examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o > .*./examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc:24:31: > fatal error: ns3/ndnSIM-module.h: No such file or directory* > compilation terminated. > Waf: Leaving directory `/home/vm1/wsn/ndnSIM/ns-3/build' > Build failed > -> task in 'rocketfuel-maps-cch-to-annotaded' failed (exit status 1): > {task 62289936: cxx rocketfuel-maps-cch-to-annotaded.cc -> > rocketfuel-maps-cch-to-annotaded.cc.3.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', > '-Wno-error=deprecated-declarations', '-fstrict-aliasing', > '-Wstrict-aliasing', '-Iexamples/ndnSIM-sample-topologies/extensions', > '-I../examples/ndnSIM-sample-topologies/extensions', > '-I/usr/local/include', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', > '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', > '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', > '-DHAVE_GSL=1', > '../examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc', > '-c', '-o', > 'examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o'] > > I checked that the file "*ndnSIM-module.h" *exists in path > "ns-3/build/ns3/ndnSIM-module.h". > > I even tried reconfiguring ns-3 code with following change, but no > success. > > ./waf configure --includedir=/home/vm1/ndnSIM/ns-3/build --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples > > > Can someone please help to resolve this problem? Will it be wise to copy > the content of ndnSIM/ns-3/build/ns3 to the /usr/local/include so that it > finds the header? > > /anil. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From amin at ac.upc.edu Thu Dec 19 04:58:35 2013 From: amin at ac.upc.edu (Amin Karami) Date: Thu, 19 Dec 2013 13:58:35 +0100 Subject: [ndnSIM] Count/Print the rate of Cache hit and PIT entry per interface Message-ID: <52B2ED7B.6030908@ac.upc.edu> Dear Alex and ndnSIM users, How we can count and print the rate of the *Cache hit and PIT entry per interface in each second*? such as "void PeriodicStatsPrinter ()" function which appears in most samples of ndnSIM scenarios. /Amin -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 19 12:45:41 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 19 Dec 2013 12:45:41 -0800 Subject: [ndnSIM] fatal error: ns3/ndnSIM-module.h: No such file or directory In-Reply-To: References: Message-ID: Hi Anil, You should follow the instruction from README.md file in each template-based simulations. These "templates" should be placed anywhere outside the actual NS-3 and are individually configured and compiled, as shown in README.md. --- Alex On Dec 18, 2013, at 11:35 PM, Anil J wrote: > One thing I noticed. There are some examples of template-based simulations provided under the ink:\ > > http://ndnsim.net/getting-started.html > > I had put these example directories under ns-3/examples folder, and that was the issue. I just moved these folders (ndnSIM-comcom-stateful-fw, ndnSIM-examples, ndnSIM-nom-rapid-car2car, ndnSIM-sample-topologies) out from here, and the ns-3 compilation worked. > > No question is: if I have to use/test these nsnSIM examples, where do I move these folders so that they get compiled and we can test them? > > Thanks, > /anil. > > > > On Wed, Dec 18, 2013 at 11:18 PM, Anil J wrote: > Hi, > > I installed the boost library as described in the http://ndnsim.net/faq.html#installing-boost-libraries. > > After this, configuration of the ns-3 was successful using the command: > > ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples > > > However, after compilation using ./waf it fails with the following error message. > > vm1 at ubuntu:~/wsn/ndnSIM/ns-3$ ./waf > Waf: Entering directory `/home/vm1/wsn/ndnSIM/ns-3/build' > [1029/2442] cxx: examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc -> build/examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o > ../examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc:24:31: fatal error: ns3/ndnSIM-module.h: No such file or directory > compilation terminated. > Waf: Leaving directory `/home/vm1/wsn/ndnSIM/ns-3/build' > Build failed > -> task in 'rocketfuel-maps-cch-to-annotaded' failed (exit status 1): > {task 62289936: cxx rocketfuel-maps-cch-to-annotaded.cc -> rocketfuel-maps-cch-to-annotaded.cc.3.o} > ['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-Iexamples/ndnSIM-sample-topologies/extensions', '-I../examples/ndnSIM-sample-topologies/extensions', '-I/usr/local/include', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '../examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc', '-c', '-o', 'examples/ndnSIM-sample-topologies/scenarios/rocketfuel-maps-cch-to-annotaded.cc.3.o'] > > I checked that the file "ndnSIM-module.h" exists in path "ns-3/build/ns3/ndnSIM-module.h". > > I even tried reconfiguring ns-3 code with following change, but no success. > ./waf configure --includedir=/home/vm1/ndnSIM/ns-3/build --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples > > > Can someone please help to resolve this problem? Will it be wise to copy the content of ndnSIM/ns-3/build/ns3 to the /usr/local/include so that it finds the header? > > /anil. > > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 19 12:54:22 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 19 Dec 2013 12:54:22 -0800 Subject: [ndnSIM] Extension of Nack packet In-Reply-To: References: <281B6114-C8BF-4E77-B4B9-D029099A43D4@ucla.edu> Message-ID: <3EE85C78-2E8D-4EC9-A6A9-080B5F51BC5C@ucla.edu> On Dec 18, 2013, at 10:01 PM, Tun Tun Oo wrote: > Dear Alex, > > Thanks you so much for your advice for nack extension and correction for print queue length. Both are very helpful for me. > > For your question of receiving nack function, I checked only nack vailidty using DidReceiveValidNack. I should check it firstly at the OnNack as your advice. In case if I couldn't receive it at OnNack, what could be the problem? > > I have one more question, if I want to send node information ( queue length, link capacity) as a feedback using the NACK packet, how should I do? > > Now I am studying the guide from http://www.nsnam.org/support/faq/miscellaneous/. to implement it. Is there any nddSIM specific method?I realized that in the nack packet format, there is a payload field. How can I use payload field to send data? Sure. You can do that. You can also do another hack using NS-3's packet tags, but it is has the same complexity and may not be the right way to go for you. --- Alex > Sincerely yours > TUN > > > On Thu, Dec 19, 2013 at 6:28 AM, Alex Afanasyev wrote: > Hi Tun, > > When you saying that "it doesn't receive", where are you expecting to receive it? I mean, which function? > > Depending on which strategy class you're modifying, this could be in different places. If you're modifying directly ndn-forwarding-strategy.cc, then the packet will arrive in OnInterest() call. > > If you are modifying anything that inherited from fw::Nacks class, then it will be in OnNack() method. You can check the implementation of OnInterest in fw::Nacks class to the get idea how this happens. > > -- > Alex > > On Dec 11, 2013, at 10:56 PM, Tun Tun Oo wrote: > > > Dear Alex, > > > > I would like to try an idea for responding whenever Data packet received as in the scenario. > > > > Data Packet flow ::Consumer <-------R1<-----------R2<--------------Producer > > ACK-Data :: Consumer ------->R1----------->R2-------------->Producer > > > > For this purpose, I need to create a new packet, just a name, ACK-Data. > > As my understanding, it is similar like nack and I try to implement this packet as an extension of nack. > > Firstly, I prepared it as nack type and then I tried with following code > > > > OnData (Ptrface, > > Ptrdata) > > { > > Ptr name = Create(data->GetName ()); > > > > Ptr ack= Create (); > > > > ack->SetNack (Interest::ACK_Data); > > > > ack->SetName (name); > > > > face->SendInterest (ack); > > } > > > > When running, it doesn't receive the reply packet. > > I am not confidence about the coding and could you give me a kindly guidance? > > Thanks you > > > > Sincerely yours > > TUN > > > > > > > > _______________________________________________ > > ndnSIM mailing list > > ndnSIM at lists.cs.ucla.edu > > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 19 12:56:12 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 19 Dec 2013 12:56:12 -0800 Subject: [ndnSIM] help In-Reply-To: References: Message-ID: Hi again, Unless I have misunderstood you, the policy that you describing is actually ns3::ndn::pit::Persistent. Under this policy, when limit has been reached, no new items will be accepted. --- Alex On Dec 18, 2013, at 10:10 PM, sajjad zarei wrote: > Tnx for your reply. > I used class below in order to limit PIT size and set maxsize=50 > ndnHelper.SetPit ("ns3::ndn::pit::...", > "MaxSize", 50); > > It uses 'reject policy'.but I dont want this policy.I am looking for a policy that if PIT is full then new interests will drop. > would you please help me with suggesting an appropriate solution to the issue above? > > > On Wed, Dec 18, 2013 at 1:20 PM, Alex Afanasyev wrote: > If you set MaxSize 0, it means that PIT is not limited. You have to set some limit that is not 0. > > --- > Alex > > On Dec 17, 2013, at 8:36 AM, sajjad zarei wrote: > > > > > hi. > > I am intending to simulate flooding DDoS attack against PIT in NDN. > > I need to use class below in order to limit PIT size! > > > > ndnHelper.SetPit ("ns3::ndn::pit::...", > > "MaxSize", "0"); > > > > when I used "persistent".I didn't see customer DDoS and no new interest was dropped. > > > > I am looking for a policy such that if PIT is full, new interests are dropped. > > would you please help me with suggesting an appropriate solution to the issue above. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Thu Dec 19 13:04:41 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Thu, 19 Dec 2013 13:04:41 -0800 Subject: [ndnSIM] Count/Print the rate of Cache hit and PIT entry per interface In-Reply-To: <52B2ED7B.6030908@ac.upc.edu> References: <52B2ED7B.6030908@ac.upc.edu> Message-ID: <5E39ACA7-307B-49DE-826A-C0DA14C1E5B4@ucla.edu> Hi Amin, First, I want to emphasize that function PeriodicStatsPrinter is just a very rough example, which should not really be a primary mechanism to get samples (and it doesn't not appear in the most samples). The right way is either using the existing trace helper or creating a custom trace helper for the purpose of the metric collection. As for your question. You definitely need to implement a new trace helper that you will associate with each node that you need to collect stats from. There are many ways of how it can exactly be done. For cache tracing, there is already a ndn::CsTrace helper (http://ndnsim.net/metric.html#content-store-trace-helper). For PIT tracing, you may need to write something similar (but you also need to extend PIT interface and provide necessary TraceSource hooks). For PIT tracing you can also rely on ...AggregateStats... policy (I guess, these are the examples you're referring to). --- Alex On Dec 19, 2013, at 4:58 AM, Amin Karami wrote: > Dear Alex and ndnSIM users, > > How we can count and print the rate of the Cache hit and PIT entry per interface in each second? > such as "void PeriodicStatsPrinter ()" function which appears in most samples of ndnSIM scenarios. > > > /Amin > _______________________________________________ > 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 Dec 22 09:37:33 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 22 Dec 2013 09:37:33 -0800 Subject: [ndnSIM] how to fill content object In-Reply-To: References: Message-ID: Hi Fabrizio, You should checkout variants of constructor of NS'3 Packet class: http://www.nsnam.org/doxygen/classns3_1_1_packet.html Basically, you need to create a "payload packet" which would carry the data you need. For example, you can std::string data = "foobar"; ... payload = Create (data.c_str(), data.size()); If you want to carry a structured data, you can also create a custom header class and then use AddHeader/RemoveHeader to get access to the data in the payload. --- Alex On Dec 22, 2013, at 7:27 AM, fabrizio saponaro wrote: > Hi Alex, > how can I set the contentObject of a Data manually? > In my forwarding strategy I've a SendData(Ptr) that send always the Data with a specific contentObject (for example the string "blablabla") but I don't know how to implement it. > I tried with: > Ptr data = Create (Create (1024)); > Ptr dataName = Create ("/dataprefix"); > data->SetName (dataName); > Ptr payload = Create(); > > data->SetPayload(payload); //payload must to contain the string "blablabla" > > but payload of SetPayload would be a Ptr and I don't know which field of Packet component I've to fill. > > Could you help me? > Thanks, > Fabrizio -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.afanasyev at ucla.edu Sun Dec 22 09:45:18 2013 From: alexander.afanasyev at ucla.edu (Alex Afanasyev) Date: Sun, 22 Dec 2013 09:45:18 -0800 Subject: [ndnSIM] Network Throughput In-Reply-To: <001801cefd8b$9f33d9e0$dd9b8da0$@aalto.fi> References: <80982E95-80FF-4371-902D-935D100ECC0D@ucla.edu> <3624B2EF-2F2E-4F92-8430-CFB3BBD8FC80@ucla.edu> <003701cef7f5$588718e0$09954aa0$@aalto.fi> <6C3BCECF-66EB-4641-9DAB-2908C9911E30@ucla.edu> <001801cefd8b$9f33d9e0$dd9b8da0$@aalto.fi> Message-ID: On Dec 20, 2013, at 5:58 AM, Mohammad wrote: > Hi Alex, > > In my dumbbell scenario, there are three Interest senders that are connected to the first router (Rtr1). The bottleneck is a 1Mbps link which is based on connection of Face 3 of Rtr1 and Face0 of Rtr2. > I run a ndn-simple scenario, where I have added L3RateTracer (ndn::L3RateTracer::InstallAll ("L3-rate-trace.txt", Seconds (0.5));) and modified frequency of interests to be 100 for every data requesters. > > Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw > ... > 4.5 Rtr1 3 dev[3]=net(3,3-4) InData 118 121.798 59 60.9004 > 5 Rtr1 3 dev[3]=net(3,3-4) InData 118 121.799 59 60.8994 > > > I have some questions: > > 1. Why are you considering only InData? (If for instance we consider OutData of Rtr2 the result would be more unclear.) Hi Mohammad, InData trace guarantees that this amount of Data was actually transferred over the channel. OutData trace tells you the amount of Data NDN layer send out towards the channel, but there are no guarantees that this data was actually transmitted. That is, if you're trying to send more than the available bandwidth, then some of the transmitted (and counted towards OutData) would be dropped. If you're using point-to-point links, the dropped data is tracked under DropData trace. > 2. I reckon the throughput is KB per second, therefore the actual throughput of the bottleneck (in case of just considering InData of one router) should be twice the result shown above. Why twice? The value in Kilobytes column is adjusted to the averaging period, so it always shows the estimated throughput in KB per second. KilobytesRaw on the other hand, shows aggregated amount of kilobytes that was send out within the period. --- Alex > I really appreciate your help in advance! > > BR > -Mohammad > > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, December 18, 2013 11:42 PM > To: Mohammad > Cc: ndnsim > Subject: Re: [ndnSIM] Network Throughput > > Hi Mohammad, > > I run a ndn-simple scenario, where I have added L3RateTracer (ndn::L3RateTracer::InstallAll ("rate-trace.txt", Seconds (1.0));) and modified frequency of interests to be 1000. > > The resulting rate-trace.txt is consistent with the results in the visualizer and shows almost full utilization of the 1Mbps channel. Here is a selected results from the trace (only for Node 0/face0 and InData parameter): > > Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw > ... > 17 0 0 dev[0]=net(0,0-1) InData 117.834 122.087 118 122.259 > ... > > As you can see, it shows that the estimated rate is 122.087 Kilobytes/s, which is 976.696 Kilobits/s which is 1000136 bytes/s (this value is not 100k, because there is estimation and errors). > > --- > Alex > > On Dec 13, 2013, at 3:20 AM, Mohammad wrote: > > > Hi Alex, > I still have problems with finding link throughput. In 1Mbps link I get the 1300Kbytes throughput based on your explanation. I guess the link throughput should not be greater than 250Kbytes. Is there any other metric to get the channel throughput? > > Thanks! > > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, August 21, 2013 9:05 PM > To: Hovaidi Ardestani Mohammad > Subject: Re: [ndnSIM] Network Throughput > > Yes. It should be a rough equivalent (at least I'm using it in my scenarios), which excludes any layer-2 overhead. Just make sure you summing up based on individual faces, and distringuish between In and Out packet types. > > --- > Alex > > > On Aug 21, 2013, at 11:01 AM, Hovaidi Ardestani Mohammad wrote: > > > > Hi Alex! > What if we add throughputs off all packet types together? Is the result equal to throughput of channel or at least reasonable approximation of it? > I need to have some parameters to measure the performance of the technique used to control congestion. > Thanks again! > > From: Alexander Afanasyev [mailto:cawka1 at gmail.com] On Behalf Of Alex Afanasyev > Sent: Wednesday, August 21, 2013 7:25 PM > To: Hovaidi Ardestani Mohammad > Cc: ndnsim at lists.cs.ucla.edu > Subject: Re: [ndnSIM] Network Throughput > > Hi Mohammad, > > ndn::L3RateTracer provides several metrics, including throughput estimation for each packet type (the 7th column "Kilobytes"). It could be not exactly the throughput in the channel (for that you would need to extend L2RateTracer implementation, which is now very limited), but in most cases is a very good approximation of the throughput with breakdown by NDN packet types. > > --- > Alex > > On Aug 21, 2013, at 8:59 AM, Hovaidi Ardestani Mohammad wrote: > > > > > Hello, > I am wondering how it is possible to measure network throughput in ndnSIM scenario. The number of satisfied interest packets are given in l3-rate-tracer , but I am not quite sure whether it is the actual throughput or at least it can help to find it. > Thanks for your response in advance. > -Mohammad -------------- next part -------------- An HTML attachment was scrubbed... URL: From liuzongzhen at cstnet.cn Mon Dec 23 23:36:58 2013 From: liuzongzhen at cstnet.cn (=?GBK?B?wfXX3NXm?=) Date: Tue, 24 Dec 2013 15:36:58 +0800 (GMT+08:00) Subject: [ndnSIM] A question about NDN header exception Message-ID: <1ab30d2.24a0.143238904e2.Coremail.liuzongzhen@cstnet.cn> Hi Alex, I want to make Sta points connect to different AP points dynamically?but when I increase the number of Sta points, I encounter a problem: msg="Unknown NDN header. Should not happen", file=../src/ndnSIM/model/ndn-face.cc, line=196 terminate called after throwing an instance of 'ns3::ndn::UnknownHeaderException' Would you help me? Looking forward to your response. Liu Zongzhen Beijing -------------- next part -------------- An HTML attachment was scrubbed... URL: From masri.sahri at gmail.com Tue Dec 24 22:29:30 2013 From: masri.sahri at gmail.com (nor masri sahri) Date: Wed, 25 Dec 2013 15:29:30 +0900 Subject: [ndnSIM] prefetching Message-ID: hi alex and all, first of all you did give me a might solution to my question but i still didnot clear on it here is your message *Config::SetDefault("ns3::ndn::ForwardingStrategy::CacheUnsolicitedDataFromApps", *>* BooleanValue(true)); *>>* After that, you can simply "publish" any number of data packets into local *>* node's cache as a response to the incoming Interests; and any further *>* Interests for the published Data will be answered directly from the cache.* let me explain my project scenario. I wanted to have all the packet of a file is in the Producer buffer/cache. for example, let say file A consist of 100 chunks and all the chunks of the content object (namely /prefix0, /prefix1,,,,/prefix99) is already in the cache of Producer node, so when consumer send interest for content object name /prefix, Producer will reply directly from his cache. I really have no idea on this (relatively new user), please give me suggestion on this matter. thank you -- Regards, masri.sahri -------------- next part -------------- An HTML attachment was scrubbed... URL: