E2SM cmake update
- hardcoded data for E2 Setup Request; fill_rnd_data_e2_setup_req.c dependancy taken
out
This commit is contained in:
@@ -1,16 +1,15 @@
|
||||
add_library(e2_ran_func_cuup STATIC
|
||||
init_ran_func.c
|
||||
read_setup_ran.c
|
||||
../flexric/test/rnd/fill_rnd_data_e2_setup_req.c # this is not rnd data; it is used to fill E2 Node Component Configuration Addition List in E2 Setup Request message
|
||||
CUSTOMIZED/ran_func_gtp.c # current implementation doesn't take split architecture into account, neither CU/DU nor CU-UP/CU-CP
|
||||
CUSTOMIZED/ran_func_pdcp.c # current implementation doesn't take split architecture into account, neither CU/DU nor CU-UP/CU-CP
|
||||
O-RAN/ran_e2sm_ue_id.c
|
||||
O-RAN/ran_func_kpm.c
|
||||
O-RAN/ran_func_kpm_subs.c
|
||||
O-RAN/ran_func_rc.c
|
||||
O-RAN/ran_func_rc_subs.c
|
||||
CUSTOMIZED/ran_func_gtp.c # GTP SM not yet implemented in CU-UP
|
||||
CUSTOMIZED/ran_func_pdcp.c
|
||||
CUSTOMIZED/ran_func_tc.c # currently, not implemented; therefore, filling rnd data
|
||||
../flexric/test/rnd/fill_rnd_data_tc.c
|
||||
O-RAN/ran_e2sm_ue_id.c
|
||||
O-RAN/ran_func_kpm.c # this file should only contain PDCP-U/GTP; to be done in the future
|
||||
O-RAN/ran_func_kpm_subs.c
|
||||
O-RAN/ran_func_rc.c # this file should only contain PDCP-U/GTP; to be done in the future
|
||||
O-RAN/ran_func_rc_subs.c
|
||||
)
|
||||
|
||||
target_link_libraries(e2_ran_func_cuup PUBLIC asn1_nr_rrc nr_rrc asn1_nr_rrc_hdrs e2_time_obj kpm_ric_info_common_obj 3gpp_derived_ie_obj sm_common_ie_obj)
|
||||
@@ -20,24 +19,31 @@ target_compile_definitions(e2_ran_func_cuup PUBLIC ${E2AP_VERSION} ${KPM_VERSIO
|
||||
add_library(e2_ran_func_du_cucp_cuup STATIC
|
||||
init_ran_func.c
|
||||
read_setup_ran.c
|
||||
../flexric/test/rnd/fill_rnd_data_e2_setup_req.c # this is not rnd data; it is used to fill E2 Node Component Configuration Addition List in E2 Setup Request message
|
||||
CUSTOMIZED/ran_func_gtp.c # current implementation doesn't take split architecture into account, neither CU/DU nor CU-UP/CU-CP
|
||||
CUSTOMIZED/ran_func_pdcp.c # current implementation doesn't take split architecture into account, neither CU/DU nor CU-UP/CU-CP
|
||||
O-RAN/ran_e2sm_ue_id.c
|
||||
O-RAN/ran_func_kpm.c # this file should only contain RRC/PDCP-C; to be done in the future
|
||||
# when nr-softmodem is divided in separate executables
|
||||
O-RAN/ran_func_kpm.c
|
||||
O-RAN/ran_func_kpm_subs.c
|
||||
O-RAN/ran_func_rc.c # this file should only contain RRC/PDCP-C; to be done in the future
|
||||
# when nr-softmodem is divided in separate executables
|
||||
O-RAN/ran_func_rc.c
|
||||
O-RAN/ran_func_rc_subs.c
|
||||
../flexric/src/sm/rc_sm/ie/rc_data_ie.c
|
||||
CUSTOMIZED/ran_func_gtp.c
|
||||
CUSTOMIZED/ran_func_pdcp.c
|
||||
CUSTOMIZED/ran_func_mac.c
|
||||
CUSTOMIZED/ran_func_rlc.c
|
||||
CUSTOMIZED/ran_func_slice.c
|
||||
CUSTOMIZED/ran_func_tc.c
|
||||
../flexric/test/rnd/fill_rnd_data_tc.c
|
||||
CUSTOMIZED/ran_func_slice.c # currently, not implemented; therefore, filling rnd data
|
||||
../flexric/test/rnd/fill_rnd_data_slice.c
|
||||
CUSTOMIZED/ran_func_tc.c # currently, not implemented; therefore, filling rnd data
|
||||
../flexric/test/rnd/fill_rnd_data_tc.c
|
||||
)
|
||||
|
||||
target_link_libraries(e2_ran_func_du_cucp_cuup PUBLIC asn1_nr_rrc nr_rrc asn1_nr_rrc_hdrs e2_time_obj kpm_ric_info_common_obj 3gpp_derived_ie_obj e2sm_rc_ir_obj sm_common_ie_obj e2_agent)
|
||||
target_compile_definitions(e2_ran_func_du_cucp_cuup PUBLIC ${E2AP_VERSION} ${KPM_VERSION} NGRAN_GNB_DU NGRAN_GNB_CUCP NGRAN_GNB_CUUP)
|
||||
target_link_libraries(e2_ran_func_du_cucp_cuup PUBLIC asn1_nr_rrc nr_rrc asn1_nr_rrc_hdrs e2_time_obj kpm_ric_info_common_obj 3gpp_derived_ie_obj e2sm_rc_ir_obj sm_common_ie_obj)
|
||||
target_compile_definitions(e2_ran_func_du_cucp_cuup PUBLIC ${E2AP_VERSION} ${KPM_VERSION} NGRAN_GNB_DU NGRAN_GNB_CUCP NGRAN_GNB_CUUP)
|
||||
|
||||
# Current implementation:
|
||||
# - we only have one executable nr-softmodem for 4 node types: DU, CU, gNB-mono, CU-CP
|
||||
|
||||
# In the future, when nr-softmodem is separated, linking should be done as following:
|
||||
# - DU: e2_ran_func_du
|
||||
# - CU-CP : e2_ran_func_cucp
|
||||
# - CU-UP: e2_ran_func_cuup (this is available at the moment, executable nr-cuup)
|
||||
# - CU: e2_ran_func_cucp + e2_ran_func_cuup
|
||||
# - gNB-mono: e2_ran_func_du + e2_ran_func_cucp + e2_ran_func_cuup
|
||||
|
||||
@@ -21,10 +21,109 @@
|
||||
|
||||
#include "read_setup_ran.h"
|
||||
#include "../../E2AP/flexric/src/lib/e2ap/e2ap_node_component_config_add_wrapper.h"
|
||||
#include "../../E2AP/flexric/test/rnd/fill_rnd_data_e2_setup_req.h"
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if defined(E2AP_V2) || defined(E2AP_V3)
|
||||
// NGAP
|
||||
static e2ap_node_component_config_add_t fill_ngap_e2ap_node_component_config_add(void)
|
||||
{
|
||||
e2ap_node_component_config_add_t dst = {0};
|
||||
|
||||
// Mandatory
|
||||
// 9.2.26
|
||||
dst.e2_node_comp_interface_type = NG_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
// Bug!! Optional in the standard, mandatory in ASN.1
|
||||
// 9.2.32
|
||||
dst.e2_node_comp_id.type = NG_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
|
||||
const char ng_msg[] = "Dummy message";
|
||||
dst.e2_node_comp_id.ng_amf_name = cp_str_to_ba(ng_msg);
|
||||
|
||||
// Mandatory
|
||||
// 9.2.27
|
||||
const char req[] = "NGAP Request Message sent";
|
||||
const char res[] = "NGAP Response Message reveived";
|
||||
|
||||
dst.e2_node_comp_conf.request = cp_str_to_ba(req);
|
||||
dst.e2_node_comp_conf.response = cp_str_to_ba(res);
|
||||
return dst;
|
||||
}
|
||||
|
||||
// F1AP
|
||||
static e2ap_node_component_config_add_t fill_f1ap_e2ap_node_component_config_add(void)
|
||||
{
|
||||
e2ap_node_component_config_add_t dst = {0};
|
||||
|
||||
// Mandatory
|
||||
// 9.2.26
|
||||
dst.e2_node_comp_interface_type = F1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
// Bug!! Optional in the standard, mandatory in ASN.1
|
||||
// 9.2.32
|
||||
dst.e2_node_comp_id.type = F1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
|
||||
dst.e2_node_comp_id.f1_gnb_du_id = 1023;
|
||||
|
||||
// Mandatory
|
||||
// 9.2.27
|
||||
const char req[] = "F1AP Request Message sent";
|
||||
const char res[] = "F1AP Response Message reveived";
|
||||
|
||||
dst.e2_node_comp_conf.request = cp_str_to_ba(req);
|
||||
dst.e2_node_comp_conf.response = cp_str_to_ba(res);
|
||||
return dst;
|
||||
}
|
||||
|
||||
// E1AP
|
||||
static e2ap_node_component_config_add_t fill_e1ap_e2ap_node_component_config_add(void)
|
||||
{
|
||||
e2ap_node_component_config_add_t dst = {0};
|
||||
|
||||
// Mandatory
|
||||
// 9.2.26
|
||||
dst.e2_node_comp_interface_type = E1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
// Bug!! Optional in the standard, mandatory in ASN.1
|
||||
// 9.2.32
|
||||
dst.e2_node_comp_id.type = E1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
|
||||
dst.e2_node_comp_id.e1_gnb_cu_up_id = 1025;
|
||||
|
||||
// Mandatory
|
||||
// 9.2.27
|
||||
const char req[] = "E1AP Request Message sent";
|
||||
const char res[] = "E1AP Response Message reveived";
|
||||
|
||||
dst.e2_node_comp_conf.request = cp_str_to_ba(req);
|
||||
dst.e2_node_comp_conf.response = cp_str_to_ba(res);
|
||||
return dst;
|
||||
}
|
||||
|
||||
// S1AP
|
||||
static e2ap_node_component_config_add_t fill_s1ap_e2ap_node_component_config_add(void)
|
||||
{
|
||||
e2ap_node_component_config_add_t dst = {0};
|
||||
|
||||
// Mandatory
|
||||
// 9.2.26
|
||||
dst.e2_node_comp_interface_type = S1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
// Bug!! Optional in the standard, mandatory in ASN.1
|
||||
// 9.2.32
|
||||
dst.e2_node_comp_id.type = S1_E2AP_NODE_COMP_INTERFACE_TYPE;
|
||||
|
||||
const char str[] = "S1 NAME";
|
||||
dst.e2_node_comp_id.s1_mme_name = cp_str_to_ba(str);
|
||||
|
||||
// Mandatory
|
||||
// 9.2.27
|
||||
const char req[] = "S1AP Request Message sent";
|
||||
const char res[] = "S1AP Response Message reveived";
|
||||
|
||||
dst.e2_node_comp_conf.request = cp_str_to_ba(req);
|
||||
dst.e2_node_comp_conf.response = cp_str_to_ba(res);
|
||||
return dst;
|
||||
}
|
||||
#endif
|
||||
|
||||
void read_setup_ran(void* data, const ngran_node_t node_type)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
Reference in New Issue
Block a user