Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常顺宇
OpenXG-RAN
Commits
5b7ae122
Commit
5b7ae122
authored
Feb 08, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix develop merge conflicts
parent
03b52cec
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
223 additions
and
103 deletions
+223
-103
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+50
-50
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+3
-1
openair2/LAYER2/NR_MAC_UE/mac_vars.c
openair2/LAYER2/NR_MAC_UE/mac_vars.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+31
-30
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+8
-6
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+129
-14
No files found.
cmake_targets/CMakeLists.txt
View file @
5b7ae122
...
...
@@ -316,7 +316,7 @@ if (CUDA_FOUND)
set
(
CUDA_CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
${
C_FLAGS_PROCESSOR
}
-Wno-packed-bitfield-compat -fPIC -Wall -fno-strict-aliasing -rdynamic -std=c++11 -D CUDA_FLAG"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -D
${
MKVER
}
-D CUDA_FLAG"
)
...
...
@@ -483,7 +483,7 @@ add_custom_target (
DEPENDS
${
NR_RRC_GRAMMAR
}
)
add_library
(
NR_RRC_LIB
${
nr_rrc_h
}
${
nr_rrc_source
}
add_library
(
NR_RRC_LIB
${
nr_rrc_h
}
${
nr_rrc_source
}
${
OPENAIR2_DIR
}
/RRC/NR/MESSAGES/asn1_msg.c
)
add_dependencies
(
NR_RRC_LIB nr_rrc_flag
)
...
...
@@ -514,7 +514,7 @@ file(GLOB S1AP_source ${S1AP_C_DIR}/*.c)
add_custom_target
(
s1ap_flag ALL
${
OPENAIR_CMAKE
}
/tools/make_asn1c_includes.sh
"
${
S1AP_C_DIR
}
"
"
${
S1AP_ASN_DIR
}
/
${
S1AP_ASN_FILES
}
"
"S1AP_"
-fno-include-deps
DEPENDS
"
${
S1AP_ASN_DIR
}
/
${
S1AP_ASN_FILES
}
"
DEPENDS
"
${
S1AP_ASN_DIR
}
/
${
S1AP_ASN_FILES
}
"
)
add_library
(
S1AP_LIB
...
...
@@ -568,7 +568,7 @@ file(GLOB NGAP_source ${NGAP_C_DIR}/*.c)
add_custom_target
(
ngap_flag ALL
${
OPENAIR_CMAKE
}
/tools/make_asn1c_includes.sh
"
${
NGAP_C_DIR
}
"
"
${
NGAP_ASN_DIR
}
/
${
NGAP_ASN_FILES
}
"
"NGAP_"
-fno-include-deps
DEPENDS
"
${
NGAP_ASN_DIR
}
/
${
NGAP_ASN_FILES
}
"
DEPENDS
"
${
NGAP_ASN_DIR
}
/
${
NGAP_ASN_FILES
}
"
)
add_library
(
NGAP_LIB
...
...
@@ -1468,11 +1468,11 @@ add_dependencies(SCHED_UE_LIB rrc_flag)
set
(
SCHED_SRC_NR_UE
${
OPENAIR1_DIR
}
/SCHED_NR_UE/phy_procedures_nr_ue.c
${
OPENAIR1_DIR
}
/SCHED_NR/phy_procedures_nr_common.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/fapi_nr_ue_l1.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/fapi_nr_ue_l1.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/phy_frame_config_nr_ue.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/harq_nr.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/pucch_uci_ue_nr.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/pucch_power_control_ue_nr.c
${
OPENAIR1_DIR
}
/SCHED_NR_UE/pucch_power_control_ue_nr.c
)
add_library
(
SCHED_NR_UE_LIB
${
SCHED_SRC_NR_UE
}
)
...
...
@@ -1783,7 +1783,7 @@ set(PHY_SRC_UE
${
PHY_POLARSRC
}
${
PHY_SMALLBLOCKSRC
}
${
PHY_NR_CODINGIF
}
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/pucch_rx.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/pucch_rx.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_uci_tools_common.c
)
set
(
PHY_NR_UE_SRC
...
...
@@ -1962,7 +1962,7 @@ set(NR_RLC_SRC
${
OPENAIR2_DIR
}
/LAYER2/nr_rlc/nr_rlc_sdu.c
${
OPENAIR2_DIR
}
/LAYER2/nr_rlc/nr_rlc_ue_manager.c
)
set
(
NR_PDCP_SRC
${
OPENAIR2_DIR
}
/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
${
OPENAIR2_DIR
}
/LAYER2/nr_pdcp/nr_pdcp_ue_manager.c
...
...
@@ -1991,7 +1991,7 @@ set(L2_SRC
${
RRC_DIR
}
/L2_interface_common.c
${
RRC_DIR
}
/L2_interface_ue.c
)
set
(
L2_RRC_SRC
${
OPENAIR2_DIR
}
/LAYER2/openair2_proc.c
# ${RRC_DIR}/rrc_UE.c
...
...
@@ -2037,14 +2037,14 @@ set(L2_SRC_UE
${
RRC_DIR
}
/L2_interface_common.c
${
RRC_DIR
}
/L2_interface_ue.c
)
set
(
L2_RRC_SRC_UE
${
RRC_DIR
}
/rrc_UE.c
${
RRC_DIR
}
/rrc_common.c
${
RRC_DIR
}
/L2_interface_common.c
${
RRC_DIR
}
/L2_interface_ue.c
)
)
set
(
NR_L2_SRC_UE
${
NR_RLC_SRC
}
${
NR_PDCP_SRC
}
...
...
@@ -2102,7 +2102,7 @@ set (MAC_SRC_UE
${
MAC_DIR
}
/rar_tools_ue.c
${
MAC_DIR
}
/config_ue.c
)
set
(
MAC_NR_SRC_UE
${
NR_UE_PHY_INTERFACE_DIR
}
/NR_IF_Module.c
${
NR_UE_MAC_DIR
}
/config_ue.c
...
...
@@ -2165,7 +2165,7 @@ add_library(L2_LTE_NR
${
ENB_APP_SRC
}
${
MCE_APP_SRC
}
)
add_dependencies
(
L2_NR rrc_flag nr_rrc_flag s1ap_flag x2_flag
)
add_library
(
L2_UE
...
...
@@ -2706,7 +2706,7 @@ add_library(SIMU_COMMON
# Simulation library
##########################
set
(
SIMUSRC
set
(
SIMUSRC
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_tv_channel.c
...
...
@@ -2769,14 +2769,14 @@ add_library(nrscope MODULE ${XFORMS_SOURCE_NR})
target_link_libraries
(
nrscope
${
XFORMS_LIBRARIES
}
)
add_library
(
rfsimulator MODULE
add_library
(
rfsimulator MODULE
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/simulator.c
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/apply_channelmod.c
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/new_channel_sim.c
)
target_link_libraries
(
rfsimulator SIMU_COMMON
${
ATLAS_LIBRARIES
}
)
add_library
(
oai_iqplayer MODULE
add_library
(
oai_iqplayer MODULE
${
OPENAIR_TARGETS
}
/ARCH/iqplayer/iqplayer_lib.c
)
set
(
CMAKE_MODULE_PATH
"
${
OPENAIR_DIR
}
/cmake_targets/tools/MODULES"
"
${
CMAKE_MODULE_PATH
}
"
)
...
...
@@ -2843,7 +2843,7 @@ add_executable(measurement_display
${
OPENAIR_DIR
}
/common/utils/threadPool/measurement_display.c
)
target_link_libraries
(
measurement_display minimal_lib
)
add_executable
(
test5Gnas
add_executable
(
test5Gnas
${
OPENAIR_DIR
}
/openair3/TEST/test5Gnas.c
)
target_link_libraries
(
test5Gnas LIB_5GNAS_GNB CONFIG_LIB minimal_lib
)
...
...
@@ -2884,11 +2884,11 @@ add_dependencies(lte-softmodem rrc_flag s1ap_flag x2_flag oai_iqplayer)
target_link_libraries
(
lte-softmodem
-Wl,--start-group
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB X2AP_LIB X2AP_ENB M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_LIB SCHED_RU_LIB
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB X2AP_LIB X2AP_ENB M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU LFDS L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
${
FSPT_MSG_LIB
}
${
PROTO_AGENT_LIB
}
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem pthread m
${
CONFIG_LIB
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
sctp
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem
${
LIB_LMS_LIBRARIES
}
)
...
...
@@ -2925,7 +2925,7 @@ add_dependencies(ocp-enb rrc_flag s1ap_flag x2_flag oai_iqplayer coding params_l
target_link_libraries
(
ocp-enb
-Wl,--start-group
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB X2AP_LIB X2AP_ENB M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_LIB SCHED_RU_LIB
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB X2AP_LIB X2AP_ENB M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU LFDS L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB LFDS7 SIMU_COMMON
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
${
FSPT_MSG_LIB
}
${
PROTO_AGENT_LIB
}
-Wl,--end-group z dl
)
...
...
@@ -3038,7 +3038,7 @@ add_executable(nr-softmodem
target_link_libraries
(
nr-softmodem
-Wl,--start-group
UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU LFDS NR_GTPV1U SECU_CN SECU_OSA
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
RRC_LIB NR_RRC_LIB
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
RRC_LIB NR_RRC_LIB
NGAP_LIB NGAP_GNB S1AP_LIB S1AP_ENB L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
${
PROTO_AGENT_LIB
}
${
FSPT_MSG_LIB
}
-Wl,--end-group z dl
)
...
...
@@ -3078,7 +3078,7 @@ add_executable(ocp-gnb
target_link_libraries
(
ocp-gnb
-Wl,--start-group
UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU LFDS NR_GTPV1U SECU_CN SECU_OSA
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
RRC_LIB NR_RRC_LIB
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
RRC_LIB NR_RRC_LIB
NGAP_LIB NGAP_GNB S1AP_LIB S1AP_ENB L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB SIMU_COMMON
-Wl,--end-group z dl
)
...
...
@@ -3154,7 +3154,7 @@ target_link_libraries (dlsim_tm4
pthread m rt
${
CONFIG_LIB
}
${
ATLAS_LIBRARIES
}
${
T_LIB
}
)
add_executable
(
polartest
add_executable
(
polartest
${
OPENAIR1_DIR
}
/PHY/CODING/TESTBENCH/polartest.c
${
OPENAIR_DIR
}
/common/utils/backtrace.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
...
...
@@ -3167,7 +3167,7 @@ target_link_libraries(polartest
m pthread
${
ATLAS_LIBRARIES
}
dl
)
add_executable
(
smallblocktest
add_executable
(
smallblocktest
${
OPENAIR1_DIR
}
/PHY/CODING/TESTBENCH/smallblocktest.c
${
OPENAIR_DIR
}
/common/utils/backtrace.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
...
...
@@ -3185,17 +3185,17 @@ target_link_libraries(smallblocktest
# temp_C_flag = CMAKE_C_FLAGS
#set(CMAKE_C_FLAGS " ")
set
(
TEMP_C_FLAG
${
CMAKE_C_FLAGS
}
)
set
(
TEMP_C_FLAG
${
CMAKE_C_FLAGS
}
)
set
(
CMAKE_C_FLAGS
${
CUDA_CMAKE_C_FLAGS
}
)
set
(
TEMP_CXX_FLAG
${
CMAKE_CXX_FLAGS
}
)
set
(
TEMP_CXX_FLAG
${
CMAKE_CXX_FLAGS
}
)
set
(
CMAKE_CXX_FLAGS
${
CUDA_CMAKE_CXX_FLAGS
}
)
if
(
CUDA_FOUND
)
###################################################
# For CUDA library
# For CUDA library
###################################################
CUDA_ADD_LIBRARY
(
LDPC_CU
CUDA_ADD_LIBRARY
(
LDPC_CU
${
OPENAIR1_DIR
}
/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu
)
CUDA_ADD_CUFFT_TO_TARGET
(
LDPC_CU
)
...
...
@@ -3205,14 +3205,14 @@ if (CUDA_FOUND)
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
ldpctest -ldl
-Wl,--start-group
LDPC_CU UTIL SIMU PHY_NR CONFIG_LIB
-Wl,--start-group
LDPC_CU UTIL SIMU PHY_NR CONFIG_LIB
-Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
dl
)
else
(
CUDA_FOUND
)
add_executable
(
ldpctest
add_executable
(
ldpctest
${
PHY_NR_CODINGIF
}
${
OPENAIR1_DIR
}
/PHY/CODING/TESTBENCH/ldpctest.c
${
T_SOURCE
}
...
...
@@ -3224,21 +3224,21 @@ set (CMAKE_C_FLAGS ${TEMP_C_FLAG})
set
(
CMAKE_CXX_FLAGS
${
TEMP_CXX_FLAG
}
)
# add_executable(ldpctest
# add_executable(ldpctest
# ${PHY_NR_CODINGIF}
# ${OPENAIR1_DIR}/PHY/CODING/TESTBENCH/ldpctest.c
# ${T_SOURCE}
# ${SHLIB_LOADER_SOURCES}
# )
add_dependencies
(
ldpctest ldpc_orig ldpc_optim ldpc_optim8seg ldpc
)
add_dependencies
(
ldpctest ldpc_orig ldpc_optim ldpc_optim8seg ldpc
)
target_link_libraries
(
ldpctest
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
dl
)
add_executable
(
nr_dlschsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/dlschsim.c
add_executable
(
nr_dlschsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/dlschsim.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/common/utils/utils.c
...
...
@@ -3247,13 +3247,13 @@ add_executable(nr_dlschsim
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_dlschsim
target_link_libraries
(
nr_dlschsim
-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_LIB
}
dl
)
add_executable
(
nr_pbchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pbchsim.c
add_executable
(
nr_pbchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pbchsim.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/common/utils/utils.c
...
...
@@ -3268,8 +3268,8 @@ target_link_libraries(nr_pbchsim
)
#PUCCH ---> Prashanth
add_executable
(
nr_pucchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pucchsim.c
add_executable
(
nr_pucchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pucchsim.c
${
OPENAIR_DIR
}
/common/utils/backtrace.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/common/utils/system.c
...
...
@@ -3297,7 +3297,7 @@ add_executable(nr_dlsim
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
)
target_link_libraries
(
nr_dlsim
-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_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
...
...
@@ -3305,7 +3305,7 @@ target_link_libraries(nr_dlsim
target_compile_definitions
(
nr_dlsim PUBLIC -DPHYSICAL_SIMULATOR
)
add_executable
(
nr_prachsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/prachsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/prachsim.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
...
...
@@ -3317,7 +3317,7 @@ add_executable(nr_prachsim
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_prachsim
target_link_libraries
(
nr_prachsim
-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_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
...
...
@@ -3357,7 +3357,7 @@ target_link_libraries(nr_ulsim
target_compile_definitions
(
nr_ulsim PUBLIC -DPHYSICAL_SIMULATOR
)
foreach
(
myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim
)
add_executable
(
${
myExe
}
${
OPENAIR1_DIR
}
/SIMULATION/LTE_PHY/
${
myExe
}
.c
${
OPENAIR_DIR
}
/common/utils/threadPool/thread-pool.c
...
...
@@ -3374,7 +3374,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 LFDS
${
ITTI_LIB
}
LFDS7 -Wl,--end-group
pthread m rt
${
CONFIG_LIB
}
${
ATLAS_LIBRARIES
}
${
XFORMS_LIBRARIES
}
${
T_LIB
}
dl
)
endforeach
(
myExe
)
add_executable
(
test_epc_generate_scenario
...
...
@@ -3437,13 +3437,13 @@ endforeach(myExe)
if
(
${
T_TRACER
}
)
foreach
(
i
#all "add_executable" definitions (except tests, rb_tool, updatefw)
lte-softmodem lte-uesoftmodem nr-softmodem
lte-softmodem lte-uesoftmodem nr-softmodem
nr-uesoftmodem dlsim dlsim_tm4 dlsim_tm7 nr-ittisim
ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim
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_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB F1AP_LIB F1AP
ITTI RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB F1AP_LIB F1AP
params_libconfig oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif oai_iqplayer
oai_eth_transpro oai_mobipass tcp_bridge tcp_bridge_oai
coding FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO
...
...
@@ -3559,7 +3559,7 @@ add_executable(nr-ittisim
target_link_libraries
(
nr-ittisim
-Wl,--start-group
UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU LFDS NR_GTPV1U SECU_CN SECU_OSA
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_SIM_LIB
}
RRC_LIB NR_RRC_LIB
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_SIM_LIB
}
RRC_LIB NR_RRC_LIB
NGAP_LIB NGAP_GNB S1AP_LIB S1AP_ENB L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
${
PROTO_AGENT_LIB
}
${
FSPT_MSG_LIB
}
PHY_NR_UE SCHED_NR_UE_LIB NR_L2_UE
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
5b7ae122
...
...
@@ -917,7 +917,7 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
n_rnti
=
rel15
->
rnti
;
if
(
crc
==
n_rnti
)
{
LOG_
D
(
PHY
,
"(%i.%i) Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)
\n
"
,
LOG_
I
(
PHY
,
"(%i.%i) Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)
\n
"
,
proc
->
frame_rx
,
proc
->
nr_slot_rx
,
n_rnti
,
rel15
->
dci_format_options
[
k
],
CCEind
,
dci_length
,
*
(
unsigned
long
long
*
)
dci_estimation
);
dci_ind
->
SFN
=
proc
->
frame_rx
;
dci_ind
->
slot
=
proc
->
nr_slot_rx
;
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
5b7ae122
...
...
@@ -132,6 +132,7 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
}
switch
(
pdu_type
){
case
FAPI_NR_RX_PDU_TYPE_SIB
:
case
FAPI_NR_RX_PDU_TYPE_DLSCH
:
case
FAPI_NR_RX_PDU_TYPE_RAR
:
harq_pid
=
dlsch0
->
current_harq_pid
;
...
...
@@ -1208,7 +1209,8 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
nr_fill_rx_indication
(
&
rx_ind
,
FAPI_NR_RX_PDU_TYPE_DLSCH
,
eNB_id
,
ue
,
dlsch0
,
number_pdus
);
break
;
case
SI_PDSCH
:
rx_ind
.
rx_indication_body
[
0
].
pdu_type
=
FAPI_NR_RX_PDU_TYPE_SIB
;
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
&
rx_ind
,
proc
,
ue
,
eNB_id
);
nr_fill_rx_indication
(
&
rx_ind
,
FAPI_NR_RX_PDU_TYPE_SIB
,
eNB_id
,
ue
,
dlsch0
,
number_pdus
);
break
;
default:
break
;
...
...
openair2/LAYER2/NR_MAC_UE/mac_vars.c
View file @
5b7ae122
...
...
@@ -32,7 +32,7 @@
#include <stdint.h>
const
char
*
rnti_types
[]
=
{
"RNTI_new"
,
"RNTI_C"
,
"RNTI_RA"
,
"NR_RNTI_P"
,
"NR_RNTI_CS"
,
"NR_RNTI_TC"
};
const
char
*
rnti_types
[]
=
{
"RNTI_new"
,
"RNTI_C"
,
"RNTI_RA"
,
"NR_RNTI_P"
,
"NR_RNTI_CS"
,
"NR_RNTI_TC"
,
"NR_RNTI_SP_CSI"
,
"NR_RNTI_SI"
};
const
char
*
dci_formats
[]
=
{
"1_0"
,
"1_1"
,
"2_0"
,
"2_1"
,
"2_2"
,
"2_3"
,
"0_0"
,
"0_1"
};
// table_7_3_1_1_2_2_3_4_5 contains values for number of layers and precoding information for tables 7.3.1.1.2-2/3/4/5 from TS 38.212 subclause 7.3.1.1.2
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
5b7ae122
...
...
@@ -35,6 +35,7 @@
/* RRC */
#include "NR_RACH-ConfigCommon.h"
#include "RRC/NR_UE/rrc_proto.h"
/* PHY */
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
...
...
@@ -514,7 +515,7 @@ uint8_t nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources,
uint8_t
sdu_lcids
[
NB_RB_MAX
]
=
{
0
};
uint16_t
sdu_lengths
[
NB_RB_MAX
]
=
{
0
};
int
TBS_bytes
=
848
,
header_length_total
=
0
,
num_sdus
,
offset
,
mac_ce_len
;
int
num_sdus
,
offset
=
0
,
preambleTransMax
;
// Delay init RA procedure to allow the convergence of the IIR filter on PRACH noise measurements at gNB side
if
(
!
prach_resources
->
init_msg1
)
{
...
...
@@ -532,35 +533,20 @@ uint8_t nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources,
LOG_D
(
MAC
,
"RA not active. Checking for data to transmit from upper layers...
\n
"
);
payload
=
(
uint8_t
*
)
&
mac
->
CCCH_pdu
.
payload
;
mac_ce_len
=
0
;
uint8_t
TBS_max
=
8
+
sizeof
(
NR_MAC_SUBHEADER_SHORT
)
+
sizeof
(
NR_MAC_SUBHEADER_SHORT
);
payload
=
(
uint8_t
*
)
mac
->
CCCH_pdu
.
payload
;
num_sdus
=
1
;
post_padding
=
1
;
sdu_lcids
[
0
]
=
lcid
;
if
(
0
){
// initialisation by RRC
// CCCH PDU
// size_sdu = (uint16_t) mac_rrc_data_req_ue(mod_id,
// CC_id,
// frame,
// CCCH,
// 1,
// mac_sdus,
// gNB_id,
// 0);
LOG_D
(
MAC
,
"[UE %d] Frame %d: Requested RRCConnectionRequest, got %d bytes
\n
"
,
mod_id
,
frame
,
size_sdu
);
}
else
{
// fill ulsch_buffer with random data
for
(
int
i
=
0
;
i
<
TBS_bytes
;
i
++
){
mac_sdus
[
i
]
=
(
unsigned
char
)
(
lrand48
()
&
0xff
);
}
//Sending SDUs with size 1
//Initialize elements of sdu_lcids and sdu_lengths
sdu_lcids
[
0
]
=
lcid
;
sdu_lengths
[
0
]
=
TBS_bytes
-
3
-
post_padding
-
mac_ce_len
;
header_length_total
+=
2
+
(
sdu_lengths
[
0
]
>=
128
);
size_sdu
+=
sdu_lengths
[
0
];
}
// initialisation by RRC
// CCCH PDU
size_sdu
=
(
uint16_t
)
nr_mac_rrc_data_req_ue
(
mod_id
,
CC_id
,
gNB_id
,
frame
,
CCCH
,
mac_sdus
);
sdu_lengths
[
0
]
=
size_sdu
;
LOG_D
(
MAC
,
"[UE %d] Frame %d: Requested RRCConnectionRequest, got %d bytes
\n
"
,
mod_id
,
frame
,
size_sdu
);
if
(
size_sdu
>
0
)
{
...
...
@@ -589,12 +575,27 @@ uint8_t nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources,
post_padding
,
0
);
AssertFatal
(
TBS_max
>
offset
,
"Frequency resources are not enough for Msg3!
\n
"
);
// Padding: fill remainder with 0
if
(
post_padding
>
0
){
for
(
int
j
=
0
;
j
<
(
TBS_
bytes
-
offset
);
j
++
)
payload
[
offset
+
j
]
=
0
;
// mac_pdu[offset + j] = 0;
for
(
int
j
=
0
;
j
<
(
TBS_
max
-
offset
);
j
++
)
payload
[
offset
+
j
]
=
0
;
}
}
}
LOG_D
(
MAC
,
"size_sdu = %i
\n
"
,
size_sdu
);
LOG_D
(
MAC
,
"offset = %i
\n
"
,
offset
);
for
(
int
k
=
0
;
k
<
TBS_max
;
k
++
)
{
LOG_D
(
MAC
,
"(%i): %i
\n
"
,
k
,
prach_resources
->
Msg3
[
k
]);
}
// Msg3 was initialized with TBS_max bytes because the mac->RA_Msg3_size will only be known after
// receiving Msg2 (which contains the Msg3 resource reserve).
// Msg3 will be transmitted with mac->RA_Msg3_size bytes, removing unnecessary 0s.
mac
->
ulsch_pdu
.
Pdu_size
=
TBS_max
;
memcpy
(
mac
->
ulsch_pdu
.
payload
,
prach_resources
->
Msg3
,
TBS_max
);
}
else
if
(
ra
->
RA_window_cnt
!=
-
1
)
{
// RACH is active
LOG_D
(
MAC
,
"In %s [%d.%d] RA is active: RA window count %d, RA backoff count %d
\n
"
,
__FUNCTION__
,
frame
,
nr_slot_tx
,
ra
->
RA_window_cnt
,
ra
->
RA_backoff_cnt
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
5b7ae122
...
...
@@ -584,7 +584,8 @@ void nr_get_Msg3alloc(module_id_t module_id,
NR_RA_t
*
ra
)
{
// msg3 is schedulend in mixed slot in the following TDD period
// for now we consider a TBS of 18 bytes
uint16_t
msg3_nb_rb
=
8
+
sizeof
(
NR_MAC_SUBHEADER_SHORT
)
+
sizeof
(
NR_MAC_SUBHEADER_SHORT
);
// sdu has 6 or 8 bytes
int
mu
=
ubwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
int
StartSymbolIndex
,
NrOfSymbols
,
startSymbolAndLength
,
temp_slot
;
...
...
@@ -614,21 +615,22 @@ void nr_get_Msg3alloc(module_id_t module_id,
uint16_t
*
vrb_map_UL
=
&
RC
.
nrmac
[
module_id
]
->
common_channels
[
CC_id
].
vrb_map_UL
[
ra
->
Msg3_slot
*
MAX_BWP_SIZE
];
const
uint16_t
bwpSize
=
NRRIV2BW
(
ubwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
/* search 18 free RBs */
/* search msg3_nb_rb free RBs */
int
rbSize
=
0
;
int
rbStart
=
0
;
while
(
rbSize
<
18
)
{
while
(
rbSize
<
msg3_nb_rb
)
{
rbStart
+=
rbSize
;
/* last iteration rbSize was not enough, skip it */
rbSize
=
0
;
while
(
rbStart
<
bwpSize
&&
vrb_map_UL
[
rbStart
])
rbStart
++
;
AssertFatal
(
rbStart
<
bwpSize
-
18
,
"no space to allocate Msg 3 for RA!
\n
"
);
AssertFatal
(
rbStart
<
bwpSize
-
msg3_nb_rb
,
"no space to allocate Msg 3 for RA!
\n
"
);
while
(
rbStart
+
rbSize
<
bwpSize
&&
!
vrb_map_UL
[
rbStart
+
rbSize
]
&&
rbSize
<
18
)
&&
rbSize
<
msg3_nb_rb
)
rbSize
++
;
}
ra
->
msg3_nb_rb
=
18
;
ra
->
msg3_nb_rb
=
msg3_nb_rb
;
ra
->
msg3_first_rb
=
rbStart
;
}
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
5b7ae122
...
...
@@ -413,6 +413,18 @@ NR_UE_RRC_INST_t* openair_rrc_top_init_ue_nr(char* rrc_config_path){
for
(
nr_ue
=
0
;
nr_ue
<
NB_NR_UE_INST
;
nr_ue
++
){
// fill UE-NR-Capability @ UE-CapabilityRAT-Container here.
NR_UE_rrc_inst
[
nr_ue
].
selected_plmn_identity
=
1
;
// TODO: Put the appropriate list of SIBs
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
buf
=
CALLOC
(
1
,
4
);
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
buf
[
0
]
=
SIB2
|
SIB3
|
SIB5
;
// SIB2 - SIB9
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
buf
[
1
]
=
0
;
// SIB10 - SIB17
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
buf
[
2
]
=
0
;
// SIB18 - SIB25
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
buf
[
3
]
=
0
;
// SIB26 - SIB32
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
size
=
4
;
NR_UE_rrc_inst
[
nr_ue
].
requested_SI_List
.
bits_unused
=
0
;
NR_UE_rrc_inst
[
nr_ue
].
ra_trigger
=
RA_NOT_RUNNING
;
// init RRC lists
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RLC_Bearer_Config_list
,
NR_maxLC_ID
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SchedulingRequest_list
,
NR_maxNrofSR_ConfigPerCellGroup
);
...
...
@@ -834,7 +846,7 @@ int nr_decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t gNB_index
// After SI is received, prepare RRCConnectionRequest
if
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
MBMS_flag
<
3
)
// see -Q option
if
(
AMF_MODE_ENABLED
)
{
rrc_ue_generate_RRCSetupRequest
(
ctxt_pP
,
gNB_index
);
nr_rrc_ue_generate_RRCSetupRequest
(
ctxt_pP
->
module_id
,
gNB_index
);
}
if
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
gNB_index
].
State
==
NR_RRC_IDLE
)
{
...
...
@@ -1287,7 +1299,7 @@ int nr_decode_BCCH_DLSCH_Message(
if
(
nr_rrc_get_sub_state
(
ctxt_pP
->
module_id
)
==
RRC_SUB_STATE_IDLE_SIB_COMPLETE_NR
)
{
//if ( (NR_UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data != NULL) || (!AMF_MODE_ENABLED)) {
rrc_ue_generate_RRCSetupRequest
(
ctxt_pP
,
0
);
nr_rrc_ue_generate_RRCSetupRequest
(
ctxt_pP
->
module_id
,
0
);
nr_rrc_set_sub_state
(
ctxt_pP
->
module_id
,
RRC_SUB_STATE_IDLE_CONNECTING
);
//}
}
...
...
@@ -1488,6 +1500,100 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
return
rval
;
}
int8_t
check_requested_SI_List
(
module_id_t
module_id
,
BIT_STRING_t
requested_SI_List
,
NR_SIB1_t
sib1
)
{
if
(
sib1
.
si_SchedulingInfo
)
{
bool
SIB_to_request
[
32
]
=
{};
LOG_D
(
RRC
,
"SIBs broadcasting: "
);
for
(
int
i
=
0
;
i
<
sib1
.
si_SchedulingInfo
->
schedulingInfoList
.
list
.
array
[
0
]
->
sib_MappingInfo
.
list
.
count
;
i
++
)
{
printf
(
"SIB%li "
,
sib1
.
si_SchedulingInfo
->
schedulingInfoList
.
list
.
array
[
0
]
->
sib_MappingInfo
.
list
.
array
[
i
]
->
type
+
2
);
}
printf
(
"
\n
"
);
LOG_D
(
RRC
,
"SIBs needed by UE: "
);
for
(
int
j
=
0
;
j
<
8
*
requested_SI_List
.
size
;
j
++
)
{
if
(
((
requested_SI_List
.
buf
[
j
/
8
]
>>
(
j
%
8
))
&
1
)
==
1
)
{
printf
(
"SIB%i "
,
j
+
2
);
SIB_to_request
[
j
]
=
true
;
for
(
int
i
=
0
;
i
<
sib1
.
si_SchedulingInfo
->
schedulingInfoList
.
list
.
array
[
0
]
->
sib_MappingInfo
.
list
.
count
;
i
++
)
{
if
(
sib1
.
si_SchedulingInfo
->
schedulingInfoList
.
list
.
array
[
0
]
->
sib_MappingInfo
.
list
.
array
[
i
]
->
type
==
j
)
{
SIB_to_request
[
j
]
=
false
;
break
;
}
}
}
}
printf
(
"
\n
"
);
LOG_D
(
RRC
,
"SIBs to request by UE: "
);
bool
do_ra
=
false
;
for
(
int
j
=
0
;
j
<
8
*
requested_SI_List
.
size
;
j
++
)
{
if
(
SIB_to_request
[
j
])
{
printf
(
"SIB%i "
,
j
+
2
);
do_ra
=
true
;
}
}
printf
(
"
\n
"
);
if
(
do_ra
)
{
NR_UE_rrc_inst
[
module_id
].
ra_trigger
=
REQUEST_FOR_OTHER_SI
;
get_softmodem_params
()
->
do_ra
=
1
;
if
(
sib1
.
si_SchedulingInfo
->
si_RequestConfig
)
{
LOG_D
(
RRC
,
"Trigger contention-free RA procedure (ra_trigger = %i)
\n
"
,
NR_UE_rrc_inst
[
module_id
].
ra_trigger
);
}
else
{
LOG_D
(
RRC
,
"Trigger contention-based RA procedure (ra_trigger = %i)
\n
"
,
NR_UE_rrc_inst
[
module_id
].
ra_trigger
);
}
}
}
return
0
;
}
int8_t
nr_rrc_ue_generate_ra_msg
(
module_id_t
module_id
,
uint8_t
gNB_index
)
{
switch
(
NR_UE_rrc_inst
[
module_id
].
ra_trigger
){
case
INITIAL_ACCESS_FROM_RRC_IDLE
:
nr_rrc_ue_generate_RRCSetupRequest
(
module_id
,
gNB_index
);
break
;
case
RRC_CONNECTION_REESTABLISHMENT
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
DURING_HANDOVER
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
NON_SYNCHRONISED
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
TRANSITION_FROM_RRC_INACTIVE
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
TO_ESTABLISH_TA
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
REQUEST_FOR_OTHER_SI
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
case
BEAM_FAILURE_RECOVERY
:
AssertFatal
(
1
==
0
,
"ra_trigger not implemented yet!
\n
"
);
break
;
default:
AssertFatal
(
1
==
0
,
"Invalid ra_trigger value!
\n
"
);
break
;
}
return
0
;
}
/*brief decode SIB1 message*/
int8_t
nr_rrc_ue_decode_NR_SIB1_Message
(
module_id_t
module_id
,
uint8_t
gNB_index
,
uint8_t
*
const
bufferP
,
const
uint8_t
buffer_len
)
{
...
...
@@ -1514,6 +1620,15 @@ int8_t nr_rrc_ue_decode_NR_SIB1_Message(module_id_t module_id, uint8_t gNB_index
LOG_I
(
RRC
,
"SIB1 decoded
\n
"
);
if
(
g_log
->
log_component
[
RRC
].
level
>=
OAILOG_DEBUG
)
xer_fprint
(
stdout
,
&
asn_DEF_NR_SIB1
,
(
const
void
*
)
sib1
);
// FIXME: fix condition for the RA trigger
check_requested_SI_List
(
module_id
,
NR_UE_rrc_inst
[
module_id
].
requested_SI_List
,
*
sib1
);
if
(
nr_rrc_get_state
(
module_id
)
==
RRC_STATE_IDLE_NR
)
{
NR_UE_rrc_inst
[
module_id
].
ra_trigger
=
INITIAL_ACCESS_FROM_RRC_IDLE
;
get_softmodem_params
()
->
do_ra
=
1
;
}
nr_rrc_ue_generate_ra_msg
(
module_id
,
gNB_index
);
}
else
LOG_E
(
PHY
,
"sib1 is starting by 8 times 0
\n
"
);
...
...
@@ -1783,10 +1898,10 @@ nr_rrc_ue_process_securityModeCommand(
}
//-----------------------------------------------------------------------------
void
rrc_ue_generate_RRCSetupRequest
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
gNB_index
)
{
void
nr_rrc_ue_generate_RRCSetupRequest
(
module_id_t
module_id
,
const
uint8_t
gNB_index
)
{
uint8_t
i
=
0
,
rv
[
6
];
if
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
==
0
)
{
if
(
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
==
0
)
{
// Get RRCConnectionRequest, fill random for now
// Generate random byte stream for contention resolution
for
(
i
=
0
;
i
<
6
;
i
++
)
{
...
...
@@ -1800,16 +1915,16 @@ void rrc_ue_generate_RRCSetupRequest( const protocol_ctxt_t *const ctxt_pP, cons
}
LOG_T
(
NR_RRC
,
"
\n
"
);
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
=
do_RRCSetupRequest
(
ctxt_pP
->
module_id
,
(
uint8_t
*
)
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
,
rv
);
LOG_I
(
NR_RRC
,
"[UE %d] :
Frame %d, Logical Channel UL-CCCH (SRB0), Generating RRCSetupRequest (bytes %d, e
NB %d)
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
,
gNB_index
);
for
(
i
=
0
;
i
<
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
;
i
++
)
{
LOG_T
(
NR_RRC
,
"%x."
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
[
i
]);
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
=
do_RRCSetupRequest
(
module_id
,
(
uint8_t
*
)
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
,
rv
);
LOG_I
(
NR_RRC
,
"[UE %d] :
Logical Channel UL-CCCH (SRB0), Generating RRCSetupRequest (bytes %d, g
NB %d)
\n
"
,
module_id
,
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
,
gNB_index
);
for
(
i
=
0
;
i
<
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
;
i
++
)
{
LOG_T
(
NR_RRC
,
"%x."
,
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
[
i
]);
}
LOG_T
(
NR_RRC
,
"
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment