When giving up PIT entry, remove all outgoing interests. Otherwise,
everything can stuck (was happening...)

Modified experiment with synthetic topology
diff --git a/examples/synthetic-topology.cc b/examples/synthetic-topology.cc
index b19b375..f03c22e 100644
--- a/examples/synthetic-topology.cc
+++ b/examples/synthetic-topology.cc
@@ -44,7 +44,7 @@
   Simulator::Schedule (Seconds (10.0), PrintTime);
 }
 
-int 
+int
 main (int argc, char *argv[])
 {
   string input ("./src/NDNabstraction/examples/synthetic-topology.txt");
@@ -64,18 +64,18 @@
   // --------------------------------------------
     
   AnnotatedTopologyReader reader ("/synthetic");
-  reader.SetMobilityModel ("ns3::SpringMobilityModel");
+  // reader.SetMobilityModel ("ns3::SpringMobilityModel");
   reader.SetFileName (input);
   NodeContainer nodes = reader.Read ();
-  SpringMobilityHelper::InstallSprings (reader.LinksBegin (), reader.LinksEnd ());
+  // SpringMobilityHelper::InstallSprings (reader.LinksBegin (), reader.LinksEnd ());
     
   InternetStackHelper stack;
   Ipv4GlobalRoutingHelper ipv4RoutingHelper ("ns3::Ipv4GlobalRoutingOrderedNexthops");
   stack.SetRoutingHelper (ipv4RoutingHelper);
   stack.Install (nodes);
-  /*
-    reader.AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
-  */
+
+  reader.AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
+
   NS_LOG_INFO("Nodes = " << nodes.GetN());
   NS_LOG_INFO("Links = " << reader.LinksSize ());
     
@@ -84,31 +84,50 @@
   CcnxStackHelper ccnxHelper;
   ccnxHelper.SetForwardingStrategy (strategy);
   ccnxHelper.EnableLimits (true, Seconds(0.1));
-  ccnxHelper.SetDefaultRoutes (true);
+  ccnxHelper.SetDefaultRoutes (false);
   ccnxHelper.InstallAll ();
     
   NS_LOG_INFO ("Installing Applications");
-  CcnxConsumerHelper consumerHelper ("/1");
-  ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/synthetic", "NODE1"));
-    
-  CcnxConsumerHelper consumerHelper2("/2");
-  ApplicationContainer consumers2 = consumerHelper2.Install(Names::Find<Node> ("/synthetic", "NODE2"));
-    
-  CcnxProducerHelper producerHelper ("/1",1024);
-  ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/synthetic", "NODE6"));
-        
-  CcnxProducerHelper producerHelper2 ("/2",1024);
-  ApplicationContainer producers2 = producerHelper2.Install (Names::Find<Node> ("/synthetic", "NODE7"));
+  CcnxConsumerHelper consumerHelper ("/6");
+  ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/synthetic", "c1"));
 
+  consumerHelper.SetPrefix ("/7");
+  ApplicationContainer consumers2 = consumerHelper.Install(Names::Find<Node> ("/synthetic", "c2"));
+
+  consumerHelper.SetPrefix ("/8");
+  ApplicationContainer consumers3 = consumerHelper.Install(Names::Find<Node> ("/synthetic", "c3"));
+  
+  consumerHelper.SetPrefix ("/10");
+  ApplicationContainer consumers4 = consumerHelper.Install(Names::Find<Node> ("/synthetic", "c4"));
+
+  consumers.Start (Seconds (2.121212123));
+  consumers2.Start (Seconds (0.166666));
+  consumers3.Start (Seconds (4.1235432));
+  consumers4.Start (Seconds (3.00005421));
+  
+  CcnxProducerHelper producerHelper ("/6",1024);
+  ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/synthetic", "p1"));
+        
+  CcnxProducerHelper producerHelper2 ("/7",1024);
+  ApplicationContainer producers2 = producerHelper2.Install (Names::Find<Node> ("/synthetic", "p2"));
+
+  CcnxProducerHelper producerHelper3 ("/8",1024);
+  ApplicationContainer producers3 = producerHelper3.Install (Names::Find<Node> ("/synthetic", "p3"));
+  
+  CcnxProducerHelper producerHelper4 ("/10",1024);
+  ApplicationContainer producers4 = producerHelper4.Install (Names::Find<Node> ("/synthetic", "p4"));
+  
   Simulator::Schedule (Seconds (10.0), PrintTime);
 
   // Populate FIB based on IPv4 global routing controller
-  //ccnxHelper.InstallFakeGlobalRoutes ();
-  //ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "NODE1"));
-  //ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "NODE7"));
-    
+  ccnxHelper.InstallFakeGlobalRoutes ();
+  ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p1"));
+  ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p2"));
+  ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p3"));
+  ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p4"));
+
   Simulator::Stop (finishTime);
-    
+
   NS_LOG_INFO ("Run Simulation.");
   Simulator::Run ();
   Simulator::Destroy ();
diff --git a/examples/synthetic-topology.txt b/examples/synthetic-topology.txt
index 2c080d9..0d175b0 100644
--- a/examples/synthetic-topology.txt
+++ b/examples/synthetic-topology.txt
@@ -1,20 +1,29 @@
 router
 #name	city	latitude	longitude
-NODE1	NODE1	60		20
-NODE2	NODE2	20		20
-NODE3	NODE3	40		40
-NODE4	NODE4	20		60
-NODE5	NODE5	40		80
-NODE6	NODE6	60  		100
-NODE7	NODE7	20		100
+c1	NODE1	50		30
+c2	NODE2	30		30
+c3	x	10		30
+n1	NODE3	40		40
+n12	NODE4	30		60
+n2	NODE5	40		80
+p1	NODE6	50  		90
+p2	NODE7	30		90
+p3	x	10		90
+c4	x	10		40
+p4	x	10		80
 link
 #capacity on 4/10/2003 (see page 20 of http://www.internet2.edu/presentations/spring03/20030410-Abilene-Corbato.pdf)
 #OSPF weight on 04/10/2003 (see http://www.abilene.iu.edu/images/Ab-IGP-topo.jpg)
-#x	y	capacity(kbps)	OSPF    Delay   QueueSize1	QueueSize2
-NODE1	NODE3	10Mbps 		1 	1  	150  	    	150
-NODE2	NODE3	10Mbps 		1 	1   	150 	    	150
-NODE3	NODE4	1Mbps 		1176   	1   	15  		15
-NODE3	NODE5	1Mbps 		587    	1   	15  		15
-NODE4	NODE5	1Mbps 		846    	1   	15  		15
-NODE5	NODE6	10Mbps 		260   	1   	150		150
-NODE5	NODE7	10Mbps 		700   	50  	150		150
+#x	y	capacity(kbps)	OSPF    Delay		MaxPackets
+c1	n1	10Mbps 		1 	1ms  		200
+c2	n1	10Mbps 		1 	1ms   		200
+c3	n1	10Mbps		1	1ms		200
+n1	n2	1Mbps 		1176   	1ms   		20 
+n1	n12	1Mbps 		587    	1ms   		20
+n12	n2	1Mbps 		846    	1ms   		20
+n2	p1	10Mbps 		260   	50ms   		200
+n2	p2	10Mbps 		700   	1ms  		200
+n2	p3	10Mbps		1	1ms		200
+c4	n1	10Mbps		1	1ms		200
+n2	p4	10Mbps		1	1ms		200
+