unabale to run ns3-o-ran-e2 module in ns3-mmwave library

937 views
Skip to first unread message

Omikumar Makadia

unread,
Dec 26, 2022, 12:27:46 AM12/26/22
to ns-3-users
I am unable to run the ns3-o-ran-e2 module as explained in the following link.I have tried to put .cc file of ns3-o-ran-e2 into ns3-mmwave scratch folder but I am still not able to execute the any .cc file of ns3-o-ran-e2 module.Kindly help me out.

eguadocalor

unread,
Jan 28, 2023, 5:34:21 AM1/28/23
to ns-3-users
Hi,

I also need help working with the same module.
Have you got any building errors too while trying to compile the ns-3 project?

What I have done so far was "translate" the original wscript file to the new default approach that is using CMakeLists.txt file.

I got some help following this thread.

The final CMakeLists.txt code is this:

include_directories(/usr/local/include/e2sim)
link_directories(/usr/local/lib)
link_libraries(e2sim)

find_external_library(
DEPENDENCY_NAME e2sim
HEADER_NAMES e2sim.h
LIBRARY_NAME e2sim
)

if(${e2sim_FOUND})
include_directories(${e2sim_INCLUDE_DIRS})
link_libraries(${e2sim_LIBRARIES})
build_lib(
LIBNAME e2sim
LIBRARIES_TO_LINK ${e2sim_LIBRARIES}
)
endif()


build_lib(
NAME oran-interface
LIBNAME oran-interface
LIBRARIES_TO_LINK
${libcore}
${libe2sim}
SOURCE_FILES
model/oran-interface.cc
model/asn1c-types.cc
model/function-description.cc
model/kpm-indication.cc
model/kpm-function-description.cc
model/ric-control-message.cc
model/ric-control-function-description.cc
helper/oran-interface-helper.cc
helper/indication-message-helper.cc
helper/lte-indication-message-helper.cc
helper/mmwave-indication-message-helper.cc
HEADER_FILES
model/oran-interface.h
model/asn1c-types.h
model/function-description.h
model/kpm-indication.h
model/kpm-function-description.h
model/ric-control-message.h
model/ric-control-function-description.h
helper/oran-interface-helper.h
helper/indication-message-helper.h
helper/lte-indication-message-helper.h
helper/mmwave-indication-message-helper.h
TEST_SOURCES
test/oran-interface-test-suite.cc
)

However, during the building process, I got some errors related to missing the source code.
e.g:
ns3-mmwave/build/include/ns3/kpm-indication.h:32:12: fatal error: E2SM-KPM-RANfunction-Description.h: No such file or directory


The question that is in my mind is:
How the e2sim library should be installed in a way that files such as E2SM-KPM-RANfunction-Description.h (and others) can be found by ns-3?

Cheers.

Andrea Lacava

unread,
Jan 30, 2023, 7:56:10 AM1/30/23
to ns-3-users
Dear all,

first of all apologies for the late reply. I was not aware of this google group and this conversation. I appreciate your interest in our work.
Since this work started before the release of the cmake version, we did not upgrade the ns-3 mmwave baseline to the latest one and we still carry the burden of the waf toolchain.
Anyway, we have released a tutorial to connect a near RT RIC with ns-o-ran at https://openrangym.com/tutorials/ns-o-ran.

This tutorial would set up the full ns-o-ran environment with a near real-time RIC and a sample x-app that is able to receive the Indication Messages. At the moment, the decoding of such messages and the creation of control messages is not yet covered, but we are planning to release them soon.
This tutorial covers also the installation of the E2sim and its connection with ns-3.

Please follow the tutorial and let me know if you have any issues.

Best Regards

Tommaso Pecorella

unread,
Jan 30, 2023, 12:54:31 PM1/30/23
to ns-3-users
Hi,

