<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Hello Everyone,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
I hope you are doing well.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
I am not sure why but when I run the example for cs-trace called ndn-tree-cs-tracers.cpp I get 0 cache hits and 0 misses is this normal in the cs-trace file? I need to understand how the hits or misses are accounted for I think something is wrong.
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<pre><span class="c1">// ndn-tree-cs-tracers.cpp</span>

<span class="cp">#include</span> <span class="cpf">"ns3/core-module.h"</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">"ns3/network-module.h"</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">"ns3/ndnSIM-module.h"</span><span class="cp"></span>

<span class="k">namespace</span> <span class="n">ns3</span> <span class="p">{</span>

<span class="kt">int</span>
<span class="n">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span> <span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
  <span class="n">CommandLine</span> <span class="n">cmd</span><span class="p">;</span>
  <span class="n">cmd</span><span class="p">.</span><span class="n">Parse</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span> <span class="n">argv</span><span class="p">);</span>

  <span class="n">AnnotatedTopologyReader</span> <span class="nf">topologyReader</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
  <span class="n">topologyReader</span><span class="p">.</span><span class="n">SetFileName</span><span class="p">(</span><span class="s">"src/ndnSIM/examples/topologies/topo-tree.txt"</span><span class="p">);</span>
  <span class="n">topologyReader</span><span class="p">.</span><span class="n">Read</span><span class="p">();</span>

  <span class="c1">// Install NDN stack on all nodes</span>
  <span class="n">ndn</span><span class="o">::</span><span class="n">StackHelper</span> <span class="n">ndnHelper</span><span class="p">;</span>
  <span class="n">ndnHelper</span><span class="p">.</span><span class="n">setPolicy</span><span class="p">(</span><span class="s">"nfd::cs::lru"</span><span class="p">);</span>
  <span class="n">ndnHelper</span><span class="p">.</span><span class="n">setCsSize</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span>
  <span class="n">ndnHelper</span><span class="p">.</span><span class="n">InstallAll</span><span class="p">();</span>

  <span class="c1">// Choosing forwarding strategy</span>
  <span class="n">ndn</span><span class="o">::</span><span class="n">StrategyChoiceHelper</span><span class="o">::</span><span class="n">InstallAll</span><span class="p">(</span><span class="s">"/prefix"</span><span class="p">,</span> <span class="s">"/localhost/nfd/strategy/best-route"</span><span class="p">);</span>

  <span class="c1">// Installing global routing interface on all nodes</span>
  <span class="n">ndn</span><span class="o">::</span><span class="n">GlobalRoutingHelper</span> <span class="n">ndnGlobalRoutingHelper</span><span class="p">;</span>
  <span class="n">ndnGlobalRoutingHelper</span><span class="p">.</span><span class="n">InstallAll</span><span class="p">();</span>

  <span class="c1">// Getting containers for the consumer/producer</span>
  <span class="n">Ptr</span><span class="o"><</span><span class="n">Node</span><span class="o">></span> <span class="n">consumers</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">Names</span><span class="o">::</span><span class="n">Find</span><span class="o"><</span><span class="n">Node</span><span class="o">></span><span class="p">(</span><span class="s">"leaf-1"</span><span class="p">),</span> <span class="n">Names</span><span class="o">::</span><span class="n">Find</span><span class="o"><</span><span class="n">Node</span><span class="o">></span><span class="p">(</span><span class="s">"leaf-2"</span><span class="p">),</span>
                            <span class="n">Names</span><span class="o">::</span><span class="n">Find</span><span class="o"><</span><span class="n">Node</span><span class="o">></span><span class="p">(</span><span class="s">"leaf-3"</span><span class="p">),</span> <span class="n">Names</span><span class="o">::</span><span class="n">Find</span><span class="o"><</span><span class="n">Node</span><span class="o">></span><span class="p">(</span><span class="s">"leaf-4"</span><span class="p">)};</span>
  <span class="n">Ptr</span><span class="o"><</span><span class="n">Node</span><span class="o">></span> <span class="n">producer</span> <span class="o">=</span> <span class="n">Names</span><span class="o">::</span><span class="n">Find</span><span class="o"><</span><span class="n">Node</span><span class="o">></span><span class="p">(</span><span class="s">"root"</span><span class="p">);</span>

  <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">4</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    <span class="n">ndn</span><span class="o">::</span><span class="n">AppHelper</span> <span class="n">consumerHelper</span><span class="p">(</span><span class="s">"ns3::ndn::ConsumerCbr"</span><span class="p">);</span>
    <span class="n">consumerHelper</span><span class="p">.</span><span class="n">SetAttribute</span><span class="p">(</span><span class="s">"Frequency"</span><span class="p">,</span> <span class="n">StringValue</span><span class="p">(</span><span class="s">"10"</span><span class="p">));</span> <span class="c1">// 100 interests a second</span>

    <span class="c1">// Each consumer will express the same data /root/<seq-no></span>
    <span class="n">consumerHelper</span><span class="p">.</span><span class="n">SetPrefix</span><span class="p">(</span><span class="s">"/root"</span><span class="p">);</span>
    <span class="n">ApplicationContainer</span> <span class="n">app</span> <span class="o">=</span> <span class="n">consumerHelper</span><span class="p">.</span><span class="n">Install</span><span class="p">(</span><span class="n">consumers</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
    <span class="n">app</span><span class="p">.</span><span class="n">Start</span><span class="p">(</span><span class="n">Seconds</span><span class="p">(</span><span class="mf">0.01</span> <span class="o">*</span> <span class="n">i</span><span class="p">));</span>
  <span class="p">}</span>

  <span class="n">ndn</span><span class="o">::</span><span class="n">AppHelper</span> <span class="n">producerHelper</span><span class="p">(</span><span class="s">"ns3::ndn::Producer"</span><span class="p">);</span>
  <span class="n">producerHelper</span><span class="p">.</span><span class="n">SetAttribute</span><span class="p">(</span><span class="s">"PayloadSize"</span><span class="p">,</span> <span class="n">StringValue</span><span class="p">(</span><span class="s">"1024"</span><span class="p">));</span>

  <span class="c1">// Register /root prefix with global routing controller and</span>
  <span class="c1">// install producer that will satisfy Interests in /root namespace</span>
  <span class="n">ndnGlobalRoutingHelper</span><span class="p">.</span><span class="n">AddOrigins</span><span class="p">(</span><span class="s">"/root"</span><span class="p">,</span> <span class="n">producer</span><span class="p">);</span>
  <span class="n">producerHelper</span><span class="p">.</span><span class="n">SetPrefix</span><span class="p">(</span><span class="s">"/root"</span><span class="p">);</span>
  <span class="n">producerHelper</span><span class="p">.</span><span class="n">Install</span><span class="p">(</span><span class="n">producer</span><span class="p">);</span>

  <span class="c1">// Calculate and install FIBs</span>
  <span class="n">ndn</span><span class="o">::</span><span class="n">GlobalRoutingHelper</span><span class="o">::</span><span class="n">CalculateRoutes</span><span class="p">();</span>

  <span class="n">Simulator</span><span class="o">::</span><span class="n">Stop</span><span class="p">(</span><span class="n">Seconds</span><span class="p">(</span><span class="mf">20.0</span><span class="p">));</span>

<span class="hll">  <span class="n">ndn</span><span class="o">::</span><span class="n">CsTracer</span><span class="o">::</span><span class="n">InstallAll</span><span class="p">(</span><span class="s">"cs-trace.txt"</span><span class="p">,</span> <span class="n">Seconds</span><span class="p">(</span><span class="mi">1</span><span class="p">));</span>
</span>
  <span class="n">Simulator</span><span class="o">::</span><span class="n">Run</span><span class="p">();</span>
  <span class="n">Simulator</span><span class="o">::</span><span class="n">Destroy</span><span class="p">();</span>

  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>

<span class="p">}</span> <span class="c1">// namespace ns3</span>

<span class="kt">int</span>
<span class="n">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span> <span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
  <span class="k">return</span> <span class="n">ns3</span><span class="o">::</span><span class="n">main</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span> <span class="n">argv</span><span class="p">);</span>
<span class="p">}</span></pre>
Above is the source file that I am creating the trace file from which can be found via this link:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<a href="https://ndnsim.net/current/metric.html?highlight=obtaining%20metrics" id="LPlnk672623">https://ndnsim.net/current/metric.html?highlight=obtaining%20metrics</a></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Thanks,<br>
<br>
Justin Rodrigues<br>
</div>
</body>
</html>