ns3.36.1 features

1,807 views
Skip to first unread message

Reza Saeedinia

unread,
Jul 3, 2022, 12:16:42 PM7/3/22
to ns-3-users
Hi, I am using ns3.36.1 on Ubuntu 22.04.
some features are not enabled such as:
MPI Support                   : OFF (not requested)
ns-3 Click Integration        : OFF (missing dependency)
ns-3 OpenFlow Integration     : OFF (missing dependency)
Netmap emulation FdNetDevice  : OFF (missing dependency)
PyViz visualizer              : OFF (missing dependency)
Python API Scanning Support   : OFF (not requested)
Python Bindings               : OFF (not requested)

and some packages are not installed:
Modules that cannot be built:
click                     mpi                       openflow                  
visualizer                

how can I enable them?
Reagrds

Gabriel Ferreira

unread,
Jul 3, 2022, 3:51:52 PM7/3/22
to ns-3-users
Which specific feature? 
The ones marked as "not requested" need to be manually enabled, either via --enable-feature flags of the ns3 script, or directly via CMake options (e.g. cmake -DNS3_FEATURE=ON ..). 
The ones marked as "missing dependency" will be automatically enabled if dependencies are met.

For MPI, you need to install the MPI libraries (MPICH or OpenMPI), then enable the feature with ./ns3 configure --enable-mpi.
For Click, Brite and Openflow you need to build them separately and then make sure ns-3 can find them (e.g. using Bake to build them). If they are not found after being installed, run ./ns3 clean and then ./ns3 configure.
Bindings require pybindgen to be installed and then you can enable with ./ns3 configure --enable-bindings.
PyViz needs the bindings and a bunch of other python packages (gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3) .

Tom Henderson

unread,
Jul 4, 2022, 12:18:58 AM7/4/22
to ns-3-...@googlegroups.com
I would just like to add that for most of these features, you can read more about each of them in the model library documentation, including installation details:

If you do not plan to use a specific listed feature then you do not need to worry if it is not enabled in your build.

- Tom
--
Posting to this group should follow these guidelines https://www.nsnam.org/wiki/Ns-3-users-guidelines-for-posting
---
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ns-3-users/c3ca2758-eb40-4b78-8f10-8d420af1e127n%40googlegroups.com.


Reza Saeedinia

unread,
Jul 4, 2022, 9:36:10 AM7/4/22
to ns-3-...@googlegroups.com

Orfeas Agis Karachalios

unread,
Sep 12, 2022, 8:19:46 AM9/12/22
to ns-3-users
Hi, I still have issues with Openflow Integration. I tried the option `--with-openflow=path_to_openflow` together with the `./ns3 configure` command. The openflow code for the OFSID was cloned in `contrib` subdirectory
It does say `ns3 OpenFlow Integration: ON` but at the same time, it fails to find `openflow.h` and `openflow` library and mentions `openflow` in the modules that cannot be built.

Is the download dir wrong ? What path should I use ? I followed the steps here https://www.nsnam.org/docs/models/html/openflow-switch.html and built the `libopenflow.a` library.

You mention `bake.py` as another solution. How can I build openflow specifically with bake.py ?

Gabriel Ferreira

unread,
Sep 12, 2022, 8:41:21 AM9/12/22
to ns-3-users
The ns-3 openflow module is in src. Contrib is meant for other ns-3 modules.

You can use `./ns3 configure --enable-verbose` to figure out why openflow dependencies are not being found.
If you do not pass any additional path in --with-openflow, it is going to search in the following places (assuming Linux):

