Files
2022-06-30 10:02:25 +08:00

983 lines
29 KiB
C++

#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/ndnSIM-module.h"
#include "../extensions/mircc-strategy.hpp"
namespace ns3
{
int
main(int argc, char *argv[])
{
CommandLine cmd;
cmd.Parse(argc, argv);
AnnotatedTopologyReader topologyReader("", 25);
topologyReader.SetFileName("topologies/dsccp5.txt");
topologyReader.Read();
// Install NDN stack on all nodes
ndn::StackHelper ndnHelper;
ndnHelper.setPolicy("nfd::cs::lru");
// ndnHelper.setCsSize(10000);
ndnHelper.setCsSize(0);
ndnHelper.InstallAll();
// Choosing forwarding strategy
ndn::StrategyChoiceHelper::InstallAll<nfd::fw::MIRCCStrategy>("/");
// Installing global routing interface on all nodes
ndn::GlobalRoutingHelper ndnGlobalRoutingHelper;
ndnGlobalRoutingHelper.InstallAll();
ndn::AppHelper consumerHelper("ns3::ndn::ConsumerMIRCC");
consumerHelper.SetAttribute("MaxSeq", StringValue("5000")); // 100 interests a second
consumerHelper.SetAttribute("logtms",StringValue("0"));
consumerHelper.SetAttribute("start_ms",StringValue("0"));
consumerHelper.SetAttribute("end_ms",StringValue("120000"));
// consumerHelper.SetAttribute("NumberOfContents", UintegerValue(100000));
// // /C1
// consumerHelper.SetPrefix("/C1");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C2
// consumerHelper.SetPrefix("/C2");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C3
// consumerHelper.SetPrefix("/C3");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C4
// consumerHelper.SetPrefix("/C4");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C5
// consumerHelper.SetPrefix("/C5");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C6
// consumerHelper.SetPrefix("/C6");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C7
// consumerHelper.SetPrefix("/C7");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// // /C8
// consumerHelper.SetPrefix("/C8");
// consumerHelper.Install("n18");
// consumerHelper.Install("n4");
// consumerHelper.Install("n3");
// consumerHelper.Install("n25");
// consumerHelper.Install("n40");
// consumerHelper.Install("n45");
// consumerHelper.Install("n41");
// consumerHelper.Install("n37");
// /C1
consumerHelper.SetPrefix("/C1/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C1/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C1/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C1/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C1/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C1/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C1/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C1/8");
consumerHelper.Install("n37");
// /C2
consumerHelper.SetPrefix("/C2/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C2/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C2/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C2/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C2/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C2/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C2/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C2/8");
consumerHelper.Install("n37");
// /C3
consumerHelper.SetPrefix("/C3/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C3/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C3/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C3/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C3/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C3/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C3/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C3/8");
consumerHelper.Install("n37");
// /C4
consumerHelper.SetPrefix("/C4/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C4/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C4/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C4/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C4/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C4/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C4/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C4/8");
consumerHelper.Install("n37");
// /C5
consumerHelper.SetPrefix("/C5/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C5/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C5/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C5/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C5/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C5/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C5/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C5/8");
consumerHelper.Install("n37");
// /C6
consumerHelper.SetPrefix("/C6/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C6/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C6/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C6/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C6/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C6/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C6/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C6/8");
consumerHelper.Install("n37");
// /C7
consumerHelper.SetPrefix("/C7/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C7/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C7/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C7/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C7/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C7/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C7/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C7/8");
consumerHelper.Install("n37");
// /C8
consumerHelper.SetPrefix("/C8/1");
consumerHelper.Install("n18");
consumerHelper.SetPrefix("/C8/2");
consumerHelper.Install("n4");
consumerHelper.SetPrefix("/C8/3");
consumerHelper.Install("n3");
consumerHelper.SetPrefix("/C8/4");
consumerHelper.Install("n25");
consumerHelper.SetPrefix("/C8/5");
consumerHelper.Install("n40");
consumerHelper.SetPrefix("/C8/6");
consumerHelper.Install("n45");
consumerHelper.SetPrefix("/C8/7");
consumerHelper.Install("n41");
consumerHelper.SetPrefix("/C8/8");
consumerHelper.Install("n37");
ndn::AppHelper producerHelper("ns3::ndn::Producer");
producerHelper.SetAttribute("PayloadSize", StringValue("1024"));
// Register /dst1 prefix with global routing controller and
// install producer that will satisfy Interests in /dst1 namespace
producerHelper.SetPrefix("/C1");
producerHelper.Install("n44");
producerHelper.SetPrefix("/C2");
producerHelper.Install("n27");
producerHelper.SetPrefix("/C3");
producerHelper.Install("n8");
producerHelper.SetPrefix("/C4");
producerHelper.Install("n7");
producerHelper.SetPrefix("/C5");
producerHelper.Install("n1");
producerHelper.SetPrefix("/C6");
producerHelper.Install("n0");
producerHelper.SetPrefix("/C7");
producerHelper.Install("n19");
producerHelper.SetPrefix("/C8");
producerHelper.Install("n38");
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 8 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C8", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C8", "n14", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C8", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C8", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C8", "n15", 0);
ndn::FibHelper::AddRoute("n16", "/C8", "n20", 0);
// n20
ndn::FibHelper::AddRoute("n20", "/C8", "n28", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C8", "n21", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C8", "n21", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C8", "n24", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C8", "n28", 0);
ndn::FibHelper::AddRoute("n21", "/C8", "n30", 0);
// n22
ndn::FibHelper::AddRoute("n22", "/C8", "n14", 0);
// n23
ndn::FibHelper::AddRoute("n23", "/C8", "n22", 0);
// n24
ndn::FibHelper::AddRoute("n24", "/C8", "n23", 0);
// n28
ndn::FibHelper::AddRoute("n28", "/C8", "n38", 0);
ndn::FibHelper::AddRoute("n28", "/C8", "n32", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C8", "n33", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C8", "n22", 0);
// n32
ndn::FibHelper::AddRoute("n32", "/C8", "n33", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C8", "n38", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C8", "n37", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C8", "n33", 0);
// n35
ndn::FibHelper::AddRoute("n35", "/C8", "n36", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C8", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C8", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C8", "n34", 0);
ndn::FibHelper::AddRoute("n39", "/C8", "n35", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C8", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C8", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 7 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C7", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C7", "n14", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C7", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C7", "n19", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C7", "n17", 0);
ndn::FibHelper::AddRoute("n16", "/C7", "n20", 0);
// n20
ndn::FibHelper::AddRoute("n20", "/C7", "n19", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C7", "n16", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C7", "n15", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C7", "n14", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C7", "n13", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C7", "n24", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C7", "n15", 0);
// n24
ndn::FibHelper::AddRoute("n24", "/C7", "n12", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C7", "n21", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C7", "n30", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C7", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C7", "n30", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C7", "n33", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C7", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C7", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C7", "n34", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C7", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C7", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 6 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C6", "n3", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C6", "n14", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C6", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C6", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C6", "n15", 0);
ndn::FibHelper::AddRoute("n16", "/C6", "n20", 0);
// n20
ndn::FibHelper::AddRoute("n20", "/C6", "n28", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C6", "n0", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C6", "n0", 0);
ndn::FibHelper::AddRoute("n14", "/C6", "n15", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C6", "n14", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C6", "n13", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C6", "n24", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C6", "n14", 0);
// n24
ndn::FibHelper::AddRoute("n24", "/C6", "n12", 0);
// n28
ndn::FibHelper::AddRoute("n28", "/C6", "n21", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C6", "n21", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C6", "n30", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C6", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C6", "n30", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C6", "n33", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C6", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C6", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C6", "n34", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C6", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C6", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 5 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C5", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C5", "n4", 0);
// n5
ndn::FibHelper::AddRoute("n5", "/C5", "n3", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C5", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C5", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C5", "n15", 0);
// n9
ndn::FibHelper::AddRoute("n9", "/C5", "n5", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C5", "n1", 0);
ndn::FibHelper::AddRoute("n15", "/C5", "n14", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C5", "n1", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C5", "n9", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C5", "n15", 0);
// n28
ndn::FibHelper::AddRoute("n28", "/C5", "n21", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C5", "n21", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C5", "n30", 0);
// n32
ndn::FibHelper::AddRoute("n32", "/C5", "n28", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C5", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C5", "n32", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C5", "n33", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C5", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C5", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C5", "n34", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C5", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C5", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 4 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C4", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C4", "n5", 0);
// n5
ndn::FibHelper::AddRoute("n5", "/C4", "n7", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C4", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C4", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C4", "n15", 0);
// n11
ndn::FibHelper::AddRoute("n11", "/C4", "n9", 0);
// n9
ndn::FibHelper::AddRoute("n9", "/C4", "n7", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C4", "n14", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C4", "n13", 0);
ndn::FibHelper::AddRoute("n14", "/C4", "n3", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C4", "n12", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C4", "n11", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C4", "n24", 0);
// n22
ndn::FibHelper::AddRoute("n22", "/C4", "n14", 0);
// n23
ndn::FibHelper::AddRoute("n23", "/C4", "n22", 0);
// n24
ndn::FibHelper::AddRoute("n24", "/C4", "n23", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C4", "n31", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C4", "n22", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C4", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C4", "n30", 0);
// n35
ndn::FibHelper::AddRoute("n35", "/C4", "n36", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C4", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C4", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C4", "n35", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C4", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C4", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 3 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C3", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C3", "n5", 0);
// n5
ndn::FibHelper::AddRoute("n5", "/C3", "n8", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C3", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C3", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C3", "n15", 0);
// n11
ndn::FibHelper::AddRoute("n11", "/C3", "n9", 0);
// n9
ndn::FibHelper::AddRoute("n9", "/C3", "n8", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C3", "n14", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C3", "n13", 0);
ndn::FibHelper::AddRoute("n14", "/C3", "n3", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C3", "n12", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C3", "n11", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C3", "n24", 0);
// n22
ndn::FibHelper::AddRoute("n22", "/C3", "n14", 0);
// n23
ndn::FibHelper::AddRoute("n23", "/C3", "n22", 0);
// n24
ndn::FibHelper::AddRoute("n24", "/C3", "n23", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C3", "n31", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C3", "n22", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C3", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C3", "n30", 0);
// n35
ndn::FibHelper::AddRoute("n35", "/C3", "n36", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C3", "n31", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C3", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C3", "n35", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C3", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C3", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 2 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C2", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C2", "n14", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C2", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C2", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C2", "n15", 0);
// n11
ndn::FibHelper::AddRoute("n11", "/C2", "n9", 0);
// n9
ndn::FibHelper::AddRoute("n9", "/C2", "n25", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C2", "n14", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C2", "n13", 0);
ndn::FibHelper::AddRoute("n14", "/C2", "n22", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C2", "n12", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C2", "n11", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C2", "n26", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C2", "n14", 0);
// n22
ndn::FibHelper::AddRoute("n22", "/C2", "n31", 0);
// n26
ndn::FibHelper::AddRoute("n26", "/C2", "n27", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C2", "n21", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C2", "n36", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C2", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C2", "n30", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C2", "n33", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C2", "n27", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C2", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C2", "n34", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C2", "n36", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C2", "n39", 0);
////////////////////////////////////////////////////////////////////////////////////////////////
/// Producer 1 路由配置
////////////////////////////////////////////////////////////////////////////////////////////////
// n4
ndn::FibHelper::AddRoute("n4", "/C1", "n15", 0);
// n3
ndn::FibHelper::AddRoute("n3", "/C1", "n14", 0);
// n18
ndn::FibHelper::AddRoute("n18", "/C1", "n17", 0);
// n17
ndn::FibHelper::AddRoute("n17", "/C1", "n16", 0);
// n16
ndn::FibHelper::AddRoute("n16", "/C1", "n20", 0);
// n11
ndn::FibHelper::AddRoute("n11", "/C1", "n12", 0);
// n9
ndn::FibHelper::AddRoute("n9", "/C1", "n11", 0);
// n20
ndn::FibHelper::AddRoute("n20", "/C1", "n28", 0);
// n15
ndn::FibHelper::AddRoute("n15", "/C1", "n21", 0);
// n14
ndn::FibHelper::AddRoute("n14", "/C1", "n21", 0);
// n13
ndn::FibHelper::AddRoute("n13", "/C1", "n14", 0);
// n12
ndn::FibHelper::AddRoute("n12", "/C1", "n13", 0);
// n25
ndn::FibHelper::AddRoute("n25", "/C1", "n9", 0);
// n21
ndn::FibHelper::AddRoute("n21", "/C1", "n30", 0);
// n28
ndn::FibHelper::AddRoute("n28", "/C1", "n21", 0);
// n30
ndn::FibHelper::AddRoute("n30", "/C1", "n31", 0);
ndn::FibHelper::AddRoute("n30", "/C1", "n33", 0);
// n31
ndn::FibHelper::AddRoute("n31", "/C1", "n36", 0);
// n37
ndn::FibHelper::AddRoute("n37", "/C1", "n33", 0);
// n33
ndn::FibHelper::AddRoute("n33", "/C1", "n34", 0);
// n34
ndn::FibHelper::AddRoute("n34", "/C1", "n35", 0);
ndn::FibHelper::AddRoute("n34", "/C1", "n39", 0);
// n35
ndn::FibHelper::AddRoute("n35", "/C1", "n36", 0);
// n36
ndn::FibHelper::AddRoute("n36", "/C1", "n40", 0);
// n41
ndn::FibHelper::AddRoute("n41", "/C1", "n39", 0);
// n39
ndn::FibHelper::AddRoute("n39", "/C1", "n35", 0);
ndn::FibHelper::AddRoute("n39", "/C1", "n44", 0);
ndn::FibHelper::AddRoute("n39", "/C1", "n45", 0);
// n40
ndn::FibHelper::AddRoute("n40", "/C1", "n42", 0);
// n42
ndn::FibHelper::AddRoute("n42", "/C1", "n43", 0);
// n43
ndn::FibHelper::AddRoute("n43", "/C1", "n44", 0);
// n45
ndn::FibHelper::AddRoute("n45", "/C1", "n46", 0);
// n46
ndn::FibHelper::AddRoute("n46", "/C1", "n44", 0);
// ndnGlobalRoutingHelper.AddOrigin("/C1", "n44");
// ndnGlobalRoutingHelper.AddOrigin("/C2", "n27");
// ndnGlobalRoutingHelper.AddOrigin("/C3", "n8");
// ndnGlobalRoutingHelper.AddOrigin("/C4", "n7");
// ndnGlobalRoutingHelper.AddOrigin("/C5", "n1");
// ndnGlobalRoutingHelper.AddOrigin("/C6", "n0");
// ndnGlobalRoutingHelper.AddOrigin("/C7", "n19");
// ndnGlobalRoutingHelper.AddOrigin("/C8", "n38");
// // Calculate all possible routes and install FIBs
// ndn::GlobalRoutingHelper::CalculateRoutes();
// ndn::GlobalRoutingHelper::CalculateAllPossibleRoutes();
Simulator::Stop(Seconds(120.0));
ndn::L3RateTracer::InstallAll("dsccp5_throughput-0.1.txt", Seconds(0.1));
ndn::AppDelayTracer::InstallAll("dsccp5_delay-0.1.txt");
L2RateTracer::InstallAll("dsccp5_drop-0.1.txt", Seconds(0.1));
Simulator::Run();
Simulator::Destroy();
return 0;
}
} // namespace ns3
int main(int argc, char *argv[])
{
return ns3::main(argc, argv);
}