Generate and build LTE RRC ASN.1 during build time

This commit is contained in:
Robert Schmidt
2022-12-02 15:43:05 +01:00
parent 8f2e1f6662
commit 09b4c65782
44 changed files with 4973 additions and 73476 deletions
+94 -124
View File
@@ -351,8 +351,7 @@ add_library(ITTI
${OCP_ITTI}/intertask_interface.cpp
${OPENAIR_DIR}/common/utils/backtrace.c
)
add_dependencies(ITTI rrc_flag)
target_link_libraries(ITTI PRIVATE asn1_nr_rrc)
target_link_libraries(ITTI PRIVATE asn1_nr_rrc asn1_lte_rrc)
# asn1c skeletons have hardcoded this flag to make customized debug logs
# OAI uses this feature to re-use OAI LOG_I(ASN, ...)
@@ -373,30 +372,17 @@ set(asn1_generated_dir ${OPENAIR_BIN_DIR})
# RRC
######
set (RRC_ASN1_VERSION "Rel15")
make_version(LTE_RRC_VERSION 15 6 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.6.0.asn1)
add_definitions(-DLTE_RRC_VERSION=${LTE_RRC_VERSION})
set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
set(rrc_cmd ${OPENAIR_CMAKE}/tools/make_asn1c_includes.sh "LTE_" " " "${RRC_FULL_DIR}")
compile_asn1("${RRC_GRAMMAR}" "${rrc_cmd}" rrc_flag)
file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
add_library(RRC_LIB ${rrc_source}
add_library(lte_rrc
${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1_msg.c
${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c)
add_dependencies(RRC_LIB rrc_flag)
include_directories ("${RRC_FULL_DIR}")
target_link_libraries(RRC_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(lte_rrc PUBLIC asn1_lte_rrc)
target_link_libraries(lte_rrc PRIVATE nr_rrc)
#NR RRC
#######
add_library(nr_rrc ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c)
target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc)
target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc asn1_lte_rrc)
# S1AP
@@ -418,9 +404,8 @@ add_library(s1ap
${S1AP_DIR}/s1ap_eNB_trace.c
${S1AP_DIR}/s1ap_eNB_ue_context.c
)
add_dependencies(s1ap rrc_flag)
target_link_libraries(s1ap PUBLIC asn1_s1ap)
target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc)
target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc lte_rrc)
# NGAP
##############
@@ -440,9 +425,8 @@ add_library(ngap
${NGAP_DIR}/ngap_gNB_trace.c
${NGAP_DIR}/ngap_gNB_ue_context.c
)
add_dependencies(ngap rrc_flag)
target_link_libraries(ngap PUBLIC asn1_ngap)
target_link_libraries(ngap PRIVATE asn1_nr_rrc)
target_link_libraries(ngap PUBLIC asn1_ngap lte_rrc)
target_link_libraries(ngap PRIVATE asn1_nr_rrc asn1_lte_rrc)
#M2AP
# Same limitation as described in RRC/S1AP: unknown generated file list
@@ -483,8 +467,8 @@ add_library(M2AP_LIB
${M2AP_source}
${M2AP_DIR}/m2ap_common.c
)
add_dependencies(M2AP_LIB rrc_flag m2_flag)
target_link_libraries(M2AP_LIB PRIVATE asn1_nr_rrc)
add_dependencies(M2AP_LIB m2_flag)
target_link_libraries(M2AP_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories ("${M2AP_C_DIR}")
include_directories ("${M2AP_DIR}")
@@ -506,8 +490,8 @@ add_library(M2AP_ENB
${M2AP_DIR}/m2ap_MCE_interface_management.c
${M2AP_DIR}/m2ap_eNB_interface_management.c
)
add_dependencies(M2AP_ENB rrc_flag m2_flag)
target_link_libraries(M2AP_ENB PRIVATE asn1_nr_rrc)
add_dependencies(M2AP_ENB m2_flag)
target_link_libraries(M2AP_ENB PRIVATE asn1_nr_rrc asn1_lte_rrc)
#M3AP
# Same limitation as described in RRC/S1AP: unknown generated file list
@@ -547,8 +531,8 @@ add_library(M3AP_LIB
${M3AP_source}
${M3AP_DIR}/m3ap_common.c
)
add_dependencies(M3AP_LIB rrc_flag m3_flag)
target_link_libraries(M3AP_LIB PRIVATE asn1_nr_rrc)
add_dependencies(M3AP_LIB m3_flag)
target_link_libraries(M3AP_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories ("${M3AP_C_DIR}")
include_directories ("${M3AP_DIR}")
@@ -568,8 +552,8 @@ add_library(M3AP_ENB
${M3AP_DIR}/m3ap_ids.c
${M3AP_DIR}/m3ap_timers.c
)
add_dependencies(M3AP_ENB rrc_flag m3_flag)
target_link_libraries(M3AP_ENB PRIVATE asn1_nr_rrc)
add_dependencies(M3AP_ENB m3_flag)
target_link_libraries(M3AP_ENB PRIVATE asn1_nr_rrc asn1_lte_rrc)
#X2AP
##############
@@ -587,9 +571,8 @@ add_library(x2ap
${X2AP_DIR}/x2ap_ids.c
${X2AP_DIR}/x2ap_timers.c
)
add_dependencies(x2ap rrc_flag)
target_link_libraries(x2ap PUBLIC asn1_x2ap)
target_link_libraries(x2ap PRIVATE nr_rrc)
target_link_libraries(x2ap PRIVATE nr_rrc lte_rrc)
# F1AP
@@ -639,7 +622,7 @@ add_library(LPP_LIB
${LPP_ASN_GENERATED_C_FILES}
)
add_dependencies (LPP_LIB lpp_flag)
target_link_libraries(LPP_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(LPP_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories ("${LPP_ASN_GENERATED_C_DIR}")
include_directories ("${LPP_DIR}")
@@ -741,7 +724,7 @@ set_target_properties(benetel_4g PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -
SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
target_link_libraries(benetel_4g PRIVATE ${DPDK_LIBS})
target_link_libraries(benetel_4g PRIVATE pthread dl rt m numa)
target_link_libraries(benetel_4g PRIVATE asn1_nr_rrc)
target_link_libraries(benetel_4g PRIVATE asn1_nr_rrc asn1_lte_rrc)
# Benetel 5G library
######################################################################
@@ -760,7 +743,7 @@ set_target_properties(benetel_5g PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -
SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
target_link_libraries(benetel_5g PRIVATE ${DPDK_LIBS})
target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa)
target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc)
target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
##########################################################
@@ -999,7 +982,7 @@ add_library(UTIL
${OPENAIR_DIR}/common/utils/time_meas.c
${OPENAIR_DIR}/common/utils/time_stat.c
)
target_link_libraries(UTIL PRIVATE asn1_nr_rrc)
target_link_libraries(UTIL PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SECU_OSA_SRC
${OPENAIR2_DIR}/UTIL/OSA/osa_key_deriver.c
@@ -1033,8 +1016,7 @@ set(SCHED_SRC
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
)
add_library(SCHED_LIB ${SCHED_SRC})
add_dependencies(SCHED_LIB rrc_flag)
target_link_libraries(SCHED_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(SCHED_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SCHED_NR_SRC
${OPENAIR1_DIR}/SCHED_NR/fapi_nr_l1.c
@@ -1044,7 +1026,7 @@ set(SCHED_NR_SRC
${OPENAIR1_DIR}/SCHED_NR/phy_frame_config_nr.c
)
add_library(SCHED_NR_LIB ${SCHED_NR_SRC})
target_link_libraries(SCHED_NR_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(SCHED_NR_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SCHED_SRC_RU
${OPENAIR1_DIR}/SCHED/ru_procedures.c
@@ -1052,8 +1034,7 @@ set(SCHED_SRC_RU
${OPENAIR1_DIR}/SCHED/prach_procedures.c
)
add_library(SCHED_RU_LIB ${SCHED_SRC_RU})
add_dependencies(SCHED_RU_LIB rrc_flag)
target_link_libraries(SCHED_RU_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(SCHED_RU_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SCHED_SRC_UE
${OPENAIR1_DIR}/SCHED_UE/phy_procedures_lte_ue.c
@@ -1063,8 +1044,7 @@ set(SCHED_SRC_UE
${OPENAIR1_DIR}/SCHED_UE/srs_pc.c
)
add_library(SCHED_UE_LIB ${SCHED_SRC_UE})
add_dependencies(SCHED_UE_LIB rrc_flag)
target_link_libraries(SCHED_UE_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(SCHED_UE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SCHED_SRC_NR_UE
${OPENAIR1_DIR}/SCHED_NR_UE/phy_procedures_nr_ue.c
@@ -1075,7 +1055,7 @@ set(SCHED_SRC_NR_UE
${OPENAIR1_DIR}/SCHED_NR_UE/pucch_uci_ue_nr.c
)
add_library(SCHED_NR_UE_LIB ${SCHED_SRC_NR_UE})
target_link_libraries(SCHED_NR_UE_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(SCHED_NR_UE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
# nFAPI
@@ -1105,7 +1085,7 @@ set(NFAPI_PNF_SRC
${NFAPI_DIR}/pnf/src/pnf_p7_interface.c
)
add_library(NFAPI_PNF_LIB ${NFAPI_PNF_SRC})
target_link_libraries(NFAPI_PNF_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(NFAPI_PNF_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories(${NFAPI_DIR}/pnf/public_inc)
include_directories(${NFAPI_DIR}/pnf/inc)
@@ -1117,7 +1097,7 @@ set(NFAPI_VNF_SRC
${NFAPI_DIR}/vnf/src/vnf_p7_interface.c
)
add_library(NFAPI_VNF_LIB ${NFAPI_VNF_SRC})
target_link_libraries(NFAPI_VNF_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(NFAPI_VNF_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories(${NFAPI_DIR}/vnf/public_inc)
include_directories(${NFAPI_DIR}/vnf/inc)
@@ -1131,8 +1111,7 @@ set(NFAPI_USER_SRC
${NFAPI_USER_DIR}/gnb_ind_vars.c
)
add_library(NFAPI_USER_LIB ${NFAPI_USER_SRC})
add_dependencies(NFAPI_USER_LIB rrc_flag)
target_link_libraries(NFAPI_USER_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(NFAPI_USER_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories(${NFAPI_USER_DIR})
# Layer 1
@@ -1224,7 +1203,7 @@ target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
add_library(coding MODULE ${PHY_TURBOSRC} )
target_link_libraries(coding PRIVATE asn1_nr_rrc)
target_link_libraries(coding PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(dfts MODULE ${OPENAIR1_DIR}/PHY/TOOLS/oai_dfts.c )
@@ -1481,30 +1460,27 @@ set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_comp
set(PHY_NR_UE_SRC ${PHY_NR_UE_SRC} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c)
add_library(PHY_COMMON ${PHY_SRC_COMMON})
add_dependencies(PHY_COMMON rrc_flag)
target_link_libraries(PHY_COMMON PRIVATE lte_rrc)
add_dependencies(PHY_COMMON dfts)
target_link_libraries(PHY_COMMON PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY ${PHY_SRC})
target_link_libraries(PHY PRIVATE asn1_nr_rrc)
add_dependencies(PHY rrc_flag)
target_link_libraries(PHY PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_UE ${PHY_SRC_UE})
add_dependencies(PHY_UE rrc_flag)
target_link_libraries(PHY_UE PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_NR_COMMON ${PHY_NR_SRC_COMMON})
target_link_libraries(PHY_NR_COMMON PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_NR_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_NR ${PHY_NR_SRC})
target_link_libraries(PHY_NR PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_NR_UE ${PHY_NR_UE_SRC})
target_link_libraries(PHY_NR_UE PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_NR_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_RU ${PHY_SRC_RU})
add_dependencies(PHY_RU rrc_flag)
target_link_libraries(PHY_RU PRIVATE asn1_nr_rrc)
target_link_libraries(PHY_RU PRIVATE asn1_nr_rrc asn1_lte_rrc)
#Library for mex functions
#########################3
@@ -1528,6 +1504,7 @@ set(PHY_MEX_UE
${OPENAIR_DIR}/common/utils/T/local_tracer.c
)
add_library(PHY_MEX ${PHY_MEX_UE} ${CONFIG_LIB})
target_link_libraries(PHY_MEX PRIVATE asn1_lte_rrc)
#Layer 2 library
#####################
@@ -1801,14 +1778,14 @@ set (MISC_NFAPI_LTE
)
add_library(MISC_NFAPI_LTE_LIB ${MISC_NFAPI_LTE})
target_link_libraries(MISC_NFAPI_LTE_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(MISC_NFAPI_LTE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set (MISC_NFAPI_NR
${OPENAIR1_DIR}/SCHED/nfapi_nr_dummy.c
)
add_library(MISC_NFAPI_NR_LIB ${MISC_NFAPI_NR})
target_link_libraries(MISC_NFAPI_NR_LIB PRIVATE asn1_nr_rrc)
target_link_libraries(MISC_NFAPI_NR_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(L2
${L2_SRC}
@@ -1816,20 +1793,18 @@ add_library(L2
${ENB_APP_SRC}
${MCE_APP_SRC}
)
add_dependencies(L2 rrc_flag m2_flag m3_flag)
target_link_libraries(L2 PRIVATE f1ap x2ap s1ap)
target_link_libraries(L2 PRIVATE asn1_nr_rrc)
add_dependencies(L2 m2_flag m3_flag)
target_link_libraries(L2 PRIVATE f1ap x2ap s1ap lte_rrc)
target_link_libraries(L2 PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(MAC_NR ${MAC_NR_SRC})
target_link_libraries(MAC_NR PRIVATE asn1_nr_rrc)
target_link_libraries(MAC_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(MAC_UE_NR ${MAC_NR_SRC_UE})
target_link_libraries(MAC_UE_NR PRIVATE asn1_nr_rrc)
target_link_libraries(MAC_UE_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(L2_LTE
${L2_LTE_SRC}
)
target_link_libraries(L2_LTE PRIVATE asn1_nr_rrc)
add_library(L2_LTE ${L2_LTE_SRC})
target_link_libraries(L2_LTE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(L2_NR
${L2_NR_SRC}
@@ -1837,7 +1812,6 @@ add_library(L2_NR
${GNB_APP_SRC}
)
#add_dependencies(L2_NR rrc_flag nr_rrc_flag s1ap_flag)
target_link_libraries(L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc)
add_library(L2_LTE_NR
@@ -1853,29 +1827,29 @@ add_library(L2_UE
${L2_SRC_UE}
${MAC_SRC_UE}
)
target_link_libraries(L2_UE PRIVATE asn1_nr_rrc)
target_link_libraries(L2_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(L2_UE_LTE_NR
${L2_RRC_SRC_UE}
${MAC_SRC_UE}
)
target_link_libraries(L2_UE_LTE_NR PRIVATE asn1_nr_rrc)
target_link_libraries(L2_UE_LTE_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
if (NOT ${NOS1})
target_compile_definitions(L2_UE PUBLIC -DPDCP_USE_NETLINK)
endif()
add_dependencies(L2_UE rrc_flag)
target_link_libraries(L2_UE PRIVATE lte_rrc)
add_library( NR_L2_UE ${NR_L2_SRC_UE} ${MAC_NR_SRC_UE} )
target_link_libraries(NR_L2_UE PRIVATE f1ap)
target_link_libraries(NR_L2_UE PRIVATE asn1_nr_rrc)
target_link_libraries(NR_L2_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(MAC_NR_COMMON
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common.c
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c
)
target_link_libraries(MAC_NR_COMMON PRIVATE asn1_nr_rrc)
target_link_libraries(MAC_NR_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories("${OPENAIR2_DIR}/NR_UE_PHY_INTERFACE")
include_directories("${OPENAIR2_DIR}/LAYER2")
@@ -1893,8 +1867,7 @@ add_library (GTPV1U
${RRC_DIR}/rrc_eNB_GTPV1U.c
${OPENAIR3_DIR}/ocp-gtpu/gtp_itf.cpp
)
add_dependencies(GTPV1U rrc_flag)
target_link_libraries(GTPV1U PRIVATE asn1_nr_rrc)
target_link_libraries(GTPV1U PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories(${OPENAIR3_DIR}/ocp-gtp)
set (MME_APP_SRC
@@ -1902,8 +1875,8 @@ set (MME_APP_SRC
${OPENAIR3_DIR}/MME_APP/mme_config.c
)
add_library(MME_APP ${MME_APP_SRC})
add_dependencies(MME_APP rrc_flag m2_flag m3_flag)
target_link_libraries(MME_APP PRIVATE asn1_nr_rrc)
add_dependencies(MME_APP m2_flag m3_flag)
target_link_libraries(MME_APP PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SCTP_SRC
${OPENAIR3_DIR}/SCTP/sctp_common.c
@@ -1911,8 +1884,7 @@ set(SCTP_SRC
${OPENAIR3_DIR}/SCTP/sctp_eNB_itti_messaging.c
)
add_library(SCTP_CLIENT ${SCTP_SRC})
add_dependencies(SCTP_CLIENT rrc_flag)
target_link_libraries(SCTP_CLIENT PRIVATE asn1_nr_rrc)
target_link_libraries(SCTP_CLIENT PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(NAS_SRC ${OPENAIR3_DIR}/NAS/)
set(libnas_api_OBJS
@@ -2187,9 +2159,9 @@ add_library(LIB_NAS_SIMUE
${libnrnas_emm_msg_OBJS}
${libnrnas_ies_OBJS}
)
add_dependencies(LIB_NAS_SIMUE rrc_flag)
target_link_libraries(LIB_NAS_SIMUE PRIVATE lte_rrc)
set(NAS_SIM_LIB LIB_NAS_SIMUE)
target_link_libraries(LIB_NAS_SIMUE PRIVATE asn1_nr_rrc)
target_link_libraries(LIB_NAS_SIMUE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(LIB_NAS_UE
${NAS_SRC}UE/nas_itti_messaging.c
@@ -2208,9 +2180,9 @@ add_library(LIB_NAS_UE
${libnas_ue_esm_OBJS}
${libnas_ue_esm_sap_OBJS}
)
add_dependencies(LIB_NAS_UE rrc_flag)
target_link_libraries(LIB_NAS_UE PRIVATE lte_rrc)
set(NAS_UE_LIB LIB_NAS_UE)
target_link_libraries(LIB_NAS_UE PRIVATE asn1_nr_rrc)
target_link_libraries(LIB_NAS_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
include_directories(${NAS_SRC}NR_UE)
include_directories(${NAS_SRC}UE)
@@ -2240,14 +2212,14 @@ add_library(LIB_5GNAS_GNB
${OPENAIR3_DIR}//UICC/usim_interface.c
)
target_link_libraries(LIB_5GNAS_GNB PRIVATE SECU_CN ${CRYPTO_LIBRARIES})
target_link_libraries(LIB_5GNAS_GNB PRIVATE asn1_nr_rrc)
target_link_libraries(LIB_5GNAS_GNB PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(SIMU_COMMON
${OPENAIR1_DIR}/SIMULATION/TOOLS/random_channel.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/rangen_double.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/phase_noise.c
)
target_link_libraries(SIMU_COMMON PRIVATE asn1_nr_rrc)
target_link_libraries(SIMU_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
# Simulation library
##########################
@@ -2266,7 +2238,7 @@ set (SIMUSRC
# Simulation library
##########################
add_library(SIMU SHARED ${SIMUSRC} )
target_link_libraries(SIMU PRIVATE asn1_nr_rrc)
target_link_libraries(SIMU PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(SIMU_ETH
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
@@ -2309,13 +2281,13 @@ set(XFORMS_LIBRARIES "forms")
add_library(enbscope MODULE ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} ${XFORMS_ENB_SOURCE})
add_library(uescope MODULE ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} ${XFORMS_UE_SOURCE})
target_link_libraries(enbscope PRIVATE ${XFORMS_LIBRARIES})
target_link_libraries(enbscope PRIVATE asn1_nr_rrc)
target_link_libraries(enbscope PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(uescope PRIVATE ${XFORMS_LIBRARIES})
target_link_libraries(uescope PRIVATE asn1_nr_rrc)
target_link_libraries(uescope PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(nrscope MODULE ${XFORMS_SOURCE_NR})
target_link_libraries(nrscope PRIVATE ${XFORMS_LIBRARIES})
target_link_libraries(nrscope PRIVATE asn1_nr_rrc)
target_link_libraries(nrscope PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(rfsimulator MODULE
@@ -2324,7 +2296,7 @@ add_library(rfsimulator MODULE
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
)
target_link_libraries(rfsimulator PRIVATE SIMU_COMMON ${ATLAS_LIBRARIES})
target_link_libraries(rfsimulator PRIVATE asn1_nr_rrc)
target_link_libraries(rfsimulator PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(oai_iqplayer MODULE
${OPENAIR_DIR}/radio/iqplayer/iqplayer_lib.c
@@ -2431,11 +2403,11 @@ add_executable(lte-softmodem
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
add_dependencies(lte-softmodem rrc_flag oai_iqplayer)
add_dependencies(lte-softmodem oai_iqplayer)
target_link_libraries(lte-softmodem PRIVATE
-Wl,--start-group
RRC_LIB nr_rrc s1ap M2AP_LIB M2AP_ENB x2ap M3AP_LIB M3AP_ENB GTPV1U f1ap SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_LIB SCHED_RU_LIB
lte_rrc nr_rrc s1ap M2AP_LIB M2AP_ENB x2ap M3AP_LIB M3AP_ENB GTPV1U f1ap SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
${RAL_LIB} ${NAS_UE_LIB} ITTI
-Wl,--end-group z dl)
@@ -2444,7 +2416,7 @@ target_link_libraries(lte-softmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(lte-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${CMAKE_DL_LIBS})
target_link_libraries(lte-softmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(lte-softmodem PRIVATE ${T_LIB})
target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc)
target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(ocp-enb
@@ -2471,11 +2443,11 @@ add_executable(ocp-enb
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
add_dependencies(ocp-enb rrc_flag oai_iqplayer coding params_libconfig rfsimulator)
add_dependencies(ocp-enb oai_iqplayer coding params_libconfig rfsimulator)
target_link_libraries (ocp-enb
-Wl,--start-group
RRC_LIB nr_rrc s1ap f1ap M2AP_LIB M2AP_ENB x2ap M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_LIB SCHED_RU_LIB
lte_rrc nr_rrc s1ap f1ap M2AP_LIB M2AP_ENB x2ap M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB MISC_NFAPI_LTE_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB SIMU_COMMON
${RAL_LIB} ${NAS_UE_LIB} ITTI
-Wl,--end-group z dl)
@@ -2500,7 +2472,7 @@ target_link_libraries(oairu PRIVATE
-Wl,--end-group z dl)
target_link_libraries(oairu PRIVATE pthread m CONFIG_LIB rt ${CMAKE_DL_LIBS} ${T_LIB})
target_link_libraries(oairu PRIVATE asn1_nr_rrc)
target_link_libraries(oairu PRIVATE asn1_nr_rrc asn1_lte_rrc)
# lte-uesoftmodem is UE implementation
@@ -2526,14 +2498,12 @@ add_executable(lte-uesoftmodem
${SHLIB_LOADER_SOURCES}
)
add_dependencies(lte-uesoftmodem rrc_flag)
if (NOT ${NOS1})
target_compile_definitions(lte-uesoftmodem PRIVATE -DPDCP_USE_NETLINK)
endif()
target_link_libraries(lte-uesoftmodem PRIVATE
-Wl,--start-group
RRC_LIB nr_rrc s1ap x2ap M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
lte_rrc nr_rrc s1ap x2ap M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON
PHY_UE PHY_RU L2_UE L2_LTE SIMU_COMMON SIMU NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
${RAL_LIB} ${NAS_UE_LIB} ITTI ${ATLAS_LIBRARIES}
@@ -2543,7 +2513,7 @@ target_link_libraries(lte-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(lte-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES})
target_link_libraries(lte-uesoftmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(lte-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(lte-uesoftmodem PRIVATE asn1_nr_rrc)
target_link_libraries(lte-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
# nr-softmodem
###################################################
@@ -2575,7 +2545,7 @@ add_executable(nr-softmodem
target_link_libraries(nr-softmodem PRIVATE
-Wl,--start-group
UTIL HASHTABLE SCTP_CLIENT SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU GTPV1U SECU_CN SECU_OSA
ITTI ${RAL_LIB} ${NAS_UE_LIB} RRC_LIB nr_rrc
ITTI ${RAL_LIB} ${NAS_UE_LIB} lte_rrc nr_rrc
ngap s1ap L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
x2ap f1ap M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
-Wl,--end-group z dl)
@@ -2584,7 +2554,7 @@ target_link_libraries(nr-softmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${T_LIB})
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc)
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_dependencies( nr-softmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc)
@@ -2628,7 +2598,7 @@ target_link_libraries(nr-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc)
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_dependencies( nr-uesoftmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc )
if (CUDA_FOUND)
@@ -2674,7 +2644,7 @@ target_link_libraries(polartest PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(polartest PRIVATE asn1_nr_rrc)
target_link_libraries(polartest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(smallblocktest
${OPENAIR1_DIR}/PHY/CODING/TESTBENCH/smallblocktest.c
@@ -2687,7 +2657,7 @@ target_link_libraries(smallblocktest PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(smallblocktest PRIVATE asn1_nr_rrc)
target_link_libraries(smallblocktest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(ldpctest
@@ -2705,7 +2675,7 @@ target_link_libraries(ldpctest PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(ldpctest PRIVATE asn1_nr_rrc)
target_link_libraries(ldpctest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_dlschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c
@@ -2718,7 +2688,7 @@ target_link_libraries(nr_dlschsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_pbchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pbchsim.c
@@ -2730,7 +2700,7 @@ target_link_libraries(nr_pbchsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
#PUCCH ---> Prashanth
@@ -2745,7 +2715,7 @@ target_link_libraries(nr_pucchsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_dlsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlsim.c
@@ -2760,10 +2730,10 @@ add_executable(nr_dlsim
${SHLIB_LOADER_SOURCES}
)
target_link_libraries(nr_dlsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl
)
target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_compile_definitions(nr_dlsim PUBLIC -DPHYSICAL_SIMULATOR)
add_executable(nr_prachsim
@@ -2778,9 +2748,9 @@ add_executable(nr_prachsim
${T_SOURCE}
${SHLIB_LOADER_SOURCES})
target_link_libraries(nr_prachsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl)
target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_ulschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulschsim.c
@@ -2794,7 +2764,7 @@ target_link_libraries(nr_ulschsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_ulsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c
@@ -2814,11 +2784,11 @@ add_dependencies( nr_ulsim ldpc_offload)
endif ()
target_link_libraries(nr_ulsim PRIVATE
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl
)
target_compile_definitions(nr_ulsim PUBLIC -DPHYSICAL_SIMULATOR)
target_link_libraries(nr_ulsim PRIVATE asn1_nr_rrc)
target_link_libraries(nr_ulsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
@@ -2836,7 +2806,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
-Wl,--start-group SIMU_COMMON SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU ITTI -Wl,--end-group
pthread m rt CONFIG_LIB ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB} dl
)
target_link_libraries(${myExe} PRIVATE asn1_nr_rrc)
target_link_libraries(${myExe} PRIVATE asn1_nr_rrc asn1_lte_rrc)
endforeach(myExe)
@@ -2874,7 +2844,7 @@ if (${T_TRACER})
syncsim nr_ulsim nr_dlsim nr_dlschsim nr_pbchsim nr_pucchsim
nr_ulschsim ldpctest polartest smallblocktest cu_test du_test
#all "add_library" definitions
ITTI RRC_LIB nr_rrc s1ap x2ap M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB f1ap
ITTI lte_rrc nr_rrc s1ap x2ap M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB f1ap
params_libconfig oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif oai_iqplayer
oai_eth_transpro oai_mobipass coding HASHTABLE UTIL OMG_SUMO
SECU_OSA SECU_CN SCHED_LIB SCHED_NR_LIB SCHED_RU_LIB SCHED_UE_LIB SCHED_NR_UE_LIB default_sched remote_sched RAL
@@ -9,7 +9,7 @@ set(TELNETSRV_SOURCE
add_library(telnetsrv MODULE ${TELNETSRV_SOURCE} )
target_link_libraries(telnetsrv PRIVATE history ncurses form )
target_link_libraries(telnetsrv PRIVATE asn1_nr_rrc)
target_link_libraries(telnetsrv PRIVATE asn1_nr_rrc asn1_lte_rrc)
foreach(TELNETLIB enb gnb 4Gue 5Gue)
set(TELNETLIB_SRCS "")
@@ -23,7 +23,7 @@ foreach(TELNETLIB enb gnb 4Gue 5Gue)
message("Add ${TELNETLIB} specific telnet functions in libtelnetsrv_${TELNETLIB}.so")
add_library(telnetsrv_${TELNETLIB} MODULE ${TELNETLIB_SRCS} )
add_dependencies(telnetsrv telnetsrv_${TELNETLIB})
target_link_libraries(telnetsrv_${TELNETLIB} PRIVATE asn1_nr_rrc)
target_link_libraries(telnetsrv_${TELNETLIB} PRIVATE asn1_nr_rrc asn1_lte_rrc)
install(TARGETS telnetsrv_${TELNETLIB} DESTINATION bin)
else()
message("No specific telnet functions for ${TELNETLIB}")
+1 -1
View File
@@ -3,5 +3,5 @@ add_subdirectory(MESSAGES)
add_library(E1AP e1ap.c)
target_link_libraries(E1AP
PUBLIC asn1_e1ap
PRIVATE UTIL asn1_nr_rrc)
PRIVATE UTIL asn1_nr_rrc asn1_lte_rrc)
target_include_directories(E1AP PUBLIC ${CMAKE_CURRENT_DIR})
+1
View File
@@ -1 +1,2 @@
add_subdirectory(LTE)
add_subdirectory(NR)
+1
View File
@@ -0,0 +1 @@
add_subdirectory(MESSAGES)
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
set(LTE_RRC_VERSION 15 6 0)
make_version(LTE_RRC_cc ${LTE_RRC_VERSION})
string(REPLACE ";" "." LTE_RRC_RELEASE "${LTE_RRC_VERSION}")
if(LTE_RRC_RELEASE VERSION_EQUAL "15.6.0")
include(ASN.1/lte-rrc-15.6.0.cmake)
else()
message(FATAL_ERROR "unknown LTE_RRC_RELEASE ${LTE_RRC_RELEASE}")
endif()
add_custom_command(OUTPUT ${lte_rrc_source} ${lte_rrc_headers}
COMMAND ASN1C_PREFIX=LTE_ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}
COMMENT "Generating LTE RRC source file from ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}"
)
add_library(asn1_lte_rrc ${lte_rrc_source})
target_include_directories(asn1_lte_rrc PUBLIC "${CMAKE_CURRENT_BINARY_DIR}")
target_compile_options(asn1_lte_rrc
PRIVATE -DASN_DISABLE_OER_SUPPORT -w
PUBLIC -DLTE_RRC_VERSION=${LTE_RRC_RELEASE})
+46
View File
@@ -0,0 +1,46 @@
This directory contains the necessary schema files to generate all the LTE configuration data structures based on the ASN.1 RRC
source code from the 36.331 RRC specifications. These structures are used by MAC and PHY for configuration purposes.
It contains the following files
```
README.txt : This file
ASN.1 : Directory to place asn1c package
ASN.1/extract_asn1_from_spec.pl : Pearl script to extract ASN.1 source from 36311-860.txt
ASN.1/*.asn1 : Extracted ASN.1 sources
ASN.1/*.cmake : Definitions of which files the corresponding *.asn1 will generate
CMakeLists.txt : The "driver" to generate and build generated source files at build time
```
Instructions to build data structures from ASN1 sources
The asn.1 files have already been built using the `extract_asn1_from_spec.pl`
Pearl script. This should be used again if a newer version of the RRC spec is
used to synthesize the data structures and encoding/decoding routines. To do
this:
1. use Microsoft WORD to generate a text version of the 3GPP 36.331 document
2. run the script on the text file to generate the `*.asn1` file
You should install the asn1c utility using `./build_oai -I`.
Run
```bash
ASN1C_PREFIX=LTE_ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D <dir> <asn.1-file>
```
to generate the files that result from the asn.1-file. Create an `ASN.1/*.cmake` file
with the following structure:
```
set(LTE_RRC_GRAMMAR <path-to-asn.1-file>)
set(lte_rrc_source
<list-of-c-files>
)
set(lte_rrc_headers
<list-of-h-files>
)
```
Modify the CMakeLists.txt to point to the newly generated .cmake file. On the
next LTE RRC compilation, the source files will be automatically generated from
the ASN.1 file and built henceforth.
-45
View File
@@ -1,45 +0,0 @@
This directory contains the necessary scripts and Makefiles to generate all the LTE configuration data structures based on the ASN.1 RRC
source code from the 36.331 RRC specifications. These structures are used by MAC and PHY for configuration purposes.
It contains the following files
README.txt : This file
Makefile.inc : Makefile to be included by OpenAir compilation scripts for LTE Data structures
asn1c : Directory to place asn1c package
asn1c/ASN1_files/36331-860.txt : Text file containing 36.331-860 specifications used to generate ASN1 source
asn1c/ASN1_files/extract_asn1_from_spec.pl : Pearl script to extract ASN.1 source from 36311-860.txt
asn1c/ASN1_files/EUTRA-RRC-Definitions.asn : First ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-InterNodeDefinitions.asn .asn : Second ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-UE-Variables.asn : Third ASN.1 source (generated from above .txt file)
Instructions to build data structures from ASN1 sources
The three files have already been built using the extract_asn1_from_spec.pl Pearl script. This should be used again if a newer version
of the RRC spec is used to synthesize the data structures and encoding/decoding routines. To do this:
1. use Microsoft WORD to generate a text version of the 3GPP 36.331 document
2. run the script on the text file to generate the three files.
Now download the asn1c utility (version 0.9.22) from
http://lionet.info/asn1c/blog/
or via svn from sourceforge (version 0.9.22)
For version 0.9.2:
svn co https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk asn1c
For the latest version:
svn co https://github.com/vlm/asn1c/trunk asn1c
and put it in the asn1c directory (you should have a second asn1c directory now). Compile it and install it locally
(or make sure your $PATH can find the asn1c executable) according to the instructions given (see INSTALL file)
by the author. We have validated that 0.9.22 works on Linux and Cygwin. To generate the data structures do the following from the
current directory
asn1c -gen-PER -fcompound-names -fnative-types -fskeletons-copy ./asn1c/ASN1_files/EUTRA-RRC-Definitions.asn
Note this only uses one of the three files from 36.331 (the core of the RRC). After this step you should have many .c and .h files
and one new Makefile, the latter of which is not used.
If you want to compile the ASN1 sources as a kernel module you need to apply the patch asn1_patch
patch -p1 < asn1_patch
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,121 +0,0 @@
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1,
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
@@ -1,149 +0,0 @@
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
}
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, spare6, spare5, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
{..., nonCriticalExtension ABSENT}),
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...,
[[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
SystemInformationBlockType1-v890-IEs) OPTIONAL,
sourceOtherConfig-r9 OtherConfig-r9
]],
[[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
]]
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...,
[[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
]]
}
CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
CandidateCellInfo-r10 ::= SEQUENCE {
-- cellIdentification
physCellId-r10 PhysCellId,
dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
-- available measurement results
rsrpResult-r10 RSRP-Range OPTIONAL,
rsrqResult-r10 RSRQ-Range OPTIONAL,
...
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
@@ -1,165 +0,0 @@
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
}
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, spare6, spare5, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
}
HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
}
HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
{..., nonCriticalExtension ABSENT}),
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...,
[[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
SystemInformationBlockType1-v890-IEs) OPTIONAL,
sourceOtherConfig-r9 OtherConfig-r9
]],
[[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
]]
}
AS-Config-v9e0 ::= SEQUENCE {
sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...,
[[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
]]
}
CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
CandidateCellInfo-r10 ::= SEQUENCE {
-- cellIdentification
physCellId-r10 PhysCellId,
dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
-- available measurement results
rsrpResult-r10 RSRP-Range OPTIONAL,
rsrqResult-r10 RSRQ-Range OPTIONAL,
...,
[[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
]]
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
@@ -1,310 +0,0 @@
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
}
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, rel11, rel12, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
}
HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
}
HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL
}
HandoverPreparationInformation-v1130-IEs ::= SEQUENCE {
as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL
}
HandoverPreparationInformation-v1250-IEs ::= SEQUENCE {
ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3
as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
SCG-Config-r12 ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
scg-Config-r12 SCG-Config-r12-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
SCG-Config-r12-IEs ::= SEQUENCE {
scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
SCG-ConfigInfo-r12 ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
SCG-ConfigInfo-r12-IEs ::= SEQUENCE {
radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL,
sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL,
measGapConfig-r12 MeasGapConfig OPTIONAL,
powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL,
scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL,
scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL,
mbmsInterestIndication-r12 OCTET STRING (CONTAINING
MBMSInterestIndication-r11) OPTIONAL,
measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL,
drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL,
drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL,
sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL,
sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL,
p-Max-r12 P-Max OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12
DRB-InfoSCG-r12 ::= SEQUENCE {
eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
drb-Identity-r12 DRB-Identity,
drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup
...
}
SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12
Cell-ToAddMod-r12 ::= SEQUENCE {
sCellIndex-r12 SCellIndex-r10,
cellIdentification-r12 SEQUENCE {
physCellId-r12 PhysCellId,
dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9
} OPTIONAL, -- Cond SCellAdd
measResultCellToAdd-r12 SEQUENCE {
rsrpResult-r12 RSRP-Range,
rsrqResult-r12 RSRQ-Range
} OPTIONAL, -- Cond SCellAdd2
...
}
MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12
MeasResultServCellSCG-r12 ::= SEQUENCE {
servCellId-r12 ServCellIndex-r10,
measResultSCell-r12 SEQUENCE {
rsrpResultSCell-r12 RSRP-Range,
rsrqResultSCell-r12 RSRQ-Range
},
...
}
SCG-ConfigRestrictInfo-r12 ::= SEQUENCE {
maxSCH-TB-BitsDL-r12 INTEGER (1..100),
maxSCH-TB-BitsUL-r12 INTEGER (1..100)
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioPagingInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioPagingInformation-r12-IEs ::= SEQUENCE {
ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
{..., nonCriticalExtension ABSENT}),
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...,
[[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
SystemInformationBlockType1-v890-IEs) OPTIONAL,
sourceOtherConfig-r9 OtherConfig-r9
-- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer
-- syntax should support receiving an AS-Config not including this extension addition group
-- e.g. from a legacy source eNB
]],
[[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
]],
[[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL
]]
}
AS-Config-v9e0 ::= SEQUENCE {
sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
}
AS-Config-v1250 ::= SEQUENCE {
sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL,
sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL,
sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
AS-Context-v1130 ::= SEQUENCE {
idc-Indication-r11 OCTET STRING (CONTAINING
InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2
mbmsInterestIndication-r11 OCTET STRING (CONTAINING
MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2
powerPrefIndication-r11 OCTET STRING (CONTAINING
UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2
...,
[[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING
SidelinkUEInformation-r12) OPTIONAL -- Cond HO2
]]
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...,
[[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
]]
}
CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
CandidateCellInfo-r10 ::= SEQUENCE {
-- cellIdentification
physCellId-r10 PhysCellId,
dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
-- available measurement results
rsrpResult-r10 RSRP-Range OPTIONAL,
rsrqResult-r10 RSRQ-Range OPTIONAL,
...,
[[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
]],
[[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL
]]
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,47 +0,0 @@
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure RSRP-Range OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
END
@@ -1,84 +0,0 @@
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList-r10
}
LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END
@@ -1,85 +0,0 @@
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END
@@ -1,131 +0,0 @@
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarConnEstFailReport-r11 ::= SEQUENCE {
connEstFailReport-r11 ConnEstFailReport-r11,
plmn-Identity-r11 PLMN-Identity
}
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasConfig-r11 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasConfig-r12 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10,
targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
VarLogMeasReport-r11 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-IdentityList-r11 PLMN-IdentityList3-r11,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL,
allowInterruptions-r11 BOOLEAN OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
measId-v1250 MeasId-v1250 OPTIONAL,
cellsTriggeredList CellsTriggeredList OPTIONAL,
csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarRLF-Report-r11 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-IdentityList-r11 PLMN-IdentityList3-r11
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END