diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index e5f4730fe68684cf309dab0a3142f2184d8f31a7..2bb4ce31eefd7a1b17b0807dffac3921579a7cb3 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1232,6 +1232,53 @@ set(PHY_SRC_UE ${OPENAIR1_DIR}/PHY/TOOLS/lut.c ) + set(PHY_NR_SRC + # depend on code generation from asn1c + ${RRC_FULL_DIR}/asn1_constants.h + # actual source + ${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/INIT/nr_parms.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_NR_UE_SRC + # depend on code generation from asn1c + ${RRC_FULL_DIR}/asn1_constants.h + # actual source + ${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/INIT/nr_parms.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 + ) + + if (${SMBV}) set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c") endif (${SMBV}) @@ -1242,6 +1289,8 @@ endif () add_library(PHY ${PHY_SRC}) add_library(PHY_UE ${PHY_SRC_UE}) +add_library(PHY_NR ${PHY_NR_SRC}) +add_library(PHY_NR_UE ${PHY_NR_UE_SRC}) #Layer 2 library ##################### @@ -1940,7 +1989,7 @@ add_definitions(-DASN1_MINIMUM_VERSION=924) # add executables for operation ################################# -# lte-softmodem is both eNB and UE implementation +# lte-softmodem is eNB implementation ################################################### add_executable(lte-softmodem @@ -1980,7 +2029,7 @@ target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CR target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-softmodem ${T_LIB}) -# lte-softmodem-nos1 is both eNB and UE implementation +# lte-softmodem-nos1 is eNB implementation ################################################### add_executable(lte-softmodem-nos1 ${rrc_h} @@ -2053,7 +2102,7 @@ target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${ target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-uesoftmodem ${T_LIB}) -# lte-softmodem-nos1 is both eNB and UE implementation +# lte-softmodem-nos1 is UE implementation ################################################### add_executable(lte-uesoftmodem-nos1 ${rrc_h} @@ -2087,6 +2136,43 @@ target_link_libraries (lte-uesoftmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt cry target_link_libraries (lte-uesoftmodem-nos1 ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB}) +# nr-softmodem +################################################### + +add_executable(nr-softmodem + #${rrc_h} + #${s1ap_h} + ${OPENAIR_BIN_DIR}/messages_xml.h + ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c + ${OPENAIR_TARGETS}/RT/USER/lte-ru.c + ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c + ${OPENAIR_TARGETS}/COMMON/create_tasks.c + ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c + #${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c + ${OPENAIR_DIR}/common/utils/utils.c + ${OPENAIR_DIR}/common/utils/system.c + ${GTPU_need_ITTI} + ${XFORMS_SOURCE} + ${XFORMS_SOURCE_SOFTMODEM} + ${T_SOURCE} + ${CONFIG_SOURCES} + ${SHLIB_LOADER_SOURCES} + ) + +target_link_libraries (nr-softmodem + -Wl,--start-group + UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY_NR LFDS 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 S1AP_LIB S1AP_ENB L2 + #NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB + -Wl,--end-group z dl) + +target_link_libraries (nr-softmodem ${LIBXML2_LIBRARIES}) +target_link_libraries (nr-softmodem 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 (nr-softmodem ${LIB_LMS_LIBRARIES}) +target_link_libraries (nr-softmodem ${T_LIB}) + # USIM process ################# #add_executable(usim diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 5fd86249c56b08ffeadc6966bdf2645816b234d7..596b5aff7200f9133d257e19ad959a26f7c2b838 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -506,43 +506,28 @@ function main() { echo_info "3. building the compilation directives ..." DIR=$OPENAIR_DIR/cmake_targets - if [ "$NR" = "True" ] - then - if [ "$NOS1" = "1" ] ; then - build_dir=nr_noS1_build_oai - if [ "$gNB" = "1" ] ; then - exec=nr-softmodem-nos1 - fi - if [ "$nrUE" = "1" ] ; then - exec=nr-uesoftmodem-nos1 - fi - else - build_dir=nr_build_oai - if [ "$gNB" = "1" ] ; then - exec=nr-softmodem - fi - if [ "$nrUE" = "1" ] ; then - exec=nr-uesoftmodem - fi - fi + if [ "$NOS1" = "1" ] ; then + build_dir=noS1_build_ran + if [ "$gNB" = "1" ] ; then + exec=nr-softmodem-nos1 + elif [ "$nrUE" = "1" ] ; then + exec=nr-uesoftmodem-nos1 + elif [ "$eNB" = "1" ] ; then + exec=lte-softmodem-nos1 + elif [ "$UE" = "1" ] ; then + exec=lte-uesoftmodem-nos1 + fi else - if [ "$NOS1" = "1" ] ; then - build_dir=lte_noS1_build_oai - if [ "$eNB" = "1" ] ; then - exec=lte-softmodem-nos1 - fi - if [ "$UE" = "1" ] ; then - exec=lte-uesoftmodem-nos1 - fi - else - build_dir=lte_build_oai - if [ "$eNB" = "1" ] ; then - exec=lte-softmodem - fi - if [ "$UE" = "1" ] ; then - exec=lte-uesoftmodem - fi - fi + build_dir=build_ran + if [ "$gNB" = "1" ] ; then + exec=nr-softmodem + elif [ "$nrUE" = "1" ] ; then + exec=nr-uesoftmodem + elif [ "$eNB" = "1" ] ; then + exec=lte-softmodem + elif [ "$UE" = "1" ] ; then + exec=lte-uesoftmodem + fi fi # configuration module libraries, one currently available, using libconfig diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template deleted file mode 100644 index c8fc68da529fa4db87461e2b27cfeab044165061..0000000000000000000000000000000000000000 --- a/cmake_targets/lte_noS1_build_oai/CMakeLists.template +++ /dev/null @@ -1,9 +0,0 @@ -set(ENABLE_ITTI True) -set(ENABLE_USE_MME False) -set(PDCP_USE_NETLINK True) -set(LINK_ENB_PDCP_TO_IP_DRIVER True) -set(LINK_ENB_PDCP_TO_GTPV1U False) -set(PDCP_USE_NETLINK_QUEUES False) -set(LINUX True) -set(SECU False) -set(NAS_UE False) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 706cd05fe9ff084d62bf818aebf5e126c6e183dc..2b8123c86b796b9927ec389df6431da67e85b2c8 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -147,7 +147,7 @@ clean_all_files() { set_openair_env dir=$OPENAIR_DIR/cmake_targets rm -rf $dir/log $OPENAIR_DIR/targets/bin/* - rm -rf $dir/lte_build_oai $dir/lte-simulators/build + rm -rf $dir/build_oai $dir/lte-simulators/build rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build } diff --git a/openair1/PHY/INIT/defs_NR.h b/openair1/PHY/INIT/defs_NR.h new file mode 100644 index 0000000000000000000000000000000000000000..f4915401ddf2252afe5b8efb7a5d2ddeb17c4e99 --- /dev/null +++ b/openair1/PHY/INIT/defs_NR.h @@ -0,0 +1,27 @@ +/* + * 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 + */ + +#ifndef __INIT_DEFS_NR__H__ +#define __INIT_DEFS_NR__H__ + +#include "PHY/defs.h" + +#endif diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c new file mode 100644 index 0000000000000000000000000000000000000000..9a9e7c6b3eea5f2f228ce07d0b69d096d4d893e7 --- /dev/null +++ b/openair1/PHY/INIT/nr_init.c @@ -0,0 +1,25 @@ +/* + * 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 "defs_NR.h" +#include "assertions.h" +#include <math.h> diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c new file mode 100644 index 0000000000000000000000000000000000000000..76ca0f043da0c35648e59dade46177e58b918e40 --- /dev/null +++ b/openair1/PHY/INIT/nr_parms.c @@ -0,0 +1,24 @@ +/* + * 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 "defs_NR.h" +#include "log.h" diff --git a/targets/RT/USER/nr-softmodem.c b/targets/RT/USER/nr-softmodem.c new file mode 100644 index 0000000000000000000000000000000000000000..772f8f564199e28dcc2cabff928bef95e066ef57 --- /dev/null +++ b/targets/RT/USER/nr-softmodem.c @@ -0,0 +1,22 @@ +/* + * 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 "nr-softmodem.h" diff --git a/targets/RT/USER/nr-softmodem.h b/targets/RT/USER/nr-softmodem.h new file mode 100644 index 0000000000000000000000000000000000000000..52ff1e1e3acd7a6839f326ca7a3b3508e8a3bd31 --- /dev/null +++ b/targets/RT/USER/nr-softmodem.h @@ -0,0 +1,4 @@ +#ifndef LTE_SOFTMODEM_H +#define LTE_SOFTMODEM_H + +#endif