e.g.
-- Processing src/openflow
CMake Debug Log at build-support/macros-and-definitions.cmake:1840 (find_library):
  find_library called with the following settings:

    VAR: openflow_library_internal_openflow
    NAMES: "openflow"
    Documentation: Path to a library.
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    CMAKE_FIND_USE_CMAKE_PATH: 1
    CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: 1

  find_library considered the following locations:

    /mnt/dev/tools/source/ns-3-dev/build/build/(lib)openflow(\.so|\.a)
    /mnt/dev/tools/source/ns-3-dev/build/lib/(lib)openflow(\.so|\.a)
    /mnt/dev/tools/source/ns-3-dev/build/build/lib/(lib)openflow(\.so|\.a)
    /mnt/dev/tools/source/ns-3-dev/build/bin/(lib)openflow(\.so|\.a)
    /mnt/dev/tools/source/ns-3-dev/build/(lib)openflow(\.so|\.a)
    /usr/local/build/(lib)openflow(\.so|\.a)
    /usr/local/lib/(lib)openflow(\.so|\.a)
    /usr/local/build/lib/(lib)openflow(\.so|\.a)
    /usr/local/bin/(lib)openflow(\.so|\.a)
    /usr/local/(lib)openflow(\.so|\.a)
    /home/gabriel/bin/build/(lib)openflow(\.so|\.a)
    /home/gabriel/bin/lib/(lib)openflow(\.so|\.a)
    /home/gabriel/bin/build/lib/(lib)openflow(\.so|\.a)
    /home/gabriel/bin/bin/(lib)openflow(\.so|\.a)
    /home/gabriel/bin/(lib)openflow(\.so|\.a)
    /...
    /usr/bin/build/(lib)openflow(\.so|\.a)
    /usr/bin/lib/(lib)openflow(\.so|\.a)
    /usr/bin/build/lib/(lib)openflow(\.so|\.a)
    /usr/bin/bin/(lib)openflow(\.so|\.a)
    /usr/bin/(lib)openflow(\.so|\.a)
    /sbin/build/(lib)openflow(\.so|\.a)
    /sbin/lib/(lib)openflow(\.so|\.a)
    /sbin/build/lib/(lib)openflow(\.so|\.a)
    /sbin/bin/(lib)openflow(\.so|\.a)
    /sbin/(lib)openflow(\.so|\.a)
    /bin/build/(lib)openflow(\.so|\.a)
    /bin/lib/(lib)openflow(\.so|\.a)
    /bin/build/lib/(lib)openflow(\.so|\.a)
    /bin/bin/(lib)openflow(\.so|\.a)
    /bin/(lib)openflow(\.so|\.a)
    ..
    /usr/local/lib/x86_64-linux-gnu/build/(lib)openflow(\.so|\.a)
    /usr/local/lib/x86_64-linux-gnu/lib/(lib)openflow(\.so|\.a)
    /usr/local/lib/x86_64-linux-gnu/build/lib/(lib)openflow(\.so|\.a)
    /usr/local/lib/x86_64-linux-gnu/bin/(lib)openflow(\.so|\.a)
    /usr/local/lib/x86_64-linux-gnu/(lib)openflow(\.so|\.a)
    /usr/local/lib/build/(lib)openflow(\.so|\.a)
    /usr/local/lib/lib/(lib)openflow(\.so|\.a)
    /usr/local/lib/build/lib/(lib)openflow(\.so|\.a)
    /usr/local/lib/bin/(lib)openflow(\.so|\.a)
    /usr/local/lib/(lib)openflow(\.so|\.a)
    /usr/lib/x86_64-linux-gnu/build/(lib)openflow(\.so|\.a)
    /usr/lib/x86_64-linux-gnu/lib/(lib)openflow(\.so|\.a)
    /usr/lib/x86_64-linux-gnu/build/lib/(lib)openflow(\.so|\.a)
    /usr/lib/x86_64-linux-gnu/bin/(lib)openflow(\.so|\.a)
    /usr/lib/x86_64-linux-gnu/(lib)openflow(\.so|\.a)
    /usr/lib/build/(lib)openflow(\.so|\.a)
    /usr/lib/lib/(lib)openflow(\.so|\.a)
    /usr/lib/build/lib/(lib)openflow(\.so|\.a)
    /usr/lib/bin/(lib)openflow(\.so|\.a)
    /usr/lib/(lib)openflow(\.so|\.a)
    /usr/build/(lib)openflow(\.so|\.a)
    /usr/lib/(lib)openflow(\.so|\.a)
   ...

  The item was not found.

Call Stack (most recent call first):
  src/openflow/CMakeLists.txt:12 (find_external_library)


