blob: a7ce4bd6f5e6c3de5d0da8be27b1d44717135a5e [file] [log] [blame]
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -07001FAQ
2===
3
4Boost libraries
5---------------
6
Alexander Afanasyev326410e2013-03-09 20:39:11 -08007.. note::
Alexander Afanasyev26b558b2012-12-13 11:39:46 -08008 **My ubuntu/redhat/freebsd have an old version of boost libraries. How can I get the latest one?**
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -07009
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080010.. _Installing boost libraries:
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -070011
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080012Installing boost libraries to ``/usr/local``
13^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -070014
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080015.. role:: red
16
Alexander Afanasyev326410e2013-03-09 20:39:11 -080017.. note::
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080018 **The following instructions are for those who want to install latest version of boost libraries** :red:`and has root access`.
19
Alexander Afanasyev326410e2013-03-09 20:39:11 -080020The following commands would install the latest version of boost libraries (at the time of writing, version 1.53) ot ``/usr/local``, assuming you have a root access to your machine.
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080021If you don't have root access, please refer to section :ref:`Installing boost libraries to a non-privileged location`.
22
23.. note::
24 If you are using Ubuntyu, make sure that you have installed ``libbz2-dev``, otherwise not all libraries required by ndnSIM will be installed (see :ref:`Common pitfalls`)
25
26.. code-block:: bash
27 :linenos:
28
Alexander Afanasyev326410e2013-03-09 20:39:11 -080029 wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
30 tar jxf boost_1_53_0.tar.bz2
31 cd boost_1_53_0
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080032 ./bootstrap.sh
33 sudo ./b2 --prefix=/usr/local install
34
35
36The following commands should allow compilation and run of NS-3 simulations with custom install of boost libraries:
37
38.. code-block:: bash
39 :linenos:
40
41 cd <ns-3>
42 ./waf configure --boost-includes=/usr/local/include --boost-libs=/usr/local/lib --enable-examples
43 ./waf
44 LD_LIBRARY_PATH=/usr/local/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
45
46.. note::
47 `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.
48
49.. _Installing boost libraries to a non-privileged location:
50
51Installing boost libraries to a non-privileged location
52^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
53
Alexander Afanasyev326410e2013-03-09 20:39:11 -080054.. note::
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080055 **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.**
56
Alexander Afanasyev326410e2013-03-09 20:39:11 -080057Normally, to compile and install boost libraries in non-privileged mode, you would need to issue following commands (e.g., for boost version 1.53.0):
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080058
59.. code-block:: bash
60 :linenos:
61
62 export BOOSTDIR=/home/non-privileged-user/boost
Alexander Afanasyev326410e2013-03-09 20:39:11 -080063 wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
64 tar jxf boost_1_53_0.tar.bz2
65 cd boost_1_53_0
Alexander Afanasyev26b558b2012-12-13 11:39:46 -080066 ./bootstrap.sh
67 ./b2 --prefix=$BOOSTDIR install
68
69However, after the following steps you may still not able to use ndnSIM.
70
71.. _Common pitfalls:
72
73Common pitfalls
74^^^^^^^^^^^^^^^
75
76The common pitfalls is with the **boost iostreams** library, which is required by ndnSIM, but failed to build because of the missing bzip2 library.
77This problem can be easily fixed by downloading and installing bzip2 library, e.g., using the following steps:
78
79.. code-block:: bash
80 :linenos:
81
82 wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
83 tar zxf bzip2-1.0.6.tar.gz
84 cd bzip2-1.0.6
85 make PREFIX=$BOOSTDIR CFLAGS="-fPIC -O2 -g" install
86
87Afte bzip2 library is installed, you may recompile and reinstall boost libraries using custom compilation flags::
88
89 ./b2 --prefix=$BOOSTDIR cxxflags=-I$BOOSTDIR/include linkflags=-L$BOOSTDIR/lib install
90
91Alternatively, 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::
92
93 sudo apt-get install libbz2-dev
94
95And then compiling and installing boost without custom compilation flags::
96
97 ./b2 --prefix=$BOOSTDIR
98
99
100The following commands should allow compilation and run of NS-3 simulations with custom install of boost libraries::
101
102 cd <ns-3>
103 ./waf configure --boost-includes=$BOOSTDIR/include --boost-libs=$BOOSTDIR/lib --enable-examples --enable-ndn-plugins=topology,mobility
104 ./waf
105 LD_LIBRARY_PATH=$BOOSTDIR/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
106
107.. note::
108 `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.
109
110
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -0700111
112Visualizer problems
113-------------------
114
115.. topic:: Visualizer module is not working
116
117 Every time I'm trying to run visualizer, I get the following error::
118
119 Waf: Entering directory `/ndnSIM/ns-3/build'
120 Could not find a task generator for the name 'ns3-visualizer'..
121
Alexander Afanasyev326410e2013-03-09 20:39:11 -0800122Something is wrong with your python bindings and python bindings dependencies.
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -0700123Please follow the :ref:`requirements` section that lists what should be installed in order to run visualizer.
124
125Code questions
126--------------
127
128.. topic:: Failing a link between nodes
129
130 How can I fail a link between to NDN nodes?
131
132
133Right now, NS-3 does not provide ability to actually "break" the link between nodes in NS-3.
134However, exactly the same effect can be achieved by making an interface (:ndnsim:`ndn::Face`) up or down (:ndnsim:`ndn::Face::SetUp(true)` or :ndnsim:`ndn::Face::SetUp(false)`).
135
Alexander Afanasyev0fb80b92013-07-20 08:20:50 -0700136You can use :ndnsim:`ndn::LinkControlHelper` to schedule failing links. For example, refer to :ref:`Simple scenario with link failures` example.
Alexander Afanasyev6dbacda2012-10-23 17:20:18 -0700137
138General questions
139-----------------
140
141.. topic:: Errors/bugs reporting
142
143 I found an error in the documentation / bug in the code. What should I do?
144
Alexander Afanasyev26b558b2012-12-13 11:39:46 -0800145Please create an issue for the documentation error or code bug on `github <http://github.com/NDN-Routing/ndnSIM>`_, or tell us about the error on `our mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ .