Adding initial code to implement limited (by time) retransmission in CcnxConsumer
diff --git a/examples/link-failure-sprint.cc b/examples/link-failure-sprint.cc
index 903e406..88f2344 100644
--- a/examples/link-failure-sprint.cc
+++ b/examples/link-failure-sprint.cc
@@ -125,7 +125,16 @@
face1->SetUp (false);
face2->SetUp (false);
-
+
+ // set metric to max (for GlobalRouter to know what we want)
+ Ptr<Ipv4> ipv4_1 = ccnx1->GetObject<Ipv4> ();
+ Ptr<Ipv4> ipv4_2 = ccnx2->GetObject<Ipv4> ();
+
+ uint32_t if1 = ipv4_1->GetInterfaceForDevice (nd1);
+ uint32_t if2 = ipv4_2->GetInterfaceForDevice (nd2);
+
+ ipv4_1->SetMetric (if1, std::numeric_limits<uint16_t>::max ());
+ ipv4_2->SetMetric (if2, std::numeric_limits<uint16_t>::max ());
break;
}
}
@@ -226,6 +235,12 @@
return apps;
}
+ void
+ RecalculateRouting ()
+ {
+ Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+ }
+
private:
vector<failures_t> m_failures;
};
@@ -238,11 +253,14 @@
Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("100Mbps"));
Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("2000"));
Config::SetDefault ("ns3::RttEstimator::InitialEstimation", StringValue ("0.5s"));
+ // Config::SetDefault ("ns3::RttEstimator::MaxMultiplier", StringValue ("16.0")); // original default is 64.0
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+ // Config::SetDefault ("ns3::CcnxConsumer::LifeTime", StringValue ("100s"));
+
uint32_t maxRuns = 1;
uint32_t startRun = 0;
std::string failures = "";
@@ -276,6 +294,7 @@
cout << "Total number of applications: " << apps.GetN () << "\n";
Simulator::Schedule (Seconds (10.0), &Experiment::FailLinks, &experiment, run);
+ Simulator::Schedule (Seconds (39.0), &Experiment::RecalculateRouting, &experiment);
//tracing
CcnxTraceHelper traceHelper;
@@ -284,7 +303,7 @@
Simulator::Schedule (Seconds (4.5), &CcnxTraceHelper::EnablePathWeights, &traceHelper,
prefix + "weights.log");
- experiment.Run (Seconds(40.0));
+ experiment.Run (Seconds(60.0));
}
cout << "Finish link failure scenario\n";