CMake Debug Log at build-support/macros-and-definitions.cmake:1969 (find_file):
  find_file called with the following settings:

    VAR: openflow_header_internal_openflow.h
    NAMES: "openflow.h"
    Documentation: Path to a file.
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    CMAKE_FIND_USE_CMAKE_PATH: 1
    CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: 1

  find_file considered the following locations:

    /mnt/dev/tools/source/ns-3-dev/build/build/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/include/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/build/include/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/build/include/openflow/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/include/openflow/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/openflow/openflow.h
    /mnt/dev/tools/source/ns-3-dev/build/openflow.h
    ......
    /usr/local/include/x86_64-linux-gnu/build/openflow.h
    /usr/local/include/x86_64-linux-gnu/include/openflow.h
    /usr/local/include/x86_64-linux-gnu/build/include/openflow.h
    /usr/local/include/x86_64-linux-gnu/build/include/openflow/openflow.h
    /usr/local/include/x86_64-linux-gnu/include/openflow/openflow.h
    /usr/local/include/x86_64-linux-gnu/openflow/openflow.h
    /usr/local/include/x86_64-linux-gnu/openflow.h
    /usr/local/include/build/openflow.h
    /usr/local/include/include/openflow.h
    /usr/local/include/build/include/openflow.h
    /usr/local/include/build/include/openflow/openflow.h
    /usr/local/include/include/openflow/openflow.h
    /usr/local/include/openflow/openflow.h
    /usr/local/include/openflow.h
    /usr/include/x86_64-linux-gnu/build/openflow.h
    /usr/include/x86_64-linux-gnu/include/openflow.h
    /usr/include/x86_64-linux-gnu/build/include/openflow.h
    /usr/include/x86_64-linux-gnu/build/include/openflow/openflow.h
    /usr/include/x86_64-linux-gnu/include/openflow/openflow.h
    /usr/include/x86_64-linux-gnu/openflow/openflow.h
    /usr/include/x86_64-linux-gnu/openflow.h
    /usr/include/build/openflow.h
    /usr/include/include/openflow.h
    /usr/include/build/include/openflow.h
    /usr/include/build/include/openflow/openflow.h
    /usr/include/include/openflow/openflow.h
    /usr/include/openflow/openflow.h
    /usr/include/openflow.h
    /usr/build/openflow.h
    /usr/include/openflow.h
    ...

  The item was not found.

Call Stack (most recent call first):
  src/openflow/CMakeLists.txt:12 (find_external_library)


-- find_external_library: openflow was not found. Missing headers: "openflow.h" and missing libraries: "openflow".
-- Skipping src/openflow

Orfeas Agis Karachalios

unread,
Sep 12, 2022, 9:17:09 AM9/12/22
to ns-3-users
I cloned `openflow` from http://code.nsnam.org/openflow into `src/openflow` module. The `libopenflow.a` is built as well. Running the `./ns3 configure` command now includes openflow in modules to be built, however during CMake configuration the following message is shown and configure command fails.

```
CMake Error in src/openflow/CMakeLists.txt:
  Target "libopenflow" INTERFACE_INCLUDE_DIRECTORIES property contains path:

    "/root/source/ns-3.36.1/src/openflow/openflow/include/openflow"

  which is prefixed in the source directory.
```

Gabriel Ferreira

unread,
Sep 12, 2022, 9:52:57 AM9/12/22
to ns-3-users
It can't be inside the ns-3 source directory. 

Bake puts them side-by-side:
./bake/source/openflow
./bake/source/ns-3-dev

 How to setup with bake (e.g. from https://gitlab.com/nsnam/ns-3-dev/-/issues/543).

cd bake 
mkdir -p build/lib 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/build/lib 
./bake.py configure -e ns-3-allinone 
./bake.py download 
./bake.py build

sadia piya

unread,
Sep 12, 2022, 11:12:11 AM9/12/22
to ns-3-users
Can any one help me with this? please


Design and Simulate a WMAN and do the followings-
(a) Determine the end-to-end delay
(b) Determine the throughput
(c) Change suitable parameters of the network and observe the impact on throughput and delay


Deliverables:
1. Proper design of WMAN
2. Proper calculation of delay and throughput
3. Comparison of delay and throughput for varying network parameters
4. Provide oral explanation and analysis of the network model
Instructions:
1. Design your network fulfilling the requirements of WMAN in an urban area.
2. Simulate your network using Ns3 and determine the required parameters.
3. Change the parameters of your network and simulate. Compare your results.

Rahul Singh Gulia

unread,
Sep 12, 2022, 3:16:30 PM9/12/22
to ns-3-users
This is a different thread. Please create a new problem thread for your queries related to NS3 simulation.

And run the mmWave module examples to generate the throughput and delay.

Thank You,
Rahul Singh Gulia

Ali HosseinAliPour

unread,
Oct 27, 2022, 9:30:43 AM10/27/22
to ns-3-users
Hello.

I have a similar problem to yours.

Could you please let me know how we should enable Python Bindings in ns3.36.1?

Thank you in advance.

ahmad wilda y

unread,
Dec 30, 2022, 7:44:00 AM12/30/22
to ns-3-users
You can just add (in configure)  --enable-python-bindings

Alyaa “Researcher” Al_mula

unread,
May 7, 2024, 7:58:23 AM5/7/24
to ns-3-users
how to enable the openflow

wildan

unread,
Aug 3, 2024, 7:31:45 PM8/3/24
to ns-3-users
enable openflow:

1. Build openflow from source
$ cd openflow/
$ ./waf configure
$ ./waf build

2. add option when configure:
--with-openflow=/yourdirectory/openflow
Reply all
Reply to author
Forward
0 new messages