From NourElHouda.BenYoussef at wevioo.com Wed Oct 5 04:32:50 2016 From: NourElHouda.BenYoussef at wevioo.com (Nour El Houda Ben Youssef) Date: Wed, 5 Oct 2016 11:32:50 +0000 Subject: [ndnSIM] ndnsim cache strategies Message-ID: <712FE4E7257849499414892DD92704BC7A9BCCEC@INFRAEX02.oxia.corp> Dear ndnsim users I would like to have further information on caching strategies implemented in ndnsim and especially about CS that probabilistically accepts data packets into CS Which probabilistic distribution is used ? are we talking here about placement strategy? Content store realization that probabilistically accepts data packet into CS (placement policy) ns3::ndn::cs::Probability::Lru Least recently used (LRU) ns3::ndn::cs::Probability::Fifo Least frequently used (LFU) ns3::ndn::cs::Probability::Lfu Random According to my understanding for the simple content store we use the LCE placement strategy and for probabilistic CS we probabilistically place the content. Am I right ? Best regards [logoslogan.png] Nour El Houda BEN YOUSSEF KOUB?A|Doctorante Technopark El Ghazela 2088 Tunis- Tunisia Phone: +216 31 34 00 14 Mobile: +216 40 01 73 56 www.wevioo.com Paris - Tunis - Dubai - Alger -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.png Type: image/png Size: 4997 bytes Desc: image003.png URL: From aa at CS.UCLA.EDU Wed Oct 5 11:13:45 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 5 Oct 2016 11:13:45 -0700 Subject: [ndnSIM] ndnsim cache strategies In-Reply-To: <712FE4E7257849499414892DD92704BC7A9BCCEC@INFRAEX02.oxia.corp> References: <712FE4E7257849499414892DD92704BC7A9BCCEC@INFRAEX02.oxia.corp> Message-ID: <91450A7B-4707-4643-B929-F6D2D29C5DC3@cs.ucla.edu> Hi, You can take a look at model/cs/custom-policies/probability-policy.hpp. The implementation is currently using UniformRandomVariable as a randomization factor to accept packet into the content store. > On Oct 5, 2016, at 4:32 AM, Nour El Houda Ben Youssef wrote: > > Dear ndnsim users > > I would like to have further information on caching strategies implemented in ndnsim and especially about CS that probabilistically accepts data packets into CS > > Which probabilistic distribution is used ? are we talking here about placement strategy? > > > Content store realization that probabilistically accepts data packet into CS (placement policy) > ns3::ndn::cs::Probability::Lru > Least recently used (LRU) > ns3::ndn::cs::Probability::Fifo > Least frequently used (LFU) > ns3::ndn::cs::Probability::Lfu > Random > > According to my understanding for the simple content store we use the LCE placement strategy and for probabilistic CS we probabilistically place the content. Am I right ? These actually a combined placement + replacement policies. Probabilistic placement determines whether the packet should get accepted to the content store. The corresponding replacement policy decides what should get evicted if after packet is accepted there is not enough space and something needs to get evicted. --- Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Oct 5 11:17:24 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 5 Oct 2016 11:17:24 -0700 Subject: [ndnSIM] Topology construction! In-Reply-To: References: Message-ID: <856992B0-4898-43D5-8B35-63642CD005B8@cs.ucla.edu> Hi Hwang, If you don't need any specific mobility model and only need proper positioning of the nodes, I would use the AnnotatedTopologyReader with the topology defined in the text file, as in the example http://ndnsim.net/2.1/examples.html#node-grid-example-using-topology-plugin This topology file allows you to specify positions of nodes. These numbers, I believe, are expressed in meters or whatever units the WiFi module assumes the position is measured in. -- Alex > On Sep 14, 2016, at 6:43 AM, Hwang In Chan wrote: > > Dear All, > > I am making a topology of a certain format in a wifi adhoc mode. > > I am aiming to have a topology like this with NDN SIM. > I was trying to make it visible like the picture above. > In the beginning, I was making use of Grid Position allocator with mobility class. > However, I soon realized that it is not going to help me. > So I used the manuel allocator mentioned in > https://www.nsnam.org/wiki/MobilityHelper#Manual_Allocation > > But there is not much explanation. I am confused whether my approach works. > Do you know anything about position allocation in Wifi Adhoc mode? > > > > > #include "ns3/core-module.h" > #include "ns3/network-module.h" > #include "ns3/applications-module.h" > #include "ns3/wifi-module.h" > #include "ns3/mobility-module.h" > #include "ns3/internet-module.h" > > #include "ns3/ndnSIM-module.h" > > using namespace std; > namespace ns3 { > > NS_LOG_COMPONENT_DEFINE("ndn.WifiExample"); > > // > // DISCLAIMER: Note that this is an extremely simple example, containing just 2 wifi nodes > // communicating directly over AdHoc channel. > // > > // Ptr > // MyNetDeviceFaceCallback (Ptr node, Ptr ndn, Ptr device) > // { > // // NS_LOG_DEBUG ("Create custom network device " << node->GetId ()); > // Ptr face = CreateObject (node, device); > // ndn->AddFace (face); > // return face; > // } > void ReceivePacket (Ptr socket) > { > while (socket->Recv ()) > { > NS_LOG_UNCOND ("Received one packet!"); > } > } > > static void GenerateTraffic (Ptr socket, uint32_t pktSize, > uint32_t pktCount, Time pktInterval ) > { > if (pktCount > 0) > { > socket->Send (Create (pktSize)); > Simulator::Schedule (pktInterval, &GenerateTraffic, > socket, pktSize,pktCount-1, pktInterval); > } > else > { > socket->Close (); > } > } > > > > > int > main(int argc, char* argv[]) > { > > std::string phyMode ("DsssRate1Mbps"); > double distance = 500; // m > uint32_t packetSize = 1000; // bytes > uint32_t numPackets = 1; > uint32_t numNodes = 25; // by default, 5x5 > uint32_t sinkNode = 0; > uint32_t sourceNode = 24; > double interval = 1.0; // seconds > bool verbose = false; > bool tracing = false; > > CommandLine cmd; > > cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode); > cmd.AddValue ("distance", "distance (m)", distance); > cmd.AddValue ("packetSize", "size of application packet sent", packetSize); > cmd.AddValue ("numPackets", "number of packets generated", numPackets); > cmd.AddValue ("interval", "interval (seconds) between packets", interval); > cmd.AddValue ("verbose", "turn on all WifiNetDevice log components", verbose); > cmd.AddValue ("tracing", "turn on ascii and pcap tracing", tracing); > cmd.AddValue ("numNodes", "number of nodes", numNodes); > cmd.AddValue ("sinkNode", "Receiver node number", sinkNode); > cmd.AddValue ("sourceNode", "Sender node number", sourceNode); > > cmd.Parse (argc, argv); > // Convert to time object > Time interPacketInterval = Seconds (interval); > > // disable fragmentation > Config::SetDefault("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue("2200")); > Config::SetDefault("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue("2200")); > Config::SetDefault("ns3::WifiRemoteStationManager::NonUnicastMode", > StringValue("DsssRate1Mbps")); > > > > ////////////////////// > ////////////////////// > ////////////////////// > WifiHelper wifi = WifiHelper::Default(); > // wifi.SetRemoteStationManager ("ns3::AarfWifiManager"); > wifi.SetStandard(WIFI_PHY_STANDARD_80211a); > wifi.SetRemoteStationManager("ns3::ConstantRateWifiManager", "DataMode", > StringValue("DsssRate1Mbps")); > > YansWifiChannelHelper wifiChannel; // = YansWifiChannelHelper::Default (); > wifiChannel.SetPropagationDelay("ns3::ConstantSpeedPropagationDelayModel"); > wifiChannel.AddPropagationLoss("ns3::FriisPropagationLossModel"); > //wifiChannel.AddPropagationLoss("ns3::NakagamiPropagationLossModel"); > > // YansWifiPhy wifiPhy = YansWifiPhy::Default(); > YansWifiPhyHelper wifiPhyHelper = YansWifiPhyHelper::Default(); > wifiPhyHelper.Set ("RxGain", DoubleValue (-10) ); > // ns-3 supports RadioTap and Prism tracing extensions for 802.11b > wifiPhyHelper.SetPcapDataLinkType (YansWifiPhyHelper::DLT_IEEE802_11_RADIO); > wifiPhyHelper.SetChannel(wifiChannel.Create()); > /*wifiPhyHelper.Set("TxPowerStart", DoubleValue(5)); > wifiPhyHelper.Set("TxPowerEnd", DoubleValue(5));*/ > > NqosWifiMacHelper wifiMacHelper = NqosWifiMacHelper::Default(); > wifi.SetStandard (WIFI_PHY_STANDARD_80211b); > wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", > "DataMode",StringValue (phyMode), > "ControlMode",StringValue (phyMode)); > wifiMacHelper.SetType("ns3::AdhocWifiMac"); > > /* Ptr randomizer = CreateObject(); > randomizer->SetAttribute("Min", DoubleValue(10)); > randomizer->SetAttribute("Max", DoubleValue(100));*/ > > MobilityHelper mobility; > Ptr initialAlloc = CreateObject (); > initialAlloc->Add(Vector(1, 1., 0.)); > initialAlloc->Add(Vector(1, 3., 0.)); > initialAlloc->Add(Vector(2, 2., 0.)); > initialAlloc->Add(Vector(3, 2., 0.)); > initialAlloc->Add(Vector(4, 2., 0.)); > initialAlloc->Add(Vector(5, 1., 0.)); > initialAlloc->Add(Vector(5, 2., 0.)); > initialAlloc->Add(Vector(5, 3., 0.)); > > mobility.SetMobilityModel("ns3::ConstantPositionMobilityModel"); > mobility.SetPositionAllocator(initialAlloc); > > NodeContainer nodes; > nodes.Create(8); > > //////////////// > // 1. Install Wifi > NetDeviceContainer wifiNetDevices = wifi.Install(wifiPhyHelper, wifiMacHelper, nodes); > > // 2. Install Mobility model > mobility.Install(nodes); > > // 3. Install NDN stack > NS_LOG_INFO("Installing NDN stack"); > ndn::StackHelper ndnHelper; > // ndnHelper.AddNetDeviceFaceCreateCallback (WifiNetDevice::GetTypeId (), MakeCallback > // (MyNetDeviceFaceCallback)); > ndnHelper.SetOldContentStore("ns3::ndn::cs::Lru", "MaxSize", "1000"); > ndnHelper.SetDefaultRoutes(true); > ndnHelper.Install(nodes); > > // Set BestRoute strategy > ndn::StrategyChoiceHelper::Install(nodes, "/", "/localhost/nfd/strategy/best-route"); > > ndn::GlobalRoutingHelper ndnGlobalRoutingHelper; > ndnGlobalRoutingHelper.InstallAll(); > > // 4. Set up applications > NS_LOG_INFO("Installing Applications"); > > std::string prefix = "/prefix"; > > ndn::AppHelper consumerHelper("ns3::ndn::ConsumerCbr"); > consumerHelper.SetPrefix(prefix); > consumerHelper.SetAttribute("Frequency", DoubleValue(100.0)); > consumerHelper.Install(nodes.Get(0)); > consumerHelper.Install(nodes.Get(1)); > //consumerHelper.Install(nodes.Get()); > > > /* consumerHelper.SetPrefix("/test/prefix1"); > consumerHelper.SetAttribute("Frequency", DoubleValue(10.0)); > consumerHelper.Install(nodes.Get(1));*/ > > > ndn::AppHelper producerHelper("ns3::ndn::Producer"); > producerHelper.SetPrefix(prefix); > producerHelper.SetAttribute("PayloadSize", StringValue("1200")); > producerHelper.Install(nodes.Get(5)); > producerHelper.Install(nodes.Get(6)); > producerHelper.Install(nodes.Get(7)); > > /* > producerHelper.SetPrefix("/"); > producerHelper.SetAttribute("PayloadSize", StringValue("1200")); > producerHelper.Install(nodes.Get(2));*/ > //////////////// > > ndnGlobalRoutingHelper.AddOrigins(prefix, nodes.Get(7)); > ndnGlobalRoutingHelper.AddOrigins(prefix, nodes.Get(6)); > ndnGlobalRoutingHelper.AddOrigins(prefix, nodes.Get(5)); > > // Calculate and install FIBs > ndn::GlobalRoutingHelper::CalculateRoutes(); > > wifiPhyHelper.EnablePcap ("ndn-simple-adhoc", wifiNetDevices); > > Simulator::Stop(Seconds(30.0)); > > Simulator::Run(); > Simulator::Destroy(); > > return 0; > } > > } // namespace ns3 > > int > main(int argc, char* argv[]) > { > return ns3::main(argc, argv); > } > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From aa at CS.UCLA.EDU Wed Oct 5 11:18:40 2016 From: aa at CS.UCLA.EDU (Alex Afanasyev) Date: Wed, 5 Oct 2016 11:18:40 -0700 Subject: [ndnSIM] something wrong in the technical report In-Reply-To: References: Message-ID: Oops. Thanks for pointing this out! We'll fix it. --- Alex > On Sep 29, 2016, at 6:39 PM, ??? <410330533 at qq.com> wrote: > > Hello, > After read the technical report, I realized something wrong as the following picture shows. Why is the cs::Probability:Fifo correspond to LFU and cs::Probability:lfu correspond to Random?Does the table lost some information? > > Sincerely, > Prince From zguozhi at foxmail.com Wed Oct 5 21:18:12 2016 From: zguozhi at foxmail.com (=?gb18030?B?1cW5+tbO?=) Date: Thu, 6 Oct 2016 12:18:12 +0800 Subject: [ndnSIM] Some doubt about PIT modify Message-ID: Dear All, I want to simulation cache policy which need to modify PIT, however, I meet some questions: (1) I am not clear how to modify PIT, for examples, if I want to add some data struct to pit::Entry, should I modify directly the source of ndn-pit-entry.cc/ndn-pit-entry.h? Or is there a another simple method, such as aggregating or others? (2)I modify directly the source of PIT in src/nsnSIM/modules/pit/ndn-pit-entry.cc, and recompile successfully the ns-3, and run successfully simulation in ns-3 directory? such as "ns-3/scratch/first.cc", but when I run my simulation in custom directory following the PAGE: http://ndnsim.net/1.0/getting-started.html, there are some errors prompting"?class ns3::ndn::pit::Entry? has no member named ?AddInfaceCount?" , ?AddInfaceCount? is the member function added into pit::Entry in source "src/nsnSIM/modules/pit/ndn-pit-entry.cc". I so strange to this question, since before this I always run simulaiton in this directory except modifying PIT. Please forgive me for my poor English? Sincerely, Guozhi zhang Beijing Jiaotong University -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarannath39 at gmail.com Sat Oct 8 01:22:27 2016 From: sarannath39 at gmail.com (saran nath) Date: Sat, 8 Oct 2016 01:22:27 -0700 Subject: [ndnSIM] ndnSIM compile/link error with libprotobuf.a. Message-ID: Hello, I am new to this project. I have almost compiled everything but failing in linking I think. Linking build/libns3-dev-ndnSIM-debug.so /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libprotobuf.a(common.o): relocation R_X86_64_32S against `_ZTVN6google8protobuf7ClosureE' can not be used when making a shared object; recompile with -fPIC /usr/lib/x86_64-linux-gnu/libprotobuf.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status Your suggestion to remove this error will help me. Saran. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarannath39 at gmail.com Sat Oct 8 02:18:08 2016 From: sarannath39 at gmail.com (saran nath) Date: Sat, 8 Oct 2016 02:18:08 -0700 Subject: [ndnSIM] ndnSIM compile/link error with libprotobuf.a. In-Reply-To: References: Message-ID: /usr/lib/x86_64-linux-gnu/libprotobuf.a was a stale entry and after cleaning it up, I am able to successfully compile/link. Thanks. Saran. On Sat, Oct 8, 2016 at 1:22 AM, saran nath wrote: > Hello, > > I am new to this project. I have almost compiled everything but failing in > linking I think. > > Linking build/libns3-dev-ndnSIM-debug.so > > /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libprotobuf.a(common.o): > relocation R_X86_64_32S against `_ZTVN6google8protobuf7ClosureE' can not > be used when making a shared object; recompile with -fPIC > > /usr/lib/x86_64-linux-gnu/libprotobuf.a: error adding symbols: Bad value > > collect2: error: ld returned 1 exit status > > Your suggestion to remove this error will help me. > > Saran. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Oct 9 07:36:15 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Sun, 9 Oct 2016 18:06:15 +0330 Subject: [ndnSIM] How to Distinguish ContentTypes and downcast to them Message-ID: ?Hello everyone, My application recieves a Data packet. How can I downcast it to its Type? I mean, for example downcast a data packet to Key or Link or Nack based on getContentType of the packet. I know it is more of a c++ question, but again I haven't been able to do it yet in ndnSIM. Thanks, Sabet -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 9 09:50:24 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 9 Oct 2016 09:50:24 -0700 Subject: [ndnSIM] How to Distinguish ContentTypes and downcast to them In-Reply-To: References: Message-ID: Hi Sabet When a Data instance is created during packet decoding, the instance is of Data type, not a subclass of Data. Thus, you cannot downcast it with static_cast. If it's determined that the Data is a Link, you may construct a new Link instance and decode from the wire encoding: ndn::Link link(data.wireEncode()); Similarly, you can: ndn::security::v1::Certificate cert(data); Certificate has a constructor from Data, which allows you to omit wireEncode(). ContentType=NACK refers to producer generated Nack, which has no particular structure. A producer generated Nack is just a regular Data. This is completely unrelated to ndn::lp::Nack. Yours, Junxiao On Sun, Oct 9, 2016 at 7:36 AM, Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com> wrote: > ?Hello everyone, > > My application recieves a Data packet. How can I downcast it to its Type? > I mean, for example downcast a data packet to Key or Link or Nack based on > getContentType of the packet. I know it is more of a c++ question, but > again I haven't been able to do it yet in ndnSIM. > > Thanks, > Sabet > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Oct 9 13:53:55 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Mon, 10 Oct 2016 00:23:55 +0330 Subject: [ndnSIM] How to Distinguish ContentTypes and downcast to them In-Reply-To: References: Message-ID: Junxiao, You mean encode a packet into a type (e.g. Link) then decode it, to be able to do some process with it? What if peeking into link service? Or it will be more difficult from programming perspective? Thanks, Sabet On 9 Oct 2016 8:21 pm, "Junxiao Shi" wrote: > > Hi Sabet > > When a Data instance is created during packet decoding, the instance is of Data type, not a subclass of Data. Thus, you cannot downcast it with static_cast. > > If it's determined that the Data is a Link, you may construct a new Link instance and decode from the wire encoding: >> >> ndn::Link link(data.wireEncode()); > > > Similarly, you can: >> >> ndn::security::v1::Certificate cert(data); > > Certificate has a constructor from Data, which allows you to omit wireEncode(). > > ContentType=NACK refers to producer generated Nack, which has no particular structure. A producer generated Nack is just a regular Data. > This is completely unrelated to ndn::lp::Nack. > > Yours, Junxiao > > > On Sun, Oct 9, 2016 at 7:36 AM, Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com> wrote: >> >> ?Hello everyone, >> >> My application recieves a Data packet. How can I downcast it to its Type? I mean, for example downcast a data packet to Key or Link or Nack based on getContentType of the packet. I know it is more of a c++ question, but again I haven't been able to do it yet in ndnSIM. >> >> Thanks, >> Sabet > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zguozhi at foxmail.com Sun Oct 9 17:46:45 2016 From: zguozhi at foxmail.com (=?gb18030?B?1cW5+tbO?=) Date: Mon, 10 Oct 2016 08:46:45 +0800 Subject: [ndnSIM] ndnSIM Digest, Vol 47, Issue 4 Message-ID: Hi, I think I'm just getting to the good bit about my doubt before this. (1) If you want to run the simulation outside the directory of ns-3 installed?the command "sudo ./waf install" need be executed after Command"./waf" ?I forgot it. (2)Modifying the pit directly is feasible , but I know it is not recommended, is there other way to modify the pit/pitEntry like to modify forward strategy? Sincerely, Guozhi Zhang ------------------ Original ------------------ From: "ndnsim-request";; Date: Mon, Oct 10, 2016 00:51 AM To: "ndnsim"; Subject: ndnSIM Digest, Vol 47, Issue 4 Send ndnSIM mailing list submissions to ndnsim at lists.cs.ucla.edu To subscribe or unsubscribe via the World Wide Web, visit http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim or, via email, send a message with subject or body 'help' to ndnsim-request at lists.cs.ucla.edu You can reach the person managing the list at ndnsim-owner at lists.cs.ucla.edu When replying, please edit your Subject line so it is more specific than "Re: Contents of ndnSIM digest..." Today's Topics: 1. Re: something wrong in the technical report (Alex Afanasyev) 2. Some doubt about PIT modify (=?gb18030?B?1cW5+tbO?=) 3. ndnSIM compile/link error with libprotobuf.a. (saran nath) 4. Re: ndnSIM compile/link error with libprotobuf.a. (saran nath) 5. How to Distinguish ContentTypes and downcast to them (Muhammad Hosain Abdollahi Sabet) 6. Re: How to Distinguish ContentTypes and downcast to them (Junxiao Shi) ---------------------------------------------------------------------- Message: 1 Date: Wed, 5 Oct 2016 11:18:40 -0700 From: Alex Afanasyev To: ??? <410330533 at qq.com> Cc: ndnsim Subject: Re: [ndnSIM] something wrong in the technical report Message-ID: Content-Type: text/plain; charset=utf-8 Oops. Thanks for pointing this out! We'll fix it. --- Alex > On Sep 29, 2016, at 6:39 PM, ??? <410330533 at qq.com> wrote: > > Hello, > After read the technical report, I realized something wrong as the following picture shows. Why is the cs::Probability:Fifo correspond to LFU and cs::Probability:lfu correspond to Random?Does the table lost some information? > > Sincerely, > Prince ------------------------------ Message: 2 Date: Thu, 6 Oct 2016 12:18:12 +0800 From: "=?gb18030?B?1cW5+tbO?=" To: "=?gb18030?B?bmRuc2lt?=" Subject: [ndnSIM] Some doubt about PIT modify Message-ID: Content-Type: text/plain; charset="gb18030" Dear All, I want to simulation cache policy which need to modify PIT, however, I meet some questions: (1) I am not clear how to modify PIT, for examples, if I want to add some data struct to pit::Entry, should I modify directly the source of ndn-pit-entry.cc/ndn-pit-entry.h? Or is there a another simple method, such as aggregating or others? (2)I modify directly the source of PIT in src/nsnSIM/modules/pit/ndn-pit-entry.cc, and recompile successfully the ns-3, and run successfully simulation in ns-3 directory? such as "ns-3/scratch/first.cc", but when I run my simulation in custom directory following the PAGE: http://ndnsim.net/1.0/getting-started.html, there are some errors prompting"?class ns3::ndn::pit::Entry? has no member named ?AddInfaceCount?" , ?AddInfaceCount? is the member function added into pit::Entry in source "src/nsnSIM/modules/pit/ndn-pit-entry.cc". I so strange to this question, since before this I always run simulaiton in this directory except modifying PIT. Please forgive me for my poor English? Sincerely, Guozhi zhang Beijing Jiaotong University -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 3 Date: Sat, 8 Oct 2016 01:22:27 -0700 From: saran nath To: ndnsim at lists.cs.ucla.edu Subject: [ndnSIM] ndnSIM compile/link error with libprotobuf.a. Message-ID: Content-Type: text/plain; charset="utf-8" Hello, I am new to this project. I have almost compiled everything but failing in linking I think. Linking build/libns3-dev-ndnSIM-debug.so /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libprotobuf.a(common.o): relocation R_X86_64_32S against `_ZTVN6google8protobuf7ClosureE' can not be used when making a shared object; recompile with -fPIC /usr/lib/x86_64-linux-gnu/libprotobuf.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status Your suggestion to remove this error will help me. Saran. -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 4 Date: Sat, 8 Oct 2016 02:18:08 -0700 From: saran nath To: ndnsim at lists.cs.ucla.edu Subject: Re: [ndnSIM] ndnSIM compile/link error with libprotobuf.a. Message-ID: Content-Type: text/plain; charset="utf-8" /usr/lib/x86_64-linux-gnu/libprotobuf.a was a stale entry and after cleaning it up, I am able to successfully compile/link. Thanks. Saran. On Sat, Oct 8, 2016 at 1:22 AM, saran nath wrote: > Hello, > > I am new to this project. I have almost compiled everything but failing in > linking I think. > > Linking build/libns3-dev-ndnSIM-debug.so > > /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libprotobuf.a(common.o): > relocation R_X86_64_32S against `_ZTVN6google8protobuf7ClosureE' can not > be used when making a shared object; recompile with -fPIC > > /usr/lib/x86_64-linux-gnu/libprotobuf.a: error adding symbols: Bad value > > collect2: error: ld returned 1 exit status > > Your suggestion to remove this error will help me. > > Saran. > -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 5 Date: Sun, 9 Oct 2016 18:06:15 +0330 From: Muhammad Hosain Abdollahi Sabet To: ndnsim Subject: [ndnSIM] How to Distinguish ContentTypes and downcast to them Message-ID: Content-Type: text/plain; charset="utf-8" ?Hello everyone, My application recieves a Data packet. How can I downcast it to its Type? I mean, for example downcast a data packet to Key or Link or Nack based on getContentType of the packet. I know it is more of a c++ question, but again I haven't been able to do it yet in ndnSIM. Thanks, Sabet -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 6 Date: Sun, 9 Oct 2016 09:50:24 -0700 From: Junxiao Shi To: Muhammad Hosain Abdollahi Sabet Cc: ndnsim Subject: Re: [ndnSIM] How to Distinguish ContentTypes and downcast to them Message-ID: Content-Type: text/plain; charset="utf-8" Hi Sabet When a Data instance is created during packet decoding, the instance is of Data type, not a subclass of Data. Thus, you cannot downcast it with static_cast. If it's determined that the Data is a Link, you may construct a new Link instance and decode from the wire encoding: ndn::Link link(data.wireEncode()); Similarly, you can: ndn::security::v1::Certificate cert(data); Certificate has a constructor from Data, which allows you to omit wireEncode(). ContentType=NACK refers to producer generated Nack, which has no particular structure. A producer generated Nack is just a regular Data. This is completely unrelated to ndn::lp::Nack. Yours, Junxiao On Sun, Oct 9, 2016 at 7:36 AM, Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com> wrote: > ?Hello everyone, > > My application recieves a Data packet. How can I downcast it to its Type? > I mean, for example downcast a data packet to Key or Link or Nack based on > getContentType of the packet. I know it is more of a c++ question, but > again I haven't been able to do it yet in ndnSIM. > > Thanks, > Sabet > -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Subject: Digest Footer _______________________________________________ ndnSIM mailing list ndnSIM at lists.cs.ucla.edu http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim ------------------------------ End of ndnSIM Digest, Vol 47, Issue 4 ************************************* -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Mon Oct 10 02:01:15 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Mon, 10 Oct 2016 18:01:15 +0900 Subject: [ndnSIM] Alex Afanasyev Message-ID: Dear NDN Sim users, I have been trying to add an additional property to an Interest packet. In NDN-cxx, there is Interest.cpp file that defines Interest encoding in Interest::wireEncode(EncodingImpl& encoder) // Interest ::= INTEREST-TYPE TLV-LENGTH // Name // Selectors? // Nonce // InterestLifetime? // Link? // SelectedDelegation? // ProducerUid? ? I added it. // (reverse encoding) There is also a decoding scheme for it, Interest::wireDecode(const Block& wire) in the file. Although I added additional variables and its getter and setters to the Interest packet, There is an error "Requested decoding of ControlResponse, but Block is of different type" when I run it with after I add //totalLength += getProducerUid().wireEncode(encoder); for wireEncode //m_ProducerUid.wireDecode(m_wire.get(tlv::Name)); for wireDecode. I am now trying to match block types equal, But I am stuck. Does anyone of you know about adding a new property to the Interest and data packet? Any comment will help Best wishes, Inchan Hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Mon Oct 10 03:11:51 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Mon, 10 Oct 2016 19:11:51 +0900 Subject: [ndnSIM] Addtional metadata in Interest and data packet Message-ID: Dear NDN Sim users, I have been trying to add an additional property to an Interest packet. In NDN-cxx, there is Interest.cpp file that defines Interest encoding in Interest::wireEncode(EncodingImpl& encoder) // Interest ::= INTEREST-TYPE TLV-LENGTH // Name // Selectors? // Nonce // InterestLifetime? // Link? // SelectedDelegation? // ProducerUid? ? ....................... I added it. // (reverse encoding) There is also a decoding scheme for it, Interest::wireDecode(const Block& wire) in the file. Although I added additional variables and its getter and setters to the Interest packet, There is an error "Requested decoding of ControlResponse, but Block is of different type" when I run it with after I add //totalLength += getProducerUid().wireEncode(encoder); for wireEncode //m_ProducerUid.wireDecode(m_wire.get(tlv::Name)); for wireDecode. I am now trying to match block types equal, But I am stuck. Does anyone of you know about adding a new property to the Interest and data packet? Any comment will help Here is the current code I have been working on is in " https://github.com/NDNUtils/NDNSIM" Best wishes, Inchan Hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Mon Oct 10 09:22:06 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Mon, 10 Oct 2016 09:22:06 -0700 Subject: [ndnSIM] Addtional metadata in Interest and data packet In-Reply-To: References: Message-ID: <03E9453A-F417-4D94-BF8C-3642FEB1BA3B@cs.ucla.edu> Hi, you will have to create methods to encode and decode the additional fields. You can take a look here: https://github.com/named-data/ndn-cxx/blob/master/src/data.cpp#L50-L167 https://github.com/named-data/ndn-cxx/blob/master/src/interest.cpp#L215-L361 Hope that this helps. Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 10, 2016, at 3:11 AM, ??? wrote: > > Dear NDN Sim users, > > > I have been trying to add an additional property to an Interest packet. > > In NDN-cxx, there is Interest.cpp file that defines Interest encoding in Interest::wireEncode(EncodingImpl& encoder) > > > // Interest ::= INTEREST-TYPE TLV-LENGTH > > // Name > > // Selectors? > > // Nonce > > // InterestLifetime? > > // Link? > > // SelectedDelegation? > > > // ProducerUid? ? ....................... I added it. > > > // (reverse encoding) > > > There is also a decoding scheme for it, Interest::wireDecode(const Block& wire) in the file. > > > Although I added additional variables and its getter and setters to the Interest packet, > > There is an error "Requested decoding of ControlResponse, but Block is of different type" > > when I run it with after I add //totalLength += getProducerUid().wireEncode(encoder); for wireEncode > > //m_ProducerUid.wireDecode(m_wire.get(tlv::Name)); for wireDecode. > > > I am now trying to match block types equal, But I am stuck. Does anyone of you know about adding a new property to the Interest and data packet? > > Any comment will help > > > > Here is the current code I have been working on is in "https://github.com/NDNUtils/NDNSIM " > > > Best wishes, > > > Inchan Hwang > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Oct 15 17:43:32 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 15 Oct 2016 20:43:32 -0400 Subject: [ndnSIM] Issues installing ndnSIM on openSUSE - missing CryptoPP In-Reply-To: References: Message-ID: Hello all, Has anyone experienced any problems with this on openSUSE? I have tried to install libcryptopp using YaST2 on openSUSE and it just always tells me it couldn't install it. If I try any commands on the command line, such as using sudo apt-get install libcryptopp or libcrypto++-dev or anything like that it always says it can't find it. Ideas? My PhD research hinges on this simulator working :) Thanks John -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Oct 15 21:53:23 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sun, 16 Oct 2016 00:53:23 -0400 Subject: [ndnSIM] ndnSIM installation/configuration saga continues Message-ID: Okay, so apparently on openSUSE, the package I was looking for from the earlier mail to this list was installed by the command *apt-get install libcryptopp-devel* That darn devel actually seems to have made a difference. I'm wondering if I didn't pick a bad Linux build for ndnSIM... Now I have additional problems. I'm still getting *CryptoPP *is installed, but that it's unusable. When I checked the config file, I see a few issues, but two seem major: 1.) #include I did something that I feel kinda dirty about. I copied the inttypes.h file from /usr/include to /usr/include/sys. I'm pretty sure that's probably not a good workaround (or is it?) - but the errors related to that seem to be gone now. Additional information on this would be greatly appreciated. 2.) I get that uint128_t was not declared in this scope ---> Seems I'm missing a library or something is in the wrong or an unexpected place? i have g++ installed. Additional issues: - can't seem to find "click location" - checking for NSC location not found - checking for program sphinx-build not found So, not sure what I'm missing. Here is the config file produced by the failed ./waf configure --enable-examples command, on my Google Drive: https://drive.google.com/file/d/0By9ufeKqmJYYSXBJSV84R1BDUWc/view?usp=sharing -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 16 21:00:20 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 16 Oct 2016 21:00:20 -0700 Subject: [ndnSIM] ndnSIM installation/configuration saga continues In-Reply-To: References: Message-ID: Hi John There would be more problems down the road. The easiest way out is to spin up a ubuntu/trusty box with Vagrant, and install ndnSIM inside. ndnSIM workload is CPU and memory bound, not I/O bound. Thus, running in a virtual machine doesn't have much performance penalty, if the box is provisioned with enough CPU cores and memory. Yours, Junxiao On Sat, Oct 15, 2016 at 9:53 PM, John Baugh wrote: > I'm wondering if I didn't pick a bad Linux build for ndnSIM > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sun Oct 16 21:17:15 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 17 Oct 2016 00:17:15 -0400 Subject: [ndnSIM] ndnSIM installation/configuration saga continues In-Reply-To: References: Message-ID: Junxiao, Thank you for your response! I finally decided after spending three days trying to get it to work on openSUSE that I was done trying! Haha. So, I installed Ubuntu 16.04 instead and it's working just fine! Thanks a ton! John On Oct 17, 2016 12:01 AM, "Junxiao Shi" wrote: > Hi John > > There would be more problems down the road. > The easiest way out is to spin up a ubuntu/trusty box with Vagrant, and > install ndnSIM inside. > ndnSIM workload is CPU and memory bound, not I/O bound. Thus, running in a > virtual machine doesn't have much performance penalty, if the box is > provisioned with enough CPU cores and memory. > > Yours, Junxiao > > On Sat, Oct 15, 2016 at 9:53 PM, John Baugh wrote: > >> I'm wondering if I didn't pick a bad Linux build for ndnSIM >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Tue Oct 18 03:31:52 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Tue, 18 Oct 2016 19:31:52 +0900 Subject: [ndnSIM] Question on Content store insert Message-ID: Dear NDNSim users, I am customizing content store in my own way. While I am doing it, I became curious about the details of cs entry insertion function. The problem is I could not find the function definition. Could any of you tell me about the location of its definition? https://github.com/named-data-ndnSIM/NFD/blob/bc600d7ccc3d2bf27e8305cc1d2a5780e10c81d4/daemon/table/cs.cpp#L103 void Cs::insert(const Data& data, bool isUnsolicited) { NFD_LOG_DEBUG("insert " << data.getName()); if (m_policy->getLimit() == 0) { // shortcut for disabled CS return; } // recognize CachePolicy shared_ptr tag = data.getTag(); if (tag != nullptr) { lp::CachePolicyType policy = tag->get().getPolicy(); if (policy == lp::CachePolicyType::NO_CACHE) { return; } } bool isNewEntry = false; iterator it; // use .insert because gcc46 does not support .emplace std::tie(it, isNewEntry) = m_table.insert(EntryImpl(data.shared_from_this(), isUnsolicited)); EntryImpl& entry = const_cast(*it); entry.updateStaleTime(); if (!isNewEntry) { // existing entry // XXX This doesn't forbid unsolicited Data from refreshing a solicited entry. if (entry.isUnsolicited() && !isUnsolicited) { entry.unsetUnsolicited(); } m_policy->afterRefresh(it); } else { m_policy->afterInsert(it); } } is the function i am looking at. Lots of love, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlzu8 at gmail.com Tue Oct 18 08:50:25 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Tue, 18 Oct 2016 17:50:25 +0200 Subject: [ndnSIM] =?utf-8?q?error=3A_using_typedef-name_=E2=80=98ndn=3A=3A?= =?utf-8?b?bmZkOjpMb2NhbENvbnRyb2xIZWFkZXLigJkgYWZ0ZXIg4oCYY2xhc3M=?= =?utf-8?b?4oCZ?= Message-ID: Hi everyone, the two lines below are the last lines from the definition of the interest class: nfd::LocalControlHeader m_localControlHeader; friend class nfd::LocalControlHeader; But they cause the errors below for me. Can anybody give me some guidance please. Thanks in advance and regards. In file included from ns3/ndnSIM/NFD/common.hpp:87:0, from ns3/ndnSIM/NFD/core/counter.hpp:29, from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: ns3/ndnSIM/ndn-cxx/interest.hpp:527:21: error: using typedef-name ?ndn::nfd::LocalControlHeader? after ?class? friend class nfd::LocalControlHeader; ^ In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:30:0, from ns3/ndnSIM/NFD/common.hpp:87, from ns3/ndnSIM/NFD/core/counter.hpp:29, from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: ns3/ndnSIM/ndn-cxx/management/nfd-local-control-header.hpp:31:43: note: ?ndn::nfd::LocalControlHeader? has a previous declaration here typedef ndn::lp::LocalControlHeaderFacade LocalControlHeader; ^ In file included from ns3/ndnSIM/NFD/common.hpp:87:0, from ns3/ndnSIM/NFD/core/counter.hpp:29, from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: ns3/ndnSIM/ndn-cxx/interest.hpp:527:3: error: friend declaration does not name a class or function friend class nfd::LocalControlHeader; ^ -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Tue Oct 18 09:19:49 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Tue, 18 Oct 2016 09:19:49 -0700 Subject: [ndnSIM] =?utf-8?q?error=3A_using_typedef-name_=E2=80=98ndn=3A?= =?utf-8?b?Om5mZDo6TG9jYWxDb250cm9sSGVhZGVy4oCZIGFmdGVyIOKAmGNsYXNz4oCZ?= In-Reply-To: References: Message-ID: Hi, my guess is that you are using a version of ndn-cxx incompatible with the version of NFD and ndnSIM. Which version of ndnSIM are you using? Thanks, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 18, 2016, at 8:50 AM, Carl Zu wrote: > > Hi everyone, > > the two lines below are the last lines from the definition of the interest class: > > nfd::LocalControlHeader m_localControlHeader; > friend class nfd::LocalControlHeader; > > But they cause the errors below for me. Can anybody give me some guidance please. > > Thanks in advance and regards. > > > In file included from ns3/ndnSIM/NFD/common.hpp:87:0, > from ns3/ndnSIM/NFD/core/counter.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: > ns3/ndnSIM/ndn-cxx/interest.hpp:527:21: error: using typedef-name ?ndn::nfd::LocalControlHeader? after ?class? > friend class nfd::LocalControlHeader; > ^ > In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:30:0, > from ns3/ndnSIM/NFD/common.hpp:87, > from ns3/ndnSIM/NFD/core/counter.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: > ns3/ndnSIM/ndn-cxx/management/nfd-local-control-header.hpp:31:43: note: ?ndn::nfd::LocalControlHeader? has a previous declaration here > typedef ndn::lp::LocalControlHeaderFacade LocalControlHeader; > ^ > In file included from ns3/ndnSIM/NFD/common.hpp:87:0, > from ns3/ndnSIM/NFD/core/counter.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, > from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, > from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: > ns3/ndnSIM/ndn-cxx/interest.hpp:527:3: error: friend declaration does not name a class or function > friend class nfd::LocalControlHeader; > ^ -------------- next part -------------- An HTML attachment was scrubbed... URL: From networkresearch at yeah.net Tue Oct 18 20:23:24 2016 From: networkresearch at yeah.net (Sean) Date: Wed, 19 Oct 2016 11:23:24 +0800 (CST) Subject: [ndnSIM] Questions about Zipf Message-ID: <7bf78d46.7.157daf7047d.Coremail.networkresearch@yeah.net> Hi, I have two questions about the set of Zipf in ndnSIM. 1) As we know, the default value is s=0.7 and q=0.7. Whether this setting follows some request characteristics in the real world network? In other words, does it make sense if I use the default value ( i.e., s=0.7 and q=0.7)? 2) If I hope the request following the Zipf distribution, the parameter should be set as q=0 and s= 0.7, 0.8, ... ? I.e., the q is zero, and s is a number around 1? Thank you! Sean -------------- next part -------------- An HTML attachment was scrubbed... URL: From kota.kaihori at gmail.com Wed Oct 19 02:04:49 2016 From: kota.kaihori at gmail.com (kota kaihori) Date: Wed, 19 Oct 2016 18:04:49 +0900 Subject: [ndnSIM] HOW to set the rate of sending Interest in ndnSIM 2.1 Message-ID: Dear ALL *,* If I want to set the rate of sending Interest at each face dynamically, what class should I modify? For example, I want to send Interest packets depending on PIT size and the rate of Interest packets. I am looking forward to your help. -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Wed Oct 19 08:21:15 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Thu, 20 Oct 2016 00:21:15 +0900 Subject: [ndnSIM] One question on ndnSIM. Message-ID: Dear Spyridon, Thank you so much for the last time help. I have successfully modified the Interest and data packets so that they now carry additional metadata. Now I am implementing my simulation code. Unfortunately, it requires some modification of the simulator itself. https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/fw/forwarder.cpp#L144 is a piece of my recent implementation. Simply, I am trying to storing my customed PIT entry into the PIT and CS so on. The problem is when I run the modification above, it runs all of the code below https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/pit.cpp#L140-205 and it gets stuck at https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/name-tree.cpp#L325 The code must not call that particular function but it is supposed to run https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/name-tree.cpp#L339 But from here, I am at loss. I guess somewhat it runs https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/measurements.cpp#L81 and it gives an error. If you don't mind, could you tell me how to insert my customed PIT entry into the PIT? Lots of love,, inchan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlzu8 at gmail.com Wed Oct 19 09:53:54 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Wed, 19 Oct 2016 18:53:54 +0200 Subject: [ndnSIM] =?utf-8?q?error=3A_using_typedef-name_=E2=80=98ndn=3A?= =?utf-8?b?Om5mZDo6TG9jYWxDb250cm9sSGVhZGVy4oCZIGFmdGVyIOKAmGNsYXNz?= =?utf-8?b?4oCZ?= In-Reply-To: References: Message-ID: Hi Spyridon, In fact, now I have the following errors: I look forward to your help. Thanks, C In file included from ./ns3/ndnSIM/helper/ndn-fib-helper.hpp:29:0, from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:31, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: ns3/ndnSIM/ndn-cxx/management/nfd-control-parameters.hpp:77:34: error: reference to ?ndn? is ambiguous class ControlParameters : public ndn::mgmt::ControlParameters ^ In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:25:0, from ./ns3/ndnSIM/model/ndn-common.hpp:28, from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:23, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: ns3/ndnSIM/ndn-cxx/common.hpp:88:15: note: candidates are: namespace ndn { } namespace ndn { ^ In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:23:0, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: ./ns3/ndnSIM/model/ndn-common.hpp:44:15: note: namespace ns3::ndn { } namespace ndn { ^ In file included from ./ns3/ndnSIM/helper/ndn-fib-helper.hpp:29:0, from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:31, from ./ns3/ndn-all.hpp:23, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: ns3/ndnSIM/ndn-cxx/management/nfd-control-parameters.hpp:77:34: error: reference to ?ndn? is ambiguous class ControlParameters : public ndn::mgmt::ControlParameters ^ On Wed, Oct 19, 2016 at 10:38 AM, Carl Zu wrote: > Hi Spyridon, > > Actually, today I reinstalled ndnSIM2.1 and the problem is still > there...Could you please give me some more guidance ? > > Thanks. > > On Tue, Oct 18, 2016 at 6:19 PM, Spyridon (Spyros) Mastorakis < > mastorakis at cs.ucla.edu> wrote: > >> Hi, >> >> my guess is that you are using a version of ndn-cxx incompatible with the >> version of NFD and ndnSIM. >> >> Which version of ndnSIM are you using? >> >> Thanks, >> >> Spyridon (Spyros) Mastorakis >> Personal Website: http://cs.ucla.edu/~mastorakis/ >> Internet Research Laboratory >> Computer Science Department >> UCLA >> >> On Oct 18, 2016, at 8:50 AM, Carl Zu wrote: >> >> Hi everyone, >> >> the two lines below are the last lines from the definition of the >> interest class: >> >> nfd::LocalControlHeader m_localControlHeader; >> friend class nfd::LocalControlHeader; >> >> But they cause the errors below for me. Can anybody give me some guidance >> please. >> >> Thanks in advance and regards. >> >> >> In file included from ns3/ndnSIM/NFD/common.hpp:87:0, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/interest.hpp:527:21: error: using typedef-name >> ?ndn::nfd::LocalControlHeader? after ?class? >> friend class nfd::LocalControlHeader; >> ^ >> In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:30:0, >> from ns3/ndnSIM/NFD/common.hpp:87, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/management/nfd-local-control-header.hpp:31:43: note: >> ?ndn::nfd::LocalControlHeader? has a previous declaration here >> typedef ndn::lp::LocalControlHeaderFacade LocalControlHeader; >> ^ >> In file included from ns3/ndnSIM/NFD/common.hpp:87:0, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-loa >> d-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/interest.hpp:527:3: error: friend declaration does >> not name a class or function >> friend class nfd::LocalControlHeader; >> ^ >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Wed Oct 19 10:02:40 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Wed, 19 Oct 2016 10:02:40 -0700 Subject: [ndnSIM] HOW to set the rate of sending Interest in ndnSIM 2.1 In-Reply-To: References: Message-ID: Hi Kota In NFD design roadmap, regulating the output rate of packets is the responsibility of "traffic manager" which is a step in outgoing Interest pipeline, and the forwarding strategy should provide input to the traffic manager based on congestion control requirements and other factors. Yours, Junxiao On Oct 19, 2016 02:05, "kota kaihori" wrote: Dear ALL *,* If I want to set the rate of sending Interest at each face dynamically, what class should I modify? For example, I want to send Interest packets depending on PIT size and the rate of Interest packets. I am looking forward to your help. _______________________________________________ ndnSIM mailing list ndnSIM at lists.cs.ucla.edu http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Wed Oct 19 10:16:08 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 19 Oct 2016 10:16:08 -0700 Subject: [ndnSIM] =?utf-8?q?error=3A_using_typedef-name_=E2=80=98ndn=3A?= =?utf-8?b?Om5mZDo6TG9jYWxDb250cm9sSGVhZGVy4oCZIGFmdGVyIOKAmGNsYXNz4oCZ?= In-Reply-To: References: Message-ID: <6AE415A8-F549-4EBA-9AD4-6E428D1C26F4@cs.ucla.edu> Hi, I am sorry, but I need more context to understand what is wrong. For me, ndnSIM compiled just fine and also Travis CI compiled ndnSIM successfully after the latest commit. Have you cloned ndnSIM with the recursive flag on? Thanks, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 19, 2016, at 9:53 AM, Carl Zu wrote: > > Hi Spyridon, > > In fact, now I have the following errors: > > I look forward to your help. > > Thanks, > C > > In file included from ./ns3/ndnSIM/helper/ndn-fib-helper.hpp:29:0, > from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:31, > from ./ns3/ndn-all.hpp:23, > from ./ns3/ndnSIM-module.h:10, > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: > ns3/ndnSIM/ndn-cxx/management/nfd-control-parameters.hpp:77:34: error: reference to ?ndn? is ambiguous > class ControlParameters : public ndn::mgmt::ControlParameters > ^ > In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:25:0, > from ./ns3/ndnSIM/model/ndn-common.hpp:28, > from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:23, > from ./ns3/ndn-all.hpp:23, > from ./ns3/ndnSIM-module.h:10, > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: > ns3/ndnSIM/ndn-cxx/common.hpp:88:15: note: candidates are: namespace ndn { } > namespace ndn { > ^ > In file included from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:23:0, > from ./ns3/ndn-all.hpp:23, > from ./ns3/ndnSIM-module.h:10, > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: > ./ns3/ndnSIM/model/ndn-common.hpp:44:15: note: namespace ns3::ndn { } > namespace ndn { > ^ > In file included from ./ns3/ndnSIM/helper/ndn-fib-helper.hpp:29:0, > from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:31, > from ./ns3/ndn-all.hpp:23, > from ./ns3/ndnSIM-module.h:10, > from ../src/ndnSIM/examples/ndn-tree-app-delay-tracer.cpp:24: > ns3/ndnSIM/ndn-cxx/management/nfd-control-parameters.hpp:77:34: error: reference to ?ndn? is ambiguous > class ControlParameters : public ndn::mgmt::ControlParameters > ^ > > > > On Wed, Oct 19, 2016 at 10:38 AM, Carl Zu > wrote: > Hi Spyridon, > > Actually, today I reinstalled ndnSIM2.1 and the problem is still there...Could you please give me some more guidance ? > > Thanks. > > On Tue, Oct 18, 2016 at 6:19 PM, Spyridon (Spyros) Mastorakis > wrote: > Hi, > > my guess is that you are using a version of ndn-cxx incompatible with the version of NFD and ndnSIM. > > Which version of ndnSIM are you using? > > Thanks, > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > >> On Oct 18, 2016, at 8:50 AM, Carl Zu > wrote: >> >> Hi everyone, >> >> the two lines below are the last lines from the definition of the interest class: >> >> nfd::LocalControlHeader m_localControlHeader; >> friend class nfd::LocalControlHeader; >> >> But they cause the errors below for me. Can anybody give me some guidance please. >> >> Thanks in advance and regards. >> >> >> In file included from ns3/ndnSIM/NFD/common.hpp:87:0, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/interest.hpp:527:21: error: using typedef-name ?ndn::nfd::LocalControlHeader? after ?class? >> friend class nfd::LocalControlHeader; >> ^ >> In file included from ns3/ndnSIM/ndn-cxx/interest.hpp:30:0, >> from ns3/ndnSIM/NFD/common.hpp:87, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/management/nfd-local-control-header.hpp:31:43: note: ?ndn::nfd::LocalControlHeader? has a previous declaration here >> typedef ndn::lp::LocalControlHeaderFacade LocalControlHeader; >> ^ >> In file included from ns3/ndnSIM/NFD/common.hpp:87:0, >> from ns3/ndnSIM/NFD/core/counter.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/transport.hpp:29, >> from ../src/ndnSIM/NFD/daemon/face/face.hpp:29, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.hpp:30, >> from ../src/ndnSIM/examples/ndn-load-balancer/random-load-balancer-strategy.cpp:26: >> ns3/ndnSIM/ndn-cxx/interest.hpp:527:3: error: friend declaration does not name a class or function >> friend class nfd::LocalControlHeader; >> ^ > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From anilj.mailing at gmail.com Thu Oct 20 10:13:40 2016 From: anilj.mailing at gmail.com (Anil Jangam) Date: Thu, 20 Oct 2016 10:13:40 -0700 Subject: [ndnSIM] Simulating multithreaded applications. Message-ID: Hi. Is there any special care to be taken while porting an already written multithreaded application into ndnSIM? I did not find any specific mention of it in the guide here: http://ndnsim.net/2.1/guide-to-simulate-real-apps.html /anil. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Oct 20 10:16:55 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 20 Oct 2016 10:16:55 -0700 Subject: [ndnSIM] Simulating multithreaded applications. In-Reply-To: References: Message-ID: Hi Anil, unfortunately, NS3 is single threaded and is based on scheduling and executing events?. I do not think that something like that is possible. You can use MPI to parallelize simulations, but this is just for performance optimization purposes. Hope that this helps. Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 20, 2016, at 10:13 AM, Anil Jangam wrote: > > Hi. > > Is there any special care to be taken while porting an already written multithreaded application into ndnSIM? > > I did not find any specific mention of it in the guide here: > http://ndnsim.net/2.1/guide-to-simulate-real-apps.html > > /anil. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Thu Oct 20 10:40:31 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Thu, 20 Oct 2016 21:10:31 +0330 Subject: [ndnSIM] m_delegation is empty while added delegation Message-ID: ?Hi there, Trying to *maybe* fix issue #3803 I have modified Link::Link ( const Block & block) to: Link::Link(const Block& block) > { > if(m_delegations.empty()){ > BOOST_THROW_EXCEPTION(Error("Link object has no delegationName!")); > } > wireDecode(block); > } > which works when there is no delegationName set. But the problem is with this snippet: ndn::Name linkName = m_linkName; > linkName = linkName.appendVersion(m_version); > auto linkObject = make_shared< ::ndn::Link>(linkName); > linkObject->addDelegation(1,m_delegationName); > ndn::Signature sign; > ndn::SignatureInfo signInfo(static_cast< > ::ndn::tlv::SignatureTypeValue>(255)); > sign.setInfo(signInfo); > > sign.setValue(::ndn::nonNegativeIntegerBlock(::ndn::tlv::SignatureValue, > 0)); > linkObject->setSignature(sign); > > Ptr rand = > CreateObject(); > interest->setNonce(rand->GetValue(0, > std::numeric_limits::max())); > interest->setInterestLifetime(ndn::time::seconds(2)); > > interest->setLink(linkObject->wireEncode()); > having added some delegation in highlighted(yellow) line, again the red line will end up what(): Link object has no delegationName! > I'm sure the yellow has entered an entry into m_delegation(I have tested it in Link::encodeContent()). Anyone has an idea how and where m_delegation got empty? Thanks, Sabet -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Oct 20 13:15:14 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 20 Oct 2016 13:15:14 -0700 Subject: [ndnSIM] Simulating multithreaded applications. In-Reply-To: References: Message-ID: More detailed explanation: Some people have been working on that: http://mailman.isi.edu/pipermail/ns-developers/2009-July/006197.html https://www.nsnam.org/doxygen/classns3_1_1_system_thread.html However, when you have a simulation scenario and you do Simulator::Run, the thread that handles this operation will have an event queue, where all events will be scheduled and the ns3 library maintains global state. Even if you manage to make it work, all the threads will access the same shared state and data (and most probably the output of the simulation will not make sense): http://stackoverflow.com/questions/35543906/parallel-simulations-using-ns3-and-stdthread So, overall, while it might be possible, it is not recommended, since you have to partition the accessed memory and the data on your own: https://www.nsnam.org/workshops/wns3-2010/parallelization.pdf Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 20, 2016, at 10:16 AM, Spyridon (Spyros) Mastorakis wrote: > > Hi Anil, > > unfortunately, NS3 is single threaded and is based on scheduling and executing events?. > > I do not think that something like that is possible. You can use MPI to parallelize simulations, but this is just for performance optimization purposes. > > Hope that this helps. > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > >> On Oct 20, 2016, at 10:13 AM, Anil Jangam > wrote: >> >> Hi. >> >> Is there any special care to be taken while porting an already written multithreaded application into ndnSIM? >> >> I did not find any specific mention of it in the guide here: >> http://ndnsim.net/2.1/guide-to-simulate-real-apps.html >> >> /anil. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From anilj.mailing at gmail.com Thu Oct 20 15:30:38 2016 From: anilj.mailing at gmail.com (Anil Jangam) Date: Thu, 20 Oct 2016 15:30:38 -0700 Subject: [ndnSIM] Using ndn::Face in ndnSIM environment. Message-ID: Hi, I have a question related to the ndn::Face object. I am referring to the sample code given in the porting guide. Look for the code under title: "How to simulate real applications using ndnSIM" http://ndnsim.net/2.1/guide-to-simulate-real-apps.html Here the 'RealApp' class defines a member variable ndn::Face m_faceConsumer; So when this RealApp is *installed* on 'N' # of nodes in a simulation, each will have its own face. So as long the 'RealApp' is using this 'm_faceConsumer' to register the prefixes, it will be receiving all those Interests/Data packets. Do we have to explicitly create another face i.e. 'ndn::Face m_faceProducer' to sending out the Interest/Data traffic out from the application? Though it is quite clear from the sample code, I am trying to understand that in my simulated application, do we just have to define a single 'ndn::Face' and it is good for simulation to run OR do we have to use second face the way it is give in this sample code? Please comment. /anil. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Thu Oct 20 16:26:56 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Thu, 20 Oct 2016 16:26:56 -0700 Subject: [ndnSIM] Using ndn::Face in ndnSIM environment. In-Reply-To: References: Message-ID: <33A07819-74C1-4120-B0D8-BBBDBDD1A4A2@cs.ucla.edu> Hi Anil, my opinion is that each application should have its own face. To this end, if you want to run 2 applications on a single node, each app should have its own face (2 app faces in total). Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 20, 2016, at 3:30 PM, Anil Jangam wrote: > > Hi, > > I have a question related to the ndn::Face object. > > I am referring to the sample code given in the porting guide. Look for the code under title: "How to simulate real applications using ndnSIM" > http://ndnsim.net/2.1/guide-to-simulate-real-apps.html > > Here the 'RealApp' class defines a member variable ndn::Face m_faceConsumer; So when this RealApp is *installed* on 'N' # of nodes in a simulation, each will have its own face. > > So as long the 'RealApp' is using this 'm_faceConsumer' to register the prefixes, it will be receiving all those Interests/Data packets. Do we have to explicitly create another face i.e. 'ndn::Face m_faceProducer' to sending out the Interest/Data traffic out from the application? > > Though it is quite clear from the sample code, I am trying to understand that in my simulated application, do we just have to define a single 'ndn::Face' and it is good for simulation to run OR do we have to use second face the way it is give in this sample code? > > Please comment. > > /anil. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Thu Oct 20 16:36:47 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 20 Oct 2016 16:36:47 -0700 Subject: [ndnSIM] Using ndn::Face in ndnSIM environment. In-Reply-To: <33A07819-74C1-4120-B0D8-BBBDBDD1A4A2@cs.ucla.edu> References: <33A07819-74C1-4120-B0D8-BBBDBDD1A4A2@cs.ucla.edu> Message-ID: <385D3A78-4723-4F93-99A7-24F29C7DA2B1@email.arizona.edu> Hi Anil The technical difference between using one face or two faces is whether a piece of code would possibly receive packets from another piece of code. Although ndn-cxx Face has an ?internal FIB? and an ?internal PIT?, it is not a forwarder and does not forward packets internally between different calling modules. Suppose there are two application modules using ndn-cxx Face(s); note that I?m not specifying whether these two modules belong to the same ?application? or not because the definition of ?application? can be ambiguous. The first module is a producer which sets an InterestFilter for prefix /A, and the second module is a consumer that expresses an Interest for prefix /A/1. If these two modules are using the same ndn-cxx Face, the Interest from the consumer module will not reach the producer module; if they use different ndn-cxx Faces, the Interest from the consumer module will reach the producer module. Yours, Junxiao > On Oct 20, 2016, at 4:26 PM, Spyridon (Spyros) Mastorakis wrote: > > my opinion is that each application should have its own face. > >> On Oct 20, 2016, at 3:30 PM, Anil Jangam > wrote: >> >> So as long the 'RealApp' is using this 'm_faceConsumer' to register the prefixes, it will be receiving all those Interests/Data packets. Do we have to explicitly create another face i.e. 'ndn::Face m_faceProducer' to sending out the Interest/Data traffic out from the application? -------------- next part -------------- An HTML attachment was scrubbed... URL: From anilj.mailing at gmail.com Thu Oct 20 18:09:09 2016 From: anilj.mailing at gmail.com (Anil Jangam) Date: Thu, 20 Oct 2016 18:09:09 -0700 Subject: [ndnSIM] Using ndn::Face in ndnSIM environment. In-Reply-To: <385D3A78-4723-4F93-99A7-24F29C7DA2B1@email.arizona.edu> References: <33A07819-74C1-4120-B0D8-BBBDBDD1A4A2@cs.ucla.edu> <385D3A78-4723-4F93-99A7-24F29C7DA2B1@email.arizona.edu> Message-ID: Hi Spyros, My current application implementation does have its own face and thats the only 'face' it has. I am trying to understand the scenario, which Junxiao has addressed in this comment. Let me add more to what he has said. Hi Junxiao, I agree and to clear the ambiguity, lets say, the "application" is the (class) which derives from "class MyApp : public Application" or from "class MyApp : public App". Now there are two nodes (node-A) and node (node-B) with 'MyApp' installed on it. So if I understood you correctly, its better using different faces from each 'module' interacting with other 'module' within same application or with another application altogether (its rather more important when they are using overlapping name prefixes). I guess we do not capture this aspect in the porting guide and perhaps worthwhile to mention it. Can you please check? Thanks for your help! /anil. On Thu, Oct 20, 2016 at 4:36 PM, Junxiao Shi wrote: > Hi Anil > > The technical difference between using one face or two faces is whether a > piece of code would possibly receive packets from another piece of code. > Although ndn-cxx Face has an ?internal FIB? and an ?internal PIT?, it is > not a forwarder and does not forward packets internally between different > calling modules. > > Suppose there are two application modules using ndn-cxx Face(s); note that > I?m not specifying whether these two modules belong to the same > ?application? or not because the definition of ?application? can be > ambiguous. The first module is a producer which sets an InterestFilter for > prefix /A, and the second module is a consumer that expresses an Interest > for prefix /A/1. > If these two modules are using the same ndn-cxx Face, the Interest from > the consumer module will not reach the producer module; if they use > different ndn-cxx Faces, the Interest from the consumer module will reach > the producer module. > > Yours, Junxiao > > > On Oct 20, 2016, at 4:26 PM, Spyridon (Spyros) Mastorakis < > mastorakis at CS.UCLA.EDU> wrote: > > my opinion is that each application should have its own face. > > On Oct 20, 2016, at 3:30 PM, Anil Jangam wrote: > > So as long the 'RealApp' is using this 'm_faceConsumer' to register the > prefixes, it will be receiving all those Interests/Data packets. Do we have > to explicitly create another face i.e. 'ndn::Face m_faceProducer' to > sending out the Interest/Data traffic out from the application? > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Thu Oct 20 18:16:11 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Thu, 20 Oct 2016 18:16:11 -0700 Subject: [ndnSIM] Using ndn::Face in ndnSIM environment. In-Reply-To: References: <33A07819-74C1-4120-B0D8-BBBDBDD1A4A2@cs.ucla.edu> <385D3A78-4723-4F93-99A7-24F29C7DA2B1@email.arizona.edu> Message-ID: Hi Anil When you have two instances of the same application running on two separate nodes, of course you have to use two separate ndn-cxx Face instances, each connected to the NFD instance on the same node. It?s wrong to share one ndn-cxx Face instance across multiple nodes. This would be similar to sharing the same Unix socket on multiple nodes, and implies there?s an out-of-band communication channel between an application on node A and the NFD on node B. Note: this statement assumes every node is an independent networked device, and does not apply to supercomputers. My earlier comment addresses the choice between using one face and using two faces on the same node. Yours, Junxiao > On Oct 20, 2016, at 6:09 PM, Anil Jangam wrote: > > I agree and to clear the ambiguity, lets say, the "application" is the (class) which derives from "class MyApp : public Application" or from "class MyApp : public App". Now there are two nodes (node-A) and node (node-B) with 'MyApp' installed on it. So if I understood you correctly, its better using different faces from each 'module' interacting with other 'module' within same application or with another application altogether (its rather more important when they are using overlapping name prefixes). I guess we do not capture this aspect in the porting guide and perhaps worthwhile to mention it. Can you please check? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Oct 22 19:51:59 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 22 Oct 2016 22:51:59 -0400 Subject: [ndnSIM] Creating a custom cache-replacement policy in CS? Message-ID: Greetings all, So here's the situation: Since the NFD Content Store appears to not be flexible with cache replacement policies, I am going to steer away from it. However, when I look at the Old Content Store, I only see variations of the Simple content stores (LRU, FIFO, LFU, RANDOM, NoCache) Would there be a way to do one or all of the following, and if so, how?: - Create another policy entirely and have the SetOldContentStore member function recognize it? - Extend (perhaps using inheritance or aggregation) the current "Content Store" class in a meaningful way, and have additional functionality be recognized / used properly by the rest of the system? Much of my research and data collection is going to rely on my ability to modify the CS to behave differently. Specifically, I'm working with cache pollution detection and mitigation - so it'd also be nice if I could know if the actual "contents" of the content store can be printed? I saw "hits and misses" printed with some of the scenarios, but didn't see actual "contents". Even if they're rather "dummy" contents, it'd be fine I suspect. I haven't been working with this long, so please be patient with me. I just uninstalled openSUSE and installed Ubuntu 16.04 last weekend to make ndnSIM work. I just want to make sure I don't have too many "false starts" and problems and can at least travel in the right direction. Thanks a ton, John P. Baugh, M.Sc. Nervous, yet optimistic PhD Candidate -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 23 08:15:59 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 23 Oct 2016 08:15:59 -0700 Subject: [ndnSIM] Creating a custom cache-replacement policy in CS? In-Reply-To: References: Message-ID: Hi John Can you elaborate on this statement? Exactly what is missing in NFD 0.3.4's ContentStore policy API that is present in ndnSIM 1.0 ContentStore API? Your answer to this can allow NFD designers to either point out your misunderstand and help you use NFD ContentStore policy API to achieve what you need to do, or improve future versions of NFD so that it becomes more flexible with cache replacement policies. Yours, Junxiao On Sat, Oct 22, 2016 at 7:51 PM, John Baugh wrote: > > Since the NFD Content Store appears to not be flexible with cache > replacement policies, I am going to steer away from it. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 23 08:23:45 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sun, 23 Oct 2016 08:23:45 -0700 Subject: [ndnSIM] m_delegation is empty while added delegation In-Reply-To: References: Message-ID: Hi Sabet #3803-6 has decided that Link without delegation is invalid. Therefore, it's correct for Link(const Block&) constructor to throw an exception. However, the snippet quoted below isn't implemented correctly. It attempts to access m_delegations before calling wireDecode, but m_delegations is not populated until wireDecode is executed. Thus, the exception will always be thrown. While moving the check after wireDecode call would solve the problem, the proper place for this check is at the end of wireDecode, because some programs may elect to default-construct a Link instance, and invoke wireDecode with a block to decode ( Link link; link.wireDecode(block); ), and an exception should be thrown in that situation as well. Yours, Junxiao On Thu, Oct 20, 2016 at 10:40 AM, Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com> wrote: > > Link::Link(const Block& block) >> { >> if(m_delegations.empty()){ >> BOOST_THROW_EXCEPTION(Error("Link object has no delegationName!")); >> } >> wireDecode(block); >> } >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Oct 23 08:33:55 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Sun, 23 Oct 2016 19:03:55 +0330 Subject: [ndnSIM] m_delegation is empty while added delegation In-Reply-To: References: Message-ID: Hi Junxiao, Well, I guess I'm having an enlightenment. Is a link object decoded first, then processed e.g. add/removeDelegation, signed and stuff? Thanks, Sabet On 23 Oct 2016 6:54 pm, "Junxiao Shi" wrote: > Hi Sabet > > #3803-6 has decided > that Link without delegation is invalid. Therefore, it's correct for Link(const > Block&) constructor to throw an exception. > However, the snippet quoted below isn't implemented correctly. It attempts > to access m_delegations before calling wireDecode, but m_delegations is not > populated until wireDecode is executed. Thus, the exception will always be > thrown. > While moving the check after wireDecode call would solve the problem, the > proper place for this check is at the end of wireDecode, because some > programs may elect to default-construct a Link instance, and invoke > wireDecode with a block to decode ( Link link; link.wireDecode(block); ), > and an exception should be thrown in that situation as well. > > Yours, Junxiao > > On Thu, Oct 20, 2016 at 10:40 AM, Muhammad Hosain Abdollahi Sabet < > mhasabet at gmail.com> wrote: >> >> Link::Link(const Block& block) >>> { >>> if(m_delegations.empty()){ >>> BOOST_THROW_EXCEPTION(Error("Link object has no >>> delegationName!")); >>> } >>> wireDecode(block); >>> } >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From neogeoss at ajou.ac.kr Sun Oct 23 10:03:23 2016 From: neogeoss at ajou.ac.kr (=?UTF-8?B?7Zmp7J247LCs?=) Date: Mon, 24 Oct 2016 02:03:23 +0900 Subject: [ndnSIM] Question on ImplicitSha256Digest() Message-ID: Dear NDN Researchers, While I was implementing a customized PIT entry, I found a certain function I was imitating does not work. While I was imitating the function below https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/name-tree.cpp#L332 It checks whether the name is a implicitSha256Digest(). it works alright. But my imitation function https://github.com/NDNUtils/NDNSIM/blob/master/src/ndnSIM/NFD/daemon/table/name-tree.cpp#L346 gives an error although as far as I know I followed exactly the same procedure of a name generation to make mine. I do not remember that when I gave an NDN name, I made it an sha256digest. So I did not do it to my additional metadata. can any of you tell me how to add sha256 to my metadata to pass that boost assert ? Best wishes in chan hwang -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 23 11:09:49 2016 From: shijunxiao at email.arizona.edu (shijunxiao at email.arizona.edu) Date: Sun, 23 Oct 2016 11:09:49 -0700 Subject: [ndnSIM] Creating a custom cache-replacement policy in CS? In-Reply-To: References: Message-ID: <580cfce8.82a3420a.705fb.01e3@mx.google.com> Hi John ndnSIM 2.1 uses a fork of NFD 0.3.4 release, which contains a ContentStore policy API, and it is somewhat flexible. NFD 0.3.4 offers a priority-fifo policy and a LRU policy, implemented with this policy API. See NFD developer guide for more information. I saw the incorrect statement on http://ndnsim.net/2.1/cs.html . I have reported ndnSIM Bug 3827, so that ndnSIM developers can correct that statement in the next release. Yours, Junxiao From: John Baugh Sent: Sunday, October 23, 2016 10:56 To: Junxiao Shi Subject: Re: [ndnSIM] Creating a custom cache-replacement policy in CS? The documentation and tutorials say that NFD has a hard coded cache replacement policy and is not flexible.? Then it describes that this is why the ndnSIM 1.0 CS has been ported into 2.0. On Oct 23, 2016 11:16 AM, "Junxiao Shi" wrote: Hi John Can you elaborate on this statement? Exactly what is missing in NFD 0.3.4's ContentStore policy API that is present in ndnSIM 1.0 ContentStore API? Your answer to this can allow NFD designers to either point out your misunderstand and help you use NFD ContentStore policy API to achieve what you need to do, or improve future versions of NFD so that it becomes more flexible with cache replacement policies. Yours, Junxiao On Sat, Oct 22, 2016 at 7:51 PM, John Baugh wrote: Since the NFD Content Store appears to not be flexible with cache replacement policies, I am going to steer away from it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.kolonko at students.unibe.ch Mon Oct 24 03:54:11 2016 From: thomas.kolonko at students.unibe.ch (thomas.kolonko at students.unibe.ch) Date: Mon, 24 Oct 2016 10:54:11 +0000 Subject: [ndnSIM] Add faces dynamically to NetDevice during simulation Message-ID: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch> Dear all, I am trying to add more faces to an already existing NetDevice (Wifi and ndnSIM 2.0) during simulation time in order to simulate some kind of multipath. I could add them during set up within the ndn-stack-helper. But I would like to add them dynamically while receiving data packages within the forwarder class. Now, I saw the face-manager class and the face-table class but I cannot make it work, as far as I understand I can add a face through a) face-manager b) l3-protocol-stack For both I need to create a Face (NetDeviceFace) first and then add it to the face-table or the l3-protocol-stack.... // TODO: try to add a new face here // Problem... you first have to choose a NetDevice to add the face to !!! // let's assume for starters that you only have one NetDevice. ns3::Ptr netDevice = node->GetDevice(0); ns3::Ptr l3 = node->GetObject(); ns3::Ptr p_netDeviceFace = ns3::ndn::NetDeviceFace(node, netDevice); l3->addFace(p_netDeviceFace); Leads to: ../src/ndnSIM/NFD/daemon/fw/forwarder.cpp:461:86: error: invalid use of incomplete type ?class ns3::ndn::NetDeviceFace? ns3::Ptr p_netD = ns3::ndn::NetDeviceFace(node, netDevice); Any help or hint would be greatly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Mon Oct 24 09:22:38 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Mon, 24 Oct 2016 09:22:38 -0700 Subject: [ndnSIM] Add faces dynamically to NetDevice during simulation In-Reply-To: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch> References: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch> Message-ID: <1853DEDE-A0E7-4E02-BA03-8F0CEAF8764D@cs.ucla.edu> Hi, did you try something like that? Ptr face = CreateObject (node, device); Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 24, 2016, at 3:54 AM, wrote: > > NetDeviceFace From carlzu8 at gmail.com Mon Oct 24 09:51:57 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Mon, 24 Oct 2016 18:51:57 +0200 Subject: [ndnSIM] Linking to an external library Message-ID: Dear all, I need to link to an external library (glpk) in order to run my program in ndnSIM. In ns-3, I now how to that as it is described in the link below: https://garfield001.wordpress.com/2013/04/16/compile-and-link-ns3-program-with-external-library/ How to do that in ndnSIM? Thanks and regards, C -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlzu8 at gmail.com Mon Oct 24 10:30:10 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Mon, 24 Oct 2016 19:30:10 +0200 Subject: [ndnSIM] Linking to an external library In-Reply-To: References: Message-ID: *Sorry...One correction:* I am going to use the API of this external library in the consumer and producer applications, not in the code I run. Looking forward to your advise. Thanks, C On Mon, Oct 24, 2016 at 6:51 PM, Carl Zu wrote: > Dear all, > > I need to link to an external library (glpk) in order to run my program in > ndnSIM. In ns-3, I now how to that as it is described in the link below: > > https://garfield001.wordpress.com/2013/04/16/compile-and- > link-ns3-program-with-external-library/ > > How to do that in ndnSIM? > > Thanks and regards, > C > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Mon Oct 24 23:10:45 2016 From: jpbaugh at umich.edu (John Baugh) Date: Tue, 25 Oct 2016 02:10:45 -0400 Subject: [ndnSIM] Content Store documentation In-Reply-To: References: Message-ID: Greetings ndnSIM friends, It seems the outdated documentation on the NFD Content Store is widespread. E.g., http://ndnsim.net/2.1/cs.html Any idea as to when some of this could be updated or alternate resources or documentation and tutorials that are a little more up to date? Thanks John -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.kolonko at students.unibe.ch Tue Oct 25 00:12:52 2016 From: thomas.kolonko at students.unibe.ch (thomas.kolonko at students.unibe.ch) Date: Tue, 25 Oct 2016 07:12:52 +0000 Subject: [ndnSIM] Add faces dynamically to NetDevice during simulation In-Reply-To: <1853DEDE-A0E7-4E02-BA03-8F0CEAF8764D@cs.ucla.edu> References: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch>, <1853DEDE-A0E7-4E02-BA03-8F0CEAF8764D@cs.ucla.edu> Message-ID: <7C2BD03B60EA1841A57331390564C83D1C069015@aai-exch-mbx9.campus.unibe.ch> Hi Spyridon, I did try and I still get the same error although the parent Class (Face) is initialized in sourcefile of NetDeviceFace. error: invalid use of incomplete type ?class ns3::ndn::NetDeviceFace? ________________________________________ Von: Spyridon (Spyros) Mastorakis [mastorakis at cs.ucla.edu] Gesendet: Montag, 24. Oktober 2016 18:22 An: Kolonko, Thomas (STUDENTS) Cc: ndnsim at lists.cs.ucla.edu Betreff: Re: [ndnSIM] Add faces dynamically to NetDevice during simulation Hi, did you try something like that? Ptr face = CreateObject (node, device); Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 24, 2016, at 3:54 AM, wrote: > > NetDeviceFace From carlzu8 at gmail.com Tue Oct 25 03:01:21 2016 From: carlzu8 at gmail.com (Carl Zu) Date: Tue, 25 Oct 2016 12:01:21 +0200 Subject: [ndnSIM] Linking to an external library In-Reply-To: References: Message-ID: Just to provide more information, please also find the errors below: ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_set_obj_dir' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_set_col_bnds' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_create_prob' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_load_matrix' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_simplex' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_add_cols' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_set_prob_name' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_delete_prob' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_get_obj_val' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_set_obj_coef' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_get_col_prim' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_add_rows' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_set_row_bnds' ./libns3-dev-ndnSIM-debug.so: undefined reference to `glp_term_out' collect2: error: ld returned 1 exit status Thanks, C On Mon, Oct 24, 2016 at 7:30 PM, Carl Zu wrote: > *Sorry...One correction:* > > I am going to use the API of this external library in the consumer and > producer applications, not in the code I run. > > Looking forward to your advise. > Thanks, > C > > On Mon, Oct 24, 2016 at 6:51 PM, Carl Zu wrote: > >> Dear all, >> >> I need to link to an external library (glpk) in order to run my program >> in ndnSIM. In ns-3, I now how to that as it is described in the link below: >> >> https://garfield001.wordpress.com/2013/04/16/compile-and-lin >> k-ns3-program-with-external-library/ >> >> How to do that in ndnSIM? >> >> Thanks and regards, >> C >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Tue Oct 25 20:36:23 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Tue, 25 Oct 2016 20:36:23 -0700 Subject: [ndnSIM] Add faces dynamically to NetDevice during simulation In-Reply-To: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch> References: <7C2BD03B60EA1841A57331390564C83D1C068FD0@aai-exch-mbx9.campus.unibe.ch> Message-ID: Hi Thomas This error indicates a missing #include line. NetDeviceFace is found to be a forward declaration, and you need to include the header that declares that class in the translation unit where this error occurs. If you do not understand some of the terms in the above paragraph, read about them on http://en.cppreference.com/ Yours, Junxiao On Oct 24, 2016 3:54 AM, wrote: > > ../src/ndnSIM/NFD/daemon/fw/forwarder.cpp:461:86: error: invalid use of incomplete type ?class ns3::ndn::NetDeviceFace? > ns3::Ptr p_netD = ns3::ndn::NetDeviceFace(node, netDevice); > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Wed Oct 26 07:59:49 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Wed, 26 Oct 2016 07:59:49 -0700 Subject: [ndnSIM] Content Store documentation In-Reply-To: References: Message-ID: Hi John http://named-data.net/publications/techreports/ Look for "NFD developer guide", and choose a revision with publication date close to your ndnSIM's NFD fork. Yours, Junxiao On Oct 24, 2016 23:11, "John Baugh" wrote: > Greetings ndnSIM friends, > > It seems the outdated documentation on the NFD Content Store is > widespread. E.g., > > http://ndnsim.net/2.1/cs.html > > Any idea as to when some of this could be updated or alternate resources > or documentation and tutorials that are a little more up to date? > > Thanks > > John > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From igfuca at gmail.com Wed Oct 26 10:26:47 2016 From: igfuca at gmail.com (Igor Carvalho) Date: Wed, 26 Oct 2016 14:26:47 -0300 Subject: [ndnSIM] Guidance for creating a new forwarding strategy Message-ID: Hi, there. I'd like to create a forwarding strategy based on the content replacement rate of nodes content store. Basically, the I'd use the number of replacements of the available policies (LRU, LFU, priority FIFO) to be used for forwarding interests. My intention is to create a new field in Interest packet set to 0 in the consumer node. the forwarding strategy would choose the next hop based on the number of content replacements of the adjacency nodes. So, it would be necessary to get this 'information from next hop nodes and store these values in the faces attached to them, so that the node handling the interest compare the current value in interest packet to the values of the faces. The strategy would send the packet to the face with the highest value. I have made some changes in the tlv.hpp, added the extra variable which will store and update the replacement value at every hop. My problem is regarded to which part of nfd I can make nodes advertise their replacement rates to their nodes, like the control messages of RIB manager do. I thought about using the variable *cost *used by the available strategies just to receive the replacement value and use as a cost. I would really appreciate any help. Regards, -- *Igor Carvalho * *Master on Computer Science - UFPA* *GERCOM Researcher. * -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Wed Oct 26 10:57:52 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 26 Oct 2016 10:57:52 -0700 Subject: [ndnSIM] Content Store documentation In-Reply-To: References: Message-ID: <5E098443-9EE2-48D8-B9C9-B2CCFAE74B90@cs.ucla.edu> Hi John, my understanding is that there is one outdated statement in the documentation, but you said that the outdated documentation is widespread. Could you please let us know which statements are outdated, so that we can update them for the next ndnSIM release? Thanks, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 24, 2016, at 11:10 PM, John Baugh wrote: > > Greetings ndnSIM friends, > > It seems the outdated documentation on the NFD Content Store is widespread. E.g., > > http://ndnsim.net/2.1/cs.html > Any idea as to when some of this could be updated or alternate resources or documentation and tutorials that are a little more up to date? > > Thanks > > John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Wed Oct 26 11:02:18 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Wed, 26 Oct 2016 11:02:18 -0700 Subject: [ndnSIM] Guidance for creating a new forwarding strategy In-Reply-To: References: Message-ID: <87AFEE69-C8AB-4E47-A816-E11E4F8464D1@cs.ucla.edu> Hi Igor, one way you could do that is to create a separate application (and install it on every node), which will get the info that you are interested in from NFD and advertise it to the other nodes. This app will also receive advertisements from others and send the required info to the modules that you want. Hope that this helps, Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 26, 2016, at 10:26 AM, Igor Carvalho wrote: > > Hi, there. > > I'd like to create a forwarding strategy based on the content replacement rate of nodes content store. Basically, the I'd use the number of replacements of the available policies (LRU, LFU, priority FIFO) to be used for forwarding interests. My intention is to create a new field in Interest packet set to 0 in the consumer node. the forwarding strategy would choose the next hop based on the number of content replacements of the adjacency nodes. So, it would be necessary to get this 'information from next hop nodes and store these values in the faces attached to them, so that the node handling the interest compare the current value in interest packet to the values of the faces. The strategy would send the packet to the face with the highest value. > > I have made some changes in the tlv.hpp, added the extra variable which will store and update the replacement value at every hop. My problem is regarded to which part of nfd I can make nodes advertise their replacement rates to their nodes, like the control messages of RIB manager do. I thought about using the variable cost used by the available strategies just to receive the replacement value and use as a cost. > > I would really appreciate any help. > > Regards, > -- > Igor Carvalho > Master on Computer Science - UFPA > GERCOM Researcher. -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sat Oct 29 13:09:14 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sat, 29 Oct 2016 13:09:14 -0700 Subject: [ndnSIM] ndnSIM based on NFD 0.5.0 Message-ID: Hi Spyros (moved to ndnSIM mailing list) Is there a document about ns-3 restrictions and patterns? As I understand, ndnSIM and other modules are required to use RandomVariableStream, Scheduler, Logging as described in ns-3 Manual . Other facilities such as Hash Functions, Callbacks, Object model, Tracing are optional. ndn-cxx and NFD 0.5.0 has dropped build support on Ubuntu 12.04. ndnSIM 2.1 already does not support Ubuntu 12.04 unless either compiler or Boost is upgraded. ndn-cxx 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools: 1. New transformation API (Issue #3009) 2. Introduce environment variables to set/override transport, pib, and tpm configurations (Issue #2925, Issue #2514) 3. Introduce logging facility based on Boost.Log (Issue #3562) 4. Introduce Name::deepCopy to allow memory optimizations when working with Name objects (Issue #3618) 5. New ndn::security::CommandInterestValidator class (Issue #2376) 6. Add StatusDataset client functionality into ndn::nfd::Controller (Issue #3329) 7. New FaceUpdateCommand structure for NFD management protocols (Issue #3232) 8. breaking change Add Flags and Mask fields to faces/create and faces/update, add Flags field to FaceStatus (Issue #3731, Issue #3732) 9. New SafeBag structure for private key export/import (Issue #3048) 10. ndn::io::loadBlock and saveBlock (Issue #3741) 11. Backport of C++17 std::clamp and std::optional (Issue #3636, Issue #3753) 12. Expose ControlResponse as part of Controller::CommandFailCallback (Issue #3739) 13. Change security constants to corresponding strongly typed enumerations (Issue #3083) 14. Enable KeyChain customization in DummyClientFace (Issue #3435) 15. Add validation of StatusDataset and ControlCommand responses in ndn::nfd::Controller (Issue #3653) 16. Enable handling of NACKs in Validator and NotificationSubscriber classes (Issue #3332, Issue #3662) 17. Several fixes in Scheduler class (Issue #3722, Issue #3691) 18. Add option to override processEvents method in DummyClientFace class (Issue #3769) NFD 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools: 1. Add Adaptive SRTT-based Forwarding strategy (Issue #3566) 2. Introduce configurable policy for admission of unsolicited data packets into the content store (Issue #2181). 3. Introduce mechanism to update properties (e.g., flags, persistency) of an existing Face (Issue #3731). 4. Strategy API update. FIB entry is no longer supplied to the Strategy::afterReceiveInterest method (i.e., FIB lookup is not performed by the forwarding pipelines). When necessary, a strategy can request FIB lookup using Strategy::lookupFib (Issue #3664, Issue #3205, Issue #3679, Issue #3205) 5. ForwarderStatus dataset can now be requested only with /localhost/nfd/status/general interest (Issue #3379) 6. Optimizations of tables and forwarding, including reduced usage of shared_ptr (Issue #3205, Issue #3164, Issue #3687) 7. Display extended diagnostic information if NFD crashes (Issue #2541) 8. Visualize NACK counters in nfd-status output (Issue #3569) 9. Extend management to process the new LocalFieldsEnabled attribute when creating/updating Faces (Issue #3731) 10. Switch logging facility to use Boost.Log (Issue #3562) 11. Refactor implementation of RIB Manager to make it uniform with other managers (Issue #2857) 12. Miscellaneous code refactoring (Issue #3738, Issue #3164, Issue #3687, Issue #3205, Issue #3608, Issue #3619, Issue #2181) I wonder what's the major difficulty of integrating NFD 0.5.0 into ndnSIM? Can you point out which items are in conflict with ns-3 restrictions and patterns, or what updates have made the compliance situation worse than NFD 0.4.1? Yours, Junxiao On Sat, Oct 29, 2016 at 12:16 PM, Spyridon (Spyros) Mastorakis < mastorakis at cs.ucla.edu> wrote: > To clarify things: > > the upcoming release of ndnSIM (v2.2) will be based on NFD 0.4.1. Our > initial goal for the release after ndnSIM 2.2 is to be based on NFD 0.5, > however, we really hope that it might be based on the latest (at that time) > version of NFD. > > The reason that ndnSIM 2.2 will be based on NFD 0.4.1 and not 0.5 is that > NFD 0.5 contains a lot of internal restructuring that is not clear to us > how easy or hard would be to integrate with ndnSIM. ndnSIM is based on NS3 > and the NS3 world has some certain restrictions and patterns that sometimes > make the integration of NFD features really hard. > > I wish we had more manpower to be able to keep up more actively. > > Thank you, > Spyros > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Sat Oct 29 14:54:32 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Sat, 29 Oct 2016 14:54:32 -0700 Subject: [ndnSIM] ndnSIM based on NFD 0.5.0 In-Reply-To: References: Message-ID: <14741A47-2348-4969-BAE4-CDDAC6AA32A4@cs.ucla.edu> Junxiao, every time that I have tried to upgrade the version of NFD and ndn-cxx used by ndnSIM, there have been a number of unexpected things that go wrong. Some of them have to do with ndnSIM itself, some of them with NS3. Like I said before, it is not clear to me right now which NFD features might be incompatible with ndnSIM and I do not want to respond to something that I am not 100% sure about. The way to figure out is to upgrade NFD and try to compile ndnSIM. At that point, a number of things will break. Some of them will be trivial to fix, some other not. I am sorry, but this is the best answer I can give you right now. Spyros Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 29, 2016, at 1:09 PM, Junxiao Shi wrote: > > Hi Spyros > (moved to ndnSIM mailing list) > > Is there a document about ns-3 restrictions and patterns? > As I understand, ndnSIM and other modules are required to use RandomVariableStream, Scheduler, Logging as described in ns-3 Manual . Other facilities such as Hash Functions, Callbacks, Object model, Tracing are optional. > > ndn-cxx and NFD 0.5.0 has dropped build support on Ubuntu 12.04. ndnSIM 2.1 already does not support Ubuntu 12.04 unless either compiler or Boost is upgraded. > > ndn-cxx 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools: > New transformation API (Issue #3009) > Introduce environment variables to set/override transport, pib, and tpm configurations (Issue #2925, Issue #2514) > Introduce logging facility based on Boost.Log (Issue #3562) > Introduce Name::deepCopy to allow memory optimizations when working with Name objects (Issue #3618) > New ndn::security::CommandInterestValidator class (Issue #2376) > Add StatusDataset client functionality into ndn::nfd::Controller (Issue #3329) > New FaceUpdateCommand structure for NFD management protocols (Issue #3232) > breaking change Add Flags and Mask fields to faces/create and faces/update, add Flags field to FaceStatus (Issue #3731, Issue #3732) > New SafeBag structure for private key export/import (Issue #3048) > ndn::io::loadBlock and saveBlock (Issue #3741) > Backport of C++17 std::clamp and std::optional (Issue #3636, Issue #3753) > Expose ControlResponse as part of Controller::CommandFailCallback (Issue #3739) > Change security constants to corresponding strongly typed enumerations (Issue #3083) > Enable KeyChain customization in DummyClientFace (Issue #3435) > Add validation of StatusDataset and ControlCommand responses in ndn::nfd::Controller (Issue #3653) > Enable handling of NACKs in Validator and NotificationSubscriber classes (Issue #3332, Issue #3662) > Several fixes in Scheduler class (Issue #3722, Issue #3691) > Add option to override processEvents method in DummyClientFace class (Issue #3769) > NFD 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools: > Add Adaptive SRTT-based Forwarding strategy (Issue #3566) > Introduce configurable policy for admission of unsolicited data packets into the content store (Issue #2181). > Introduce mechanism to update properties (e.g., flags, persistency) of an existing Face (Issue #3731). > Strategy API update. FIB entry is no longer supplied to the Strategy::afterReceiveInterest method (i.e., FIB lookup is not performed by the forwarding pipelines). When necessary, a strategy can request FIB lookup using Strategy::lookupFib (Issue #3664, Issue #3205, Issue #3679, Issue #3205) > ForwarderStatus dataset can now be requested only with /localhost/nfd/status/general interest (Issue #3379) > Optimizations of tables and forwarding, including reduced usage of shared_ptr (Issue #3205, Issue #3164, Issue #3687) > Display extended diagnostic information if NFD crashes (Issue #2541) > Visualize NACK counters in nfd-status output (Issue #3569) > Extend management to process the new LocalFieldsEnabled attribute when creating/updating Faces (Issue #3731) > Switch logging facility to use Boost.Log (Issue #3562) > Refactor implementation of RIB Manager to make it uniform with other managers (Issue #2857) > Miscellaneous code refactoring (Issue #3738, Issue #3164, Issue #3687, Issue #3205, Issue #3608, Issue #3619, Issue #2181) > > I wonder what's the major difficulty of integrating NFD 0.5.0 into ndnSIM? > Can you point out which items are in conflict with ns-3 restrictions and patterns, or what updates have made the compliance situation worse than NFD 0.4.1? > > Yours, Junxiao > > On Sat, Oct 29, 2016 at 12:16 PM, Spyridon (Spyros) Mastorakis > wrote: > To clarify things: > > the upcoming release of ndnSIM (v2.2) will be based on NFD 0.4.1. Our initial goal for the release after ndnSIM 2.2 is to be based on NFD 0.5, however, we really hope that it might be based on the latest (at that time) version of NFD. > > The reason that ndnSIM 2.2 will be based on NFD 0.4.1 and not 0.5 is that NFD 0.5 contains a lot of internal restructuring that is not clear to us how easy or hard would be to integrate with ndnSIM. ndnSIM is based on NS3 and the NS3 world has some certain restrictions and patterns that sometimes make the integration of NFD features really hard. > > I wish we had more manpower to be able to keep up more actively. > > Thank you, > Spyros -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sat Oct 29 15:38:02 2016 From: shijunxiao at email.arizona.edu (Junxiao Shi) Date: Sat, 29 Oct 2016 15:38:02 -0700 Subject: [ndnSIM] ndnSIM based on NFD 0.5.0 In-Reply-To: <14741A47-2348-4969-BAE4-CDDAC6AA32A4@cs.ucla.edu> References: <14741A47-2348-4969-BAE4-CDDAC6AA32A4@cs.ucla.edu> Message-ID: Hi Spyros Based on your answer, I see where the fundamental problem is. Unlike ndn-cxx APIs which usually follows a "deprecation => dependant projects fixes => removal" procedure, NFD APIs are all considered "internal". This means, when we change NFD, we do not consider backwards-compatibility (except for updates that changes protocol semantics), and will delete old APIs immediately when some refactoring is needed. The arise of ndnSIM 2.x breaks this "internal API" assumption: ndnSIM effectively becomes as a dependent project of NFD. Every time NFD introduces a backwards-incompatible change, it will potential break ndnSIM. Requiring a deprecation-fixes-removal cycle into NFD workflow is possible, but it would introduce significant overhead onto NFD development. However, the alternative is what's happening now: ndnSIM uses a severely outdated version of NFD, and thus cannot keep up with the needs of the community. I personally rejected using ndnSIM and chose Mininet or plain ns-3 in several projects because of this. It's well known that Google Inc uses a single codebase for all its software, so that everything is always compatible. I think this shall be the ultimate goal of NDN platform development workflow, although it's still a long way to go. Back to the current situation, my opinion is: ndnSIM should be kept up with NFD more frequently to satisfy community needs, at the granularity of monthly or even weekly, even at the cost of slowing down NFD feature development. This would expose the incompatibility problems early and get them resolved early. As decided in Jan 2014 NFD planning meeting, compatibility with simulation of a design goal on NFD roadmap, although it's decided that this goal is ignored in NFD 0.1 release. It's time to revisit this goal and resolve this problem. Yours, Junxiao On Oct 29, 2016 14:54, "Spyridon (Spyros) Mastorakis" < mastorakis at cs.ucla.edu> wrote: > Junxiao, > > every time that I have tried to upgrade the version of NFD and ndn-cxx > used by ndnSIM, there have been a number of unexpected things that go > wrong. Some of them have to do with ndnSIM itself, some of them with NS3. > > Like I said before, it is not clear to me right now which NFD features > might be incompatible with ndnSIM and I do not want to respond to something > that I am not 100% sure about. The way to figure out is to upgrade NFD and > try to compile ndnSIM. At that point, a number of things will break. Some > of them will be trivial to fix, some other not. > > I am sorry, but this is the best answer I can give you right now. > > Spyros > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > On Oct 29, 2016, at 1:09 PM, Junxiao Shi > wrote: > > Hi Spyros > (moved to ndnSIM mailing list) > > Is there a document about ns-3 restrictions and patterns? > As I understand, ndnSIM and other modules are required to use > RandomVariableStream, Scheduler, Logging as described in ns-3 Manual > . Other > facilities such as Hash Functions, Callbacks, Object model, Tracing are > optional. > > ndn-cxx and NFD 0.5.0 has dropped build support on Ubuntu 12.04. ndnSIM > 2.1 already does not support Ubuntu 12.04 unless either compiler or Boost > is upgraded. > > ndn-cxx 0.5.0 release notes list the following changes, excluding > bugfixes/deprecations/deletions and changes in tools: > > 1. New transformation API (Issue #3009) > 2. Introduce environment variables to set/override transport, pib, and > tpm configurations (Issue #2925, Issue #2514) > 3. Introduce logging facility based on Boost.Log (Issue #3562) > 4. Introduce Name::deepCopy to allow memory optimizations when working > with Name objects (Issue #3618) > 5. New ndn::security::CommandInterestValidator class (Issue #2376) > 6. Add StatusDataset client functionality into ndn::nfd::Controller > (Issue #3329) > 7. New FaceUpdateCommand structure for NFD management protocols (Issue > #3232) > 8. breaking change Add Flags and Mask fields to faces/create and > faces/update, add Flags field to FaceStatus (Issue #3731, Issue #3732) > 9. New SafeBag structure for private key export/import (Issue #3048) > 10. ndn::io::loadBlock and saveBlock (Issue #3741) > 11. Backport of C++17 std::clamp and std::optional (Issue #3636, Issue > #3753) > 12. Expose ControlResponse as part of Controller::CommandFailCallback > (Issue #3739) > 13. Change security constants to corresponding strongly typed > enumerations (Issue #3083) > 14. Enable KeyChain customization in DummyClientFace (Issue #3435) > 15. Add validation of StatusDataset and ControlCommand responses in > ndn::nfd::Controller (Issue #3653) > 16. Enable handling of NACKs in Validator and NotificationSubscriber > classes (Issue #3332, Issue #3662) > 17. Several fixes in Scheduler class (Issue #3722, Issue #3691) > 18. Add option to override processEvents method in DummyClientFace > class (Issue #3769) > > NFD 0.5.0 release notes list the following changes, excluding > bugfixes/deprecations/deletions and changes in tools: > > 1. Add Adaptive SRTT-based Forwarding strategy (Issue #3566) > 2. Introduce configurable policy for admission of unsolicited data > packets into the content store (Issue #2181). > 3. Introduce mechanism to update properties (e.g., flags, persistency) > of an existing Face (Issue #3731). > 4. Strategy API update. FIB entry is no longer supplied to the > Strategy::afterReceiveInterest method (i.e., FIB lookup is not performed by > the forwarding pipelines). When necessary, a strategy can request FIB > lookup using Strategy::lookupFib (Issue #3664, Issue #3205, Issue #3679, > Issue #3205) > 5. ForwarderStatus dataset can now be requested only with > /localhost/nfd/status/general interest (Issue #3379) > 6. Optimizations of tables and forwarding, including reduced usage of > shared_ptr (Issue #3205, Issue #3164, Issue #3687) > 7. Display extended diagnostic information if NFD crashes (Issue #2541) > 8. Visualize NACK counters in nfd-status output (Issue #3569) > 9. Extend management to process the new LocalFieldsEnabled attribute > when creating/updating Faces (Issue #3731) > 10. Switch logging facility to use Boost.Log (Issue #3562) > 11. Refactor implementation of RIB Manager to make it uniform with > other managers (Issue #2857) > 12. Miscellaneous code refactoring (Issue #3738, Issue #3164, Issue > #3687, Issue #3205, Issue #3608, Issue #3619, Issue #2181) > > > I wonder what's the major difficulty of integrating NFD 0.5.0 into ndnSIM? > Can you point out which items are in conflict with ns-3 restrictions and > patterns, or what updates have made the compliance situation worse than NFD > 0.4.1? > > Yours, Junxiao > > On Sat, Oct 29, 2016 at 12:16 PM, Spyridon (Spyros) Mastorakis < > mastorakis at cs.ucla.edu> wrote: > >> To clarify things: >> >> the upcoming release of ndnSIM (v2.2) will be based on NFD 0.4.1. Our >> initial goal for the release after ndnSIM 2.2 is to be based on NFD 0.5, >> however, we really hope that it might be based on the latest (at that time) >> version of NFD. >> >> The reason that ndnSIM 2.2 will be based on NFD 0.4.1 and not 0.5 is that >> NFD 0.5 contains a lot of internal restructuring that is not clear to us >> how easy or hard would be to integrate with ndnSIM. ndnSIM is based on NS3 >> and the NS3 world has some certain restrictions and patterns that sometimes >> make the integration of NFD features really hard. >> >> I wish we had more manpower to be able to keep up more actively. >> >> Thank you, >> Spyros >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Oct 29 19:40:49 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sat, 29 Oct 2016 22:40:49 -0400 Subject: [ndnSIM] Content Store documentation In-Reply-To: <5E098443-9EE2-48D8-B9C9-B2CCFAE74B90@cs.ucla.edu> References: <5E098443-9EE2-48D8-B9C9-B2CCFAE74B90@cs.ucla.edu> Message-ID: All, I sent Spyros another correction for http://ndnsim.net/2.1/helpers.html and forgot to Reply All. Sorry about that. Also, is it true that NFD still uses a skip list as its underlying data structure? I could be wrong but I thought I read something about a change in that somewhere. I have to go digging to find out where it was, but I thought I did. Thanks, John On Wed, Oct 26, 2016 at 1:57 PM, Spyridon (Spyros) Mastorakis < mastorakis at cs.ucla.edu> wrote: > Hi John, > > my understanding is that there is one outdated statement in the > documentation, but you said that the outdated documentation is widespread. > > Could you please let us know which statements are outdated, so that we can > update them for the next ndnSIM release? > > Thanks, > > Spyridon (Spyros) Mastorakis > Personal Website: http://cs.ucla.edu/~mastorakis/ > Internet Research Laboratory > Computer Science Department > UCLA > > On Oct 24, 2016, at 11:10 PM, John Baugh wrote: > > Greetings ndnSIM friends, > > It seems the outdated documentation on the NFD Content Store is > widespread. E.g., > > http://ndnsim.net/2.1/cs.html > > Any idea as to when some of this could be updated or alternate resources > or documentation and tutorials that are a little more up to date? > > Thanks > > John > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sat Oct 29 22:27:45 2016 From: jpbaugh at umich.edu (John Baugh) Date: Sun, 30 Oct 2016 01:27:45 -0400 Subject: [ndnSIM] Questions related to content store and attack scenarios Message-ID: Greetings again ndnSIM friends, I've been pouring over the documentation from your site as well as the NDN NFD developer's manual and other papers and sources. I've compiled a few questions related to my research, and based on what I've read thus far. Again, I am still very much a newbie. Hopefully I can contribute and be productive to help you all and give back to the community once I have my bearings. Here are my questions: 1. The NFD developer documentation makes mention of *admission policy* related to the content store. Is this the CachePolicy? 2. In order to customize how data (perhaps, rather what data) makes it in to the CS and what is removed when, do I subclass CachePolicy? - Once you create such a subclass, where do you put it so "the system" will recognize it when you use a CS::setPolicy call? 3. How can I display the contents of the CS in a router / node at different times? Does this require subclassing one of the Tracers so it can create a file with some of the information related to content store contents? - Since I am focusing on cache pollution attacks, I need to be able to ascertain what data was implanted by an attacker, and what data was requested by legitimate users - specifically being able to correlate Interests sent by attackers vs normal users resulting in data caching in the CS 4. Related to question 3, how can I create one or more attackers? I assume this would involve subclassing one of the Consumer classes? Is there any more thorough documentation or examples of how one does something like this? 5. Is it possible for a consumer node (such as an attacker) to focus on a specific interface (Face)? - I may have some misunderstandings regarding the concept of "Face" in ndnSIM / NDN / NFD - Would a particular node naturally always be "attached" to one single Face during the simulation? That's all for now. I really appreciate everyone and their willingness to help. I know many of you are also very busy, so I definitely plan on helping out in the future to make ndnSIM better. For now, I am somewhat crunched for time on producing some solid research, but I guess aren't we all?! :) Thanks! John -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 30 07:14:02 2016 From: shijunxiao at email.arizona.edu (shijunxiao at email.arizona.edu) Date: Sun, 30 Oct 2016 07:14:02 -0700 Subject: [ndnSIM] Content Store documentation In-Reply-To: References: <5E098443-9EE2-48D8-B9C9-B2CCFAE74B90@cs.ucla.edu> Message-ID: <58160021.86a0420a.fb031.144c@mx.google.com> Hi John No, this is false. In NFD 0.5.0: ? CS lookup index is std::set (search the codebase for nfd::cs::Table declaration). ? Both priority fifo and lru policies use std::list and std::map (or their Boost equivalent) for cleanup index. Yours, Junxiao From: John Baugh Sent: Saturday, October 29, 2016 19:41 To: Spyridon (Spyros) Mastorakis Cc: ndnsim Subject: Re: [ndnSIM] Content Store documentation Also, is it true that NFD still uses a skip list as its underlying data structure?? I could be wrong but I thought I read something about a change in that somewhere.? I have to go digging to find out where it was, but I thought I did. -------------- next part -------------- An HTML attachment was scrubbed... URL: From shijunxiao at email.arizona.edu Sun Oct 30 07:23:53 2016 From: shijunxiao at email.arizona.edu (shijunxiao at email.arizona.edu) Date: Sun, 30 Oct 2016 07:23:53 -0700 Subject: [ndnSIM] Questions related to content store and attack scenarios In-Reply-To: References: Message-ID: <58160270.d24b620a.e97e8.131c@mx.google.com> Hi John I?m answering about NFD 0.5.0. 1. The NFD developer documentation makes mention of admission policy?related to the content store.? Is this the CachePolicy? No. CachePolicy belongs to NDNLPv2. In ContentStore, there is only one policy: nfd::cs::Policy. This type serves as both admission policy and eviction policy. To implement an admission policy, override doAfterInsert method, check the newly inserted data, and evict it right away if the policy decides not the admit the data. Although the data is already inserted to the lookup index when doAfterInsert is invoked, evicting it immediately is equivalent to not admitting it. The rationale of not having a ?before insert? API is to reduce the number of virtual functions a policy must override. 2. In order to customize how data (perhaps, rather what data) makes it in to the CS and what is removed when, do I subclass CachePolicy? No. You should subclass nfd::cs::Policy. o Once you create such a subclass, where do you put it so "the system" will recognize it when you use a CS::setPolicy call? For now, nfd::cs::makeDefaultPolicy function. In #3148 we?ll allow configuration. Runtime changes of the policy will still be disallowed. Yours, Junxiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Sun Oct 30 21:45:18 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 31 Oct 2016 00:45:18 -0400 Subject: [ndnSIM] Making a simple (?) custom example Message-ID: Greetings again, ndnSIM friends, Sorry to bother you all again. As I tackle this simulator and all the different files and such, I'm finding it somewhat overwhelming at times. So I hope you can understand if I'm asking silly questions. Here's my naive thought: I should be able to just go into the ndnSIM/ns-3/src/ndnSIM/examples directory, copy one of the files, say *ndn-tree-cs-tracers *to *ndn-tree-cs2-tracers* (note that 2 in the name). Then, I did notice that if I move up a couple directories and run ./waf --run=ndn-tree-cs2-tracers it does seem to work. Is this the directory we should always work out of? Will Waf always find the file even if I make my own custom directory? *Also, *it looks like most (all?) of the examples on the ndnSIM site* use the Old Content store.* Is this still recommended, or can we freely use the NDF version now with no serious issues? The previous e-mails seem to imply this. ----------------------------- *I tried commenting out the SetOldContentStore *lines and added a call to SetContentStore: *ndnHelper.SetContentStore ("ns3::ndn::cs::Lru",* * "MaxSize", "10000");* When I move up a couple directories and run ./wra --run=ndn-tree-cs2-tracers, I get an error saying that "*SetContentStore is not a member of ns3::ndn::StackHelper"*, but it's right there in your documentation. I'm very confused and just trying to get my feet wet with the actual code before I dive in. Thanks! John -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhasabet at gmail.com Sun Oct 30 23:13:06 2016 From: mhasabet at gmail.com (Muhammad Hosain Abdollahi Sabet) Date: Mon, 31 Oct 2016 09:43:06 +0330 Subject: [ndnSIM] Making a simple (?) custom example In-Reply-To: References: Message-ID: Hi John, It's good to have you here again! ?If you have configured ns-3 with *./waf configure --enable-examples* and compiled it(I suppose you have), then you can run examples like you did (*--run *). Regardless of enabling examples in the first step(./waf configure), you can always run your simulation scenario by putting the file(here *ndn-tree-cs2-tracers.cc*) in */scratch*? folder and run it like normal (--run ndn-tree-cs2-tracers). And if you want to have header/source files for some custom applications or something like that in your simulation, you can have your custom folder in /examples(if you have done --enable-examples) e.g.: /examples/JB-custom-folder and place the files into it, then #include them in you scenario file which should be placed in /examples folder. Likewise you can do the same with /scratch folder. I mean, you can have your custom directory /scratch/JB-custom-folder and put you custom files in it, then #include them in the scenario file. Also you can use scenario-template: https://github.com/named-data-ndnSIM/scenario-template Just follow the instruction mentioned in the page. ----------------- > ?When I move up a couple directories and run ./wra > --run=ndn-tree-cs2-tracers, I get an error saying that "*SetContentStore > is not a member of ns3::ndn::StackHelper"*, but it's right there in your > documentation. > No. Compiler is right :) SetContentStore is not a member of StackHelper. You can check here: http://ndnsim.net/2.1/doxygen/classns3_1_1ndn_1_1StackHelper.html ?Is this still recommended, or can we freely use the NDF version now with > no serious issues? The previous e-mails seem to imply this. > ?As you probably know, ndnSIM uses a different(older) version of NFD. NFD's latest version is 0.5, while ndnSIM 2.1 is using 0.3.4 and ndnSIM 2.2 is going to use 0.4. Of course you can try compiling NFD's latest version with ndnSIM, ?but you will get many errors. I hope my answer is not that complicated as it seems. Thanks, Sabet On Mon, Oct 31, 2016 at 8:15 AM, John Baugh wrote: > Greetings again, ndnSIM friends, > > Sorry to bother you all again. As I tackle this simulator and all the > different files and such, I'm finding it somewhat overwhelming at times. > So I hope you can understand if I'm asking silly questions. > > Here's my naive thought: > > I should be able to just go into the ndnSIM/ns-3/src/ndnSIM/examples > directory, copy one of the files, say *ndn-tree-cs-tracers *to > *ndn-tree-cs2-tracers* (note that 2 in the name). > > Then, I did notice that if I move up a couple directories and run ./waf > --run=ndn-tree-cs2-tracers it does seem to work. > > Is this the directory we should always work out of? Will Waf always find > the file even if I make my own custom directory? > > *Also, *it looks like most (all?) of the examples on the ndnSIM site* use > the Old Content store.* > ?? > Is this still recommended, or can we freely use the NDF version now with > no serious issues? The previous e-mails seem to imply this. > > ----------------------------- > > *I tried commenting out the SetOldContentStore *lines and added a call to > SetContentStore: > > *ndnHelper.SetContentStore ("ns3::ndn::cs::Lru",* > * "MaxSize", "10000");* > > ?? > When I move up a couple directories and run ./wra > --run=ndn-tree-cs2-tracers, I get an error saying that "*SetContentStore > is not a member of ns3::ndn::StackHelper"*, but it's right there in your > documentation. > > I'm very confused and just trying to get my feet wet with the actual code > before I dive in. > > Thanks! > > John > > _______________________________________________ > ndnSIM mailing list > ndnSIM at lists.cs.ucla.edu > http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpbaugh at umich.edu Mon Oct 31 06:08:19 2016 From: jpbaugh at umich.edu (John Baugh) Date: Mon, 31 Oct 2016 09:08:19 -0400 Subject: [ndnSIM] Making a simple (?) custom example In-Reply-To: References: Message-ID: Sabet, Aha! So ndnSIM is using an older version of NFD. If this is so, how does one specify the content store? Is this still customizable? Or should we use the Old Content Store style? Or something else? Thanks, John On Mon, Oct 31, 2016 at 2:13 AM, Muhammad Hosain Abdollahi Sabet < mhasabet at gmail.com> wrote: > Hi John, > > It's good to have you here again! > > ?If you have configured ns-3 with *./waf configure --enable-examples* and > compiled it(I suppose you have), then you can run examples like you did (*--run > *). Regardless of enabling examples in the first > step(./waf configure), you can always run your simulation scenario by > putting the file(here *ndn-tree-cs2-tracers.cc*) in */scratch*? folder > and run it like normal (--run ndn-tree-cs2-tracers). And if you want to > have header/source files for some custom applications or something like > that in your simulation, you can have your custom folder in /examples(if > you have done --enable-examples) e.g.: > /examples/JB-custom-folder > and place the files into it, then #include them in you scenario file which > should be placed in /examples folder. Likewise you can do the same with > /scratch folder. I mean, you can have your custom directory > /scratch/JB-custom-folder > and put you custom files in it, then #include them in the scenario file. > Also you can use scenario-template: > https://github.com/named-data-ndnSIM/scenario-template > Just follow the instruction mentioned in the page. > > ----------------- > >> ?When I move up a couple directories and run ./wra >> --run=ndn-tree-cs2-tracers, I get an error saying that "*SetContentStore >> is not a member of ns3::ndn::StackHelper"*, but it's right there in your >> documentation. >> > > No. Compiler is right :) SetContentStore is not a member of StackHelper. > You can check here: > http://ndnsim.net/2.1/doxygen/classns3_1_1ndn_1_1StackHelper.html > > > ?Is this still recommended, or can we freely use the NDF version now with >> no serious issues? The previous e-mails seem to imply this. >> > > ?As you probably know, ndnSIM uses a different(older) version of NFD. > NFD's latest version is 0.5, while ndnSIM 2.1 is using 0.3.4 and ndnSIM 2.2 > is going to use 0.4. Of course you can try compiling NFD's latest version > with ndnSIM, ?but you will get many errors. > > I hope my answer is not that complicated as it seems. > > Thanks, > Sabet > > > > On Mon, Oct 31, 2016 at 8:15 AM, John Baugh wrote: > >> Greetings again, ndnSIM friends, >> >> Sorry to bother you all again. As I tackle this simulator and all the >> different files and such, I'm finding it somewhat overwhelming at times. >> So I hope you can understand if I'm asking silly questions. >> >> Here's my naive thought: >> >> I should be able to just go into the ndnSIM/ns-3/src/ndnSIM/examples >> directory, copy one of the files, say *ndn-tree-cs-tracers *to >> *ndn-tree-cs2-tracers* (note that 2 in the name). >> >> Then, I did notice that if I move up a couple directories and run ./waf >> --run=ndn-tree-cs2-tracers it does seem to work. >> >> Is this the directory we should always work out of? Will Waf always find >> the file even if I make my own custom directory? >> >> *Also, *it looks like most (all?) of the examples on the ndnSIM site* >> use the Old Content store.* >> ?? >> Is this still recommended, or can we freely use the NDF version now with >> no serious issues? The previous e-mails seem to imply this. >> >> ----------------------------- >> >> *I tried commenting out the SetOldContentStore *lines and added a call >> to SetContentStore: >> >> *ndnHelper.SetContentStore ("ns3::ndn::cs::Lru",* >> * "MaxSize", "10000");* >> >> ?? >> When I move up a couple directories and run ./wra >> --run=ndn-tree-cs2-tracers, I get an error saying that "*SetContentStore >> is not a member of ns3::ndn::StackHelper"*, but it's right there in your >> documentation. >> >> I'm very confused and just trying to get my feet wet with the actual code >> before I dive in. >> >> Thanks! >> >> John >> >> _______________________________________________ >> ndnSIM mailing list >> ndnSIM at lists.cs.ucla.edu >> http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Mon Oct 31 15:56:17 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Mon, 31 Oct 2016 15:56:17 -0700 Subject: [ndnSIM] Questions related to content store and attack scenarios In-Reply-To: References: Message-ID: Hi John, please see my response inline. > How can I display the contents of the CS in a router / node at different times? Does this require subclassing one of the Tracers so it can create a file with some of the information related to content store contents? > Since I am focusing on cache pollution attacks, I need to be able to ascertain what data was implanted by an attacker, and what data was requested by legitimate users - specifically being able to correlate Interests sent by attackers vs normal users resulting in data caching in the CS Use the NS_LOG option when you run your simulation scenario. You can add logging on a per class basis by initializing a logging component this way: https://github.com/named-data-ndnSIM/NFD/blob/NFD-0.3.4-ndnSIM/daemon/fw/forwarder.cpp#L38 and add logging statement like that: https://github.com/named-data-ndnSIM/NFD/blob/NFD-0.3.4-ndnSIM/daemon/fw/forwarder.cpp#L74-L75 Then, you have to recompile and run your simulation scenario: NS_LOG= ./waf ?run > Related to question 3, how can I create one or more attackers? I assume this would involve subclassing one of the Consumer classes? Is there any more thorough documentation or examples of how one does something like this? Create a separate app for the attacker. The app behavior is fully programmable. Take a look at the various app classes that inherit from the consumer class. > Is it possible for a consumer node (such as an attacker) to focus on a specific interface (Face)? > I may have some misunderstandings regarding the concept of "Face" in ndnSIM / NDN / NFD > Would a particular node naturally always be "attached" to one single Face during the simulation? > A face is associated with a number of prefixes. To this end, it has to do with what prefixes are reachable through a specific face. A node has a number of faces (one face per application, one face per network device and a number of faces for the simulated NFD instance). Hope that this helps. Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA -------------- next part -------------- An HTML attachment was scrubbed... URL: From mastorakis at CS.UCLA.EDU Mon Oct 31 16:04:04 2016 From: mastorakis at CS.UCLA.EDU (Spyridon (Spyros) Mastorakis) Date: Mon, 31 Oct 2016 16:04:04 -0700 Subject: [ndnSIM] Making a simple (?) custom example In-Reply-To: References: Message-ID: To clarify: ndnSIM 2.2 will be using NFD 0.4.1. The CS of NFD 0.4.1 has replacement policies + handles selectors. My opinion is that it might be easier for you to deal with the old content store to implement your own replacement policy (it offers limited support for Interest selectors though). This is just my personal feeling and I might be actually wrong. You can take a look at the commit that updates the ndnSIM documentation for the new release here: https://gerrit.named-data.net/#/c/3299/ Spyridon (Spyros) Mastorakis Personal Website: http://cs.ucla.edu/~mastorakis/ Internet Research Laboratory Computer Science Department UCLA > On Oct 31, 2016, at 6:08 AM, John Baugh wrote: > > Sabet, > > Aha! So ndnSIM is using an older version of NFD. If this is so, how does one specify the content store? > > Is this still customizable? Or should we use the Old Content Store style? Or something else? > > Thanks, > > John > > On Mon, Oct 31, 2016 at 2:13 AM, Muhammad Hosain Abdollahi Sabet > wrote: > Hi John, > > It's good to have you here again! > > ?If you have configured ns-3 with ./waf configure --enable-examples and compiled it(I suppose you have), then you can run examples like you did (--run ). Regardless of enabling examples in the first step(./waf configure), you can always run your simulation scenario by putting the file(here ndn-tree-cs2-tracers.cc) in /scratch? folder and run it like normal (--run ndn-tree-cs2-tracers). And if you want to have header/source files for some custom applications or something like that in your simulation, you can have your custom folder in /examples(if you have done --enable-examples) e.g.: > /examples/JB-custom-folder > and place the files into it, then #include them in you scenario file which should be placed in /examples folder. Likewise you can do the same with /scratch folder. I mean, you can have your custom directory > /scratch/JB-custom-folder > and put you custom files in it, then #include them in the scenario file. Also you can use scenario-template: > https://github.com/named-data-ndnSIM/scenario-template > Just follow the instruction mentioned in the page. > > ----------------- > ?When I move up a couple directories and run ./wra --run=ndn-tree-cs2-tracers, I get an error saying that "SetContentStore is not a member of ns3::ndn::StackHelper", but it's right there in your documentation. > > No. Compiler is right :) SetContentStore is not a member of StackHelper. You can check here: > http://ndnsim.net/2.1/doxygen/classns3_1_1ndn_1_1StackHelper.html > > > ?Is this still recommended, or can we freely use the NDF version now with no serious issues? The previous e-mails seem to imply this. > > ?As you probably know, ndnSIM uses a different(older) version of NFD. NFD's latest version is 0.5, while ndnSIM 2.1 is using 0.3.4 and ndnSIM 2.2 is going to use 0.4. Of course you can try compiling NFD's latest version with ndnSIM, ?but you will get many errors. > > I hope my answer is not that complicated as it seems. > > Thanks, > Sabet > > > > On Mon, Oct 31, 2016 at 8:15 AM, John Baugh > wrote: > Greetings again, ndnSIM friends, > > Sorry to bother you all again. As I tackle this simulator and all the different files and such, I'm finding it somewhat overwhelming at times. So I hope you can understand if I'm asking silly questions. > > Here's my naive thought: > > I should be able to just go into the ndnSIM/ns-3/src/ndnSIM/examples directory, copy one of the files, say ndn-tree-cs-tracers to ndn-tree-cs2-tracers (note that 2 in the name). > > Then, I did notice that if I move up a couple directories and run ./waf --run=ndn-tree-cs2-tracers it does seem to work. > > Is this the directory we should always work out of? Will Waf always find the file even if I make my own custom directory? > > Also, it looks like most (all?) of the examples on the ndnSIM site use the Old Content store. ??Is this still recommended, or can we freely use the NDF version now with no serious issues? The previous e-mails seem to imply this. > > ----------------------------- > > I tried commenting out the SetOldContentStore lines and added a call to SetContentStore: > > ndnHelper.SetContentStore ("ns3::ndn::cs::Lru", > "MaxSize", "10000"); > > ??When I move up a couple directories and run ./wra --run=ndn-tree-cs2-tracers, I get an error saying that "SetContentStore is not a member of ns3::ndn::StackHelper", but it's right there in your documentation. > > I'm very confused and just trying to get my feet wet with the actual code before I dive in. > > Thanks! > > John > -------------- next part -------------- An HTML attachment was scrubbed... URL: From 410330533 at qq.com Sat Oct 8 06:41:06 2016 From: 410330533 at qq.com (=?ISO-8859-1?B?V2FuZ1ppamlhbg==?=) Date: Sat, 08 Oct 2016 13:41:06 -0000 Subject: [ndnSIM] difference between two Content Stores Message-ID: Hello,Why does ndnSIM hava two Content Stores, namely ndn::cs and nfd:cs? I know the former is the old version, but when ndnSIM is running, which is used? And what's the difference between them? Sincerely, WangZijian -------------- next part -------------- An HTML attachment was scrubbed... URL: