blob: 2e8347023adb185ab138cd640225a0897589d46d [file] [log] [blame]
FAQ
===
Boost libraries
---------------
.. note::
**My ubuntu/redhat/freebsd have an old version of boost libraries. How can I get the latest one?**
.. _Installing boost libraries:
Installing boost libraries to ``/usr/local``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. role:: red
.. note::
**The following instructions are for those who want to install latest version of boost libraries** :red:`and has root access`.
The following commands would install the latest version of boost libraries (at the time of
writing, version 1.62) ot ``/usr/local``, assuming you have a root access to your machine. If
you don't have root access, please refer to section :ref:`Installing boost libraries to a
non-privileged location`.
.. note::
If you are using Ubuntu, make sure that you have installed ``libbz2-dev``, otherwise not
all libraries required by ndnSIM will be installed (see :ref:`Common pitfalls`)
.. code-block:: bash
:linenos:
wget http://downloads.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2
tar jxf boost_1_62_0.tar.bz2
cd boost_1_62_0
./bootstrap.sh
sudo ./b2 --prefix=/usr/local install
The following commands should allow compilation and run of NS-3 simulations with custom install
of boost libraries:
.. code-block:: bash
:linenos:
cd <ns-3>
./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples
./waf
LD_LIBRARY_PATH=/usr/local/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
.. note::
``LD_LIBRARY_PATH=/usr/local/lib`` is necessary on Linux platform in order for the dynamic
linker to find libraries installed in a location different from one of the folders
specified in ``/etc/ld.so.conf``.
.. _Installing boost libraries to a non-privileged location:
Installing boost libraries to a non-privileged location
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note::
**Follow these general instructions if you are trying to installboost libraries to a
non-privileged location** :red:`(i.e., you do not have root access),` **but something is
going wrong.**
Normally, to compile and install boost libraries in non-privileged mode, you would need to
issue following commands (e.g., for boost version 1.62.0):
.. code-block:: bash
:linenos:
export BOOSTDIR=/home/non-privileged-user/boost
wget http://downloads.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2
tar jxf boost_1_62_0.tar.bz2
cd boost_1_62_0
./bootstrap.sh
./b2 --prefix=$BOOSTDIR install
However, after the following steps you may still not able to use ndnSIM.
.. _Common pitfalls:
Common pitfalls
^^^^^^^^^^^^^^^
The common pitfalls is with the **boost iostreams** library, which is required by ndnSIM, but
failed to build because of the missing bzip2 library. This problem can be easily fixed by
downloading and installing bzip2 library, e.g., using the following steps:
.. code-block:: bash
:linenos:
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar zxf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make PREFIX=$BOOSTDIR CFLAGS="-fPIC -O2 -g" install
Afte bzip2 library is installed, you may recompile and reinstall boost libraries using custom
compilation flags::
./b2 --prefix=$BOOSTDIR cxxflags=-I$BOOSTDIR/include linkflags=-L$BOOSTDIR/lib install
Alternatively, you can solve this particular problem by installing development package for
bzip2 library (:red:`if you have root access`). For example, on Ubuntu 12.04 it would be the
following command::
sudo apt-get install libbz2-dev
And then compiling and installing boost without custom compilation flags::
./b2 --prefix=$BOOSTDIR
The following commands should allow compilation and run of NS-3 simulations with custom install
of boost libraries::
cd <ns-3>
./waf configure --boost-includes=$BOOSTDIR/include --boost-libs=$BOOSTDIR/lib --enable-examples --enable-ndn-plugins=topology,mobility
./waf
LD_LIBRARY_PATH=$BOOSTDIR/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
.. note::
``LD_LIBRARY_PATH=$BOOSTDIR/lib`` is necessary on Linux platform in order for the dynamic
linker to find libraries installed in a location different from one of the folders
specified in /etc/ld.so.conf.
Visualizer problems
-------------------
.. topic:: Visualizer module is not working
Every time I'm trying to run visualizer, I get the following error::
Waf: Entering directory `/ndnSIM/ns-3/build'
Could not find a task generator for the name 'ns3-visualizer'..
Something is wrong with your python bindings and python bindings dependencies. Please follow
the :ref:`requirements` section that lists what should be installed in order to run visualizer.
.. _Problems with the gtk python module on macOS:
Problems with the gtk python module on macOS
--------------------------------------------
.. topic:: ./waf configure got stuck during the gtk module check
When running ``./waf configure``, the process freezes at the stage of detecting gtk module::
...
Checking for 'sqlite3' : yes
Checking for header linux/if_tun.h : not found
Checking for python module 'gtk' :
If ``./waf configure`` on OSX got stuck during the gtk python module check, it most likely
means that something is wrong with X11 required by this module. You can try to reinstall X11
(`XQuartz <http://xquartz.macosforge.org>`_) or configure NS-3 without python bindings (``./waf
configure --disable-python``). Note that disabling python bindings will also disable the
visualizer module.
Code questions
--------------
.. topic:: Failing a link between nodes
How can I fail a link between to NDN nodes?
Refer to :ref:`Link Control Helper`.
.. topic:: Network-level NACKs
How the current version of ndnSIM handles network-level NACKs?
ndnSIM 2.3 includes full support of NDNLPv2 and, thus, can be
used to simulate network-level NACKs across simulation nodes.
General questions
-----------------
.. topic:: Errors/bugs reporting
I found an error in the documentation / bug in the code. What should I do?
Please submit a bug report on `redmine <http://redmine.named-data.net/projects/ndnsim?jump=welcome>`_,
or tell us about the error on `our mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ .