Commit 18e03f09 authored by mir's avatar mir

Minors

parent 1bed096f
...@@ -320,10 +320,18 @@ if(E2_AGENT) ...@@ -320,10 +320,18 @@ if(E2_AGENT)
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openair2/E2AP/flexric/CMakeLists.txt) if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openair2/E2AP/flexric/CMakeLists.txt)
message(STATUS "E2AP submoduled not detected, therefore $git submodule init && git submodule update.") message(STATUS "E2AP submoduled not detected, therefore $git submodule init && git submodule update.")
execute_process(COMMAND git submodule init) execute_process(COMMAND git submodule init)
execute_process(COMMAND git submodule update) execute_process(COMMAND git submodule update)
else() else()
message(STATUS "E2AP submodule detected.") message(STATUS "E2AP submodule detected.")
endif() endif()
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openair2/E2AP/flexric/CMakeLists.txt)
message(FATAL_ERROR "The submodules for E2 agent were not downloaded!")
endif()
execute_process(COMMAND git submodule foreach git pull)
#execute_process(COMMAND git submodule update)
set(E2AP_DIR ${OPENAIR2_DIR}/E2AP) set(E2AP_DIR ${OPENAIR2_DIR}/E2AP)
add_subdirectory ("${E2AP_DIR}") add_subdirectory ("${E2AP_DIR}")
endif() endif()
...@@ -1570,8 +1578,8 @@ add_library(L2 ...@@ -1570,8 +1578,8 @@ add_library(L2
target_link_libraries(L2 PRIVATE x2ap s1ap lte_rrc m2ap) target_link_libraries(L2 PRIVATE x2ap s1ap lte_rrc m2ap)
target_link_libraries(L2 PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs) target_link_libraries(L2 PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
if(E2_AGENT) if(E2_AGENT)
target_link_libraries(L2 PUBLIC e2_agent e2_ran_func) target_link_libraries(L2 PUBLIC e2_agent e2_ran_func)
target_compile_definitions(L2 PRIVATE E2_AGENT) target_compile_definitions(L2 PRIVATE E2_AGENT)
endif() endif()
...@@ -1605,8 +1613,8 @@ target_link_libraries(e1_pdcp_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs) ...@@ -1605,8 +1613,8 @@ target_link_libraries(e1_pdcp_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
target_link_libraries(L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc e1ap) target_link_libraries(L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc e1ap)
if(E2_AGENT) if(E2_AGENT)
target_link_libraries(L2_NR PUBLIC e2_agent e2_ran_func) target_link_libraries(L2_NR PUBLIC e2_agent e2_ran_func)
target_compile_definitions(L2_NR PRIVATE E2_AGENT) target_compile_definitions(L2_NR PRIVATE E2_AGENT)
endif() endif()
...@@ -2190,7 +2198,7 @@ target_link_libraries(lte-softmodem PRIVATE ${T_LIB}) ...@@ -2190,7 +2198,7 @@ target_link_libraries(lte-softmodem PRIVATE ${T_LIB})
target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs) target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
if(E2_AGENT) if(E2_AGENT)
target_compile_definitions(lte-softmodem PRIVATE E2_AGENT) target_compile_definitions(lte-softmodem PRIVATE E2_AGENT)
endif() endif()
add_executable(oairu add_executable(oairu
...@@ -2305,7 +2313,7 @@ endif() ...@@ -2305,7 +2313,7 @@ endif()
target_link_libraries(nr-softmodem PRIVATE target_link_libraries(nr-softmodem PRIVATE
asn1_lte_rrc asn1_nr_rrc asn1_s1ap asn1_ngap asn1_m2ap asn1_m3ap asn1_x2ap asn1_f1ap asn1_lpp) asn1_lte_rrc asn1_nr_rrc asn1_s1ap asn1_ngap asn1_m2ap asn1_m3ap asn1_x2ap asn1_f1ap asn1_lpp)
if(E2_AGENT) if(E2_AGENT)
target_compile_definitions(nr-softmodem PRIVATE E2_AGENT) target_compile_definitions(nr-softmodem PRIVATE E2_AGENT)
endif() endif()
......
...@@ -199,7 +199,7 @@ function main() { ...@@ -199,7 +199,7 @@ function main() {
-d | --build-dir) -d | --build-dir)
BUILD_DIR=$2 BUILD_DIR=$2
shift 2;; shift 2;;
--e2 ) --build-e2 )
CMAKE_CMD="$CMAKE_CMD -DE2_AGENT=ON" CMAKE_CMD="$CMAKE_CMD -DE2_AGENT=ON"
shift shift
;; ;;
......
...@@ -80,14 +80,14 @@ endif() ...@@ -80,14 +80,14 @@ endif()
### ###
# set install options # set install options
### ###
set(NEAR_RIC_INSTALL "FALSE" CACHE STRING "NEAR real time RIC install selection") #set(NEAR_RIC_INSTALL "FALSE" CACHE STRING "NEAR real time RIC install selection")
set_property(CACHE NEAR_RIC_INSTALL PROPERTY STRINGS "TRUE" "FALSE") #set_property(CACHE NEAR_RIC_INSTALL PROPERTY STRINGS "TRUE" "FALSE")
set(EMU_AGENT_INSTALL "FALSE" CACHE STRING "emulator of E2 agent") #set(EMU_AGENT_INSTALL "FALSE" CACHE STRING "emulator of E2 agent")
set_property(CACHE EMU_AGENT_INSTALL PROPERTY STRINGS "TRUE" "FALSE") #set_property(CACHE EMU_AGENT_INSTALL PROPERTY STRINGS "TRUE" "FALSE")
set(XAPP_C_INSTALL "FALSE" CACHE STRING "XAPP in C install selection") #set(XAPP_C_INSTALL "FALSE" CACHE STRING "XAPP in C install selection")
set_property(CACHE XAPP_C_INSTALL PROPERTY STRINGS "TRUE" "FALSE") #set_property(CACHE XAPP_C_INSTALL PROPERTY STRINGS "TRUE" "FALSE")
set(UNIT_TEST "TRUE" CACHE STRING "build test cases") #set(UNIT_TEST "TRUE" CACHE STRING "build test cases")
set_property(CACHE UNIT_TEST PROPERTY STRINGS "TRUE" "FALSE") #set_property(CACHE UNIT_TEST PROPERTY STRINGS "TRUE" "FALSE")
......
add_subdirectory(CUSTOMIZED)
add_subdirectory(O-RAN)
add_library(e2_ran_func STATIC add_library(e2_ran_func STATIC
init_ran_func.c init_ran_func.c
ran_func_gtp.c
ran_func_kpm.c
ran_func_mac.c
ran_func_pdcp.c
ran_func_rc.c
ran_func_rlc.c
ran_func_slice.c
ran_func_tc.c
# For testing purposes
../flexric/test/rnd/fill_rnd_data_gtp.c
../flexric/test/rnd/fill_rnd_data_tc.c
../flexric/test/rnd/fill_rnd_data_mac.c
../flexric/test/rnd/fill_rnd_data_rlc.c
../flexric/test/rnd/fill_rnd_data_pdcp.c
../flexric/test/rnd/fill_rnd_data_kpm.c
../flexric/test/rnd/fill_rnd_data_rc.c
../flexric/test/rnd/fill_rnd_data_slice.c
../flexric/src/util/time_now_us.c
) )
target_link_libraries(e2_ran_func
PUBLIC
e2_ran_func_cust
e2_ran_func_oran
)
add_library(e2_ran_func_cust STATIC
ran_func_gtp.c
ran_func_mac.c
ran_func_pdcp.c
ran_func_rlc.c
ran_func_slice.c
ran_func_tc.c
# For testing purposes
../../flexric/test/rnd/fill_rnd_data_gtp.c
../../flexric/test/rnd/fill_rnd_data_tc.c
../../flexric/test/rnd/fill_rnd_data_mac.c
../../flexric/test/rnd/fill_rnd_data_rlc.c
../../flexric/test/rnd/fill_rnd_data_pdcp.c
../../flexric/test/rnd/fill_rnd_data_slice.c
../../flexric/src/util/time_now_us.c
)
#include "ran_func_gtp.h" #include "ran_func_gtp.h"
#include "../flexric/test/rnd/fill_rnd_data_gtp.h" #include "../../flexric/test/rnd/fill_rnd_data_gtp.h"
#include <assert.h> #include <assert.h>
void read_gtp_sm(void * data) void read_gtp_sm(void * data)
......
#ifndef RAN_FUNC_SM_GTP_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_GTP_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_GTP_READ_WRITE_AGENT_H #define RAN_FUNC_SM_GTP_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_gtp_sm(void*); void read_gtp_sm(void*);
......
#include "ran_func_mac.h" #include "ran_func_mac.h"
#include "../flexric/test/rnd/fill_rnd_data_mac.h" #include "../../flexric/test/rnd/fill_rnd_data_mac.h"
#include <assert.h> #include <assert.h>
void read_mac_sm(void* data) void read_mac_sm(void* data)
{ {
assert(data != NULL); assert(data != NULL);
// assert(data->type == MAC_STATS_V0);
mac_ind_data_t* mac = (mac_ind_data_t*)data; mac_ind_data_t* mac = (mac_ind_data_t*)data;
fill_mac_ind_data(mac); fill_mac_ind_data(mac);
...@@ -14,16 +13,12 @@ void read_mac_sm(void* data) ...@@ -14,16 +13,12 @@ void read_mac_sm(void* data)
void read_mac_setup_sm(void* data) void read_mac_setup_sm(void* data)
{ {
assert(data != NULL); assert(data != NULL);
// assert(data->type == MAC_AGENT_IF_E2_SETUP_ANS_V0 );
assert(0 !=0 && "Not supported"); assert(0 !=0 && "Not supported");
} }
sm_ag_if_ans_t write_ctrl_mac_sm(void const* data) sm_ag_if_ans_t write_ctrl_mac_sm(void const* data)
{ {
assert(data != NULL); assert(data != NULL);
// assert(data->type == MAC_CTRL_REQ_V0);
assert(0 !=0 && "Not supported"); assert(0 !=0 && "Not supported");
} }
#ifndef SM_AMC_READ_WRITE_AGENT_H #ifndef SM_MAC_READ_WRITE_AGENT_H
#define SM_AMC_READ_WRITE_AGENT_H #define SM_MAC_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_mac_sm(void*); void read_mac_sm(void*);
...@@ -10,4 +10,3 @@ void read_mac_setup_sm(void*); ...@@ -10,4 +10,3 @@ void read_mac_setup_sm(void*);
sm_ag_if_ans_t write_ctrl_mac_sm(void const*); sm_ag_if_ans_t write_ctrl_mac_sm(void const*);
#endif #endif
#include "ran_func_pdcp.h" #include "ran_func_pdcp.h"
#include "../flexric/test/rnd/fill_rnd_data_pdcp.h" #include "../../flexric/test/rnd/fill_rnd_data_pdcp.h"
#include <assert.h> #include <assert.h>
void read_pdcp_sm(void* data) void read_pdcp_sm(void* data)
......
#ifndef RAN_FUNC_SM_PDCP_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_PDCP_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_PDCP_READ_WRITE_AGENT_H #define RAN_FUNC_SM_PDCP_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_pdcp_sm(void*); void read_pdcp_sm(void*);
......
#include "ran_func_rlc.h" #include "ran_func_rlc.h"
#include "../flexric/test/rnd/fill_rnd_data_rlc.h" #include "../../flexric/test/rnd/fill_rnd_data_rlc.h"
void read_rlc_sm(void* data) void read_rlc_sm(void* data)
{ {
......
#ifndef RAN_FUNC_SM_RLC_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_RLC_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_RLC_READ_WRITE_AGENT_H #define RAN_FUNC_SM_RLC_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_rlc_sm(void*); void read_rlc_sm(void*);
......
#include "ran_func_slice.h" #include "ran_func_slice.h"
#include "../flexric/test/rnd/fill_rnd_data_slice.h" #include "../../flexric/test/rnd/fill_rnd_data_slice.h"
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
......
#ifndef RAN_FUNC_SM_SLICE_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_SLICE_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_SLICE_READ_WRITE_AGENT_H #define RAN_FUNC_SM_SLICE_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_slice_sm(void*); void read_slice_sm(void*);
......
#include "ran_func_tc.h" #include "ran_func_tc.h"
#include "../flexric/test/rnd/fill_rnd_data_tc.h" #include "../../flexric/test/rnd/fill_rnd_data_tc.h"
#include <assert.h> #include <assert.h>
void read_tc_sm(void* data) void read_tc_sm(void* data)
......
#ifndef RAN_FUNC_SM_TC_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_TC_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_TC_READ_WRITE_AGENT_H #define RAN_FUNC_SM_TC_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_tc_sm(void*); void read_tc_sm(void*);
......
add_library(e2_ran_func_oran STATIC
ran_func_kpm.c
ran_func_rc.c
# For testing purposes
../../flexric/test/rnd/fill_rnd_data_kpm.c
../../flexric/test/rnd/fill_rnd_data_rc.c
)
#include "ran_func_kpm.h" #include "ran_func_kpm.h"
#include "../flexric/test/rnd/fill_rnd_data_kpm.h" #include "../../flexric/test/rnd/fill_rnd_data_kpm.h"
#include "../flexric/src/util/time_now_us.h" #include "../../flexric/src/util/time_now_us.h"
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
......
#ifndef RAN_FUNC_SM_KPM_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_KPM_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_KPM_READ_WRITE_AGENT_H #define RAN_FUNC_SM_KPM_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_kpm_sm(void*); void read_kpm_sm(void*);
......
#include "ran_func_rc.h" #include "ran_func_rc.h"
#include "../flexric/test/rnd/fill_rnd_data_rc.h" #include "../../flexric/test/rnd/fill_rnd_data_rc.h"
#include "../flexric/src/sm/rc_sm/ie/ir/lst_ran_param.h" #include "../../flexric/src/sm/rc_sm/ie/ir/lst_ran_param.h"
#include "../flexric/src/sm/rc_sm/ie/ir/ran_param_list.h" #include "../../flexric/src/sm/rc_sm/ie/ir/ran_param_list.h"
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
#include <pthread.h> #include <pthread.h>
......
#ifndef RAN_FUNC_SM_RAN_CTRL_READ_WRITE_AGENT_H #ifndef RAN_FUNC_SM_RAN_CTRL_READ_WRITE_AGENT_H
#define RAN_FUNC_SM_RAN_CTRL_READ_WRITE_AGENT_H #define RAN_FUNC_SM_RAN_CTRL_READ_WRITE_AGENT_H
#include "../flexric/src/agent/e2_agent_api.h" #include "../../flexric/src/agent/e2_agent_api.h"
void read_rc_sm(void *); void read_rc_sm(void *);
......
#include "init_ran_func.h" #include "init_ran_func.h"
#include "../flexric/src/agent/e2_agent_api.h" #include "../flexric/src/agent/e2_agent_api.h"
#include "ran_func_mac.h" #include "CUSTOMIZED/ran_func_mac.h"
#include "ran_func_rlc.h" #include "CUSTOMIZED/ran_func_rlc.h"
#include "ran_func_pdcp.h" #include "CUSTOMIZED/ran_func_pdcp.h"
#include "ran_func_slice.h" #include "CUSTOMIZED/ran_func_slice.h"
#include "ran_func_tc.h" #include "CUSTOMIZED/ran_func_tc.h"
#include "ran_func_gtp.h" #include "CUSTOMIZED/ran_func_gtp.h"
#include "ran_func_kpm.h" #include "O-RAN/ran_func_kpm.h"
#include "ran_func_rc.h" #include "O-RAN/ran_func_rc.h"
static static
void init_read_ind_tbl(read_ind_fp (*read_ind_tbl)[SM_AGENT_IF_READ_V0_END]) void init_read_ind_tbl(read_ind_fp (*read_ind_tbl)[SM_AGENT_IF_READ_V0_END])
...@@ -71,5 +71,3 @@ sm_io_ag_ran_t init_ran_func_ag(void) ...@@ -71,5 +71,3 @@ sm_io_ag_ran_t init_ran_func_ag(void)
return io; return io;
} }
<h1 align="center">
<a href="https://openairinterface.org/"><img src="https://openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png" alt="OAI" width="550"></a>
</h1>
<p align="center">
<a href="https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-OAI--Public--V1.1-blue" alt="License"></a>
<a href="https://releases.ubuntu.com/18.04/"><img src="https://img.shields.io/badge/OS-Ubuntu18-Green" alt="Supported OS Ubuntu 18"></a>
<a href="https://releases.ubuntu.com/20.04/"><img src="https://img.shields.io/badge/OS-Ubuntu20-Green" alt="Supported OS Ubuntu 20"></a>
<a href="https://releases.ubuntu.com/22.04/"><img src="https://img.shields.io/badge/OS-Ubuntu22-Green" alt="Supported OS Ubuntu 22"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL8-Green" alt="Supported OS RHEL8"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL9-Green" alt="Supported OS RELH9"></a>
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore37-Green" alt="Supported OS Fedora 37"></a>
</p>
<p align="center">
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Container-Parent/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Container-Parent%2F&label=build%20Images"></a>
</p>
<p align="center">
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-gnb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-gnb?label=gNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-nr-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-nr-ue?label=NR-UE%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-enb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-enb?label=eNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-lte-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-lte-ue?label=LTE-UE%20docker%20pulls"></a>
</p>
# OpenAirInterface License # # OpenAirInterface License #
* [OAI License Model](http://www.openairinterface.org/?page_id=101) * [OAI License Model](http://www.openairinterface.org/?page_id=101)
...@@ -55,19 +82,18 @@ sudo apt install libsctp-dev python3.8 cmake-curses-gui libpcre2-dev python-dev ...@@ -55,19 +82,18 @@ sudo apt install libsctp-dev python3.8 cmake-curses-gui libpcre2-dev python-dev
```bash ```bash
git clone https://gitlab.eurecom.fr/oai/openairinterface5g oai git clone https://gitlab.eurecom.fr/oai/openairinterface5g oai
cd oai/ cd oai/
git checkout e2_sub
``` ```
### 2.1.2 Build OAI ### 2.1.2 Build OAI
```bash ```bash
cd cmake_targets/ cd cmake_targets/
./build_oai -I -w SIMU --gNB --nrUE --e2 --ninja ./build_oai -I -w SIMU --gNB --nrUE --build-e2 --ninja
``` ```
If the flexric folder is empty, try manually the following commands If the flexric folder is empty, try manually the following commands
```bash ```bash
$git submodule init git submodule init
$git submodule update git submodule update
``` ```
* -I option is to install pre-requisites, you only need it the first time you build the softmodem or when some oai dependencies have changed. * -I option is to install pre-requisites, you only need it the first time you build the softmodem or when some oai dependencies have changed.
...@@ -75,7 +101,7 @@ $git submodule update ...@@ -75,7 +101,7 @@ $git submodule update
* --gNB is to build the nr-softmodem and nr-cuup executables and all required shared libraries * --gNB is to build the nr-softmodem and nr-cuup executables and all required shared libraries
* --nrUE is to build the nr-uesoftmodem executable and all required shared libraries * --nrUE is to build the nr-uesoftmodem executable and all required shared libraries
* --ninja is to use the ninja build tool, which speeds up compilation * --ninja is to use the ninja build tool, which speeds up compilation
* --e2 option is to use the E2 agent, integrated within gNB. * --build-e2 option is to use the E2 agent, integrated within gNB.
## 2.2 FlexRIC ## 2.2 FlexRIC
......
...@@ -268,10 +268,6 @@ log_config : ...@@ -268,10 +268,6 @@ log_config :
e2_agent = { e2_agent = {
address = "127.0.0.1"; address = "127.0.0.1";
# sm_dir = "/path/where/the/SMs/are/located/" #sm_dir = "/path/where/the/SMs/are/located/"
sm_dir = "/usr/local/lib/flexric/" sm_dir = "/usr/local/lib/flexric/"
} };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment