<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Hi Saurab,</p>
    <p><br>
    </p>
    <p>thanks for your response. Please find my answers inline.</p>
    <p><br>
    </p>
    <p>Thanks,<br>
      Philipp</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 3/4/20 5:32 AM, Saurab Dulal
      (sdulal) wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:SA0PR16MB38051A5D0CBE89F51CA1B0D1C4E50@SA0PR16MB3805.namprd16.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
      <div id="appendonsend" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Hi Philipp, </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Routing helper definately minimizes the cost incur by the
        routing protocols, I have tested this recently. Computing the
        routes and installing them to the fib is much faster than the
        NLSR. If you don't care about features offered by NLSR, I would
        definately suggest/encourage using it. <br>
      </div>
    </blockquote>
    Thanks for clarifying, yesterday I thought that you suggest to use
    NLSR instead of the routing helper.<br>
    <blockquote type="cite"
cite="mid:SA0PR16MB38051A5D0CBE89F51CA1B0D1C4E50@SA0PR16MB3805.namprd16.prod.outlook.com">
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        The primary purpose of the routing helper is to support very
        large topologies and to eliminate NLSR overhead. However, you
        need to be cautious while using large topology. Don't compute
        routes via all the faces, especially in the case of Link-state,
        this will take an enormous amount of time. Rather only compute
        the shortest path by passing 1 as an argument to this
        calculateNPossibleRoutes() function.</div>
    </blockquote>
    Have you tried calculating the routes with libigraph? My experience
    from the IP-Routing helper is that calculating the routes is pretty
    fast and (at least in the 45 node topology) should not delay an
    experiment for longer than a few seconds. (Of course, applying the
    nfdc commands takes longer than a few secs)<br>
    <blockquote type="cite"
cite="mid:SA0PR16MB38051A5D0CBE89F51CA1B0D1C4E50@SA0PR16MB3805.namprd16.prod.outlook.com">
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        We are still working on to support prefix
        announcement/revocation and node addition/failure on routing
        helper. This will further help to perform node failure,
        mobility, and other experiments. [suggestions are welcome here]</div>
    </blockquote>
    I think the answer depends on what you want to evaluate. However,
    maybe the fastest solution you could do is, to plan link failures in
    advance and pre-calculate shortest paths for the whole evaluation
    run in advance. When you actually fail a link during the evaluation,
    you just need to apply the pre-calculated shortest paths, which
    should be possible by simply looking at "nfdc route list" of each
    node and by modifing the existing entries. As I said above,
    pre-calculating shortest paths should not be an performance issue
    when using libigraph.<br>
    <blockquote type="cite"
cite="mid:SA0PR16MB38051A5D0CBE89F51CA1B0D1C4E50@SA0PR16MB3805.namprd16.prod.outlook.com">
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Regarding the overhead, you are correct, most of it is caused by
        route addition and very little by face creation. Unfortunately,
        I don't have better improvement ideas for now. </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Thanks for the feedback. Please let me know if you have more
        suggestions and concerns. <br>
      </div>
    </blockquote>
    I've got one more question regarding the routing helper. In mininet,
    you can easily test the connectivity between all nodes with mininets
    built-in pingall command. Is there something comparable available in
    Mini-NDN? In my evaluation topology, depending where my nodes are
    located, my application sometimes receives NACKs with reason
    NO_ROUTE. If a "pingall" functionality is available, I could easily
    debug the issue.<br>
    <blockquote type="cite"
