<html><head></head><body><div class="ydp825176bbyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif">Hi Shuai,</font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><br></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif">Regarding your questions, I would like to answere based on my little experice wiht ndnSIM<br></font></div><div><div><font size="3" face="times new roman, new york, times, serif">Question (1), you need to make sure that consumer, producer and forwarding strategy are using same namespace (prefix) otherwise you will get such output "NACK message with reason No Route". Producer and forwarding strategy work for only the prefix they support (by default). You can have multiple consumers, producers and forwarding strategies in one scenario, please see the example in the following link. <br></font></div><div><font size="3" face="times new roman, new york, times, serif"><br></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><a href="https://github.com/named-data/IPoC/blob/master/ndnSIM/examples/ndn-different-strategy-per-prefix.cpp" rel="nofollow" target="_blank">https://github.com/named-data/IPoC/blob/master/ndnSIM/examples/ndn-different-strategy-per-prefix.cpp</a><br></font></div><div dir="ltr" data-setdir="false"><br><font size="3" face="times new roman, new york, times, serif"></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><span>I will assume that you are working in a wireless scenario. Regarding creating an entry in FIB for the new used prefix, I think you do not need to do it (did you do it for "prefix0"? I don't think so.)?. NDN-Stack-helper (ndn::StackHelper) will create a default route in FIB the represent the last resort route for forwarding Interest packet if no matching with other routes in FIB. This default  route is "/" via a face that is linked with the NetDevice. Make sure that face is in AD-HOC mode.</span><br></font></div><div><font size="3" face="times new roman, new york, times, serif"><br></font></div><font size="3" face="times new roman, new york, times, serif">Question (2), printing PIT and  FIB tables. please see the below code. It is a simple code that can help in how the process of printing PIT and FIB is done. you can modified to meet your scenario aims. Also, I highly recommend you to go through "NFD Developer’s Guide" for understanding the structures and semantics of PIT and FIB tables.</font></div><div><font size="3" face="times new roman, new york, times, serif"><br></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><br></font></div><div dir="ltr" data-setdir="false"><div><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-weight: normal; font-size: 14px; line-height: 19px; white-space: pre-wrap;" dir="ltr" data-setdir="false"><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #569cd6;">void</span><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">printPitFib</span><span style="color: #d4d4d4;">(</span><span style="color: #4ec9b0;">NodeContainer</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">&</span><span style="color: #9cdcfe;">nodes</span><span style="color: #d4d4d4;">)</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">{</span></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"> //numNode variable is the number of nodes</font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #4ec9b0;">std</span><span style="color: #d4d4d4;">::cout << endl << </span><span style="color: #ce9178;">"---- PIT ----"</span><span style="color: #d4d4d4;"><< endl;</span></font></div><font size="3" face="times new roman, new york, times, serif"><br></font><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">    </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;"> (</span><span style="color: #569cd6;">uint32_t</span><span style="color: #d4d4d4;"> i = </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">; i < numNodes; i++) {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #4ec9b0;">std</span><span style="color: #d4d4d4;">::cout << endl << </span><span style="color: #ce9178;">"node("</span><span style="color: #d4d4d4;"> << i << </span><span style="color: #ce9178;">"):"</span><span style="color: #d4d4d4;"> << endl;</span></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #569cd6;">auto</span><span style="color: #d4d4d4;"> node = </span> <span><span style="color: #569cd6;"></span><span style="color: #9cdcfe;">nodes</span><span style="color: #d4d4d4;"></span></span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">Get</span><span style="color: #d4d4d4;">(i);</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #569cd6;">auto</span><span style="color: #d4d4d4;">& nodePit = </span><span style="color: #9cdcfe;">node</span><span style="color: #d4d4d4;">-></span><span style="color: #9cdcfe;">GetObject</span><span style="color: #d4d4d4;"><</span><span style="color: #4ec9b0;">ndn</span><span style="color: #d4d4d4;">::L3Protocol>()-></span><span style="color: #dcdcaa;">getForwarder</span><span style="color: #d4d4d4;">()-></span><span style="color: #dcdcaa;">getPit</span><span style="color: #d4d4d4;">();</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #4ec9b0;">nfd</span><span style="color: #d4d4d4;">::</span><span style="color: #4ec9b0;">Pit</span><span style="color: #d4d4d4;">::const_iterator iter;</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;"> (iter = </span><span style="color: #9cdcfe;">nodePit</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">begin</span><span style="color: #d4d4d4;">(); iter != </span><span style="color: #9cdcfe;">nodePit</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">end</span><span style="color: #d4d4d4;">(); iter++) {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        cout << </span><span style="color: #9cdcfe;">iter</span><span style="color: #d4d4d4;">-></span><span style="color: #dcdcaa;">getName</span><span style="color: #d4d4d4;">() << endl << </span><span style="color: #ce9178;">" Period : "</span><span style="color: #d4d4d4;"> << </span><span style="color: #9cdcfe;">iter</span><span style="color: #d4d4d4;">-></span><span style="color: #9cdcfe;">dataFreshnessPeriod</span><span style="color: #d4d4d4;"> << endl;</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      }</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">    }</span></font></div><font size="3" face="times new roman, new york, times, serif"><br></font><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">    </span><span style="color: #4ec9b0;">std</span><span style="color: #d4d4d4;">::cout << endl << </span><span style="color: #ce9178;">"---- FIB ----"</span><span style="color: #d4d4d4;"><< endl;</span></font></div><font size="3" face="times new roman, new york, times, serif"><br></font><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">    </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;"> (</span><span style="color: #569cd6;">uint32_t</span><span style="color: #d4d4d4;"> i = </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">; i < numNodes; i++) {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #4ec9b0;">std</span><span style="color: #d4d4d4;">::cout << endl << </span><span style="color: #ce9178;">"node("</span><span style="color: #d4d4d4;"> << i << </span><span style="color: #ce9178;">"):"</span><span style="color: #d4d4d4;"> << endl;</span></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #569cd6;">auto</span><span style="color: #d4d4d4;"> node = </span> <span><span style="color: #569cd6;"></span><span style="color: #9cdcfe;">nodes</span><span style="color: #d4d4d4;"></span></span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">Get</span><span style="color: #d4d4d4;">(i);</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #569cd6;">auto</span><span style="color: #d4d4d4;">& nodePit = </span><span style="color: #9cdcfe;">node</span><span style="color: #d4d4d4;">-></span><span style="color: #9cdcfe;">GetObject</span><span style="color: #d4d4d4;"><</span><span style="color: #4ec9b0;">ndn</span><span style="color: #d4d4d4;">::L3Protocol>()-></span><span style="color: #dcdcaa;">getForwarder</span><span style="color: #d4d4d4;">()-></span><span style="color: #dcdcaa;">getFib</span><span style="color: #d4d4d4;">();</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #4ec9b0;">nfd</span><span style="color: #d4d4d4;">::</span><span style="color: #4ec9b0;">Fib</span><span style="color: #d4d4d4;">::const_iterator iter;</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;"> (iter = </span><span style="color: #9cdcfe;">nodePit</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">begin</span><span style="color: #d4d4d4;">(); iter != </span><span style="color: #9cdcfe;">nodePit</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">end</span><span style="color: #d4d4d4;">(); iter++) {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        cout << </span><span style="color: #9cdcfe;">iter</span><span style="color: #d4d4d4;">-></span><span style="color: #dcdcaa;">getPrefix</span><span style="color: #d4d4d4;">();</span><span style="color: #6a9955;"></span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        </span><span style="color: #c586c0;">if</span><span style="color: #d4d4d4;">(</span><span style="color: #9cdcfe;">iter</span><span style="color: #d4d4d4;">-></span><span style="color: #dcdcaa;">hasNextHops</span><span style="color: #d4d4d4;">())</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        {</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        </span><span style="color: #569cd6;">auto</span><span style="color: #d4d4d4;">& nextHops=  </span><span style="color: #9cdcfe;">iter</span><span style="color: #d4d4d4;">-></span><span style="color: #dcdcaa;">getNextHops</span><span style="color: #d4d4d4;">();</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        </span><span style="color: #4ec9b0;">nfd</span><span style="color: #d4d4d4;">::</span><span style="color: #4ec9b0;">fib</span><span style="color: #d4d4d4;">::</span><span style="color: #4ec9b0;">NextHopList</span><span style="color: #d4d4d4;">::const_iterator ii;</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        </span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">              </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;">(ii = </span><span style="color: #9cdcfe;">nextHops</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">begin</span><span style="color: #d4d4d4;">(); ii != </span><span style="color: #9cdcfe;">nextHops</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">end</span><span style="color: #d4d4d4;">(); ii++)</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">              cout << </span><span style="color: #ce9178;">" : "</span><span style="color: #d4d4d4;"> << (</span><span style="color: #569cd6;">unsigned</span><span style="color: #d4d4d4;">) </span><span style="color: #9cdcfe;">ii</span><span style="color: #d4d4d4;">-></span><span style="color: #dcdcaa;">getFace</span><span style="color: #d4d4d4;">().</span><span style="color: #dcdcaa;">getId</span><span style="color: #d4d4d4;">() << endl;</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        }</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">        }</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">      }</span></font></div><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">    }</span></font></div><font size="3" face="times new roman, new york, times, serif"><br><span style="color: #d4d4d4;">      </span><br></font><div><font size="3" face="times new roman, new york, times, serif"><span style="color: #d4d4d4;">}</span></font></div></div></div><div><font size="3" face="times new roman, new york, times, serif"><br></font></div></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><br></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif">I hope it helps.<br></font></div><div dir="ltr" data-setdir="false"><font size="3" face="times new roman, new york, times, serif"><br></font></div><div class="ydp825176bbsignature"><div style="font-family:Helvetica, Arial, sans-serif;font-size:16px;"><div style="font-size:16px;">            </div><div><font size="3" face="times new roman, new york, times, serif">Best regards,</font></div><div style="font-family:arial, helvetica, clean, sans-serif;"><font size="3" face="times new roman, new york, times, serif">Hussein </font><b><font size="2"><br></font></b></div></div></div></div><div><br></div>
        
        </div><div id="ydpac755505yahoo_quoted_7739043787" class="ydpac755505yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Tuesday, December 8, 2020, 4:00:06 AM GMT+8, ndnsim-request@lists.cs.ucla.edu <ndnsim-request@lists.cs.ucla.edu> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div dir="ltr">Send ndnSIM mailing list submissions to<br></div><div dir="ltr">    <a href="mailto:ndnsim@lists.cs.ucla.edu" rel="nofollow" target="_blank">ndnsim@lists.cs.ucla.edu</a><br></div><div dir="ltr"><br></div><div dir="ltr">To subscribe or unsubscribe via the World Wide Web, visit<br></div><div dir="ltr">    <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" rel="nofollow" target="_blank">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a><br></div><div dir="ltr">or, via email, send a message with subject or body 'help' to<br></div><div dir="ltr">    <a href="mailto:ndnsim-request@lists.cs.ucla.edu" rel="nofollow" target="_blank">ndnsim-request@lists.cs.ucla.edu</a><br></div><div dir="ltr"><br></div><div dir="ltr">You can reach the person managing the list at<br></div><div dir="ltr">    <a href="mailto:ndnsim-owner@lists.cs.ucla.edu" rel="nofollow" target="_blank">ndnsim-owner@lists.cs.ucla.edu</a><br></div><div dir="ltr"><br></div><div dir="ltr">When replying, please edit your Subject line so it is more specific<br></div><div dir="ltr">than "Re: Contents of ndnSIM digest..."<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Today's Topics:<br></div><div dir="ltr"><br></div><div dir="ltr">   1. Re: ndnSIM Digest, Vol 97, Issue 3 (Shuai Dong)<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">----------------------------------------------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Message: 1<br></div><div dir="ltr">Date: Mon, 7 Dec 2020 11:34:21 -0600<br></div><div dir="ltr">From: Shuai Dong <<a href="mailto:sdong7@crimson.ua.edu" rel="nofollow" target="_blank">sdong7@crimson.ua.edu</a>><br></div><div dir="ltr">To: <a href="mailto:ndnsim@lists.cs.ucla.edu" rel="nofollow" target="_blank">ndnsim@lists.cs.ucla.edu</a><br></div><div dir="ltr">Subject: Re: [ndnSIM] ndnSIM Digest, Vol 97, Issue 3<br></div><div dir="ltr">Message-ID:<br></div><div dir="ltr">    <CAENDnDB1WhW=ENQqpXLm2qjWQPgavj+ZObMZdCXEq3cwnt+<a href="mailto:Rnw@mail.gmail.com" rel="nofollow" target="_blank">Rnw@mail.gmail.com</a>><br></div><div dir="ltr">Content-Type: text/plain; charset="utf-8"<br></div><div dir="ltr"><br></div><div dir="ltr">Hi DJAMA,<br></div><div dir="ltr"><br></div><div dir="ltr">Thanks for your information!<br></div><div dir="ltr">In this scenario, when the consumer sends interest with "prefix0", it works<br></div><div dir="ltr">very well and the consumer can receive the data packet.<br></div><div dir="ltr">However, if the consumer sends interest with "prefix1", the log shows that:<br></div><div dir="ltr">"[INFO ] NACK received for: >>>> /prefix1/%FE%01, reason: NoRoute"<br></div><div dir="ltr">"[INFO ] NACK received for: >>>> /prefix1/%FE%02, reason: NoRoute"<br></div><div dir="ltr">"[INFO ] NACK received for: >>>> /prefix1/%FE%03, reason: NoRoute"<br></div><div dir="ltr">"[INFO ] NACK received for: >>>> /prefix1/%FE%04, reason: NoRoute"<br></div><div dir="ltr">"[INFO ] NACK received for: >>>> /prefix1/%FE%05, reason: NoRoute"<br></div><div dir="ltr">........<br></div><div dir="ltr"><br></div><div dir="ltr">There are two questions that I cannot understand very well:<br></div><div dir="ltr">1. By default (in wireless environment), ndn can only handle  one namespace<br></div><div dir="ltr">on one node?  If I want to install a different namespace on the other node,<br></div><div dir="ltr">e.g., "prefix1" on producer2. I need to create a FIB entry for "prefix1" by<br></div><div dir="ltr">myself?<br></div><div dir="ltr"><br></div><div dir="ltr">2. How to print the FIB and PTI table for each node?<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Thank you very much!<br></div><div dir="ltr">Sincerely<br></div><div dir="ltr">Shuai<br></div><div dir="ltr">-------------- next part --------------<br></div><div dir="ltr">An HTML attachment was scrubbed...<br></div><div dir="ltr">URL: <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20201207/5cffe17c/attachment-0001.html" rel="nofollow" target="_blank">http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20201207/5cffe17c/attachment-0001.html</a>><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">Subject: Digest Footer<br></div><div dir="ltr"><br></div><div dir="ltr">_______________________________________________<br></div><div dir="ltr">ndnSIM mailing list<br></div><div dir="ltr"><a href="mailto:ndnSIM@lists.cs.ucla.edu" rel="nofollow" target="_blank">ndnSIM@lists.cs.ucla.edu</a><br></div><div dir="ltr"><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" rel="nofollow" target="_blank">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">------------------------------<br></div><div dir="ltr"><br></div><div dir="ltr">End of ndnSIM Digest, Vol 97, Issue 4<br></div><div dir="ltr">*************************************<br></div></div>
            </div>
        </div></body></html>