Enable limits options in CcnxStackHelper
Slightly modifying the way of how forwarding strategy is hooked up
diff --git a/examples/annotated-topology-read-example.cc b/examples/annotated-topology-read-example.cc
index 000b578..50c9d13 100644
--- a/examples/annotated-topology-read-example.cc
+++ b/examples/annotated-topology-read-example.cc
@@ -41,153 +41,156 @@
int main (int argc, char *argv[])
{
- Packet::EnableChecking();
- Packet::EnablePrinting();
- string input ("/Users/iliamo/ns3-abstract-ndn/ns-3.11/src/NDNabstraction/examples/simpletopology.txt");
+ Packet::EnableChecking();
+ Packet::EnablePrinting();
+ string input ("/Users/iliamo/ns3-abstract-ndn/ns-3.11/src/NDNabstraction/examples/simpletopology.txt");
- // Set up command line parameters used to control the experiment.
- //CommandLine cmd;
- //cmd.AddValue ("input", "Name of the input file.",
- // input);
- //cmd.Parse (argc, argv);
+ // Set up command line parameters used to control the experiment.
+ //CommandLine cmd;
+ //cmd.AddValue ("input", "Name of the input file.",
+ // input);
+ //cmd.Parse (argc, argv);
- // ------------------------------------------------------------
- // -- Read topology data.
- // --------------------------------------------
+ // ------------------------------------------------------------
+ // -- Read topology data.
+ // --------------------------------------------
- Ptr<AnnotatedTopologyReader> reader = CreateObject<AnnotatedTopologyReader> ();
- reader->SetFileName (input);
+ Ptr<AnnotatedTopologyReader> reader = CreateObject<AnnotatedTopologyReader> ();
+ reader->SetFileName (input);
- NodeContainer nodes;
- if (reader != 0)
+ NodeContainer nodes;
+ if (reader != 0)
{
- nodes = reader->Read ();
+ nodes = reader->Read ();
}
- if (reader->LinksSize () == 0)
+ if (reader->LinksSize () == 0)
{
- NS_LOG_ERROR ("Problems reading the topology file. Failing.");
- return -1;
+ NS_LOG_ERROR ("Problems reading the topology file. Failing.");
+ return -1;
}
- for(uint32_t j=0; j<nodes.GetN(); j++)
+ for(uint32_t j=0; j<nodes.GetN(); j++)
{
- uint32_t name = j+1;
- std::stringstream ss;
- ss<<name;
- Names::Add (ss.str(), nodes.Get (j));
- NS_LOG_INFO("Name = " << ss.str());
+ uint32_t name = j+1;
+ std::stringstream ss;
+ ss<<name;
+ Names::Add (ss.str(), nodes.Get (j));
+ NS_LOG_INFO("Name = " << ss.str());
}
- // ------------------------------------------------------------
- // -- Create nodes and network stacks
- // --------------------------------------------
- NS_LOG_INFO ("creating internet stack");
- InternetStackHelper stack;
+ // ------------------------------------------------------------
+ // -- Create nodes and network stacks
+ // --------------------------------------------
+ NS_LOG_INFO ("creating internet stack");
+ InternetStackHelper stack;
- //routing
- //Ipv4StaticRoutingHelper staticRouting;
- //Ipv4ListRoutingHelper listRH;
- //listRH.Add (staticRouting, 0);
- //stack.SetRoutingHelper (listRH); // has effect on the next Install ()
- //stack.Install (nodes);
+ //routing
+ //Ipv4StaticRoutingHelper staticRouting;
+ //Ipv4ListRoutingHelper listRH;
+ //listRH.Add (staticRouting, 0);
+ //stack.SetRoutingHelper (listRH); // has effect on the next Install ()
+ //stack.Install (nodes);
- Ipv4GlobalRoutingHelper ipv4RoutingHelper;
- // Ptr<Ipv4RoutingHelper> ipv4RoutingHelper = stack.GetRoutingHelper ();
- stack.SetRoutingHelper (ipv4RoutingHelper);
- stack.Install(nodes);
+ Ipv4GlobalRoutingHelper ipv4RoutingHelper;
+ // Ptr<Ipv4RoutingHelper> ipv4RoutingHelper = stack.GetRoutingHelper ();
+ stack.SetRoutingHelper (ipv4RoutingHelper);
+ stack.Install(nodes);
- NS_LOG_INFO ("creating ip4 addresses");
- Ipv4AddressHelper address;
- address.SetBase ("10.0.0.0", "255.255.255.252");
+ NS_LOG_INFO ("creating ip4 addresses");
+ Ipv4AddressHelper address;
+ address.SetBase ("10.0.0.0", "255.255.255.252");
- // // Create router nodes, initialize routing database and set up the routing
- // // tables in the nodes.
- Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+ // // Create router nodes, initialize routing database and set up the routing
+ // // tables in the nodes.
+ Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
- /*grid.AssignIpv4Addresses (
- Ipv4AddressHelper("10.1.0.0", "255.255.255.0"),
- Ipv4AddressHelper("10.2.0.0", "255.255.255.0")
- );
-*/
+ /*grid.AssignIpv4Addresses (
+ Ipv4AddressHelper("10.1.0.0", "255.255.255.0"),
+ Ipv4AddressHelper("10.2.0.0", "255.255.255.0")
+ );
+ */
- int totlinks = reader->LinksSize ();
+ int totlinks = reader->LinksSize ();
- ///*** applying settings
- NS_LOG_INFO ("creating node containers");
- NodeContainer* nc = new NodeContainer[totlinks];
- TopologyReader::ConstLinksIterator iter;
- int i = 0;
- for ( iter = reader->LinksBegin (); iter != reader->LinksEnd (); iter++, i++ )
+ ///*** applying settings
+ NS_LOG_INFO ("creating node containers");
+ NodeContainer* nc = new NodeContainer[totlinks];
+ TopologyReader::ConstLinksIterator iter;
+ int i = 0;
+ for ( iter = reader->LinksBegin (); iter != reader->LinksEnd (); iter++, i++ )
{
- nc[i] = NodeContainer (iter->GetFromNode (), iter->GetToNode ());
+ nc[i] = NodeContainer (iter->GetFromNode (), iter->GetToNode ());
}
- NetDeviceContainer* ndc = new NetDeviceContainer[totlinks];
- reader->ApplySettings(ndc,nc);
- ///*** settings applied
+ NetDeviceContainer* ndc = new NetDeviceContainer[totlinks];
+ reader->ApplySettings(ndc,nc);
+ ///*** settings applied
- NS_LOG_INFO("installing ccnx stack");
- CcnxStackHelper ccnx(Ccnx::NDN_FLOODING);
- Ptr<CcnxFaceContainer> cf = ccnx.Install (nodes);
+ NS_LOG_INFO("installing ccnx stack");
+ CcnxStackHelper ccnx;
+ ccnx.SetForwardingStrategy ("ns3::CcnxFloodingStrategy");
+ ccnx.EnableLimits (false);
+
+ Ptr<CcnxFaceContainer> cf = ccnx.Install (nodes);
- NS_LOG_INFO ("Installing Applications");
- CcnxConsumerHelper helper ("/3");
- ApplicationContainer app = helper.Install (nodes.Get(1));
- app.Start (Seconds (1.0));
- app.Stop (Seconds (1000.05));
+ NS_LOG_INFO ("Installing Applications");
+ CcnxConsumerHelper helper ("/3");
+ ApplicationContainer app = helper.Install (nodes.Get(1));
+ app.Start (Seconds (1.0));
+ app.Stop (Seconds (1000.05));
- /*CcnxConsumerHelper helper2 ("/4");
- ApplicationContainer app2 = helper2.Install(c.Get(5));
- app2.Start (Seconds (1.0));
- app2.Stop (Seconds (1000.05));
- */
- CcnxProducerHelper helper3 ("/3",120);
- ApplicationContainer app3 = helper3.Install(nodes.Get(6));
- app3.Start(Seconds(0.0));
- app3.Stop(Seconds(1500.0));
- /*
- CcnxProducerHelper helper4 ("/4",150);
- ApplicationContainer app4 = helper4.Install(c.Get(0));
- app4.Start(Seconds(0.0));
- app4.Stop(Seconds(1500.0));
- */
+ /*CcnxConsumerHelper helper2 ("/4");
+ ApplicationContainer app2 = helper2.Install(c.Get(5));
+ app2.Start (Seconds (1.0));
+ app2.Stop (Seconds (1000.05));
+ */
+ CcnxProducerHelper helper3 ("/3",120);
+ ApplicationContainer app3 = helper3.Install(nodes.Get(6));
+ app3.Start(Seconds(0.0));
+ app3.Stop(Seconds(1500.0));
+ /*
+ CcnxProducerHelper helper4 ("/4",150);
+ ApplicationContainer app4 = helper4.Install(c.Get(0));
+ app4.Start(Seconds(0.0));
+ app4.Stop(Seconds(1500.0));
+ */
- NS_LOG_INFO("Routes");
- ccnx.AddRoute("1","/3",0,1);
- ccnx.AddRoute("3","/3",1,1);
- ccnx.AddRoute("3","/3",2,2);
- /*ccnx.AddRoute("4","/3",1,1);
+ NS_LOG_INFO("Routes");
+ ccnx.AddRoute("1","/3",0,1);
+ ccnx.AddRoute("3","/3",1,1);
+ ccnx.AddRoute("3","/3",2,2);
+ /*ccnx.AddRoute("4","/3",1,1);
ccnx.AddRoute("5","/3",2,1);
-*/
+ */
- // it creates little subnets, one for each couple of nodes.
- NS_LOG_INFO ("creating ipv4 interfaces");
- Ipv4InterfaceContainer* ipic = new Ipv4InterfaceContainer[totlinks];
- for (int i = 0; i < totlinks; i++)
+ // it creates little subnets, one for each couple of nodes.
+ NS_LOG_INFO ("creating ipv4 interfaces");
+ Ipv4InterfaceContainer* ipic = new Ipv4InterfaceContainer[totlinks];
+ for (int i = 0; i < totlinks; i++)
{
- ipic[i] = address.Assign (ndc[i]);
- address.NewNetwork ();
+ ipic[i] = address.Assign (ndc[i]);
+ address.NewNetwork ();
}
- // ------------------------------------------------------------
- // -- Run the simulation
- // --------------------------------------------
- NS_LOG_INFO ("Run Simulation.");
- Simulator::Stop (Seconds (20));
- Simulator::Run ();
- Simulator::Destroy ();
+ // ------------------------------------------------------------
+ // -- Run the simulation
+ // --------------------------------------------
+ NS_LOG_INFO ("Run Simulation.");
+ Simulator::Stop (Seconds (20));
+ Simulator::Run ();
+ Simulator::Destroy ();
- delete[] ipic;
- delete[] ndc;
- delete[] nc;
+ delete[] ipic;
+ delete[] ndc;
+ delete[] nc;
- NS_LOG_INFO ("Done.");
+ NS_LOG_INFO ("Done.");
- return 0;
+ return 0;
}