diff --git a/docs/CLUSTER.md b/docs/CLUSTER.md
deleted file mode 100644
index e1e52ad..0000000
--- a/docs/CLUSTER.md
+++ /dev/null
@@ -1,25 +0,0 @@
-Mini-NDN cluster edition
-========================
-
-Mini-NDN cluster edition uses the experimental Mininet cluster edition.
-**Make sure that you can run the Mininet cluster edition by following
-[these instructions](https://github.com/mininet/mininet/wiki/Cluster-Edition-Prototype)**.
-Mini-NDN will use the "mininet" username created in Mininet cluster edition setup.
-
-## Mini-NDN cluster options
-
-To run Mini-NDN cluster on `localhost` and another server `server1` with
-the guided node placement strategy (default), the following command can be used:
-
-    sudo minindn --cluster=localhost,server1 --place-list=1,3
-
-Note that `place-list` specifies the number of nodes to be placed on the corresponding servers
-of the cluster.
-In the example, one node will be placed on `localhost` and three nodes on `server1`.
-Unless specified, the default 4 node topology is used.
-Another placement can be `roundRobin` placement algorithm from Mininet.
-This does not require a place-list.
-
-    sudo minindn --cluster=localhost,server1 --placement roundRobin
-
-By default the tunnel type used is SSH, but GRE tunnel can be specified by `--tunnel-type=gre`
diff --git a/docs/CONFIG.md b/docs/CONFIG.md
deleted file mode 100644
index d2a5bf1..0000000
--- a/docs/CONFIG.md
+++ /dev/null
@@ -1,68 +0,0 @@
-Configuration
-=============
-
-Mini-NDN uses a configuration file describing the topology and its parameters to setup a network.
-It can be generated by the GUI or written by hand or scripts.
-
-## Configuration file format:
-
-### The [nodes] section:
-
-At the bare minimum, the node section describes the nodes present in the topology.
-
-    [nodes]
-    a: _
-    b: _
-
-Additionally each node can take the following parameters:
-
-* app   : Default application(s) to be started on a node (specify '_' if no app needs to be started - required).
-The app is the only parameter which needs double quotes (see example below).
-
-* cpu   : Amount of cpu available to a node (0.00 - 1.00), optional
-
-* mem   : Amount of memory available to a node in KB
-
-* cache : Amount of cache memory available to a node in KB
-
-* nfd-log-level: Set the log level of the NFD running on the node (ex: DEBUG). For finer control,
-nfd.conf or nfd.conf.sample needs to be modified in /usr/local/etc/ndn/
-
-* nlsr-log-level: Set the log level of the NLSR running on the node (ex: DEBUG).
-
-    e.g.)
-
-    [nodes]
-    a: _ cpu=0.3 nfd-log-level=TRACE nlsr-log-level=NONE
-    b: app="sample app 1; sampleapp2.sh" cpu=0.3
-
-### The [links] section:
-
-The links section describes the links in the topology.
-
-    e.g.)
-
-    [links]
-    a:b delay=10ms
-
-This would create a link between a and b. 'b:a' would also result in the same.
-The following parameters can be configured for a node:
-
-* delay : Delay parameter is a required parameter which defines the delay of the link (1-1000ms)
-
-* bw    : Bandwidth of a link (<1-1000> Mbps)
-
-* loss  : Percentage of packet loss (<1-100>)
-
-### Example configuration file
-
-    [nodes]
-    a: _ cpu=0.3
-    b: app="sampleApp1; ./sampleApp2.sh" cpu=0.3
-    [links]
-    a:b delay=10ms bw=100
-
-Note that `sampleApp1` and `sampleApp2` must be either installed in the system (ex: /usr/bin)
-or an absolute path needs to be given.
-
-See `topologies` for more sample files
diff --git a/docs/CONNECT-TO-OUTSIDE.md b/docs/CONNECT-TO-OUTSIDE.md
deleted file mode 100644
index eb3f5b6..0000000
--- a/docs/CONNECT-TO-OUTSIDE.md
+++ /dev/null
@@ -1,91 +0,0 @@
-Connect Mini-NDN nodes to an outside network
-============================================
-
-Mini-NDN nodes can be connected to an outside network indirectly by running NFD on the local machine:
-
-    (Mini-NDN node) ------ (NFD running on the host machine where Mini-NDN is running) ------- (External Network)
-
-## Add a node in root namespace
-
-For this simple example, we use the default topology:
-
-    c----a----b----d
-
-If we want node "a" to connect to the host machine, we need to add a "root" node which has a link with node "a."
-
-To do so, we need to add the following import statement at the top of `bin/minindn`:
-
-```python
-from mininet.node import Node
-```
-
-Then the following lines can be added to `bin/minindn` before net.start():
-
-```python
-root = Node( 'root', inNamespace=False )
-net.addLink(root, 'a')
-```
-
-Adding these before net.start() is important as node "root" would then be assigned an IP automatically.
-Re-install Mini-NDN by issuing the following command in the mini-ndn folder:
-
-    sudo ./install.sh -i
-
-## Configuration
-
-Run Mini-NDN with the simple topology and issue ifconfig on the local machine to confirm the addition of
-the interface. You should be able to locate "root-eth0":
-
-    root-eth0 Link encap:Ethernet  HWaddr 3e:eb:77:d2:6f:1f
-              inet addr:1.0.0.9  Bcast:1.0.0.11  Mask:255.255.255.252
-              inet6 addr: fe80::3ceb:77ff:fed2:6f1f/64 Scope:Link
-              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
-              RX packets:34 errors:0 dropped:0 overruns:0 frame:0
-              TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
-              collisions:0 txqueuelen:1000
-              RX bytes:2667 (2.6 KB)  TX bytes:2797 (2.7 KB)
-
-To make the IP address associated with this interface persistent, add the following line to
-/etc/network/interfaces and reboot your machine:
-
-    iface root-eth0 inet manual
-
-## Check connection
-
-After rebooting, run Mini-NDN and issue the following command:
-
-    mini-ndn>net
-    a a-eth0:b-eth0 a-eth1:c-eth0 a-eth2:root-eth0
-
-Node "a" is connected to "root-eth0". Now issue "ifconfig a-eth2" on node "a":
-
-    mini-ndn>a ifconfig a-eth2
-    a-eth2    Link encap:Ethernet  HWaddr fa:76:d4:86:d3:ba
-              inet addr:1.0.0.10  Bcast:1.0.0.11  Mask:255.255.255.252
-
-As learned from the previous step, the IP address of root-eth0 is 1.0.0.9.
-
-    mini-ndn>a ping 1.0.0.9
-    PING 1.0.0.9 (1.0.0.9) 56(84) bytes of data.
-    64 bytes from 1.0.0.9: icmp_seq=1 ttl=64 time=0.137 ms
-    64 bytes from 1.0.0.9: icmp_seq=2 ttl=64 time=0.123 ms
-
-The host machine will also be able to ping node "a":
-
-    VirtualBox:~$ ping 1.0.0.10
-    PING 1.0.0.10 (1.0.0.10) 56(84) bytes of data.
-    64 bytes from 1.0.0.10: icmp_seq=1 ttl=64 time=0.086 ms
-
-## Run NFD on local machine and register route
-
-Start NFD on the local machine by using:
-
-    sudo nfd
-
-The "nfd-start" script cannot be used, since the script allows only one instance of NFD at a time.
-The NFD processes running on the Mini-NDN nodes will prevent the "nfd-start" script from working.
-
-Now, using "nfdc register", we can register a route from node "a" in Mini-NDN to the NFD process on the
-host machine and from the host machine to an external machine.
-
-Also, if the local machine has a public IP, Mini-NDN nodes can be reached via external machines.
diff --git a/docs/EXPERIMENTS.md b/docs/EXPERIMENTS.md
deleted file mode 100644
index a2191ac..0000000
--- a/docs/EXPERIMENTS.md
+++ /dev/null
@@ -1,207 +0,0 @@
-Experiments
-===========
-
-Mini-NDN includes an experimentation framework which allows a user to create and automate
-networking experiments. Users can run existing experiments, included with Mini-NDN, or define
-their own custom experiment.
-
-## Running existing experiments
-
-Mini-NDN includes three example experiments that can be used to test the network or as reference
-for custom experiment implementations. `ndn-tools` must be installed to run the example
-experiments as each experiment uses both `ndnpingserver` and `ndnping`. Please see
-[INSTALL.md](../INSTALL.md) for instructions on installing `ndn-tools`.
-
-To see a list of the available experiments, run Mini-NDN using the `--list-experiments` parameter:
-
-    minindn --list-experiments
-
-To run an experiment, provide the experiment name as an argument to the `--experiment` parameter:
-
-    sudo minindn --experiment=pingall
-
-Each experiment will run until completion or exit if there is an error setting up the
-test environment.
-
-The three included experiments are set up using the same starting
-configuration. Each node runs NFD, NLSR, and an ndnpingserver which advertises the node's
-site name. After a waiting period to allow the network to converge (default is 60 seconds),
-the convergence status of the network is checked. If each node's FIB does not have an entry
-for every other node's router name and advertised prefix, the experiment is aborted and an error
-is reported.
-
-#### Common experiment parameters
-
-The time allowed for convergence (in seconds) can be configured using the `--ctime` parameter:
-
-    sudo minindn --ctime=30 ...
-
-After the experiment has finished running, the command-line interface (CLI) will be launched and the
-user can then interact with the test environment. To disable the CLI and instead exit Mini-NDN
-as soon as the experiment has finished, use the `--no-cli` parameter:
-
-    sudo minindn --no-cli ...
-
-To ping only a percentage of nodes `--pct-traffic` can be set.
-
-    sudo minindn --pct-traffic=0.5 ...
-
-The above command will ping only 50% of other nodes from each node.
-The default value is 1 i.e. ping every other node.
-
-To move the experiment results to a results directory from the working directory
-after the experiment is complete (either --no-cli or quit) the following option
-can be used:
-
-    sudo minindn --result-dir /home/mydir/result-dir ...
-
-The included experiments are described in detail below along with additional
-parameters that can be provided to modify the execution of the experiments.
-
-### Pingall experiment
-
-**Scenario**: Each node in the network simultaneously pings every other node in the network at a
-one second interval.
-
-**Experiment ID**: `--pingall`
-
-The number of pings sent in the experiment can be configured using the `--nPings` parameter:
-
-    sudo minindn --experiment=pingall --nPings=120
-
-By default, `--nPings` is 300 for the Pingall experiment.
-
-### Failure experiment
-
-**Scenario**: Each node in the network simultaneously pings every other node in the network at a
-one second interval. After 60 seconds, the node with the name "csu" is brought down. The node is
-left in a failed state for 120 seconds while the other nodes continue pinging. After this period,
-the failed node is recovered and pings are collected for an additional 90 seconds.
-
-**Experiment ID**: `--failure`
-
-`--nPings` is 300 for the Failure experiment and cannot be modified.
-
-### Multiple failure experiment
-
-**Scenario**: Each node in the network simultaneously pings every other node in the network at a
-one second interval. After 60 seconds, the first node in the network will be brought down and remain
-in failed state for 60 seconds. After the failure period, the node is recovered and the network
-is allowed to recover for 60 seconds. After the recovery period, the next node will go through this
-failure and recovery process. Once every node in the network has gone through the failure and
-recovery process, the experiment will end.
-
-**Experiment ID**: `--multiple-failure`
-
-`--nPings` is dependent on the size of the topology being tested. 120 pings are scheduled for
-each node's failure/recovery period as well as an additional 60 pings for the initial collection
-period.
-
-### MCN failure experiment
-
-**Scenario**: This is exactly like the failure experiment but instead of failing the node named "csu" it fails the most connected node (MCN) i.e the node with the most links.
-
-Experiment ID: `--mcn-failure`
-
-### Experiment data
-
-The ping data is stored at `/tmp/minindn/node-name/ping-data`.
-
-The ping server log is stored at `/tmp/minindn/node-name/ping-server`
-
-## Creating custom experiments
-
-Mini-NDN provides a simple Python based framework which allows a user to define their own experiment
-and run it from the command line.
-
-To create an experiment, follow these steps:
-
-1. Create a Python source file for the experiment in the `ndn/experiments` directory.
-
-   e.g.) `ndn/experiments/example.py`
-
-2. Derive the experiment from the `Experiment` base class defined in
-   `ndn/experiments/experiment.py`.
-
-        #!/usr/bin/python
-
-        from ndn.experiments.experiment import Experiment
-
-        class ExampleExperiment(Experiment):
-            def __init__(self, args):
-                Experiment.__init__(self, args)
-
-3. Override `start()` if the experiments want to override NLSR setup and skip `setup()` and `run()`
-as described below. `start()` is the entry point for an experiment.
-
-4. Override the `setup()` method to define how the experiment should be initialized
-
-   e.g.) Run an ndnping server in the background on each node
-
-        def setup(self):
-           for host in self.net.hosts:
-               host.cmd("ndnpingserver host.name &")
-
-
-5. Override the `run()` method to define how the experiment should behave
-
-    e.g.) Obtain the NFD status of each node and save it to file
-
-        def run(self):
-            for host in self.net.hosts:
-                host.cmd("nfdc status report > status.txt")
-
-6. Register the experiment with the `ExperimentManager` to make the experiment runnable from the
-command line.
-
-        Experiment.register("example-name", ExampleExperiment)
-
-The experiment can then be run from the command-line using the name registered.
-"example-name" in the above example:
-
-        sudo minindn --experiment=example-name
-
-### Full example experiment code
-
-    #!/usr/bin/python
-
-    from ndn.experiments.experiment import Experiment
-
-    class ExampleExperiment(Experiment):
-        def __init__(self, args):
-            Experiment.__init__(self, args)
-
-        def setup(self):
-            for host in self.net.hosts:
-                host.cmd("ndnpingserver host.name &")
-
-        def run(self):
-            for host in self.net.hosts:
-                # By default status.txt would be stored
-                # at /tmp/minindn/host/status.txt
-                host.cmd("nfdc status report > status.txt")
-
-    Experiment.register("example-name", ExampleExperiment)
-
-## Passing arguments to experiments
-
-Mini-NDN has the capacity to pass arguments to experiments, insofar
-as they do not clash with those of Mini-NDN. This feature
-allows users to pass arguments to Mini-NDN and process them in an
-experiment without having to rewrite Mini-NDN's core.
-
-An example of an experiment implementing this functionality is given in
-`ndn/experiments/arguments_experiment.py`, which demonstrates how to
-write code which handles arguments. Documentation for these arguments
-appears when called with `sudo minindn -h`, as does documentation for
-fixed arguments defined in core code, so it is strongly recommended to
-differentiate those you write yourself. Note that Bash and Zsh users
-can make use of autocomplete functionality when calling these arguments.
-
-To run the experiment:
-
-    sudo minindn --experiment arg-exp --ds 226 --logging
-
-The experiment will print out the supplied value for --ds and a boolean
-value for the presence of --logging. --experiment is a fixed argument of
-Mini-NDN.
\ No newline at end of file
diff --git a/docs/GETTING-STARTED.md b/docs/GETTING-STARTED.md
deleted file mode 100644
index d15e95f..0000000
--- a/docs/GETTING-STARTED.md
+++ /dev/null
@@ -1,115 +0,0 @@
-Getting Started
-===============
-
-## Installation
-Please see [INSTALL.md](../INSTALL.md) for instructions on installing Mini-NDN and its dependencies.
-
-## Running Mini-NDN
-
-To run Mini-NDN with the default topology, `ndn_utils/topologies/default-topology.conf`, type:
-
-    sudo minindn
-
-A full list of options can be printed by using:
-
-    sudo minindn --help
-
-To run Mini-NDN with a topology file, provide the filename as the first argument:
-
-    sudo minindn my-topology.conf
-
-During set up, the list of nodes in the network will be listed as they are initialized:
-
-    *** Adding hosts:
-    a b c d
-
-After set up, the command-line interface (CLI) will display a prompt.
-
-    mini-ndn>
-
-To interact with a node, first type the node's name and then the command to be executed:
-
-    mini-ndn> a echo "Hello, world!"
-    Hello, world!
-
-To see the status of the forwarder on the node:
-
-    mini-ndn> a nfdc status report
-
-To see the status of routing on the node:
-
-    mini-ndn> a nlsrc status
-
-To exit Mini-NDN, type `quit` in the CLI:
-
-    mini-ndn> quit
-
-Another option to quit Mini-NDN is sending a SIGQUIT (ctrl+\). SIGINT (ctrl+c)
-is reserved for the purpose of stopping applications initiated on the minindn command
-line.
-
-For a more in depth explanation of the CLI, please see the
-[Mininet Walkthrough](http://mininet.org/walkthrough/).
-
-## Command-line options
-
-To run Mini-NDN with a replica of the NDN testbed, use the `--testbed` parameter:
-
-    sudo minindn --testbed
-
-To change the working directory from default `/tmp/minindn` following option can be used:
-
-    sudo minindn --work-dir /home/mydir/test
-
-Autocomplete of command-line options is available for users of Bash and Zsh.
-
-#### Routing options
-
-To run minindn without NLSR, use the `--no-nlsr` parameter:
-
-    sudo minindn --no-nlsr
-
-To run NLSR with hyperbolic routing enabled, use the `--routing` parameter:
-
-    sudo minindn --routing hr
-
-Topology files given under ndn_utils/topologies/minindn* have hyperbolic coordinates configured
-and can be used with this option.
-
-To run NLSR in dry-run mode, use the `--routing` parameter:
-
-    sudo minindn --routing dry
-
-To configure the max number of faces added by NLSR to reach each name prefix, use the `--faces`
-parameter:
-
-    sudo minindn --faces 3
-
-`--faces` can be an integer from 0 to 60; 0 indicates NLSR can add all available faces.
-
-To run Mini-NDN with NLSR security configured
-
-    sudo minindn --nlsr-security
-
-## Working Directory Structure
-
-Currently Mini-NDN uses /tmp/minindn as the working directory if not specified otherwise by using
-the option --work-dir.
-
-Each node is given a HOME directory under /tmp/minindn/node-name
-where node-name is the name of the node specified in the [nodes] section of the conf file.
-
-### NFD
-NFD conf file is stored at `/tmp/minindn/node-name/node-name.conf`
-
-NFD log file is stored at `/tmp/minindn/node-name/node-name.log`
-
-`.ndn` folder is stored at `/tmp/minindn/node-name/.ndn`
-
-### NLSR
-NLSR conf file is stored at `/tmp/minindn/node-name/nlsr.conf`
-
-NLSR log file is stored at `/tmp/minindn/node-name/log/nlsr.log`
-
-When security is enabled, NLSR security certificates are stored in: `/tmp/minindn/node-name/security`
-Note that no NLSR publishes the root certificate, Mini-NDN installs root.cert in security folder for each NLSR.
diff --git a/docs/GUI.md b/docs/GUI.md
deleted file mode 100644
index b190eeb..0000000
--- a/docs/GUI.md
+++ /dev/null
@@ -1,81 +0,0 @@
-Mini-NDN Edit
-=============
-
-Mini-NDN Edit is a GUI program designed to simplify the creation of Mini-NDN topology
-configuration files. Mini-NDN Edit allows the user to build a topology, configure the hosts and
-links, and generate a topology file that can be used by Mini-NDN.
-
-![minindnedit](img/gui/minindnedit.png)
-
-## Working with topology files
-
-#### File formats
-
-There are two file formats used by Mini-NDN edit.
-
-* `.mnndn` files store topology information used by the GUI. Mini-NDN Edit can open and
-save `.mnndn` files.
-
-* `.conf` files are used by Mini-NDN to create and run topologies. Mini-NDN Edit can generate a
-`.conf` file from a `.mnndn` file. Mini-NDN edit cannot open `.conf` files. Please see
-[CONFIG-FILE.md](CONFIG.md) for more information on the content and format of `.conf` files.
-
-#### File menu
-
-![file-dropdown](img/gui/file-dropdown.png)
-
-* **New** - Erase the current canvas and provide a new empty topology
-* **Open** - Open a `.mnndn` topology file
-* **Save** - Save the current topology as a `.mnndn` topology file
-* **Generate** - Convert the current topology to a `.conf` file runnable by Mini-NDN
-* **Run** - Run the current topology in Mini-NDN. The GUI will disappear and Mini-NDN will run on
-            the command-line.
-* **Quit** - Exit Mini-NDN edit
-
-## Tools
-
-### Cursor tool
-![cursor-tool](img/gui/cursor-tool.png)
-
-The *cursor tool* is used to select and move nodes in the topology. A selected node or link can be
-removed from the topology using the `backspace` key or by selecting `edit/cut`.
-
-### Host tool
-![host-tool](img/gui/host-tool.png)
-
-The *host tool* is used to add a host node to the topology. Click on the canvas to create a new host
-node at the mouse cursor's position.
-
-### Switch tool
-![switch-tool](img/gui/switch-tool.png)
-
-The *switch tool* is used to add a switch to the topology. Click on the canvas to create a new
-switch at the mouse cursor's position.
-
-### Link tool
-![link-tool](img/gui/link-tool.png)
-
-The *link tool* is used to connect two nodes with a network link. Click on a node and drag the mouse
-cursor to another node to create a link between the two nodes.
-
-## Configuration
-
-#### Editing host information
-
-To edit a host's information and configuration, right-click on the desired node and select
-`Host Options`.
-
-The *Host Options* window will include tabs to modify the node's properties as well as the
-configuration files for NFD and NLSR on that node.
-
-*Note: Network, Site, and Router in the NLSR tab are unused in v0.1.0*
-
-![host-config](img/gui/host-config.png)
-
-#### Editing link configuration
-
-To edit a link's configuration, right-click on the desired link and select `Link Options`.
-
-The *Link Options* window will allow configuration of the link's bandwidth, delay, and loss rate.
-
-![link-details](img/gui/link-details.png)
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..d4bb2cb
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS    ?=
+SPHINXBUILD   ?= sphinx-build
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/RELEASE-NOTES.md b/docs/RELEASE-NOTES.md
deleted file mode 100644
index 9a825d7..0000000
--- a/docs/RELEASE-NOTES.md
+++ /dev/null
@@ -1,176 +0,0 @@
-Release Notes
-=============
-
-Mini-NDN version 0.4.0 (changes since version 0.3.0)
-----------------------------------------------------
-
-Release date: January 10, 2018
-
-**New features**:
-
-- Use SIGQUIT to quit Mini-NDN, SIGINT to kill programs
-
-- Use Infoedit to edit NFD and NLSR configuration files
-
-- Use nlsr.conf installed in the system
-
-- Provide a Vagrantfile to setup Mini-NDN and NDN
-
-- Provide option to disable NLSR
-
-- Provide an option to run NLSR in dry-run mode
-
-- Add option to specify whether to use TCP or UDP face in nlsr.conf
-
-- Add option to specify arbitrary arguments to use in experiments
-
-- Include a single option to install Mini-NDN and all the dependencies
-
-**Bug fixes**:
-
-- Fix "key does not exist error" after NLSR starts
-
-- Update install.sh to call ldconfig after installing ChronoSync
-
-- Add hyperbolic coordinates to default topology
-
-**Misc changes**:
-
-- Add an experiment to test nlsrc
-
-- Create faces in NFD for each neighbor in NLSR
-
-- Update to latest ndn-cxx
-
-- Use /tmp/minindn folder as default work dir instead of /tmp
-
-Mini-NDN version 0.3.0 (changes since version 0.2.0)
-----------------------------------------------------
-
-Release date: March 3, 2017
-
-**New features**:
-
-- Mini-NDN cluster edition
-
-- New experiments for making NLSR testing easier
-
-**Bug fixes**:
-
-- Set site name correctly
-
-- Install missing certificates in NLSR security config
-
-- Fix quitting of NLSR due to key not found error
-
-**Misc changes**:
-
-- Removed nlsr.conf file, generate it within the code
-
-- Use argparse instead of deprecated optparse
-
-- Update security config section for NLSR
-
-- Change mininet prompt to mini-ndn
-
-- Set network name at one place
-
-- Update install.sh script to install openssl
-
-- Update install.sh script to install cryptopp from package instead of compiling from source
-
-- Update install.sh to clean build folder every time to get rid of removed files such as old experiments
-
-- Fix old code - use net.hosts instead of storing hosts in a variable
-
-- Use nfdc instead of deprecated nfd-status
-
-Mini-NDN version 0.2.0 (changes since version 0.1.1)
-----------------------------------------
-
-Release date: August 18, 2016
-
-**New features**:
-
-- Automatic security configuration for NLSR
-
-- Use /usr/local/etc/ndn/nfd.conf as default config file for NFD
-
-- Class to monitor /proc/$PID/stat file for PID
-
-- Mini-NDN exits gracefully on SIGINT and non-convergence
-
-- Faster Mini-NDN install script - does not do apt-get update everytime
-
-- NLSR is launched with explicit config file for easier process identification
-
-- Add and update more documentation
-
-**Bug fixes**:
-
-- NFD is killed correctly on exit
-
-- Best route strategy is set correctly
-
-Mini-NDN version 0.1.1 (changes since version 0.1.0)
-----------------------------------------
-
-Release date: November 4, 2015
-
-**New features**:
-
-- Use nfd.conf.sample from currently installed NFD
-
-- Add working directory option to allow execution environment outside of /tmp
-
-- Add results directory option to store experiment results after completion
-
-- Add support for switches in GUI and configuration file
-
-- Add failNode and recoverNode methods to Experiment class
-
-- Add most connected node (MCN) failure experiment
-
-- Add option to specify percentage of nodes pinged
-
-**Code changes**:
-
-- Refactor program options into container class
-
-- Remove unused "FIB Entries" option from NDN host options
-
-**Bug fixes**:
-
-- Abort start up if experiment name is invalid
-
-- Restart pings after recovery in failure experiment
-
-Mini-NDN version 0.1.0 (initial release)
-----------------------------------------
-
-Release date: July 15, 2015
-
-Mini-NDN is a lightweight networking emulation tool that enables testing, experimentation, and
-research on the NDN platform. Based on Mininet, Mini-NDN uses the NDN libraries, NFD, NLSR, and
-tools released by the [NDN project](http://named-data.net/codebase/platform/) to emulate
-an NDN network on a single system.
-
-**Included features**:
-
-- Run a complete NDN network on a single system
-
-- Automatic configuration of NLSR to provide a routable NDN network
-
-- Supports user created NDN applications
-
-- Create a topology using the included Mini-NDN Edit GUI application
-
-- Allows individual configuration of NFD and NLSR parameters for each node
-
-- Provides an experiment management framework for easy creation of custom networking experiments
-
-- Uses a simple topology file format to define hosts, links, and configuration values
-
-- Configure network link parameters including bandwidth, delay, and loss rate
-
-- Includes a pre-configured topology file to replicate the NDN testbed
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..54591c1
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,56 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+from datetime import datetime
+from minindn import __version__
+
+# -- Project information -----------------------------------------------------
+
+project = 'Mini-NDN'
+copyright = '2015-{}, Mini-NDN. This research is partially supported by NSF.'.format(datetime.now().year)
+author = 'Mini-NDN'
+
+# The full version, including alpha/beta/rc tags
+release = __version__
+version = __version__
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
\ No newline at end of file
diff --git a/docs/experiment.rst b/docs/experiment.rst
new file mode 100644
index 0000000..58cc303
--- /dev/null
+++ b/docs/experiment.rst
@@ -0,0 +1,235 @@
+Experiment
+==========
+
+Configuration
+-------------
+
+Mini-NDN uses a configuration file describing the topology and its parameters to setup a network.
+
+The [nodes] section:
+
+At the bare minimum, the node section describes the nodes present in the
+topology.
+
+::
+
+    [nodes]
+    a: key1=value1 key2=value2
+    b: key1=value1
+
+Any key and value passed here is accessible in Mini-NDN as:
+
+::
+
+    ndn = Minindn(...)
+    value = ndn.net.hosts[0].params['params'].get('key1', "defaultValue")
+
+One can specify log levels for each node's NFD and NLSR using this key-value system:
+
+::
+
+    [nodes]
+    a: nfd-log-level=DEBUG nlsr-log-level=DEBUG
+    b: nfd-log-level=INFO
+
+To specify a log level for certain modules of NFD, the following line can be added to `nfd.py`:
+
+::
+
+   node.cmd('infoedit -f {} -s log.Forwarder -v {}'.format(self.confFile, 'INFO'))
+
+This will turn on FORWARDER logging to INFO for all nodes.
+
+.. Todo: Add switch section
+
+The [links] section:
+
+The links section describes the links in the topology.
+
+::
+
+    e.g.)
+
+    [links]
+    a:b delay=10ms
+
+This would create a link between a and b. 'b:a' would also result in the
+same. The following parameters can be configured for a node:
+
+-  delay : Delay parameter is a required parameter which defines the
+   delay of the link (1-1000ms)
+
+-  bw : Bandwidth of a link (<1-1000> Mbps)
+
+-  loss : Percentage of packet loss (<1-100>)
+
+Example configuration file
+
+::
+
+    [nodes]
+    a:
+    b:
+    [links]
+    a:b delay=10ms bw=100
+
+See ``ndn_utils/topologies`` for more sample files
+
+Sample
+------
+
+Sample experiment may written as follows:
+
+.. code:: python
+
+    from mininet.log import setLogLevel, info
+
+    from minindn.minindn import Minindn
+    from minindn.util import MiniNDNCLI
+    from minindn.apps.appmanager import AppManager
+    from minindn.apps.nfd import Nfd
+    from minindn.apps.nlsr import Nlsr
+    from minindn.helpers.routing_helper import IPRoutingHelper
+
+    if __name__ == '__main__':
+        setLogLevel('info')
+
+        Minindn.cleanUp()
+        Minindn.verifyDependencies()
+
+        # Can pass a custom parser, custom topology, or any Mininet params here
+        ndn = Minindn()
+
+        ndn.start()
+
+        # IP reachability if needed
+        # IPRoutingHelper.calcAllRoutes(ndn.net)
+        # info("IP routes configured, start ping\n")
+        # ndn.net.pingAll()
+
+        # Start apps with AppManager which registers a clean up function with ndn
+        info('Starting NFD on nodes\n')
+        nfds = AppManager(ndn, ndn.net.hosts, Nfd)
+        info('Starting NLSR on nodes\n')
+        nlsrs = AppManager(ndn, ndn.net.hosts, Nlsr)
+
+        # or can not start NLSRs with some delay in between:
+        # nlsrs = AppManager(ndn, ndn.net.hosts, Nlsr)
+        # for host in ndn.net.hosts:
+        #     nlsrs.startOnNode(host)
+        #     time.sleep(30)
+
+        MiniNDNCLI(ndn.net)
+
+        # Calls the clean up functions registered via AppManager
+        ndn.stop()
+
+Users may look at how the NFD and NLSR applications are written as a sub class of Application
+in the ``minindn/apps`` folder. Or users may choose to directly run their application on nodes
+such as ndnpingserver is run in ``minindn/helpers/experiment.py``.
+
+Execution
+---------
+
+To run Mini-NDN with the default topology,
+``ndn_utils/topologies/default-topology.conf``, type:
+
+::
+
+    sudo python examples/minindn.py
+
+To run Mini-NDN with a topology file, provide the filename as the first
+argument:
+
+::
+
+    sudo python examples/minindn.py my-topology.conf
+
+After Mini-NDN is installed, users can run examples from anywhere with python directly as follows:
+
+::
+
+    sudo python /path/to/myexample.py
+
+The user no longer needs to create an experiment in the old Mini-NDN way, then install it to the system before executing it via the minindn binary. The new examples can be separate from the Mini-NDN folder if the core is not being modified.
+
+CLI Interface
+_____________
+
+During set up, the list of nodes in the network will be listed as they
+are initialized:
+
+::
+
+    *** Adding hosts:
+    a b c d
+
+After set up, the command-line interface (CLI) will display a prompt.
+
+::
+
+    mini-ndn>
+
+To interact with a node, first type the node's name and then the command
+to be executed:
+
+::
+
+    mini-ndn> a echo "Hello, world!"
+    Hello, world!
+
+To see the status of the forwarder on the node:
+
+::
+
+    mini-ndn> a nfdc status report
+
+To see the status of routing on the node:
+
+::
+
+    mini-ndn> a nlsrc status
+
+To exit Mini-NDN, type ``quit`` in the CLI or use ``ctrl + D``:
+
+::
+
+    mini-ndn> quit
+
+``Ctrl + C`` is used to quit an application run in the foreground of the command line.
+
+For a more in depth explanation of the CLI, please see the `Mininet
+Walkthrough <http://mininet.org/walkthrough/>`__.
+
+To run NDN commands from the outside the command line user can also open a new terminal
+and export the HOME folder of a node ``export HOME=/tmp/minindn/a && cd ~``
+
+Working Directory Structure
+---------------------------
+
+Currently Mini-NDN uses /tmp/minindn as the working directory if not
+specified otherwise by using the option --work-dir.
+
+Each node is given a HOME directory under /tmp/minindn/<node-name> where
+<node-name> is the name of the node specified in the [nodes] section of
+the conf file.
+
+NFD
+___
+
+- NFD conf file is stored at ``/tmp/minindn/<node-name>/nfd.conf``
+
+- NFD log file is stored at ``/tmp/minindn/<node-name>/log/nfd.log``
+
+- ``.ndn`` folder is stored at ``/tmp/minindn/<node-name>/.ndn``
+
+NLSR
+____
+
+- NLSR conf file is stored at ``/tmp/minindn/<node-name>/nlsr.conf``
+- NLSR log file is stored at ``/tmp/minindn/<node-name>/log/nlsr.log``
+
+When security is enabled, NLSR security certificates are stored in:
+``/tmp/minindn/<node-name>/security`` Note that no NLSR publishes the root
+certificate, Mini-NDN installs root.cert in security folder for each
+NLSR.
diff --git a/docs/faq.rst b/docs/faq.rst
new file mode 100644
index 0000000..991dd06
--- /dev/null
+++ b/docs/faq.rst
@@ -0,0 +1,48 @@
+FAQ
+=========
+
+* ``How does Mini-NDN work?``
+
+Mini-NDN's principles of operation most heavily rely on the underlying Mininet code it relies on.
+Mininet uses a combination of limited containerization via network namespaces (which give processes
+isolated interfaces and routing tables) and emulated ethernet connections via veth connections.
+In practical terms, Mini-NDN ensures that processes running on distinct nodes will run seperately
+and without interfering with each other.
+
+* ``How does Mini-NDN apply link loss/delay/etc.?``
+
+Mini-NDN relies on Mininet's code, which in turn uses the Linux tc utility on a stations' virtualized
+interfaces to apply configurations known as qdiscs to these links. Note that these will only be applied
+on egress packets from a station where it's applied.
+For more information on qdiscs and tc, view the information `here <http://wiki.linuxwall.info/doku.php/en%3aressources%3adossiers%3anetworking%3atraffic_control>`_.
+
+* ``Why use Mini-NDN rather than a simulator such as ndnSIM?``
+
+Mini-NDN is easier and faster to use because, rather than serving as a mathematical model of a network,
+it is instead running real NDN code on a real Linux kernel. This also means it's quite useful for testing code changes, as it can more accurately test the interaction of software componenents.
+
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Criteria                       | Mini-NDN                                                  | ndnSIM                                  |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Based On                       | Mininet                                                   | ns-3                                    |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Language                       | Python                                                    | C++                                     |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Library/Forwarder/Applications | Use system binaries (free to use any compatible versions) | Integrated (fixed release version)      |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Application language           | C++ (ndn-cxx), CCL (ndn-cpp, PyNDN, ndn-js, jNDN)         | C++ (ndn-cxx)                           |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Simulation size                | Medium - Large (cluster edition in development)           | Large (can be parallelized using MPI)   |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Simulation time                | Real time                                                 | Quick (depending on size/memory)        |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Porting real applications      | Drop in                                                   | Changes required                        |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Interactivity                  | Can interact directly with NFD, NLSR or Apps              | Can show stats while running            |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Logs                           | May need to manually setup to collect                     | Available with tracer                   |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Post processing scripts        | Not available, users need to write their own              | Available to use to process the logs    |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
+| Other                          | Not yet supported (Wifi in development)                   | WiFi, LTE, etc available from ns-3      |
++--------------------------------+-----------------------------------------------------------+-----------------------------------------+
diff --git a/docs/hackathon.rst b/docs/hackathon.rst
new file mode 100644
index 0000000..e51ec74
--- /dev/null
+++ b/docs/hackathon.rst
@@ -0,0 +1,9 @@
+Past NDN Hackathon projects
+===========================
+
+- 1st NDN Hackathon: `NFD integration test <http://ndncomm.github.io/mini-ndn/>`_.
+- 2st NDN Hackathon: `Mini-NDN metrics <https://github.com/2nd-ndn-hackathon/mini-ndn-metrics>`_.
+- 3rd NDN Hackathon: `Mini-NDN cluster <https://github.com/3rd-ndn-hackathon/mini-NDN-cluster>`_.
+- 4th NDN Hackathon: `Mini-NDN wifi <https://github.com/4th-ndn-hackathon/Mini-NDN-Wi-Fi>`_.
+- 7th NDN Hackathon: `Mini-NDN documentation <https://github.com/7th-ndn-hackathon/mini-ndn-documentation>`_.
+
diff --git a/docs/howtos.rst b/docs/howtos.rst
new file mode 100644
index 0000000..b95bde3
--- /dev/null
+++ b/docs/howtos.rst
@@ -0,0 +1,115 @@
+Howtos
+======
+
+Connect Mini-NDN nodes to an outside network
+---------------------------------------------
+
+Mini-NDN nodes can be connected to an outside network indirectly by
+running NFD on the local machine:
+
+::
+
+    (Mini-NDN node) ------ (NFD running on the host machine where Mini-NDN is running) ------- (External Network)
+
+Add a node in root namespace
+____________________________
+
+For this simple example, we can use a single node topology with node 'a'
+
+If we want node 'a' to connect to the host machine, we need to add a
+"root" node which has a link with node "a."
+
+Then the following code can be used:
+
+.. code:: python
+
+    topo = Topo()
+    root = topo.addHost('root', inNamespace=False)
+    a = topo.addHost('a')
+    topo.addLink(root, a, delay='10ms')
+
+    ndn = Minindn(topo=topo)
+
+    ...
+
+Configuration
+_____________
+
+Run Mini-NDN with the above code and issue ifconfig on the local
+machine to confirm the addition of the interface. You should be able to
+locate "root-eth0":
+
+::
+
+    root-eth0 Link encap:Ethernet  HWaddr 3e:eb:77:d2:6f:1f
+              inet addr:1.0.0.9  Bcast:1.0.0.11  Mask:255.255.255.252
+              inet6 addr: fe80::3ceb:77ff:fed2:6f1f/64 Scope:Link
+              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
+              RX packets:34 errors:0 dropped:0 overruns:0 frame:0
+              TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
+              collisions:0 txqueuelen:1000
+              RX bytes:2667 (2.6 KB)  TX bytes:2797 (2.7 KB)
+
+To make the IP address associated with this interface persistent, add
+the following line to /etc/network/interfaces and reboot your machine:
+
+::
+
+    iface root-eth0 inet manual
+
+Check connection
+________________
+
+After rebooting, run Mini-NDN and issue the following command:
+
+::
+
+    mini-ndn>net
+    a a-eth0:b-eth0 a-eth1:c-eth0 a-eth2:root-eth0
+
+Node "a" is connected to "root-eth0". Now issue "ifconfig a-eth2" on
+node "a":
+
+::
+
+    mini-ndn>a ifconfig a-eth2
+    a-eth2    Link encap:Ethernet  HWaddr fa:76:d4:86:d3:ba
+              inet addr:1.0.0.10  Bcast:1.0.0.11  Mask:255.255.255.252
+
+As learned from the previous step, the IP address of root-eth0 is
+1.0.0.9.
+
+::
+
+    mini-ndn>a ping 1.0.0.9
+    PING 1.0.0.9 (1.0.0.9) 56(84) bytes of data.
+    64 bytes from 1.0.0.9: icmp_seq=1 ttl=64 time=0.137 ms
+    64 bytes from 1.0.0.9: icmp_seq=2 ttl=64 time=0.123 ms
+
+The host machine will also be able to ping node "a":
+
+::
+
+    VirtualBox:~$ ping 1.0.0.10
+    PING 1.0.0.10 (1.0.0.10) 56(84) bytes of data.
+    64 bytes from 1.0.0.10: icmp_seq=1 ttl=64 time=0.086 ms
+
+Run NFD on local machine and register route
+___________________________________________
+
+Start NFD on the local machine by using:
+
+::
+
+    sudo nfd
+
+The "nfd-start" script cannot be used, since the script allows only one
+instance of NFD at a time. The NFD processes running on the Mini-NDN
+nodes will prevent the "nfd-start" script from working.
+
+Now, using "nfdc register", we can register a route from node "a" in
+Mini-NDN to the NFD process on the host machine and from the host
+machine to an external machine.
+
+Also, if the local machine has a public IP, Mini-NDN nodes can be
+reached via external machines.
diff --git a/docs/img/gui/cursor-tool.png b/docs/img/gui/cursor-tool.png
deleted file mode 100644
index 6d53812..0000000
--- a/docs/img/gui/cursor-tool.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/file-dropdown.png b/docs/img/gui/file-dropdown.png
deleted file mode 100644
index 9e0354c..0000000
--- a/docs/img/gui/file-dropdown.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/host-config.png b/docs/img/gui/host-config.png
deleted file mode 100644
index 5cd79a8..0000000
--- a/docs/img/gui/host-config.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/host-tool.png b/docs/img/gui/host-tool.png
deleted file mode 100644
index 4f54d53..0000000
--- a/docs/img/gui/host-tool.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/link-details.png b/docs/img/gui/link-details.png
deleted file mode 100644
index 99e2449..0000000
--- a/docs/img/gui/link-details.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/link-tool.png b/docs/img/gui/link-tool.png
deleted file mode 100644
index 7772ecf..0000000
--- a/docs/img/gui/link-tool.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/minindnedit.png b/docs/img/gui/minindnedit.png
deleted file mode 100644
index 0fe6879..0000000
--- a/docs/img/gui/minindnedit.png
+++ /dev/null
Binary files differ
diff --git a/docs/img/gui/switch-tool.png b/docs/img/gui/switch-tool.png
deleted file mode 100644
index 919b11d..0000000
--- a/docs/img/gui/switch-tool.png
+++ /dev/null
Binary files differ
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..d7d8f01
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,29 @@
+.. Mini-NDN documentation master file, created by
+   sphinx-quickstart on Mon Sep 23 11:15:54 2019.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Mini-NDN: A Mininet-based NDN emulator
+======================================
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents
+
+   introduction
+   install
+   experiment
+   howtos
+   release-notes
+   faq
+   hackathon
+   videos
+
+Helpful Links
+-------------
+
+* `NDN Website <http://named-data.net/>`_
+* `NDN Contributor's Guide <https://github.com/named-data/NFD/blob/master/CONTRIBUTING.md>`_
+* `Mininet Documentation <http://mininet.org/>`_
+* `Mini-NDN redmine <https://redmine.named-data.net/projects/mini-ndn>`_
+* `Mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn>`_
diff --git a/docs/install.rst b/docs/install.rst
new file mode 100644
index 0000000..391fdfa
--- /dev/null
+++ b/docs/install.rst
@@ -0,0 +1,174 @@
+Install
+=======
+
+Prerequisites
+-------------
+
+For this guide, you will need a laptop/desktop with a recent version of
+a Linux distro that is supported by Mininet. For this guide, the *Ubuntu 18.04 LTS* release was used.
+Some tweaks maybe required to Mini-NDN's install.sh file for other distros.
+Note that you'll need administrative privileges in order to download and install
+extra packages and also to execute **Mini-NDN**.
+
+Using Vagrantfile
+-----------------
+
+With Vagrant installed, simply do ``vagrant up`` which will bring up an Ubuntu 18.04 virtual machine
+and install Mini-NDN and all its dependencies on it. Please make sure to tweak the CPU core count
+(default 4 cores) and RAM (default 4GB) according to your needs before doing vagrant up. Mini-NDN
+can be found in /home/vagrant/mini-ndn which is a symlink to /vagrant if Vagrantfile was used from within mini-ndn cloned on the host. Otherwise it is an actual clone of mini-ndn.
+
+Using install.sh
+----------------
+
+Mini-NDN depends on Mininet and NDN software to be installed in the system.
+If you have all the dependencies (see sections below) **installed in the system** simply
+clone this repository and run:
+
+::
+
+    ./install.sh -i
+
+The ``-i`` option uses ``setup.py develop`` to point the system install
+to the current directory. So any changes made to the cloned ``mini-ndn``
+folder will be used without having to install it again to the system.
+If you do not need to modify the core of Mini-NDN, then setup.py install (or pip install .)
+can be used directly. See :doc:`experiment <experiment>` for more information on running.
+
+If you don't have the dependencies, the following command will
+install them from source along with Mini-NDN. The dependencies include
+Mininet, NDN core (ndn-cxx, NFD, Chronosync, PSync, NLSR), Infoedit,
+and NDN Common Client Libraries (CCL). If you do not wish to install
+the master versions of the NDN core or want to switch to specific versions,
+you can edit the install.sh with release tags/specific versions.
+
+.. _scaling-note:
+.. important::
+    If you wish to scale Mini-NDN experiments and do not have use for security extensions
+    in your emulations, you should apply the ndn-cxx patch given in the ``patches`` folder
+    using ``./install.sh -p`` before running the following commands. The ndn-cxx patch is
+    taken from ndnSIM which provides an in-memory dummy KeyChain to reduce CPU computations.
+    After these patches are applied sleep time after NFD, nfdc, NLSR, etc. is not required
+    making the startup **MUCH** faster and scaling of Mini-NDN **MUCH** better.
+
+::
+
+    ./install.sh -a
+
+This pulls the NDN software from Github to ``ndn-src`` folder under the project.
+
+.. note::
+    If any changes are made to ``ndn-src`` folder, please don't forgot to re-install
+    the sources to the system.
+
+To install without CCL, use:
+
+::
+
+    ./install.sh -mni
+
+See ``install.sh -h`` for detailed options.
+
+Installing Dependencies
+-----------------------
+
+Mininet
+_______
+
+Mini-NDN is based on Mininet. To install Mininet:
+
+::
+
+    git clone --depth 1 https://github.com/mininet/mininet.git
+
+After Mininet source is on your system, run the following command to
+install Mininet core dependencies and Open vSwitch:
+
+::
+
+    ./util/install.sh -nv
+
+To check if Mininet is working correctly, run this test:
+
+::
+
+    sudo mn --test pingall
+
+This will print out a series of statements that show the test setup and
+the results of the test. Look for ``Results:`` two-thirds of the way
+down where it will indicate the percentage of dropped packets. Your
+results should show "0% dropped (2/2 received)".
+
+NOTE: Mini-NDN, while providing a high level of emulation of hosts,
+requires programs to be installed onto your computer. It will not work
+if they are not installed. If you do not want NDN software installed
+onto your computer, you can use a virtual machine, which can be quite
+simply set up with the provided Vagrantfile.
+
+NDN dependencies
+________________
+
+Each node in Mini-NDN will run the official implementation of NDN
+installed on your system. The following dependencies are needed:
+
+Mini-NDN uses NFD, NLSR, and ndn-tools.
+
+- To install NFD: https://named-data.net/doc/NFD/current/INSTALL.html
+- To install NLSR: https://named-data.net/doc/NLSR/current/INSTALL.html
+- To install ndn-tools: https://github.com/named-data/ndn-tools
+
+.. warning::
+    Please do not try to install NDN software from both the source (GitHub) and PPA (apt).
+    It will not work in most cases! If you used ./install.sh -a in the past but now want
+    to use apt, please run ``sudo ./waf uninstall`` in all the NDN projects before proceeding
+    with apt. Similarly, remove from apt if switching to source.
+
+Please see the :ref:`scaling-note <scaling-note>` to learn about disabling
+security for better scalability.
+
+Note that all three of these can be installed from the Named Data PPA.
+Instructions for setting it up can be found in the NFD installation
+instructions. Note that PPA and installs from source **cannot** be
+mixed. You must completely remove PPA installs from the system if switching
+to source and vice-versa.
+
+For PPA installs, if you are using a custom nfd.conf file in an experiment, you should
+place it in /usr/local/etc/ndn/ rather than /etc/ndn/. This is to avoid
+a bug from the default configuration file for the PPA, which is
+incompatible with Mini-NDN.
+
+Infoedit
+________
+
+Infoedit is used to edit configuration files for NFD and NLSR.
+To install infoedit:
+
+::
+
+    git clone --depth 1 https://github.com/NDN-Routing/infoedit
+    cd infoedit
+    make
+    sudo make install
+
+Verification
+------------
+
+You can execute the following example to bring up the Mini-NDN command line
+with NFD and NLSR running on each node:
+
+::
+
+    sudo python examples/mnndn.py
+
+You can use these steps to run the sample pingall experiment:
+
+1. Issue the command: ``sudo python examples/nlsr/pingall.py``
+2. When the ``mini-ndn>`` CLI prompt appears, the experiment has
+   finished. On the Mini-NDN CLI, issue the command ``exit`` to exit the
+   experiment.
+3. Issue the command:
+   ``grep -c content /tmp/minindn/*/ping-data/*.txt``. Each file should
+   report a count of 50.
+4. Issue the command:
+   ``grep -c timeout /tmp/minindn/*/ping-data/*.txt``. Each file should
+   report a count of 0.
diff --git a/docs/introduction.rst b/docs/introduction.rst
new file mode 100644
index 0000000..fe19ad8
--- /dev/null
+++ b/docs/introduction.rst
@@ -0,0 +1,40 @@
+Introduction
+=================
+
+If you are new to the NDN community of software generally, read the
+`Contributor's Guide <https://github.com/named-data/NFD/blob/master/CONTRIBUTING.md>`_.
+
+What is Mini-NDN?
+-----------------
+
+Mini-NDN is a lightweight networking emulation tool that enables testing, experimentation, and
+research on the NDN platform. It was initially based on `Mini-CCNx <https://github.com/chesteve/mn-ccnx>`_ which was a fork of `Mininet <https://github.com/mininet/mininet>`_. Mini-NDN uses the NDN libraries, NFD, NLSR, and tools released by the `NDN project <http://named-data.net/codebase/platform/>`_ to emulate an NDN network on a single system.
+
+The first release of Mini-NDN is developed by members of the NSF-sponsored NDN project team.
+Mini-NDN is open to contribution from the public.
+
+.. image:: minindnnet.svg
+
+License
+_______
+
+Mini-NDN is open and free software licensed under the GPL 3.0 license. Mini-NDN is free to all
+users and developers. For more information about licensing details and limitations,
+please refer to COPYING.md.
+
+Feedback/Mailing List
+_____________________
+
+Bug reports and feedback are highly appreciated and can be made through our
+`Redmine site <http://redmine.named-data.net/projects/mini-ndn>`_ and the
+`mini-ndn mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn>`_.
+
+Video
+_____
+
+.. raw:: html
+
+ 	<div id="video-container" class="col-md-6 ">
+        <p>Mini-NDN (content maybe outdated)</p>
+         <iframe width="600" height="345" src="https://www.youtube.com/embed/UxHPqaUwefg" frameborder="0" allowfullscreen=""></iframe>
+    </div>
\ No newline at end of file
diff --git a/docs/minindnnet.svg b/docs/minindnnet.svg
new file mode 100644
index 0000000..0bc985a
--- /dev/null
+++ b/docs/minindnnet.svg
@@ -0,0 +1,126 @@
+<svg width="692" height="380" xmlns="http://www.w3.org/2000/svg">
+
+ <metadata id="metadata7">image/svg+xml</metadata>
+ <g>
+  <title>background</title>
+  <rect fill="none" id="canvas_background" height="382" width="694" y="-1" x="-1"/>
+ </g>
+ <g>
+  <title>Layer 1</title>
+  <g stroke="null" id="g3790">
+   <rect stroke="#000000" fill="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" id="rect2985" width="680.84682" height="350.443392" x="4.962804" y="5.773119" rx="0.324652"/>
+   <path stroke="#000000" fill="none" stroke-miterlimit="4" d="m4,175.828501l681.727736,1.357954" id="path3770"/>
+  </g>
+  <rect stroke="#000000" fill="#e3dedb" stroke-width="0.99538" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dashoffset="0" rx="2.988095" y="176.111777" x="5.140841" height="180.524655" width="680.312936" id="rect3813"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="1.602133" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="4.80639973, 4.80639973" stroke-dashoffset="0" ry="8.582684" rx="7.476771" y="44.78072" x="55.492192" height="195.219243" width="148.366914" id="rect3764"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="1.638042" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="4.9141253, 4.9141253" stroke-dashoffset="0" id="rect3772" width="155.115252" height="195.190135" x="270.220868" y="46.153231" rx="7.816845" ry="8.581405"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="1.602133" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="4.80639973, 4.80639973" stroke-dashoffset="0" ry="8.582684" rx="7.476771" y="45.459696" x="489.86568" height="195.219243" width="148.366914" id="rect3774"/>
+  <text transform="matrix(1.0192718802397343,0,0,0.9115536073383187,-2.8313337784806336,-12.183034089773187) " font-size="16.005802px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3776" y="392.709737" x="551.171304" xml:space="preserve">
+   <tspan stroke="null" font-weight="normal" y="398.194877" x="552.152396" id="tspan3778">Kernel Space</tspan>
+  </text>
+  <text transform="matrix(1.0524848569125234,0,0,0.8827879284304422,-52.30106698198968,-77.5201889102731) " font-size="14.180006px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="601.466013" y="108.524983" id="text3782">
+   <tspan stroke="null" font-weight="normal" id="tspan3784" x="602.416145" y="114.188857">User Space</tspan>
+  </text>
+  <path stroke="#000000" fill="none" stroke-width="1px" id="path3796" d="m488.56554,176.773764c1.782236,0.480113 1.527628,0.360085 1.527628,0.360085"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="0.649807" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dashoffset="0" rx="0.838801" y="202.851471" x="84.255138" height="26.434283" width="94.537572" id="rect3815"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="0.792138" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dashoffset="0" id="rect3817" width="131.339764" height="28.275376" x="282.077514" y="201.912133" rx="1.165334"/>
+  <path stroke="#000000" fill="none" stroke-width="0.865499px" id="path3823" d="m347.74739,201.086282l0,28.351986"/>
+  <text transform="matrix(0.7776670647796514,0,0,1.19475416519067,-52.30106724263901,-77.52018902784596) " font-size="12.623897px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="434.634023" y="248.956571" id="text3835">
+   <tspan stroke="null" font-size="15.579311px" font-weight="bold" font-family="Monospace" x="435.91992" y="253.141532" id="tspan3837">n2-eth0</tspan>
+  </text>
+  <text transform="matrix(0.9031157255303414,0,0,1.0287949657006918,-2.8313337284492768,-13.069358400177762) " font-size="13.163442px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="110.835751" y="225.210496" id="text3863">
+   <tspan stroke="null" font-size="16.245171px" font-weight="bold" font-family="Monospace" x="111.943029" y="230.070551" id="tspan3865">n1-eth0</tspan>
+  </text>
+  <path stroke="#000000" fill="none" stroke-width="0.992521px" id="path3887" d="m131.263954,229.882774l0,67.221296l176.555867,-0.960307l1.337531,-65.300682"/>
+  <rect stroke="#000000" fill="#ffffff" stroke-width="0.676601" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dashoffset="0" id="rect3891" width="95.679394" height="28.317195" x="515.346399" y="202.85306" rx="0.848932"/>
+  <path stroke="#000000" fill="none" stroke-width="0.992521px" d="m383.833251,230.842992l0,67.221296l176.555867,-0.960307l1.337531,-65.300682" id="path3897"/>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="164.136782" y="409.888383" id="text3907">
+   <tspan stroke="null" id="tspan3915" x="165.159464" y="415.15046">isolated point to point link</tspan>
+  </text>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3919" y="409.573373" x="429.378262" xml:space="preserve">
+   <tspan stroke="null" y="414.83545" x="430.400944" id="tspan3921">isolated point to point link</tspan>
+  </text>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3923" y="428.078233" x="194.615642" xml:space="preserve">
+   <tspan stroke="null" font-weight="bold" y="433.34031" x="195.638324" id="tspan3925">(eg: 1Mbps, 10ms)</tspan>
+  </text>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3927" y="409.888383" x="164.136782" xml:space="preserve">
+   <tspan stroke="null" y="415.15046" x="165.159464" id="tspan3929">Isolated point to point link</tspan>
+  </text>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="429.378262" y="409.573373" id="text3931">
+   <tspan stroke="null" id="tspan3933" x="430.400944" y="414.83545">Isolated point to point link</tspan>
+  </text>
+  <text transform="matrix(0.877827228897152,0,0,1.0584326041598764,-53.30106731891522,-78.4233265445007) " font-size="13.706223px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3935" y="282.545218" x="661.482605" xml:space="preserve">
+   <tspan stroke="null" font-size="16.915024px" font-weight="bold" font-family="Monospace" id="tspan3937" y="287.269185" x="662.621781">n3-eth0</tspan>
+  </text>
+  <text transform="matrix(0.7776670647796514,0,0,1.19475416519067,-52.30106724263901,-77.52018902784596) " font-size="12.623897px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3939" y="248.297391" x="520.751053" xml:space="preserve">
+   <tspan stroke="null" font-size="15.579311px" font-weight="bold" font-family="Monospace" id="tspan3941" y="252.482352" x="522.03695">n2-eth1</tspan>
+  </text>
+  <text transform="matrix(0.8745385143393076,0,0,1.0624128521471832,-2.8313338199928846,-14.069358364146652) " font-size="16.205975px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3943" y="80.648481" x="141.655977" xml:space="preserve">
+   <tspan stroke="null" font-size="20px" font-weight="bold" font-family="Monospace" id="tspan3945" y="85.354749" x="142.799437">n1</tspan>
+  </text>
+  <text transform="matrix(0.8745385143393076,0,0,1.0624128521471832,-2.8313338199928846,-14.069358364146652) " font-size="16.205975px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="385.430517" y="78.840861" id="text3955">
+   <tspan stroke="null" font-size="20px" font-weight="bold" font-family="Monospace" x="386.573977" y="83.547129" id="tspan3957">n2</tspan>
+  </text>
+  <text transform="matrix(0.8745385143393076,0,0,1.0624128521471832,-2.8313338199928846,-14.069358364146652) " font-size="16.205975px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3959" y="79.181231" x="632.310457" xml:space="preserve">
+   <tspan stroke="null" font-size="20px" font-weight="bold" font-family="Monospace" id="tspan3961" y="83.887499" x="633.453917">n3</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="125.371536" y="171.060971" id="text3967">
+   <tspan stroke="null" font-weight="normal" id="tspan3969" x="126.421253" y="176.187525">(NDN Container)</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3979" y="170.076461" x="352.011746" xml:space="preserve">
+   <tspan stroke="null" font-weight="normal" y="175.203015" x="353.061463" id="tspan3981">(NDN Container)</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="580.077396" y="169.091931" id="text3983">
+   <tspan stroke="null" font-weight="normal" id="tspan3985" x="581.127113" y="174.218485">(NDN Container)</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3987" y="193.704961" x="123.946116" xml:space="preserve">
+   <tspan stroke="null" font-weight="bold" y="198.831515" x="124.995833" id="tspan3989">NFD</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="140.791686" y="208.664491" id="text3991">
+   <tspan stroke="null" font-weight="normal" id="tspan3993" x="141.841403" y="213.791045">n1.sock</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="123.946116" y="225.286191" id="text3995">
+   <tspan stroke="null" font-weight="bold" id="tspan3997" x="124.995833" y="230.412745">NLSR</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text3999" y="240.245731" x="138.385176" xml:space="preserve">
+   <tspan stroke="null" font-weight="normal" y="245.372285" x="139.434893" id="tspan4001">%C1.Router/n1</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="352.011746" y="191.735901" id="text4003">
+   <tspan stroke="null" font-weight="bold" id="tspan4005" x="353.061463" y="196.862455">NFD</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4007" y="206.695431" x="366.450896" xml:space="preserve">
+   <tspan stroke="null" font-weight="normal" y="211.821985" x="367.500613" id="tspan4009">n2.sock</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4011" y="223.317141" x="352.011746" xml:space="preserve">
+   <tspan stroke="null" font-weight="bold" y="228.443695" x="353.061463" id="tspan4013">NLSR</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="366.450896" y="238.276671" id="text4015">
+   <tspan stroke="null" font-weight="normal" id="tspan4017" x="367.500613" y="243.403225">%C1.Router/n2</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4019" y="190.751371" x="582.928226" xml:space="preserve">
+   <tspan stroke="null" font-weight="bold" y="195.877925" x="583.977943" id="tspan4021">NFD</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="599.773686" y="205.710911" id="text4023">
+   <tspan stroke="null" font-weight="normal" id="tspan4025" x="600.823403" y="210.837465">n3.sock</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="582.928226" y="222.332611" id="text4027">
+   <tspan stroke="null" font-weight="bold" id="tspan4029" x="583.977943" y="227.459165">NLSR</tspan>
+  </text>
+  <text transform="matrix(0.9526376792163275,0,0,0.9753141035001042,-53.30106707952308,-77.42332645354041) " font-size="14.959435px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4031" y="237.292141" x="597.367186" xml:space="preserve">
+   <tspan stroke="null" font-weight="normal" y="242.418695" x="598.416903" id="tspan4033">%C1.Router/n3</tspan>
+  </text>
+  <text transform="matrix(0.9778213687833123,0,0,0.9501950205038839,-52.301066914088324,-76.5370021990862) " font-size="16.459864px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4035" y="102.475413" x="322.701992" xml:space="preserve">
+   <tspan stroke="null" y="107.73749" x="323.724674" id="tspan4037">Isolated NDN nodes</tspan>
+  </text>
+  <text transform="matrix(0.935021961689298,0,0,0.9936889310882339,-2.9798247609055646,-12.086171479984756) " font-size="11.279781px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="75.549398" y="206.131281" id="text4039">
+   <tspan stroke="null" id="tspan4041" x="76.618892" y="211.163037">Private network space</tspan>
+  </text>
+  <text transform="matrix(0.935021961689298,0,0,0.9936889310882339,-2.9798247609055646,-12.086171479984756) " font-size="11.279781px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" id="text4043" y="206.946991" x="308.474828" xml:space="preserve">
+   <tspan stroke="null" y="211.978747" x="309.544322" id="tspan4045">Private network space</tspan>
+  </text>
+  <text transform="matrix(0.935021961689298,0,0,0.9936889310882339,-2.9798247609055646,-12.086171479984756) " font-size="11.279781px" font-style="normal" font-weight="normal" fill="#000000" font-family="Sans" xml:space="preserve" x="540.174348" y="206.131281" id="text4047">
+   <tspan stroke="null" id="tspan4049" x="541.243842" y="211.163037">Private network space</tspan>
+  </text>
+  <text xml:space="preserve" text-anchor="start" font-family="Helvetica,Arial,sans-serif" font-size="15px" id="svg_1" y="377" x="203.5" stroke-width="null" stroke="null" fill="#333">Figure: Relationship between Minindn and Mininet</text>
+ </g>
+</svg>   
\ No newline at end of file
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
new file mode 100644
index 0000000..79cbb0f
--- /dev/null
+++ b/docs/release-notes.rst
@@ -0,0 +1,186 @@
+Release Notes
+=============
+
+Mini-NDN version 0.4.0 (changes since version 0.3.0)
+----------------------------------------------------
+
+Release date: January 10, 2018
+
+**New features**:
+
+-  Use SIGQUIT to quit Mini-NDN, SIGINT to kill programs
+
+-  Use Infoedit to edit NFD and NLSR configuration files
+
+-  Use nlsr.conf installed in the system
+
+-  Provide a Vagrantfile to setup Mini-NDN and NDN
+
+-  Provide option to disable NLSR
+
+-  Provide an option to run NLSR in dry-run mode
+
+-  Add option to specify whether to use TCP or UDP face in nlsr.conf
+
+-  Add option to specify arbitrary arguments to use in experiments
+
+-  Include a single option to install Mini-NDN and all the dependencies
+
+**Bug fixes**:
+
+-  Fix "key does not exist error" after NLSR starts
+
+-  Update install.sh to call ldconfig after installing ChronoSync
+
+-  Add hyperbolic coordinates to default topology
+
+**Misc changes**:
+
+-  Add an experiment to test nlsrc
+
+-  Create faces in NFD for each neighbor in NLSR
+
+-  Update to latest ndn-cxx
+
+-  Use /tmp/minindn folder as default work dir instead of /tmp
+
+Mini-NDN version 0.3.0 (changes since version 0.2.0)
+----------------------------------------------------
+
+Release date: March 3, 2017
+
+**New features**:
+
+-  Mini-NDN cluster edition
+
+-  New experiments for making NLSR testing easier
+
+**Bug fixes**:
+
+-  Set site name correctly
+
+-  Install missing certificates in NLSR security config
+
+-  Fix quitting of NLSR due to key not found error
+
+**Misc changes**:
+
+-  Removed nlsr.conf file, generate it within the code
+
+-  Use argparse instead of deprecated optparse
+
+-  Update security config section for NLSR
+
+-  Change mininet prompt to mini-ndn
+
+-  Set network name at one place
+
+-  Update install.sh script to install openssl
+
+-  Update install.sh script to install cryptopp from package instead of
+   compiling from source
+
+-  Update install.sh to clean build folder every time to get rid of
+   removed files such as old experiments
+
+-  Fix old code - use net.hosts instead of storing hosts in a variable
+
+-  Use nfdc instead of deprecated nfd-status
+
+Mini-NDN version 0.2.0 (changes since version 0.1.1)
+----------------------------------------------------
+
+Release date: August 18, 2016
+
+**New features**:
+
+-  Automatic security configuration for NLSR
+
+-  Use /usr/local/etc/ndn/nfd.conf as default config file for NFD
+
+-  Class to monitor /proc/$PID/stat file for PID
+
+-  Mini-NDN exits gracefully on SIGINT and non-convergence
+
+-  Faster Mini-NDN install script - does not do apt-get update everytime
+
+-  NLSR is launched with explicit config file for easier process
+   identification
+
+-  Add and update more documentation
+
+**Bug fixes**:
+
+-  NFD is killed correctly on exit
+
+-  Best route strategy is set correctly
+
+Mini-NDN version 0.1.1 (changes since version 0.1.0)
+----------------------------------------------------
+
+Release date: November 4, 2015
+
+**New features**:
+
+-  Use nfd.conf.sample from currently installed NFD
+
+-  Add working directory option to allow execution environment outside
+   of /tmp
+
+-  Add results directory option to store experiment results after
+   completion
+
+-  Add support for switches in GUI and configuration file
+
+-  Add failNode and recoverNode methods to Experiment class
+
+-  Add most connected node (MCN) failure experiment
+
+-  Add option to specify percentage of nodes pinged
+
+**Code changes**:
+
+-  Refactor program options into container class
+
+-  Remove unused "FIB Entries" option from NDN host options
+
+**Bug fixes**:
+
+-  Abort start up if experiment name is invalid
+
+-  Restart pings after recovery in failure experiment
+
+Mini-NDN version 0.1.0 (initial release)
+----------------------------------------
+
+Release date: July 15, 2015
+
+Mini-NDN is a lightweight networking emulation tool that enables
+testing, experimentation, and research on the NDN platform. Based on
+Mininet, Mini-NDN uses the NDN libraries, NFD, NLSR, and tools released
+by the `NDN project <http://named-data.net/codebase/platform/>`__ to
+emulate an NDN network on a single system.
+
+**Included features**:
+
+-  Run a complete NDN network on a single system
+
+-  Automatic configuration of NLSR to provide a routable NDN network
+
+-  Supports user created NDN applications
+
+-  Create a topology using the included Mini-NDN Edit GUI application
+
+-  Allows individual configuration of NFD and NLSR parameters for each
+   node
+
+-  Provides an experiment management framework for easy creation of
+   custom networking experiments
+
+-  Uses a simple topology file format to define hosts, links, and
+   configuration values
+
+-  Configure network link parameters including bandwidth, delay, and
+   loss rate
+
+-  Includes a pre-configured topology file to replicate the NDN testbed
diff --git a/docs/videos.rst b/docs/videos.rst
new file mode 100644
index 0000000..b6b3a51
--- /dev/null
+++ b/docs/videos.rst
@@ -0,0 +1,18 @@
+Video Tutorials
+===============
+
+Maybe outdated since version 0.5.0.
+
+.. raw:: html
+
+    <div id="video-container" class="col-md-6 ">
+        <p>Mini-NDN Demo at ACM, 2017</p>
+         <iframe width="400" height="230" src="https://www.youtube.com/embed/xYRPHZe18o0" frameborder="0" allowfullscreen=""></iframe>
+    </div>
+
+.. raw:: html
+
+    <div id="video-container" class="col-md-6 "">
+        <p>Mini-NDN Overview </p>
+         <iframe width="400" height="230" src="https://www.youtube.com/embed/Da7t8yBWzv0" frameborder="0" allowfullscreen=""> 
+    </div>
