{% extends "layout.html" %}
{% set title = _('ndnSIM Documentation') %}

{% block body %}
    <h1>{{ docstitle|e }}</h1>

    <p>
This website includes the ndnSIM documentation and is intended to help the community use the simulator for NDN experimentation. It is not intended to present the principles or the design of the NDN architecture and communication model.
We invite you to <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">join our mailing list</a> to see and participate in discussions about ndnSIM implementation and simulations in general (<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a>).
    </p>

  {% block tables %}
  <!-- <p><strong>Parts of the documentation:</strong></p> -->
  <table class="contentstable" align="center">
    <tr>
      <td width="50%" valign="top">
        <h2>Getting Started</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="{{ pathto("intro") }}">Introduction</a><br/>
            <span class="linkdescr">what is ndnSIM, how to get support, and what is in the package</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("getting-started") }}">Downloading and Compiling ndnSIM</a><br/>
            <span class="linkdescr">requirements, downloading, compiling, simulating</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("faq") }}">FAQs</a><br/>
            <span class="linkdescr">frequently asked questions (with answers!)</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("examples") }}">Simulation examples</a><br/>
            <span class="linkdescr">basic tutorial examples</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("best-practices") }}">Best practises</a><br/>
            <span class="linkdescr">best practises on using ndnSIM</span></p>
        </div>
      </td>
      <td width="50%" valign="top">
        <h2>Advanced Topics</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="doxygen/annotated.html">ndnSIM API documentation</a><br/>
            <span class="linkdescr">generated documentation of ndnSIM API</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("parallel-simulations") }}">Parallelize simulations using OpenMPI</a><br/>
            <span class="linkdescr">how to use OpenMPI to parallelize execution of simulation scenarios</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("guide-to-simulate-real-apps") }}">Simulating real applications</a><br/>
            <span class="linkdescr">guide on how to simulate real application that are written against ndn-cxx library</span></p>
        </div>
      </td>
    </tr>
    <tr>
      <td width="50%" valign="top">
        <h2>ndnSIM tutorial</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="{{ pathto("helpers") }}">ndnSIM helpers</a><br/>
            <span class="linkdescr">very important components of ndnSIM for writing simulation scenarios</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("cs") }}">Content Store</a><br/>
            <span class="linkdescr">several different build-in content store implementations: LRU, LFU, and others</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("fw") }}">Forwarding Strategies</a><br/>
            <span class="linkdescr">experimenting with different build-in and custom Interest/Data forwarding strategies</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("applications") }}">ndnSIM applications</a><br/>
            <span class="linkdescr">reference applications for network-leverl evaluations</span></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("metric") }}">Obtaining metrics</a><br/>
            <span class="linkdescr">obtaining and visualizing metrics from simulation runs</span></p>
        </div>
      </td>
      <td width="50%" valign="top">
        <h2>ndnSIM Versions</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="#">ndnSIM 2.4</a><br/>
            <span class="linkdescr">latest version</span></p>
          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.3/">ndnSIM 2.3</a><br/>
          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.2/">ndnSIM 2.2</a><br/>
          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.1/">ndnSIM 2.1</a><br/>
          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.0/">ndnSIM 2.0</a><br/>
          <p class="biglink"><a class="biglink" href="http://ndnsim.net/1.0/">ndnSIM 1.0</a><br/>
        </div>
      </td>
    </tr>
    <tr>
      <td width="50%" valign="top">
        <h2>Publications</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="{{ pathto("ndnsim-research-papers") }}">ndnSIM-related publications</a><br/>
            <span class="linkdescr">general papers about ndnSIM, research papers that use ndnSIM</span></p>
          <p>If you are referring to ndnSIM in a published work, please cite the following papers, not just the ndnSIM website. Thank you!
          <ul>
            <li>
              S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017 (<a class="reference external" href="https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf">PDF</a>) (<a class="reference external" href="http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim">BibTex</a>)
            </li>
            <li>
              S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM 2: An updated NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0028, Revision 2, 2016 (<a class="reference external" href="https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)
            </li>
            <li>
            A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="https://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)
            </li>
          </ul>
        </div>
      </td>
      <td width="50%" valign="top">
        <h2>Miscellaneous</h2>
        <div class="tile">
          <p class="biglink"><a class="biglink" href="{{ pathto("RELEASE_NOTES") }}">Release Notes</a><br/>
            <span class="linkdescr">new features, changes, bug fixes, deprecations, and removals</span></p>

          <p class="biglink"><a class="biglink" href="http://redmine.named-data.net/projects/ndnsim">Reporting bugs</a><br/>
            <span class="linkdescr"><a href="http://redmine.named-data.net/projects/ndnsim" target="_blank">ndnSIM Redmine</a>,
            <span class="linkdescr"><a href="https://github.com/named-data-ndnSIM/ndnSIM/pulls" target="_blank">GitHub pull requests</a></span></p>

          <p class="biglink"><a class="biglink" href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">ndnSIM mailing list</a><br/>
            <span class="linkdescr"><a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a></span></p>

          <p class="biglink"><a class="biglink" href="{{ pathto("community-contributions") }}">Community Contributions</a><br/>
              <span class="linkdescr">very much appreciated contributions of the ndnSIM user community</span></p>

          <p class="biglink"><a class="biglink" href="{{ pathto("meta/authors") }}">ndnSIM Team</a></p>
          <p class="biglink"><a class="biglink" href="{{ pathto("meta/copying") }}">Copyright and License</a></p>
        </div>
      </td>
    </tr>
  </table>

  {% endblock %}


{% endblock %}