feel free to contact us on Zulip (https://ns-3.zulipchat.com) if you need help in migrating to cmake.

T.

Omikumar Makadia

unread,
Mar 1, 2023, 8:19:27 PM3/1/23
to ns-3-users
Thank you for your reply. The query has been resolved.

Abdul Wadud

unread,
Oct 19, 2023, 10:14:12 AM10/19/23
to ns-3-users
Hi Everyone!
I am following this (https://openrangym.com/tutorials/ns-o-ran) tutorial to set up ns-o-ran. While building the ns-o-ran using the final build command  (./waf build)  , I am getting the following error after successfully compiling around 1100 files out of 2100: 

[1126/2101] Compiling src/stats/model/omnet-data-output.cc
../src/core/helper/csv-reader.cc: In member function ‘bool ns3::CsvReader::GetValueAs(std::string, signed char&) const’:
../src/core/helper/csv-reader.cc:182:26: error: ‘numeric_limits’ is not a member of ‘std’
  182 |   if (tempOutput >= std::numeric_limits<byte_type>::min ()

/usr/include/c++/12/bits/stl_function.h:117:12: note: declared here
  117 |     struct unary_function
      |            ^~~~~~~~~~~~~~

Waf: Leaving directory `/home/abdul_wadud/ns-3-mmwave-oran/build'
Build failed
 -> task in 'ns3-core' failed with exit status 1 (run with -v to display more information)

Is there any other way to build the ns-o-ran or any solution to this problem?

Diego Bezerra

unread,
Oct 19, 2023, 11:35:44 AM10/19/23
to ns-3-users
Hello, Abdul Wadud.

This problem occurs because the Numeric limits lib is missing from the ../src/core/helper/csv-reader.cc file. In this case, add #include <limits> and try ./waf build again.

Best regards

Andrea Lacava

unread,
Oct 19, 2023, 2:49:05 PM10/19/23
to ns-3-users

Abdul Wadud

unread,
Oct 21, 2023, 2:38:37 PM10/21/23
to ns-3-...@googlegroups.com
Thanks Diego and Andrea for your prompt response. It worked. But I got a few more errors as follows during the building process and it was stopped:

Waf: Leaving directory `/home/abdul_wadud/ns-3-mmwave-oran/build'
Build failed
 -> task in 'ns3-wifi' failed with exit status 1 (run with -v to display more information)
 -> task in 'ns3-fd-net-device' failed with exit status 1 (run with -v to display more information)
 -> task in 'ns3-fd-net-device' failed with exit status 1 (run with -v to display more information)
 -> task in 'ns3-internet' failed with exit status 1 (run with -v to display more information)
 -> task in 'ns3-fd-net-device' failed with exit status 1 (run with -v to display more information)
 -> task in 'ns3-lte' failed with exit status 1 (run with -v to display more information)
abdul_wadud@instance-2:~/ns-3-mmwave-oran$ 


I was trying to install it in Debian GNU/Linux 12 (bookworm). Is this ns-3-o-ran only compatible with Ubuntu? 

With regards,
A. Wadud

--
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/37f0ca3c-89b4-4e4d-9443-91dabe0a2510n%40googlegroups.com.


--
Abdul Wadud
Ph.D. Candidate
School of Computer Science
University College Dublin, Ireland

Andrea Lacava

unread,
Oct 23, 2023, 11:23:22 AM10/23/23
to ns-3-...@googlegroups.com
Hi Abdul,

no, ns-O-RAN has no limitation w.r.t. the operating system apart from the ones inherited from the original ns-3 project.
Do you have a more verbose error to share with us?

Best

-----------------------------------------------------
 Andrea Lacava
        Ph.D. student [at] Northeastern University, Boston, MA USA
        Ph.D. student [at] Sapienza, University of Rome, Italy
        www dot andrealacava dot com



You received this message because you are subscribed to a topic in the Google Groups "ns-3-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ns-3-users/6VUC4ETzDRk/unsubscribe.
To unsubscribe from this group and all its topics, 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/CAKS4Q2f_OHZRQjiyCgCe8_eJZEBCYC0-s1V_P_psz5WXum8Y-w%40mail.gmail.com.

Abdul Wadud

unread,
Oct 23, 2023, 2:11:07 PM10/23/23
to ns-3-...@googlegroups.com
Hi Andrea, 

I have added a text file containing the error message. It's too long to add it in the message body. Please suggest any solution that may resolve this issue. I am looking forward to it. Otherwise, I am planning to start-over the process again, assuming it as the best engineering solution on earth!

With best regards,
A. Wadud

ns3_mmw_waf_build_error.txt

Andrea Lacava

unread,
Oct 23, 2023, 4:30:45 PM10/23/23
to ns-3-...@googlegroups.com
Honestly, it's the first time i read this kind of error,
We have included a dockerfile in the tutorial that can be used to setup a fully working environment. Can you try to please run that and let me know?

-----------------------------------------------------
 Andrea Lacava
        Ph.D. student [at] Northeastern University, Boston, MA USA
        Ph.D. student [at] Sapienza, University of Rome, Italy
        www dot andrealacava dot com


Gabriel Ferreira

unread,
Oct 23, 2023, 5:07:46 PM10/23/23
to ns-3-users
Abdul, it should build if you disable errors with. /waf configure --disable-werror 

Abdul Wadud

unread,
Oct 24, 2023, 1:01:45 AM10/24/23
to ns-3-...@googlegroups.com
Thanks, Andrea and Gabriel, 
I tried with Ubuntu 20.04 LTS and everything worked fine as instructed in the tutorial without any warning and error. I tried to disable errors with. /waf configure --disable-werror in Debian, it did not work. However, I am happy that the ns-3-mmwave is finally working on my system now, a text file is added here for your reference.  

-> Do you have any tutorial or guide on how to have a specific scenario with customized cell config and diverse movement of UEs, if anyone wants to have one? I want to collect data for MLB and MRO xApp with respective KPIs and input control parameters. Don't have any clue where to start!

With regards,
A. Wadud

ns-3-mmwave_success.txt

Devaansh Kumar

unread,
Feb 19, 2024, 4:56:25 PM2/19/24
to ns-3-users
Hello, I am currently working on upgrading the version of ns-3 of ns-o-ran-ns3-mmwave repo from ns-3.33 to to ns-3.40 and I am facing the same issue @eguadocalor. I have referred to this article https://openrangym.com/tutorials/ns-o-ran but I am still not able to resolve the issue. Can someone please help me.
My CMakeLists.txt file for oran-interface:

include_directories(/usr/local/include/e2sim)
link_directories(/usr/local/lib)
link_libraries(e2sim)

find_external_library(
    DEPENDENCY_NAME e2sim
    HEADER_NAMES e2sim.h
    LIBRARY_NAME e2sim
)

if(${e2sim_FOUND})
    include_directories(${e2sim_INCLUDE_DIRS})
    link_libraries(${e2sim_LIBRARIES})
    build_lib(
    LIBNAME e2sim
    LIBRARIES_TO_LINK ${e2sim_LIBRARIES}
)
endif()

build_lib(
    LIBNAME oran-interface
    TEST_SOURCES
        test/oran-interface-test-suite.cc

Andrea Lacava

unread,
Feb 25, 2024, 3:42:35 PM2/25/24
to ns-3-users
Hi, this one is working:

check_include_file_cxx(stdint.h HAVE_STDINT_H)
if(HAVE_STDINT_H)
    add_definitions(-DHAVE_STDINT_H)
endif()

set(examples_as_tests_sources)
if(${ENABLE_EXAMPLES})
    set(examples_as_tests_sources
        #test/oran-interface-examples-test-suite.cc
        )
endif()

#include_directories(/usr/local/include/e2sim)
#link_directories(/usr/local/lib)
#link_libraries(e2sim)

find_external_library(DEPENDENCY_NAME e2sim
                      HEADER_NAME e2sim.hpp
                      LIBRARY_NAME e2sim
                      SEARCH_PATHS /usr/local/include/e2sim)

if(!${e2sim_FOUND})
    message(WARNING "e2sim is required by oran-interface and was not found" )
    return ()
endif()

include_directories(${e2sim_INCLUDE_DIRS})
message(STATUS "dirs found:  ${e2sim_INCLUDE_DIRS}" )
message(STATUS "libraries found:  ${e2sim_LIBRARIES}" )


build_lib(
    LIBNAME oran-interface
    SOURCE_FILES model/oran-interface.cc
                 helper/oran-interface-helper.cc

                 model/asn1c-types.cc
                 model/function-description.cc
                 model/kpm-indication.cc
                 model/kpm-function-description.cc
                 model/ric-control-message.cc
                 model/ric-control-function-description.cc
                 helper/oran-interface-helper.cc
                 helper/indication-message-helper.cc
                 helper/lte-indication-message-helper.cc
                 helper/mmwave-indication-message-helper.cc
    HEADER_FILES model/oran-interface.h
                 helper/oran-interface-helper.h

                 model/asn1c-types.h
                 model/function-description.h
                 model/kpm-indication.h
                 model/kpm-function-description.h
                 model/ric-control-message.h
                 model/ric-control-function-description.h
                 helper/indication-message-helper.h
                 helper/lte-indication-message-helper.h
                 helper/mmwave-indication-message-helper.h
    LIBRARIES_TO_LINK
                    ${libcore}
                    ${e2sim_LIBRARIES}
    TEST_SOURCES test/oran-interface-test-suite.cc
                 ${examples_as_tests_sources}
)

We are targeting to release the new version during Q2 2024 and we are actively looking for collaborators for the maintenance and upgrade of the E2AP and E2SM.

Best

Reply all
Reply to author
Forward
0 new messages