Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
sneltved
openairinterface5G
Commits
be8d32d5
Commit
be8d32d5
authored
Feb 02, 2018
by
Cédric Roux
Browse files
Merge remote-tracking branch 'origin/develop_integration_2018_w05' into develop
Summary of changes: - noS1 fixes - various bugs fixed
parents
cd8e8458
ea0d7781
Changes
55
Expand all
Hide whitespace changes
Inline
Side-by-side
cmake_targets/CMakeLists.txt
View file @
be8d32d5
...
...
@@ -966,6 +966,7 @@ set(SCHED_SRC
${
OPENAIR1_DIR
}
/SCHED/phy_procedures_lte_eNb.c
${
OPENAIR1_DIR
}
/SCHED/phy_procedures_lte_ue.c
${
OPENAIR1_DIR
}
/SCHED/phy_procedures_lte_common.c
${
OPENAIR1_DIR
}
/SCHED/prach_procedures.c
${
OPENAIR1_DIR
}
/SCHED/ru_procedures.c
# ${OPENAIR1_DIR}/SCHED/phy_mac_stub.c
${
OPENAIR1_DIR
}
/SCHED/pucch_pc.c
...
...
@@ -974,6 +975,17 @@ set(SCHED_SRC
)
add_library
(
SCHED_LIB
${
SCHED_SRC
}
)
set
(
SCHED_SRC_UE
${
OPENAIR1_DIR
}
/SCHED/phy_procedures_lte_ue.c
${
OPENAIR1_DIR
}
/SCHED/phy_procedures_lte_common.c
${
OPENAIR1_DIR
}
/SCHED/ru_procedures.c
${
OPENAIR1_DIR
}
/SCHED/prach_procedures.c
${
OPENAIR1_DIR
}
/SCHED/pucch_pc.c
${
OPENAIR1_DIR
}
/SCHED/pusch_pc.c
${
OPENAIR1_DIR
}
/SCHED/srs_pc.c
)
add_library
(
SCHED_UE_LIB
${
SCHED_SRC_UE
}
)
# nFAPI
#################################
set
(
NFAPI_COMMON_SRC
...
...
@@ -1104,6 +1116,103 @@ set(PHY_SRC
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi.c
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi_lte.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_init.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_init_ru.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_init_ue.c
${
OPENAIR1_DIR
}
/PHY/INIT/init_top.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_parms.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_param_init.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/file_output.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cadd_vv.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/lte_dfts.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/log2_approx.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_sv.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_vv.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cdot_prod.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/signal_energy.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/dB_routines.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/sqrt.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/time_meas.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/lut.c
)
set
(
PHY_SRC_UE
# depend on code generation from asn1c
${
RRC_FULL_DIR
}
/asn1_constants.h
# actual source
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pss.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/sss.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pilots.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pilots_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_coding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_modulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_demodulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/power_control.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_decoding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_scrambling.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dci_tools.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/uci_tools.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/lte_mcs.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pbch.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dci.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/edci.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/phich.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pcfich.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pucch.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/prach.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pmch.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/pch.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/group_hopping.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/srs_modulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/drs_modulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_modulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_demodulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_coding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_decoding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/rar_tools.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/print_stats.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/initial_sync.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/if4_tools.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/if5_tools.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/ofdm_mod.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/slot_fep.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/slot_fep_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/slot_fep_ul.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/ul_7_5_kHz.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/beamforming.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/compute_bf_weights.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/freq_equalization.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_sync_time.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_adjust_sync.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_ue_measurements.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/adjust_gain.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_dl_cell_spec.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_dl_uespec.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_gold.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_gold_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_dl_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_ul_ref.c
${
OPENAIR1_DIR
}
/PHY/CODING/lte_segmentation.c
${
OPENAIR1_DIR
}
/PHY/CODING/ccoding_byte.c
${
OPENAIR1_DIR
}
/PHY/CODING/ccoding_byte_lte.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_sse.c
${
OPENAIR1_DIR
}
/PHY/CODING/crc_byte.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
${
OPENAIR1_DIR
}
/PHY/CODING/lte_rate_matching.c
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi.c
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi_lte.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_init_ru.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_init_ue.c
${
OPENAIR1_DIR
}
/PHY/INIT/init_top.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_parms.c
${
OPENAIR1_DIR
}
/PHY/INIT/lte_param_init.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/file_output.c
...
...
@@ -1119,15 +1228,18 @@ set(PHY_SRC
${
OPENAIR1_DIR
}
/PHY/TOOLS/time_meas.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/lut.c
)
if
(
${
SMBV
}
)
set
(
PHY_SRC
"
${
PHY_SRC
}
${
OPENAIR1_DIR
}
/PHY/TOOLS/smbv.c"
)
endif
(
${
SMBV
}
)
if
(
${
COMPILATION_AVX2
}
STREQUAL
"True"
)
set
(
PHY_SRC
${
PHY_SRC
}
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c
)
set
(
PHY_SRC_UE
${
PHY_SRC_UE
}
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c
)
endif
()
add_library
(
PHY
${
PHY_SRC
}
)
add_library
(
PHY_UE
${
PHY_SRC_UE
}
)
#Layer 2 library
#####################
...
...
@@ -1181,14 +1293,61 @@ set(L2_SRC
${
RRC_DIR
}
/rrc_eNB_UE_context.c
${
RRC_DIR
}
/rrc_common.c
${
RRC_DIR
}
/L2_interface.c
${
RRC_DIR
}
/L2_interface_common.c
${
RRC_DIR
}
/L2_interface_ue.c
)
set
(
L2_SRC_UE
${
OPENAIR2_DIR
}
/LAYER2/openair2_proc.c
${
PDCP_DIR
}
/pdcp.c
${
PDCP_DIR
}
/pdcp_fifo.c
${
PDCP_DIR
}
/pdcp_sequence_manager.c
${
PDCP_DIR
}
/pdcp_primitives.c
${
PDCP_DIR
}
/pdcp_util.c
${
PDCP_DIR
}
/pdcp_security.c
${
PDCP_DIR
}
/pdcp_netlink.c
${
RLC_AM_DIR
}
/rlc_am.c
${
RLC_AM_DIR
}
/rlc_am_init.c
${
RLC_AM_DIR
}
/rlc_am_timer_poll_retransmit.c
${
RLC_AM_DIR
}
/rlc_am_timer_reordering.c
${
RLC_AM_DIR
}
/rlc_am_timer_status_prohibit.c
${
RLC_AM_DIR
}
/rlc_am_segment.c
${
RLC_AM_DIR
}
/rlc_am_segments_holes.c
${
RLC_AM_DIR
}
/rlc_am_in_sdu.c
${
RLC_AM_DIR
}
/rlc_am_receiver.c
${
RLC_AM_DIR
}
/rlc_am_retransmit.c
${
RLC_AM_DIR
}
/rlc_am_windows.c
${
RLC_AM_DIR
}
/rlc_am_rx_list.c
${
RLC_AM_DIR
}
/rlc_am_reassembly.c
${
RLC_AM_DIR
}
/rlc_am_status_report.c
${
RLC_TM_DIR
}
/rlc_tm.c
${
RLC_TM_DIR
}
/rlc_tm_init.c
${
RLC_UM_DIR
}
/rlc_um.c
${
RLC_UM_DIR
}
/rlc_um_fsm.c
${
RLC_UM_DIR
}
/rlc_um_control_primitives.c
${
RLC_UM_DIR
}
/rlc_um_segment.c
${
RLC_UM_DIR
}
/rlc_um_reassembly.c
${
RLC_UM_DIR
}
/rlc_um_receiver.c
${
RLC_UM_DIR
}
/rlc_um_dar.c
${
RLC_DIR
}
/rlc_mac.c
${
RLC_DIR
}
/rlc.c
${
RLC_DIR
}
/rlc_rrc.c
${
RLC_DIR
}
/rlc_mpls.c
${
RRC_DIR
}
/rrc_UE.c
${
RRC_DIR
}
/rrc_common.c
${
RRC_DIR
}
/L2_interface_common.c
${
RRC_DIR
}
/L2_interface_ue.c
)
set
(
MAC_SRC
${
PHY_INTERFACE_DIR
}
/IF_Module.c
${
MAC_DIR
}
/main.c
${
MAC_DIR
}
/main_ue.c
${
MAC_DIR
}
/ue_procedures.c
${
MAC_DIR
}
/ra_procedures.c
${
MAC_DIR
}
/l1_helpers.c
${
MAC_DIR
}
/rar_tools.c
${
MAC_DIR
}
/rar_tools_ue.c
${
MAC_DIR
}
/eNB_scheduler.c
${
MAC_DIR
}
/eNB_scheduler_dlsch.c
${
MAC_DIR
}
/eNB_scheduler_ulsch.c
...
...
@@ -1198,8 +1357,19 @@ set (MAC_SRC
${
MAC_DIR
}
/eNB_scheduler_RA.c
${
MAC_DIR
}
/pre_processor.c
${
MAC_DIR
}
/config.c
${
MAC_DIR
}
/config_ue.c
)
set
(
MAC_SRC_UE
${
MAC_DIR
}
/main_ue.c
${
MAC_DIR
}
/ue_procedures.c
${
MAC_DIR
}
/ra_procedures.c
${
MAC_DIR
}
/l1_helpers.c
${
MAC_DIR
}
/rar_tools_ue.c
${
MAC_DIR
}
/config_ue.c
)
if
(
FLEXRAN_AGENT_SB_IF
)
set
(
MAC_SRC
${
MAC_SRC
}
...
...
@@ -1221,6 +1391,12 @@ add_library(L2
${
ENB_APP_SRC
}
)
# ${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
add_library
(
L2_UE
${
L2_SRC_UE
}
${
MAC_SRC_UE
}
)
include_directories
(
${
NFAPI_USER_DIR
}
)
if
(
FLEXRAN_AGENT_SB_IF
)
...
...
@@ -1774,6 +1950,7 @@ add_executable(lte-softmodem
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
...
...
@@ -1813,6 +1990,7 @@ add_executable(lte-softmodem-nos1
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
...
...
@@ -1826,11 +2004,13 @@ add_executable(lte-softmodem-nos1
)
target_link_libraries
(
lte-softmodem-nos1
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
-Wl,--end-group
)
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem-nos1
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
T_LIB
}
)
...
...
@@ -1886,7 +2066,7 @@ add_executable(oaisim
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
GTPU_need_ITTI
}
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks
_ue
.c
${
XFORMS_SOURCE
}
${
T_SOURCE
}
${
CONFIG_SOURCES
}
...
...
@@ -1897,10 +2077,10 @@ add_executable(oaisim
target_include_directories
(
oaisim PUBLIC
${
OPENAIR_TARGETS
}
/SIMU/USER
)
target_link_libraries
(
oaisim
-Wl,-ldl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS
${
MSC_LIB
}
L2
${
RAL_LIB
}
LIB_NAS_UE SIMU SECU_OSA
${
ITTI_LIB
}
RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_
UE_
LIB PHY
_UE
LFDS
L2
${
MSC_LIB
}
LIB_NAS_UE SIMU SECU_OSA
${
ITTI_LIB
}
${
MIH_LIB
}
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
-Wl,--end-group
)
-Wl,--end-group
z dl
)
target_link_libraries
(
oaisim
${
LIBXML2_LIBRARIES
}
${
LAPACK_LIBRARIES
}
)
target_link_libraries
(
oaisim pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp z
...
...
@@ -1919,7 +2099,6 @@ add_executable(oaisim_nos1
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ru.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/SIMU/USER/channel_sim.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
...
...
@@ -1932,7 +2111,7 @@ add_executable(oaisim_nos1
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks
_ue
.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
XFORMS_SOURCE
}
${
T_SOURCE
}
...
...
@@ -1942,8 +2121,8 @@ add_executable(oaisim_nos1
target_include_directories
(
oaisim_nos1 PUBLIC
${
OPENAIR_TARGETS
}
/SIMU/USER
)
target_link_libraries
(
oaisim_nos1
-Wl,--start-group
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_LIB PHY LFDS
${
MSC_LIB
}
L2
${
RAL
_LIB
}
SIMU
SECU_OSA
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
-Wl,--end-group
)
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_
UE_
LIB PHY
_UE
LFDS
${
MSC_LIB
}
${
ITTI
_LIB
}
SIMU
L2_UE
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
-Wl,--end-group
z dl
)
target_link_libraries
(
oaisim_nos1
${
LIBXML2_LIBRARIES
}
${
LAPACK_LIBRARIES
}
)
target_link_libraries
(
oaisim_nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
...
...
cmake_targets/oaisim_noS1_build_oai/CMakeLists.template
View file @
be8d32d5
...
...
@@ -30,7 +30,7 @@ set ( MESSAGE_CHART_GENERATOR_RLC_MAC False )
set ( MESSAGE_CHART_GENERATOR_PHY False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX
Tru
e )
set ( NAS_ADDRESS_FIX
Fals
e )
set ( NAS_BUILT_IN_UE False)
set ( NAS_MME False )
set ( NAS_UE False )
...
...
cmake_targets/tools/init_nas_nos1
View file @
be8d32d5
...
...
@@ -44,11 +44,11 @@ load_module $OPENAIR_DIR/targets/bin/nasmesh.ko
if
[
"
$1
"
=
"eNB"
]
;
then
echo
"bring up oai0 interface for enb"
sudo
ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
$OPENAIR_DIR
/targets/bin/rb_tool
-a
-c0
-i0
-z0
-s
10.0.1.1
-t
10.0.1.
9
-r
1
$OPENAIR_DIR
/targets/bin/rb_tool
-a
-c0
-i0
-z0
-s
10.0.1.1
-t
10.0.1.
2
-r
1
else
if
[
"
$1
"
=
"UE"
]
;
then
echo
"bring up oai0 interface for UE"
sudo
ifconfig oai0 10.0.1.9 netmask 255.255.255.0 broadcast 10.0.1.255
$OPENAIR_DIR
/targets/bin/rb_tool
-a
-c0
-i0
-z0
-s
10.0.1.
9
-t
10.0.1.1
-r
1
$OPENAIR_DIR
/targets/bin/rb_tool
-a
-c0
-i0
-z0
-s
10.0.1.
2
-t
10.0.1.1
-r
1
fi
fi
openair1/PHY/INIT/init_top.c
View file @
be8d32d5
...
...
@@ -22,19 +22,42 @@
/*!\brief Initilization and reconfiguration routines for LTE PHY */
#include
"defs.h"
#include
"PHY/extern.h"
#include
"MAC_INTERFACE/extern.h"
//#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
/*!
* @addtogroup _PHY_STRUCTURES_
* Memory Initializaion and Cleanup for LTE MODEM.
* @{
\section _Memory_init_ Memory Initialization for LTE MODEM
void
init_lte_top
(
LTE_DL_FRAME_PARMS
*
frame_parms
)
{
*/
crcTableInit
();
//#define DEBUG_PHY
t
ccodedot11_init
();
ccodedot11_init_inv
();
ccodelte_init
();
ccodelte_init_inv
();
treillis_table_init
();
phy_generate_viterbi_tables
();
phy_generate_viterbi_tables_lte
();
init_td8
();
init_td16
();
#ifdef __AVX2__
init_td16avx2
();
#endif
lte_sync_time_init
(
frame_parms
);
generate_ul_ref_sigs
();
generate_ul_ref_sigs_rx
();
generate_64qam_table
();
generate_16qam_table
();
generate_RIV_tables
();
init_unscrambling_lut
();
init_scrambling_lut
();
//set_taus_seed(1328);
}
/*
...
...
openair1/PHY/INIT/lte_init.c
View file @
be8d32d5
This diff is collapsed.
Click to expand it.
openair1/PHY/INIT/lte_init_ru.c
0 → 100644
View file @
be8d32d5
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include
"defs.h"
#include
"SCHED/defs.h"
#include
"PHY/extern.h"
#include
"SIMULATION/TOOLS/defs.h"
#include
"RadioResourceConfigCommonSIB.h"
#include
"RadioResourceConfigDedicated.h"
#include
"TDD-Config.h"
#include
"LAYER2/MAC/extern.h"
#include
"MBSFN-SubframeConfigList.h"
#include
"UTIL/LOG/vcd_signal_dumper.h"
#include
"assertions.h"
#include
<math.h>
int
phy_init_RU
(
RU_t
*
ru
)
{
LTE_DL_FRAME_PARMS
*
fp
=
&
ru
->
frame_parms
;
int
i
,
j
;
int
p
;
int
re
;
LOG_I
(
PHY
,
"Initializing RU signal buffers (if_south %s) nb_tx %d
\n
"
,
ru_if_types
[
ru
->
if_south
],
ru
->
nb_tx
);
if
(
ru
->
if_south
<=
REMOTE_IF5
)
{
// this means REMOTE_IF5 or LOCAL_RF, so allocate memory for time-domain signals
// Time-domain signals
ru
->
common
.
txdata
=
(
int32_t
**
)
malloc16
(
ru
->
nb_tx
*
sizeof
(
int32_t
*
));
ru
->
common
.
rxdata
=
(
int32_t
**
)
malloc16
(
ru
->
nb_rx
*
sizeof
(
int32_t
*
)
);
for
(
i
=
0
;
i
<
ru
->
nb_tx
;
i
++
)
{
// Allocate 10 subframes of I/Q TX signal data (time) if not
ru
->
common
.
txdata
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_tti
*
10
*
sizeof
(
int32_t
)
);
LOG_I
(
PHY
,
"[INIT] common.txdata[%d] = %p (%lu bytes)
\n
"
,
i
,
ru
->
common
.
txdata
[
i
],
fp
->
samples_per_tti
*
10
*
sizeof
(
int32_t
));
}
for
(
i
=
0
;
i
<
ru
->
nb_rx
;
i
++
)
{
ru
->
common
.
rxdata
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_tti
*
10
*
sizeof
(
int32_t
)
);
}
}
// IF5 or local RF
else
{
LOG_I
(
PHY
,
"No rxdata/txdata for RU
\n
"
);
ru
->
common
.
txdata
=
(
int32_t
**
)
NULL
;
ru
->
common
.
rxdata
=
(
int32_t
**
)
NULL
;
}
if
(
ru
->
function
!=
NGFI_RRU_IF5
)
{
// we need to do RX/TX RU processing
LOG_I
(
PHY
,
"nb_tx %d
\n
"
,
ru
->
nb_tx
);
ru
->
common
.
rxdata_7_5kHz
=
(
int32_t
**
)
malloc16
(
ru
->
nb_rx
*
sizeof
(
int32_t
*
)
);
for
(
i
=
0
;
i
<
ru
->
nb_rx
;
i
++
)
{
ru
->
common
.
rxdata_7_5kHz
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
2
*
fp
->
samples_per_tti
*
2
*
sizeof
(
int32_t
)
);
LOG_I
(
PHY
,
"rxdata_7_5kHz[%d] %p for RU %d
\n
"
,
i
,
ru
->
common
.
rxdata_7_5kHz
[
i
],
ru
->
idx
);
}
// allocate IFFT input buffers (TX)
ru
->
common
.
txdataF_BF
=
(
int32_t
**
)
malloc16
(
ru
->
nb_tx
*
sizeof
(
int32_t
*
));
LOG_I
(
PHY
,
"[INIT] common.txdata_BF= %p (%lu bytes)
\n
"
,
ru
->
common
.
txdataF_BF
,
ru
->
nb_tx
*
sizeof
(
int32_t
*
));
for
(
i
=
0
;
i
<
ru
->
nb_tx
;
i
++
)
{
ru
->
common
.
txdataF_BF
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
symbols_per_tti
*
fp
->
ofdm_symbol_size
*
sizeof
(
int32_t
)
);
LOG_I
(
PHY
,
"txdataF_BF[%d] %p for RU %d
\n
"
,
i
,
ru
->
common
.
txdataF_BF
[
i
],
ru
->
idx
);
}
// allocate FFT output buffers (RX)
ru
->
common
.
rxdataF
=
(
int32_t
**
)
malloc16
(
ru
->
nb_rx
*
sizeof
(
int32_t
*
)
);
for
(
i
=
0
;
i
<
ru
->
nb_rx
;
i
++
)
{
// allocate 2 subframes of I/Q signal data (frequency)
ru
->
common
.
rxdataF
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
(
2
*
fp
->
ofdm_symbol_size
*
fp
->
symbols_per_tti
)
);
LOG_I
(
PHY
,
"rxdataF[%d] %p for RU %d
\n
"
,
i
,
ru
->
common
.
rxdataF
[
i
],
ru
->
idx
);
}
/* number of elements of an array X is computed as sizeof(X) / sizeof(X[0]) */
AssertFatal
(
ru
->
nb_rx
<=
sizeof
(
ru
->
prach_rxsigF
)
/
sizeof
(
ru
->
prach_rxsigF
[
0
]),
"nb_antennas_rx too large"
);
ru
->
prach_rxsigF
=
(
int16_t
**
)
malloc
(
ru
->
nb_rx
*
sizeof
(
int16_t
*
));
for
(
j
=
0
;
j
<
4
;
j
++
)
ru
->
prach_rxsigF_br
[
j
]
=
(
int16_t
**
)
malloc
(
ru
->
nb_rx
*
sizeof
(
int16_t
*
));
for
(
i
=
0
;
i
<
ru
->
nb_rx
;
i
++
)
{
ru
->
prach_rxsigF
[
i
]
=
(
int16_t
*
)
malloc16_clear
(
fp
->
ofdm_symbol_size
*
12
*
2
*
sizeof
(
int16_t
)
);
LOG_D
(
PHY
,
"[INIT] prach_vars->rxsigF[%d] = %p
\n
"
,
i
,
ru
->
prach_rxsigF
[
i
]);
#ifdef Rel14
for
(
j
=
0
;
j
<
4
;
j
++
)
{
ru
->
prach_rxsigF_br
[
j
][
i
]
=
(
int16_t
*
)
malloc16_clear
(
fp
->
ofdm_symbol_size
*
12
*
2
*
sizeof
(
int16_t
)
);
LOG_D
(
PHY
,
"[INIT] prach_vars_br->rxsigF[%d] = %p
\n
"
,
i
,
ru
->
prach_rxsigF_br
[
j
][
i
]);
}
#endif
}
AssertFatal
(
RC
.
nb_L1_inst
<=
NUMBER_OF_eNB_MAX
,
"eNB instances %d > %d
\n
"
,
RC
.
nb_L1_inst
,
NUMBER_OF_eNB_MAX
);
LOG_E
(
PHY
,
"[INIT] %s() RC.nb_L1_inst:%d
\n
"
,
__FUNCTION__
,
RC
.
nb_L1_inst
);
for
(
i
=
0
;
i
<
RC
.
nb_L1_inst
;
i
++
)
{
for
(
p
=
0
;
p
<
15
;
p
++
)
{
LOG_D
(
PHY
,
"[INIT] %s() nb_antenna_ports_eNB:%d
\n
"
,
__FUNCTION__
,
ru
->
eNB_list
[
i
]
->
frame_parms
.
nb_antenna_ports_eNB
);
if
(
p
<
ru
->
eNB_list
[
i
]
->
frame_parms
.
nb_antenna_ports_eNB
||
p
==
5
)
{
LOG_D
(
PHY
,
"[INIT] %s() DO BEAM WEIGHTS nb_antenna_ports_eNB:%d nb_tx:%d
\n
"
,
__FUNCTION__
,
ru
->
eNB_list
[
i
]
->
frame_parms
.
nb_antenna_ports_eNB
,
ru
->
nb_tx
);
ru
->
beam_weights
[
i
][
p
]
=
(
int32_t
**
)
malloc16_clear
(
ru
->
nb_tx
*
sizeof
(
int32_t
*
));
for
(
j
=
0
;
j
<
ru
->
nb_tx
;
j
++
)
{
ru
->
beam_weights
[
i
][
p
][
j
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
ofdm_symbol_size
*
sizeof
(
int32_t
));
// antenna ports 0-3 are mapped on antennas 0-3
// antenna port 4 is mapped on antenna 0
// antenna ports 5-14 are mapped on all antennas
if
(((
p
<
4
)
&&
(
p
==
j
))
||
((
p
==
4
)
&&
(
j
==
0
)))
{
for
(
re
=
0
;
re
<
fp
->
ofdm_symbol_size
;
re
++
)
{
ru
->
beam_weights
[
i
][
p
][
j
][
re
]
=
0x00007fff
;
//LOG_D(PHY,"[INIT] lte_common_vars->beam_weights[%d][%d][%d][%d] = %d\n", i,p,j,re,ru->beam_weights[i][p][j][re]);
}
}
else
if
(
p
>
4
)
{
for
(
re
=
0
;
re
<
fp
->
ofdm_symbol_size
;
re
++
)
{
ru
->
beam_weights
[
i
][
p
][
j
][
re
]
=
0x00007fff
/
ru
->
nb_tx
;
//LOG_D(PHY,"[INIT] lte_common_vars->beam_weights[%d][%d][%d][%d] = %d\n", i,p,j,re,ru->beam_weights[i][p][j][re]);
}
}
//LOG_D(PHY,"[INIT] lte_common_vars->beam_weights[%d][%d] = %p (%lu bytes)\n", i,j,ru->beam_weights[i][p][j], fp->ofdm_symbol_size*sizeof(int32_t));
}
// for (j=0
}
// if (p<ru
}
// for p
}
//for i
}
// !=IF5
ru
->
common
.
sync_corr
=
(
uint32_t
*
)
malloc16_clear
(
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
*
sizeof
(
uint32_t
)
*
fp
->
samples_per_tti
);
return
(
0
);
}
openair1/PHY/INIT/lte_init_ue.c
0 → 100644
View file @
be8d32d5
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
View file @
be8d32d5
...
...
@@ -465,7 +465,7 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
*
eNB_id
=
sync_source
;
LOG_
D
(
PHY
,
"[UE] lte_sync_time: Sync source = %d, Peak found at pos %d, val = %d (%d dB)
\n
"
,
sync_source
,
peak_pos
,
peak_val
,
dB_fixed
(
peak_val
)
/
2
);
LOG_
I
(
PHY
,
"[UE] lte_sync_time: Sync source = %d, Peak found at pos %d, val = %d (%d dB)
\n
"
,
sync_source
,
peak_pos
,
peak_val
,
dB_fixed
(
peak_val
)
/
2
);
#ifdef DEBUG_PHY
...
...
openair1/PHY/LTE_TRANSPORT/dci.c
View file @
be8d32d5
...
...
@@ -2260,7 +2260,7 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols,
y
[
0
]
=
&
yseq0
[
0
];
y
[
1
]
=
&
yseq1
[
0
];
#if
0
#if
1
// reset all bits to <NIL>, here we set <NIL> elements as 2
// memset(e, 2, DCI_BITS_MAX);
// here we interpret NIL as a random QPSK sequence. That makes power estimation easier.
...
...
@@ -2271,7 +2271,7 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols,
/* clear all bits, the above code may generate too much false detections
* (not sure about this, to be checked somehow)
*/
memset
(
e
,
0
,
DCI_BITS_MAX
);
//
memset(e, 0, DCI_BITS_MAX);
e_ptr
=
e
;
...
...
@@ -3125,8 +3125,8 @@ uint16_t dci_CRNTI_decoding_procedure(PHY_VARS_UE *ue,
mi
,
((
ue
->
decode_SIB
==
1
)
?
SI_RNTI
:
0
),
ra_rnti
,
P_RNTI
,
agregationLevel
,
P_RNTI
,
agregationLevel
,
format1A
,
format1A
,
format1A
,
...
...
@@ -3144,7 +3144,7 @@ uint16_t dci_CRNTI_decoding_procedure(PHY_VARS_UE *ue,
((
format0_found
==
1
)
&&
(
format_c_found
==
1
)))
return
(
dci_cnt
);
if
(
DCIFormat
==
1
)
if
(
DCIFormat
==
format
1
)
{
if
((
tmode
<
3
)
||
(
tmode
==
7
))
{
//printf("Crnti decoding frame param agregation %d DCI %d \n",agregationLevel,DCIFormat);
...
...
@@ -3187,14 +3187,14 @@ uint16_t dci_CRNTI_decoding_procedure(PHY_VARS_UE *ue,
//printf("Crnti 1 decoding frame param agregation %d DCI %d \n",agregationLevel,DCIFormat);
}
else
else
if
(
DCIFormat
==
format1A
)
{