examples corrections
diff --git a/examples/annotated-topology-read-example.cc b/examples/annotated-topology-read-example.cc
index 63e42c4..7aff4fe 100644
--- a/examples/annotated-topology-read-example.cc
+++ b/examples/annotated-topology-read-example.cc
@@ -30,18 +30,22 @@
#include "ns3/ipv4-list-routing-helper.h"
#include "ns3/annotated-topology-reader.h"
#include <list>
-//#include "ns3/visualizer-module.h"
+#include "ns3/visualizer-module.h"
+#include "ns3/ccnx.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/NDNabstraction-module.h"
using namespace ns3;
using namespace std;
-NS_LOG_COMPONENT_DEFINE ("AnnotatedTopologyReadingExample");
+NS_LOG_COMPONENT_DEFINE ("AnnotatedTopologyExample");
int main (int argc, char *argv[])
{
GlobalValue::Bind ("SimulatorImplementationType", StringValue
("ns3::VisualSimulatorImpl"));
-
+ 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.
@@ -71,6 +75,16 @@
return -1;
}
+
+ 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());
+ }
+
// ------------------------------------------------------------
// -- Create nodes and network stacks
// --------------------------------------------
@@ -79,15 +93,30 @@
//routing
- Ipv4StaticRoutingHelper staticRouting;
- Ipv4ListRoutingHelper listRH;
- listRH.Add (staticRouting, 0);
- stack.SetRoutingHelper (listRH); // has effect on the next Install ()
- stack.Install (nodes);
+ //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);
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 ();
+
+ /*grid.AssignIpv4Addresses (
+ Ipv4AddressHelper("10.1.0.0", "255.255.255.0"),
+ Ipv4AddressHelper("10.2.0.0", "255.255.255.0")
+ );
+*/
int totlinks = reader->LinksSize ();
@@ -106,8 +135,39 @@
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 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));
+ */
+
+ 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");
diff --git a/examples/syntactic-topology-ndnabstraction.cc b/examples/syntactic-topology-ndnabstraction.cc
index a1a92a1..61f5c49 100644
--- a/examples/syntactic-topology-ndnabstraction.cc
+++ b/examples/syntactic-topology-ndnabstraction.cc
@@ -1,17 +1,36 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; c-set-offset 'innamespace 0; -*- */
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
/*
- * sync-topology-ndnabstraction.cpp
- * XcodeProject
+ * Copyright (c) 2011 University of California, Los Angeles
*
- * Created by Ilya on 7/18/11.
- * Copyright 2011 __MyCompanyName__. All rights reserved.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
*
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
*/
+
#include "ns3/core-module.h"
#include "ns3/network-module.h"
-#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
-#include "ns3/applications-module.h"
+#include "ns3/NDNabstraction-module.h"
+#include <ns3/point-to-point-grid.h>
+#include "ns3/ipv4-global-routing-helper.h"
+
+#include <iostream>
+#include <sstream>
+
+#include "ns3/visualizer-module.h"
+#include "ns3/ccnx.h"
+
using namespace ns3;
@@ -20,11 +39,17 @@
int
main (int argc, char *argv[])
{
+ GlobalValue::Bind ("SimulatorImplementationType", StringValue
+ ("ns3::VisualSimulatorImpl"));
+
// Set up some default values for the simulation. Use the
Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (210));
Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("448kb/s"));
+ Packet::EnableChecking();
+ Packet::EnablePrinting();
+
// Allow the user to override any of the defaults and the above
// DefaultValue::Bind ()s at run-time, via command-line arguments
CommandLine cmd;
@@ -34,25 +59,32 @@
NS_LOG_INFO ("Create nodes.");
NodeContainer c;
c.Create (7);
-
-
+ Names::Add ("1", c.Get (0));
+ Names::Add ("2", c.Get (1));
+ Names::Add ("3", c.Get (2));
+ Names::Add ("4", c.Get (3));
+ Names::Add ("5", c.Get (4));
+ Names::Add ("6", c.Get (5));
+ Names::Add ("7", c.Get (6));
+
+
NodeContainer n13 = NodeContainer (c.Get (0), c.Get (2));
- NodeContainer n23 = NodeContainer (c.Get (1), c.Get (3));
+ NodeContainer n23 = NodeContainer (c.Get (1), c.Get (2));
NodeContainer n35 = NodeContainer (c.Get (2), c.Get (4));
NodeContainer n34 = NodeContainer (c.Get (2), c.Get (3));
NodeContainer n45 = NodeContainer (c.Get (3), c.Get (4));
NodeContainer n56 = NodeContainer (c.Get (4), c.Get (5));
NodeContainer n57 = NodeContainer (c.Get (4), c.Get (6));
- Ipv4StaticRoutingHelper staticRouting;
+ //Ipv4StaticRoutingHelper staticRouting;
- Ipv4ListRoutingHelper list;
- list.Add (staticRouting, 1);
+ //Ipv4ListRoutingHelper list;
+ //list.Add (staticRouting, 1);
//Add static routing
- InternetStackHelper internet;
- internet.SetRoutingHelper (list); // has effect on the next Install ()
- internet.Install (c);
+ //InternetStackHelper internet;
+ //internet.SetRoutingHelper (list); // has effect on the next Install ()
+ //internet.Install (c);
// We create the channels first without any IP addressing information
NS_LOG_INFO ("Create channels.");
@@ -76,6 +108,15 @@
p2p.SetChannelAttribute ("Delay", StringValue ("50ms"));
NetDeviceContainer nd35 = p2p.Install (n35);
+ InternetStackHelper stack;
+ Ipv4GlobalRoutingHelper ipv4RoutingHelper;
+ // Ptr<Ipv4RoutingHelper> ipv4RoutingHelper = stack.GetRoutingHelper ();
+ stack.SetRoutingHelper (ipv4RoutingHelper);
+ stack.Install(c);
+ // // Create router nodes, initialize routing database and set up the routing
+ // // tables in the nodes.
+ Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+
// Later, we add IP addresses.
NS_LOG_INFO ("Assign IP Addresses.");
Ipv4AddressHelper ipv4;
@@ -88,10 +129,59 @@
Ipv4InterfaceContainer i56 = ipv4.Assign (nd56);
Ipv4InterfaceContainer i57 = ipv4.Assign (nd57);
-
+
+
+
+ CcnxStackHelper ccnx(Ccnx::NDN_FLOODING/*Ccnx::NDN_BESTROUTE*/);
+ Ptr<CcnxFaceContainer> cf = ccnx.Install (c);
+
+ NS_LOG_INFO ("Installing Applications");
+ CcnxConsumerHelper helper ("/3");
+ ApplicationContainer app = helper.Install (c.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(c.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));
+ */
+
+ ccnx.AddRoute("1","/3",0,1);
+ ccnx.AddRoute("3","/3",2,1);
+ ccnx.AddRoute("3","/3",3,1);
+ ccnx.AddRoute("4","/3",1,1);
+ ccnx.AddRoute("5","/3",2,1);
+
+ /*ccnx.AddRoute ("1", "/3", 0, 1);
+ ccnx.AddRoute ("1", "/3", 1, 1);
+
+ ccnx.AddRoute ("2", "/3", 1, 1);
+
+ ccnx.AddRoute ("3", "/3", 1, 1);
+
+ ccnx.AddRoute ("4", "/3", 2, 1);
+
+ ccnx.AddRoute ("6", "/3", 2, 1);
+
+ ccnx.AddRoute ("7", "/3", 1, 1);
+
+ ccnx.AddRoute ("8", "/3", 1, 1);
+ */
+
// Create the OnOff application to send UDP datagrams of size
// 210 bytes at a rate of 448 Kb/s from n0 to n4
- NS_LOG_INFO ("Create Applications.");
+ /*NS_LOG_INFO ("Create Applications.");
uint16_t port = 9; // Discard port (RFC 863)
std::string sendsizeattr = "SendSize";
@@ -125,9 +215,9 @@
AsciiTraceHelper ascii;
p2p.EnableAsciiAll (ascii.CreateFileStream ("sync-topology-ndnabstraction.tr"));
- p2p.EnablePcapAll ("sync-topology-ndnabstraction");
+ p2p.EnablePcapAll ("sync-topology-ndnabstraction");*/
- Simulator::Stop (Seconds (20));
+ Simulator::Stop (Seconds (2000));
NS_LOG_INFO ("Run Simulation.");
Simulator::Run ();