cite="mid:SA0PR16MB38051A5D0CBE89F51CA1B0D1C4E50@SA0PR16MB3805.namprd16.prod.outlook.com">
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Regards,</div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        Saurab Dulal</div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
        font-size:12pt; color:rgb(0,0,0)">
        <br>
      </div>
      <hr tabindex="-1" style="display:inline-block; width:98%">
      <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt"
          face="Calibri, sans-serif" color="#000000"><b>From:</b>
          Philipp Moll <a class="moz-txt-link-rfc2396E" href="mailto:philipp.moll@itec.aau.at"><philipp.moll@itec.aau.at></a><br>
          <b>Sent:</b> Tuesday, March 3, 2020 12:45 PM<br>
          <b>To:</b> Saurab Dulal (sdulal) <a class="moz-txt-link-rfc2396E" href="mailto:sdulal@memphis.edu"><sdulal@memphis.edu></a>;
          <a class="moz-txt-link-abbreviated" href="mailto:mini-ndn@lists.cs.ucla.edu">mini-ndn@lists.cs.ucla.edu</a> <a class="moz-txt-link-rfc2396E" href="mailto:mini-ndn@lists.cs.ucla.edu"><mini-ndn@lists.cs.ucla.edu></a><br>
          <b>Subject:</b> Re: [Mini-NDN] NdnRoutingHelper error in large
          topologies</font>
        <div> </div>
      </div>
      <div>
        <p style="margin-top: 0px; margin-bottom: 0px;">Hi Saurab,</p>
        <p style="margin-top: 0px; margin-bottom: 0px;"><br>
        </p>
        <p style="margin-top: 0px; margin-bottom: 0px;">thanks for
          looking in to that issue. The routing helper was my first
          choice because I thought it would minimize unforeseen side
          effects resulting from routing protocols in my evaluation. Do
          you think that using NLSR would be the better (faster / more
          stable / more resilient) choice for doing evaluations using
          MiniNDN?</p>
        <p style="margin-top: 0px; margin-bottom: 0px;"><br>
        </p>
        <p style="margin-top: 0px; margin-bottom: 0px;">My observation
          yesterday indicated that the lag results from registerRoute,
          not createFace in nfdc.py. This is why I achieved a
          significant speedup with my hack to only register one route
          only. But it seems that<i>
          </i>I don't need my hack anymore. Thanks for fixing the issue.</p>
        <p style="margin-top: 0px; margin-bottom: 0px;"><br>
        </p>
        <p style="margin-top: 0px; margin-bottom: 0px;">Best<br>
          Philipp</p>
        <p style="margin-top: 0px; margin-bottom: 0px;"><br>
        </p>
        <div class="x_moz-cite-prefix">On 3/2/20 11:23 PM, Saurab Dulal
          (sdulal) wrote:<br>
        </div>
        <blockquote type="cite">
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            Hi Philipp, </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            Thank you so much for reporting the problem. I have found
            the bug and also have uploaded a patch in the gerrit. <a
              href="https://gerrit.named-data.net/c/mini-ndn/+/5957"
              moz-do-not-send="true">https://gerrit.named-data.net/c/mini-ndn/+/5957</a></div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            However, your topology (45 nodes, 71 links) should be easily
            handled by minindn without routing helper (unless you
            specifically need it). I ran your topology with minindn in a
            vagrant box (4 gigs ram) without routing helper and it
            converged successfully in less than 5 minutes. I have also
            tested larger size topologies i.e. 150+ nodes, and 700+
            links and they all have converged successfully. </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            I did some benchmark testing and found out that
            routing-helper especially in case of all face, link-state is
            pretty slow. But this is normal because you are creating an
            enormous amount of routes. With a single face, it's much
            better. Most of the lags are caused by face creation route
            addition. This is somewhat configurable in nfdc.py but
            still, I was not able to improve performance significantly.
            I have some improvements in my mind, just haven't got enough
            time to work on it.</div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            Regards,</div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            Saurab Dulal</div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div style="font-family:Calibri,Arial,Helvetica,sans-serif;
            font-size:12pt; color:rgb(0,0,0)">
            <br>
          </div>
          <div>
            <div id="x_Signature">
              <div id="x_divtagdefaultwrapper" style="font-size:12pt;
                color:#000000; background-color:#FFFFFF;
                font-family:Calibri,Arial,Helvetica,sans-serif">
              </div>
            </div>
          </div>
          <hr tabindex="-1" style="display:inline-block; width:98%">
          <div id="x_divRplyFwdMsg" dir="ltr"><font
              style="font-size:11pt" face="Calibri, sans-serif"
              color="#000000"><b>From:</b> Mini-NDN
              <a class="x_moz-txt-link-rfc2396E"
                href="mailto:mini-ndn-bounces@lists.cs.ucla.edu"
                moz-do-not-send="true">
                <mini-ndn-bounces@lists.cs.ucla.edu></a> on behalf
              of Philipp Moll <a class="x_moz-txt-link-rfc2396E"
                href="mailto:philipp.moll@itec.aau.at"
                moz-do-not-send="true">
                <philipp.moll@itec.aau.at></a><br>
              <b>Sent:</b> Friday, February 28, 2020 3:29 PM<br>
              <b>To:</b> <a class="x_moz-txt-link-abbreviated"
                href="mailto:mini-ndn@lists.cs.ucla.edu"
                moz-do-not-send="true">
                mini-ndn@lists.cs.ucla.edu</a> <a
                class="x_moz-txt-link-rfc2396E"
                href="mailto:mini-ndn@lists.cs.ucla.edu"
                moz-do-not-send="true">
                <mini-ndn@lists.cs.ucla.edu></a><br>
              <b>Subject:</b> [Mini-NDN] NdnRoutingHelper error in large
              topologies</font>
            <div> </div>
          </div>
          <div class="x_BodyFragment"><font size="2"><span
                style="font-size:11pt">
                <div class="x_PlainText">Hi guys,<br>
                  <br>
                  I am currently working on a MiniNDN scenario
                  evaluation, where I need a <br>
                  large network topology. I pushed the Geant topology to
                  gerrit yesterday. <br>
                  This topology has 45 nodes and quite high connectivity
                  between the <br>
                  nodes. Installing all possible routes with the
                  NdnRoutingHelper takes <br>
                  about 20 minutes. For me, this is too long when
                  considering that my <br>
                  actual evaluation only takes 10 minutes.<br>
                  <br>
                  When restricting the routes to install to the shortest
                  path only to save <br>
                  time
                  (NdnRoutingHelper.calculateNPossibleRoutes(nFaces=1)),
                  the <br>
                  computeDijkastra method fails in line 241 when using
                  the Geant topology.<br>
                  <br>
                  I am not familiar with the ndn_routing_helper code,
                  that's why I'll use <br>
                  a workaround. But maybe someone who is familiar with
                  the routing-helper <br>
                  can find the problem's cause.<br>
                  <br>
                  Thanks,<br>
                  Philipp<br>
                  <br>
                  _______________________________________________<br>
                  Mini-NDN mailing list<br>
                  <a class="x_moz-txt-link-abbreviated"
                    href="mailto:Mini-NDN@lists.cs.ucla.edu"
                    moz-do-not-send="true">Mini-NDN@lists.cs.ucla.edu</a><br>
                  <a
                    href="http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn"
                    moz-do-not-send="true">http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn</a><br>
                  <br>
                </div>
              </span></font></div>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>