diff --git a/LICENSE b/LICENSE
index 05b42e7c30..44a9a405fb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,94 +1,200 @@
- OAI PUBLIC LICENSE V1.0
+ The OpenAirInterface Software Alliance (OSA)
+ OAI Public License (Version 1.1)
- Copyright (C) 2016 OpenAirInterface Software Alliance, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
+LICENSE TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION OF OPENAIR 5G SOFTWARE.
-Definitions.
-“License” shall mean the terms and conditions for use, reproduction, and distribution set forth in this document.
+1. Definitions.
+
+“License” shall mean the terms and conditions for use, reproduction, and distribution set forth
+in this document.
“Licensor” shall mean the OpenAirInterface Software Alliance.
-“Legal Entity” shall mean the union, at the time an acting entity joins the Alliance, of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+“Legal Entity” shall mean the union, at the time an acting entity joins the Alliance, of the
+acting entity and all other entities that control, are controlled by, or are under common control
+with that entity. For the purposes of this definition, “control” means (i) the power, direct or
+indirect, to cause the direction or management of such entity, whether by contract or
+otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii)
+beneficial ownership of such entity.
-“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by this License.
+“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by
+this License.
-“Source” form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+“Source” form shall mean the preferred form for making modifications, including but not
+limited to software source code, documentation source, and configuration files.
-“Object” form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+“Object” form shall mean any form resulting from mechanical transformation or translation of
+a Source form, including but not limited to compiled object code, generated documentation,
+and conversions to other media types.
-“OpenAirInterface Software Alliance” shall mean the endowment fund established at the initiative of Eurecom, an educational and research establishment located at Campus Sophia Tech, 450 Route des Chappes, 06410 Biot, France, which statutes were signed on 18 November 2014.
+“OpenAirInterface Software Alliance” shall mean the endowment fund established at the
+initiative of Eurecom, an educational and research establishment located at Campus Sophia
+Tech, 450 Route des Chappes, 06410 Biot, France, which statutes were signed on 18
+November 2014.
-“ “Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+“Work” shall mean the work of authorship, whether in Source or Object form, made available
+under the License, as indicated by a copyright notice that is included in or attached to the
+work (an example is provided in the Appendix below).
-“Derivative Works” shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+“Derivative Works” shall mean any work, whether in Source or Object form, that is based on
+(or derived from) the Work and for which the editorial revisions, annotations, elaborations, or
+other modifications represent, as a whole, an original work of authorship. For the purposes of
+this License, Derivative Works shall not include works that remain separable from, or merely
+link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-“Contribution” shall mean any work of authorship that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, , or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work “Contributor License Agreement” shall mean the agreement signed by any Contributor setting forth the terms and conditions applicable to its Contribution. “Contributor” shall mean any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+“Contribution” shall mean any work of authorship that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or Legal Entity
+authorized to submit on behalf of the copyright owner. For the purposes of this definition,
+“submitted” means any form of electronic, , or written communication sent to the Licensor or
+its representatives, including but not limited to communication on electronic mailing lists,
+source code control systems, and issue tracking systems that are managed by, or on behalf of,
+the Licensor for the purpose of discussing and improving the Work
-Grant of Copyright License.
-Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form
+“Contributor License Agreement” shall mean the agreement signed by any Contributor setting
+forth the terms and conditions applicable to its Contribution.
-3. Grant of Patent License.
+“Contributor” shall mean any individual or Legal Entity on behalf of whom a Contribution
+has been received by Licensor and subsequently incorporated within the Work.
-3.1 Grant of Patent License for non-commercial purposes:
+2. Grant of Copyright License.
+Subject to the terms and conditions of this License, Licensor and each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of, publicly display, publicly
+perform, and distribute the Work and such Derivative Works in Source or Object form
-Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, import, and otherwise transfer the Work, for non-commercial purposes, where such license applies only to those patent claims licensable by such Contributor or Licensor that are necessarily infringed by the Work and/or their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.
+3. Grant of Patent License.
-3.2 Grant of Patent License for commercial purposes:
+3.1 Grant of Patent License for study, testing and research purposes:
+Subject to the terms and conditions of this License, Licensor and each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made, use, and otherwise
+transfer (excluding selling) the Work, solely for study, testing and research purposes, where
+such license applies only to those patent claims licensable by Licensor or such Contributor
+that are necessarily infringed respectively by the Work and/or the said Contributor
+Contribution(s) alone or by combination of their Contribution(s) with the Work to which
+such Contribution(s) was submitted (“Essential Patents”).
-For commercial purposes, and subject to the terms and conditions of this License, You commits to be prepared to negotiate a patent license with each Contributor and/or the Licensor on Fair, Reasonable and Non-Discriminatory (“FRAND”) terms and conditions for the Work or Contribution(s) incorporated within the Work.
-
-Licensor and/or each Contributor, by submitting a Contribution, will identify any patent it owns related to the Work and/or its Contribution.
+3.2 Grant of Patent License for purposes other than study and research:
+For purposes other than study, testing and research, and subject to the terms and conditions of
+this License, You commit to be prepared to negotiate a non-exclusive, non-transferable, non-
+assignable license of Essential Patents with each Contributor and/or the Licensor on Fair,
+Reasonable and Non-Discriminatory (“FRAND”) terms and conditions for the use of the
+Work or Contribution(s) incorporated within the Work.
+Licensor and/or each Contributor, by submitting a Contribution, will identify any of its known
+Essential Patent it owns related to the Work and/or its Contribution.
3.3 Patent Litigation
+If You institute patent litigation against any entity making use of the Work solely for study,
+testing and research purposes (including a cross-claim or counterclaim in a lawsuit) alleging
+that the Work or a Contribution incorporated within the Work constitutes direct or
+contributory patent infringement, then the patent licenses granted to You under section 3.1 of
+this License for that Work shall terminate as of the date such litigation is filed.
-If You institute patent litigation against any entity making non-commercial use of the Work (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+4. Sublicensing
+You may grant sublicenses under the licenses granted under sections 2 and 3.1 provided that
+the sublicense is subject to and inclusive of all the terms of and rights under this License to
+which the Work is or was distributed by the OpenAirInterface Software Alliance.
-4. Redistibution
+5. Redistribution
+Subject to terms and conditions set forth in sections 2 and 3, You may reproduce and
+distribute copies of the Work or Derivative Works thereof in any medium, with or without
+modifications, and in Source or Object form, provided that You meet the following
+conditions:
-Subject to terms and conditions set forth in articles 2 and 3, You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+1. You must give any other recipients of the Work or Derivative Works a copy of this
+License; and
+2. You must cause any modified files by You to carry prominent notices stating that You
+changed the files; and
+3. You must retain, in the Source form of any Derivative Works that You distribute, all
+copyright, patent, trademark, and attribution notices from the Source form of the Work,
+excluding those notices that do not pertain to any part of the Derivative Works; and
+4. If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative
+Works that You distribute must include a readable copy of the attribution notices contained
+within such NOTICE file, excluding those notices that do not pertain to any part of the
+Derivative Works, in at least one of the following places: within a NOTICE text file
+distributed as part of the Derivative Works; within the Source form or documentation, if
+provided along with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents of the
+NOTICE file are for informational purposes only and do not modify the License. You may
+add Your own attribution notices within Derivative Works that You distribute, alongside or as
+an addendum to the NOTICE text from the Work, provided that such additional attribution
+notices cannot be construed as modifying the License.
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or distribution of
+Your modifications, or for any such Derivative Works as a whole, provided Your use,
+reproduction, and distribution of the Work otherwise complies with the conditions stated in
+this License.
-1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
+6. Submission of Contributions.
+Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be
+under the terms and conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of any
+separate license agreement such as the Contributor License Agreement You may have
+executed with Licensor regarding such Contributions.
-2. You must cause any modified files by You to carry prominent notices stating that You changed the files; and
+7. Trademarks.
+This License does not grant permission to use the trade names, trademarks, service marks, or
+product names of the Licensor, except as required for reasonable and customary use in
+describing the origin of the Work and reproducing the content of the NOTICE file.
-3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+8. Disclaimer of Warranty.
+Unless required by applicable law or agreed to in writing, Licensor provides the Work (and
+each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
+without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
+responsible for determining the appropriateness of using or redistributing the Work and
+assume any risks associated with your exercise of permissions under this License.
-4. If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+9. Limitation of Liability.
+In no event and under no legal theory, whether in tort (including negligence), contract, or
+otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or
+agreed to in writing, shall Licensor and any Contributor, as such, be liable to You for
+damages, including any direct, indirect, special, incidental, or consequential damages of any
+character arising as a result of this License or out of Your use or inability to use the Work
+(including but not limited to damages for loss of goodwill, work stoppage, computer failure or
+malfunction, or any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+10. Accepting Warranty or Additional Liability.
+While redistributing the Work or Derivative Works thereof, You may choose to offer, and
+charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations
+and/or rights consistent with this License. However, in accepting such obligations, You may
+act only on Your own behalf and on Your sole responsibility, not on behalf of any other
+Contributor and/or the Licensor, and only if You agree to indemnify, defend, and hold each
+Contributor and/or the Licensor harmless for any liability incurred by, or claims asserted
+against, such Contributor and/or Licensor by reason of Your accepting any such warranty or
+additional liability.
-You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement such as the Contributor License Agreement You may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall Licensor and any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor and/or the Licensor,and only if You agree to indemnify, defend, and hold each Contributor and/or the Licensor harmless for any liability incurred by, or claims asserted against, such Contributor and/or Licensor by reason of Your accepting any such warranty or additional liability.
-
-10. Applicable law. The present license shall be governed by the laws of France.
+11. Applicable law.
+The present license shall be governed by the laws of France.
END OF TERMS AND CONDITIONS
-APPENDIX: How to apply the PRESENT OPENAIR 5G License to your work
-To apply the present License to your work, attach the following boilerplate notice, with the fields enclosed by brackets “[]” replaced with your own identifying information. (Don’t include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives.
+1. APPENDIX: How to apply the PRESENT OPENAIR 5G License to your work
+To apply the present License to your work, attach the following boilerplate notice, with the
+fields enclosed by brackets “[]” replaced with your own identifying information. (Don’t
+include the brackets!) The text should be enclosed in the appropriate comment syntax for the
+file format. We also recommend that a file or class name and description of purpose be
+included on the same “printed page” as the copyright notice for easier identification within
+third-party archives.
Copyright [yyyy] [name of copyright owner]
-Licensed under the License terms and conditions for use, reproduction, and distribution of OPENAIR 5G software (the “License”);
-you may not use this file except in compliance with the License.You may obtain a copy of the License at
-Unless required by applicable law or agreed to in writing, software
+Licensed under the License terms and conditions for use, reproduction, and distribution of
+OPENAIR 5G software (the “License”);
-distributed under the License is distributed on an “AS IS” BASIS,
+you may not use this file except in compliance with the License. You may obtain a copy of
+the License at
+
+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
+See the License for the specific language governing permissions and limitations under the
+License.
-limitations under the License.
diff --git a/README.txt b/README.txt
index bff09c7a2a..edd233830f 100644
--- a/README.txt
+++ b/README.txt
@@ -43,3 +43,4 @@ v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
v0.6 -> RRH functionality, UE greatly improved, better TDD support,
a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not
work, you need to use v0.5.2 for that.
+v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.
diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 723ad38d67..1ad1caf1fd 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
@@ -27,8 +27,8 @@ cmake_minimum_required (VERSION 2.8)
# Base directories, compatible with legacy OAI building
################################################
set (OPENAIR_DIR $ENV{OPENAIR_DIR})
-#set (NFAPI_DIR $ENV{NFAPI_DIR})
-set (NFAPI_DIR ${OPENAIR_DIR}/nfapi)
+set (NFAPI_DIR ${OPENAIR_DIR}/nfapi/open-nFAPI)
+set (NFAPI_USER_DIR ${OPENAIR_DIR}/nfapi/oai_integration)
set (OPENAIR1_DIR ${OPENAIR_DIR}/openair1)
set (OPENAIR2_DIR ${OPENAIR_DIR}/openair2)
set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3)
@@ -241,6 +241,7 @@ add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs
add_boolean_option(UE_DEBUG_TRACE False "Activate UE debug trace")
add_boolean_option(UE_TIMING_TRACE False "Activate UE timing trace")
add_boolean_option(DISABLE_LOG_X False "Deactivate all LOG_* macros")
+add_boolean_option(USRP_REC_PLAY False "Enable USRP record playback mode")
add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering")
@@ -261,9 +262,6 @@ if (${ENABLE_ITTI})
set(GTPU_need_ITTI ${OPENAIR3_DIR}/GTPV1-U/gtpv1u_eNB.c)
endif (${ENABLE_ITTI})
-add_boolean_option(RTAI False "Use RTAI")
-
-
#############################
# ASN.1 grammar C code generation & dependancies
################################
@@ -291,7 +289,7 @@ elseif (${RRC_ASN1_VERSION} STREQUAL "CBA")
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
else()
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn)
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
@@ -312,11 +310,12 @@ if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
endif (NOT ${ret} STREQUAL 0)
file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
-set(rrc_source ${rrc_source} ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c)
file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn1_constants.h)
set_source_files_properties(${rrc_source} PROPERTIES COMPILE_FLAGS -w) # suppress warnings from generated code
-add_library(RRC_LIB ${rrc_h} ${rrc_source})
+add_library(RRC_LIB ${rrc_h} ${rrc_source}
+ ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c
+ ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg_NB_IoT.c)
include_directories ("${RRC_FULL_DIR}")
# add the command to generate the source code
@@ -484,7 +483,6 @@ include_directories ("${X2AP_DIR}")
###################################
add_list1_option(NB_ANTENNAS_RX "2" "Number of antennas in reception" "1" "2" "4")
add_list1_option(NB_ANTENNAS_TX "4" "Number of antennas in transmission" "1" "2" "4")
-add_list1_option(NB_ANTENNAS_TXRX "2" "Number of antennas in ????" "1" "2" "4")
add_list2_option(RF_BOARD "EXMIMO" "RF head type" "None" "EXMIMO" "OAI_USRP" "OAI_BLADERF" "CPRIGW" "OAI_LMSSDR")
@@ -586,15 +584,13 @@ Message("CPU_Affinity flag is ${CPU_AFFINITY}")
add_boolean_option(ENABLE_SECURITY True "Enable LTE integrity and ciphering between RRC UE and eNB")
add_boolean_option(ENABLE_USE_MME True "eNB connected to MME (INTERFACE S1-C), not standalone eNB")
add_boolean_option(NO_RRM True "DO WE HAVE A RADIO RESSOURCE MANAGER: NO")
-add_boolean_option(USER_MODE True "????")
add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the default bearer")
add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
-add_boolean_option(DISABLE_USE_NAS False "???")
add_boolean_option(DEADLINE_SCHEDULER True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
add_boolean_option(CPU_AFFINITY False "Enable CPU Affinity of threads (only valid without deadline scheduler). It is enabled only with >2 CPUs")
add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver")
-add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
+add_boolean_option(NAS_NETLINK False "useless ??? Must be True to compile nasmesh driver without rtai ????")
add_boolean_option(OAISIM False "specific to oaisim")
add_boolean_option(OAI_NW_DRIVER_USE_NETLINK True "????")
@@ -604,29 +600,17 @@ add_boolean_option(MESSAGE_CHART_GENERATOR False "For generating sequenc
add_boolean_option(MESSAGE_CHART_GENERATOR_RLC_MAC False "trace RLC-MAC exchanges in sequence diagrams")
add_boolean_option(MESSAGE_CHART_GENERATOR_PHY False "trace some PHY exchanges in sequence diagrams")
-add_boolean_option(FLEXRAN_AGENT_SB_IF False "enable FlexRAN agent to inteface with a SDN controller")
-
########################
# Include order
##########################
add_boolean_option(ENB_MODE True "Swap the include directories between openair2 and openair3" )
-##########################
-# Emulation options
-##########################
-add_boolean_option(ENABLE_PGM_TRANSPORT False "specific to oaisim, emulation through ethernet, reliable multicast")
-add_boolean_option(ADDR_CONF False "specific to oaisim, IP autoconf of user-plane IP interface")
-add_boolean_option(OPENAIR_EMU False "specific to oaisim")
-add_boolean_option(OAI_EMU False "specific to oaisim")
-add_boolean_option(PHY_ABSTRACTION False "specific to oaisim")
-
##########################
# SCHEDULING/REAL-TIME/PERF options
##########################
add_boolean_option(ENABLE_USE_CPU_EXECUTION_TIME True "Add data in vcd traces: disable it if perf issues")
add_boolean_option(ENABLE_VCD True "always true now, time measurements of proc calls and var displays")
add_boolean_option(ENABLE_VCD_FIFO True "time measurements of proc calls and var displays sent to FIFO (one more thread)")
-add_boolean_option(HARD_RT False "???")
add_boolean_option(LINUX False "used in weird memcpy() in pdcp.c ???")
add_boolean_option(LINUX_LIST False "used only in lists.c: either use OAI implementation of lists or Linux one (should be True, but it is False")
add_boolean_option(LOG_NO_THREAD True "Disable thread for log, seems always set to true")
@@ -636,24 +620,15 @@ add_boolean_option(OPENAIR_LTE True "Seems legacy: keep it to true")
# PHY options
##########################
add_boolean_option(DRIVER2013 True "only relevant for EXMIMO")
-add_boolean_option(ENABLE_FXP True "????")
add_boolean_option(ENABLE_NEW_MULTICAST False "specific to oaisim")
add_boolean_option(EXMIMO_IOT True "????")
add_boolean_option(LARGE_SCALE False "specific to oaisim: defines max eNB=2 and max UE=120")
add_boolean_option(LOCALIZATION False "???")
add_integer_option(MAX_NUM_CCs 1 "????")
add_boolean_option(MU_RECEIVER False "????")
-add_boolean_option(NEW_FFT True "????")
-add_boolean_option(OPENAIR1 True "????")
-add_boolean_option(PBS_SIM False "????")
-add_boolean_option(PC_DSP True "????")
-add_boolean_option(PC_TARGET True "????")
-add_boolean_option(PERFECT_CE False "????")
add_boolean_option(PHYSIM True "for L1 simulators (dlsim, ulsim, ...)")
add_boolean_option(PHY_CONTEXT True "not clear: must remain False for dlsim")
add_boolean_option(PHY_EMUL False "not clear: must remain False for dlsim")
-add_boolean_option(PUCCH True "????")
-add_boolean_option(RANDOM_BF False "????")
add_boolean_option(SMBV False "Rohde&Schwarz SMBV100A vector signal generator")
add_boolean_option(DEBUG_PHY False "Enable PHY layer debugging options")
add_boolean_option(DEBUG_PHY_PROC False "Enable debugging of PHY layer procedures")
@@ -726,23 +701,7 @@ add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "Otherwise it is UM, confi
##########################
# none
-##########################
-# PROJECTS (IST, FRENCH COLL., etc)
-# SPECIFIC OPTIONS
-##########################
-add_boolean_option(SPECTRA False "???")
-add_boolean_option(MIH_C_MEDIEVAL_EXTENSIONS False "EXTENSIONS TO MIH 802.21 IN CONTEXT OF IST PROJECT CALLED MEDIEVAL")
-
-
-
-add_boolean_option(EMOS False "????")
-if(${EMOS})
- add_definitions("-D_FILE_OFFSET_BITS=64")
- set(EMOS_LIB gps)
-endif(${EMOS})
-
-
- # add the binary tree to the search path for include files
+# add the binary tree to the search path for include files
#######################################################
# We will find ConfigOAI.h after generation in target directory
include_directories("${OPENAIR_BIN_DIR}")
@@ -768,9 +727,13 @@ else()
include_directories("${OPENAIR2_DIR}/UTIL")
include_directories("${OPENAIR2_DIR}/UTIL/LOG")
endif()
-include_directories("${NFAPI_DIR}")
+include_directories("${NFAPI_DIR}/nfapi/public_inc")
+include_directories("${NFAPI_DIR}/common/public_inc")
+include_directories("${NFAPI_DIR}/pnf/public_inc")
+include_directories("${NFAPI_DIR}/nfapi/inc")
+include_directories("${NFAPI_DIR}/sim_common/inc")
+include_directories("${NFAPI_DIR}/pnf_sim/inc")
include_directories("${OPENAIR1_DIR}")
-include_directories("${OPENAIR2_DIR}/NAS")
include_directories("${OPENAIR2_DIR}")
include_directories("${OPENAIR2_DIR}/LAYER2/RLC")
include_directories("${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0")
@@ -802,6 +765,8 @@ include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/USERSPACE/LIB/")
include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/DEFS")
include_directories("${OPENAIR2_DIR}/ENB_APP")
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC")
+include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/RRC")
+include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/PDCP")
include_directories("${OPENAIR2_DIR}/UTIL/OSA")
include_directories("${OPENAIR2_DIR}/UTIL/LFDS/liblfds6.1.1/liblfds611/inc")
include_directories("${OPENAIR2_DIR}/UTIL/LFDS/liblfds7.0.0/liblfds700/inc")
@@ -823,92 +788,94 @@ include_directories("${OPENAIR_DIR}")
# Utilities Library
################
-if (FLEXRAN_AGENT_SB_IF)
- # set the version of protobuf messages, V3 not supported yet
- add_list1_option(FLPT_VERSION V2 "FLPT MSG protobuf grammar version" V2 V3)
+# set the version of protobuf messages, V3 not supported yet
+add_list1_option(FLPT_VERSION V2 "FLPT MSG protobuf grammar version" V2 V3)
- if (${FLPT_VERSION} STREQUAL "V2")
- set (FLPTDIR V2)
- elseif (${FLPT_VERSION} STREQUAL "V3")
- set (FLPTDIR V3)
- endif(${FLPT_VERSION} STREQUAL "V2")
+if (${FLPT_VERSION} STREQUAL "V2")
+ set (FLPTDIR V2)
+elseif (${FLPT_VERSION} STREQUAL "V3")
+ set (FLPTDIR V3)
+endif(${FLPT_VERSION} STREQUAL "V2")
- set(FLPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${FLPTDIR} )
- set(FLPT_MSG_FILES
- ${FLPT_MSG_DIR}/header.proto
- ${FLPT_MSG_DIR}/flexran.proto
- ${FLPT_MSG_DIR}/stats_common.proto
- ${FLPT_MSG_DIR}/stats_messages.proto
- ${FLPT_MSG_DIR}/time_common.proto
- ${FLPT_MSG_DIR}/controller_commands.proto
- ${FLPT_MSG_DIR}/mac_primitives.proto
- ${FLPT_MSG_DIR}/config_messages.proto
- ${FLPT_MSG_DIR}/config_common.proto
- ${FLPT_MSG_DIR}/control_delegation.proto
- )
+set(FLPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${FLPTDIR} )
+set(FLPT_MSG_FILES
+ ${FLPT_MSG_DIR}/header.proto
+ ${FLPT_MSG_DIR}/flexran.proto
+ ${FLPT_MSG_DIR}/stats_common.proto
+ ${FLPT_MSG_DIR}/stats_messages.proto
+ ${FLPT_MSG_DIR}/time_common.proto
+ ${FLPT_MSG_DIR}/controller_commands.proto
+ ${FLPT_MSG_DIR}/mac_primitives.proto
+ ${FLPT_MSG_DIR}/config_messages.proto
+ ${FLPT_MSG_DIR}/config_common.proto
+ ${FLPT_MSG_DIR}/control_delegation.proto
+ )
- set(FLPT_C_DIR ${protobuf_generated_dir}/${FLPTDIR})
- #message("calling protoc_call=${protoc_call} FLPT_C_DIR=${FLPT_C_DIR} FLPT_MSG_FILES=${FLPT_MSG_FILES}")
- execute_process(COMMAND ${protoc_call} ${FLPT_C_DIR} ${FLPT_MSG_DIR} ${FLPT_MSG_FILES})
- file(GLOB FLPT_source ${FLPT_C_DIR}/*.c)
- set(FLPT_OAI_generated
- ${FLPT_C_DIR}/header.pb-c.c
- ${FLPT_C_DIR}/flexran.pb-c.c
- ${FLPT_C_DIR}/stats_common.pb-c.c
- ${FLPT_C_DIR}/stats_messages.pb-c.c
- ${FLPT_C_DIR}/time_common.pb-c.c
- ${FLPT_C_DIR}/controller_commands.pb-c.c
- ${FLPT_C_DIR}/mac_primitives.pb-c.c
- ${FLPT_C_DIR}/config_messages.pb-c.c
- ${FLPT_C_DIR}/config_common.pb-c.c
- ${FLPT_C_DIR}/control_delegation.pb-c.c
- )
+set(FLPT_C_DIR ${protobuf_generated_dir}/${FLPTDIR})
+#message("calling protoc_call=${protoc_call} FLPT_C_DIR=${FLPT_C_DIR} FLPT_MSG_FILES=${FLPT_MSG_FILES}")
+execute_process(COMMAND ${protoc_call} ${FLPT_C_DIR} ${FLPT_MSG_DIR} ${FLPT_MSG_FILES})
+file(GLOB FLPT_source ${FLPT_C_DIR}/*.c)
+set(FLPT_OAI_generated
+ ${FLPT_C_DIR}/header.pb-c.c
+ ${FLPT_C_DIR}/flexran.pb-c.c
+ ${FLPT_C_DIR}/stats_common.pb-c.c
+ ${FLPT_C_DIR}/stats_messages.pb-c.c
+ ${FLPT_C_DIR}/time_common.pb-c.c
+ ${FLPT_C_DIR}/controller_commands.pb-c.c
+ ${FLPT_C_DIR}/mac_primitives.pb-c.c
+ ${FLPT_C_DIR}/config_messages.pb-c.c
+ ${FLPT_C_DIR}/config_common.pb-c.c
+ ${FLPT_C_DIR}/control_delegation.pb-c.c
+ )
- file(GLOB flpt_h ${FLPT_C_DIR}/*.h)
- set(flpt_h ${flpt_h} )
+file(GLOB flpt_h ${FLPT_C_DIR}/*.h)
+set(flpt_h ${flpt_h} )
- add_library(FLPT_MSG
- ${FLPT_OAI_generated}
- ${FLPT_source}
- )
- set(FLPT_MSG_LIB FLPT_MSG)
- #message("prpt c dir is : ${FLPT_C_DIR}")
- include_directories (${FLPT_C_DIR})
+add_library(FLPT_MSG
+ ${FLPT_OAI_generated}
+ ${FLPT_source}
+ )
+set(FLPT_MSG_LIB FLPT_MSG)
+#message("prpt c dir is : ${FLPT_C_DIR}")
+include_directories (${FLPT_C_DIR})
- add_library(ASYNC_IF
- ${OPENAIR2_DIR}/UTIL/ASYNC_IF/socket_link.c
- ${OPENAIR2_DIR}/UTIL/ASYNC_IF/link_manager.c
- ${OPENAIR2_DIR}/UTIL/ASYNC_IF/message_queue.c
- ${OPENAIR2_DIR}/UTIL/ASYNC_IF/ringbuffer_queue.c
- )
- set(ASYNC_IF_LIB ASYNC_IF)
- include_directories(${OPENAIR2_DIR}/UTIL/ASYNC_IF)
+add_library(ASYNC_IF
+ ${OPENAIR2_DIR}/UTIL/ASYNC_IF/socket_link.c
+ ${OPENAIR2_DIR}/UTIL/ASYNC_IF/link_manager.c
+ ${OPENAIR2_DIR}/UTIL/ASYNC_IF/message_queue.c
+ ${OPENAIR2_DIR}/UTIL/ASYNC_IF/ringbuffer_queue.c
+ )
+set(ASYNC_IF_LIB ASYNC_IF)
+include_directories(${OPENAIR2_DIR}/UTIL/ASYNC_IF)
- add_library(FLEXRAN_AGENT
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_handler.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_common.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_common_internal.c
- ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_task_manager.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_net_comm.c
- ${OPENAIR2_DIR}/ENB_APP/flexran_agent_async.c
- ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
- )
- set(FLEXRAN_AGENT_LIB FLEXRAN_AGENT)
- #include_directories(${OPENAIR2_DIR}/ENB_APP)
+add_library(FLEXRAN_AGENT
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_handler.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_common.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_ran_api.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_timer.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_common_internal.c
+ ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+ ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c
+ ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/PDCP/flexran_agent_pdcp.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_task_manager.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_net_comm.c
+ ${OPENAIR2_DIR}/ENB_APP/flexran_agent_async.c
+ ${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
+ )
+set(FLEXRAN_AGENT_LIB FLEXRAN_AGENT)
+#include_directories(${OPENAIR2_DIR}/ENB_APP)
- set(PROTOBUF_LIB "protobuf-c")
+set(PROTOBUF_LIB "protobuf-c")
- FIND_PATH(LIBYAML_INCLUDE_DIR NAMES yaml.h)
- FIND_LIBRARY(LIBYAML_LIBRARIES NAMES yaml libyaml)
+FIND_PATH(LIBYAML_INCLUDE_DIR NAMES yaml.h)
+FIND_LIBRARY(LIBYAML_LIBRARIES NAMES yaml libyaml)
- INCLUDE(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(Yaml DEFAULT_MSG LIBYAML_LIBRARIES LIBYAML_INCLUDE_DIR)
- MARK_AS_ADVANCED(LIBYAML_INCLUDE_DIR LIBYAML_LIBRARIES)
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Yaml DEFAULT_MSG LIBYAML_LIBRARIES LIBYAML_INCLUDE_DIR)
+MARK_AS_ADVANCED(LIBYAML_INCLUDE_DIR LIBYAML_LIBRARIES)
- #set(PROTOBUF_LIB "protobuf") #for Cpp
-endif()
+#set(PROTOBUF_LIB "protobuf") #for Cpp
add_library(HASHTABLE
@@ -1002,6 +969,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
@@ -1010,9 +978,177 @@ 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
+ ${NFAPI_DIR}/common/src/debug.c
+)
+add_library(NFAPI_COMMON_LIB ${NFAPI_COMMON_SRC})
+
+include_directories(${NFAPI_DIR}/common/public_inc)
+
+set(NFAPI_SRC
+ ${NFAPI_DIR}/nfapi/src/nfapi.c
+ ${NFAPI_DIR}/nfapi/src/nfapi_p4.c
+ ${NFAPI_DIR}/nfapi/src/nfapi_p5.c
+ ${NFAPI_DIR}/nfapi/src/nfapi_p7.c
+)
+add_library(NFAPI_LIB ${NFAPI_SRC})
+
+include_directories(${NFAPI_DIR}/nfapi/public_inc)
+include_directories(${NFAPI_DIR}/nfapi/inc)
+
+set(NFAPI_PNF_SRC
+ ${NFAPI_DIR}/pnf/src/pnf.c
+ ${NFAPI_DIR}/pnf/src/pnf_interface.c
+ ${NFAPI_DIR}/pnf/src/pnf_p7.c
+ ${NFAPI_DIR}/pnf/src/pnf_p7_interface.c
+)
+add_library(NFAPI_PNF_LIB ${NFAPI_PNF_SRC})
+
+include_directories(${NFAPI_DIR}/pnf/public_inc)
+include_directories(${NFAPI_DIR}/pnf/inc)
+
+set(NFAPI_VNF_SRC
+ ${NFAPI_DIR}/vnf/src/vnf.c
+ ${NFAPI_DIR}/vnf/src/vnf_interface.c
+ ${NFAPI_DIR}/vnf/src/vnf_p7.c
+ ${NFAPI_DIR}/vnf/src/vnf_p7_interface.c
+)
+add_library(NFAPI_VNF_LIB ${NFAPI_VNF_SRC})
+
+include_directories(${NFAPI_DIR}/vnf/public_inc)
+include_directories(${NFAPI_DIR}/vnf/inc)
+
+# nFAPI user defined code
+#############################
+set(NFAPI_USER_SRC
+ ${NFAPI_USER_DIR}/nfapi.c
+ ${NFAPI_USER_DIR}/nfapi_pnf.c
+ ${NFAPI_USER_DIR}/nfapi_vnf.c
+)
+add_library(NFAPI_USER_LIB ${NFAPI_USER_SRC})
+include_directories(${NFAPI_USER_DIR})
+
# Layer 1
#############################
+set(PHY_TURBOSRC
+ ${OPENAIR1_DIR}/PHY/CODING/3gpplte_sse.c
+ ${OPENAIR1_DIR}/PHY/CODING/3gpplte.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/3gpplte_turbo_decoder.c
+)
+set(PHY_TURBOIF
+ ${OPENAIR1_DIR}/PHY/CODING/coding_load.c
+)
+
+add_library(coding MODULE ${PHY_TURBOSRC} )
set(PHY_SRC
+ # 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/crc_byte.c
+ ${PHY_TURBOIF}
+ ${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.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
@@ -1081,13 +1217,13 @@ set(PHY_SRC
${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
+ ${PHY_TURBOIF}
${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.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
@@ -1103,15 +1239,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
#####################
@@ -1165,14 +1304,60 @@ 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
+ ${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
@@ -1183,21 +1368,22 @@ set (MAC_SRC
${MAC_DIR}/eNB_scheduler_phytest.c
${MAC_DIR}/pre_processor.c
${MAC_DIR}/config.c
+ ${MAC_DIR}/config_ue.c
)
-if (FLEXRAN_AGENT_SB_IF)
-
-set (MAC_SRC ${MAC_SRC}
- ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue.c
- ${MAC_DIR}/flexran_agent_scheduler_dataplane.c
- ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue_remote.c
-)
-
-endif()
+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
+ )
set (ENB_APP_SRC
${OPENAIR2_DIR}/ENB_APP/enb_app.c
${OPENAIR2_DIR}/ENB_APP/enb_config.c
+ ${OPENAIR2_DIR}/ENB_APP/RRC_config_tools.c
)
add_library(L2
@@ -1206,13 +1392,13 @@ add_library(L2
${ENB_APP_SRC})
# ${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
-if (FLEXRAN_AGENT_SB_IF)
+add_library(L2_UE
+ ${L2_SRC_UE}
+ ${MAC_SRC_UE}
+)
-#Test for adding a shared library
-add_library(default_sched SHARED ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue.c)
-add_library(remote_sched SHARED ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue_remote.c)
-endif()
+include_directories(${NFAPI_USER_DIR})
# L3 Libs
##########################
@@ -1243,26 +1429,6 @@ if (${ENABLE_RAL})
set(RAL_LIB RAL)
endif()
-if(${MIH_C_MEDIEVAL_EXTENSIONS})
- set(MIH_SRC
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_header_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_msg_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_primitive_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F1_basic_data_types_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F2_general_data_types_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F3_data_types_for_address_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F4_data_types_for_links_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F9_data_types_for_qos_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_F13_data_types_for_information_elements_codec.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_L2_type_values_for_tlv_encoding.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_Medieval_extensions.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C_bit_buffer.c
- ${RAL_LTE_DIR}INTERFACE-802.21/C/MIH_C.c
- )
- add_library(MIH ${MIH_SRC})
- set(MIH_LIB MIH)
-endif()
-
# CN libs
##########################
@@ -1553,6 +1719,17 @@ if(NAS_UE)
endif()
+# nbiot
+add_definitions("-DNUMBER_OF_UE_MAX_NB_IoT=16")
+set (NBIOT_SOURCES
+ ${OPENAIR2_DIR}/ENB_APP/NB_IoT_config.c
+)
+add_library(NB_IoT MODULE ${NBIOT_SOURCES} )
+
+# shared library loader
+set (SHLIB_LOADER_SOURCES
+ ${OPENAIR_DIR}/common/utils/load_module_shlib.c
+)
# Make lfds as a own source code (even if it is a outside library)
# For better intergration with compilation flags & structure of cmake
@@ -1612,13 +1789,20 @@ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/emu_transport.c
-${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/pgm_link.c
)
add_library(OPENAIR0_LIB
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
)
+include_directories("${NFAPI_DIR}/nfapi/public_inc")
+include_directories("${NFAPI_DIR}/common/public_inc")
+include_directories("${NFAPI_DIR}/pnf/public_inc")
+include_directories("${NFAPI_DIR}/nfapi/inc")
+include_directories("${NFAPI_DIR}/sim_common/inc")
+include_directories("${NFAPI_DIR}/pnf_sim/inc")
+
+
# System packages that are required
# We use either the cmake buildin, in ubuntu are in: /usr/share/cmake*/Modules/
# or cmake provide a generic interface to pkg-config that widely used
@@ -1701,6 +1885,16 @@ if(EXISTS "/usr/include/atlas/cblas.h" OR EXISTS "/usr/include/cblas.h")
endif()
list(APPEND ATLAS_LIBRARIES lapack)
+
+# for ubuntu 17.10, directories are different
+elseif(EXISTS "/usr/include/x86_64-linux-gnu/cblas.h")
+
+ include_directories("/usr/include/x86_64-linux-gnu")
+ LINK_DIRECTORIES("/usr/lib/x86_64-linux-gnu")
+ list(APPEND ATLAS_LIBRARIES cblas)
+ list(APPEND ATLAS_LIBRARIES atlas)
+ list(APPEND ATLAS_LIBRARIES lapack)
+
else()
message("No Blas/Atlas libs found, some targets will fail")
endif()
@@ -1764,10 +1958,10 @@ add_executable(lte-softmodem
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
- ${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
+ ${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
@@ -1777,7 +1971,6 @@ add_executable(lte-softmodem
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
${GTPU_need_ITTI}
- ${RTAI_SOURCE}
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
${T_SOURCE}
@@ -1785,10 +1978,12 @@ add_executable(lte-softmodem
${SHLIB_LOADER_SOURCES}
)
-target_link_libraries (lte-softmodem -ldl
+target_link_libraries (lte-softmodem
-Wl,--start-group
- RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
- -Wl,--end-group )
+ RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
+ ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_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 ${LIBXML2_LIBRARIES})
target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
@@ -1802,10 +1997,10 @@ add_executable(lte-softmodem-nos1
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
- ${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
+ ${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
@@ -1814,7 +2009,6 @@ add_executable(lte-softmodem-nos1
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR_DIR}/common/utils/system.c
- ${RTAI_SOURCE}
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
${T_SOURCE}
@@ -1823,34 +2017,85 @@ 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} ${MIH_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})
-# rrh
-################################
-#Note: only one RF type (USRP) is currently supported for RRH
-add_executable(rrh_gw
- ${OPENAIR_TARGETS}/RT/USER/rrh_gw.c
- ${OPENAIR_TARGETS}/RT/USER/eNB_transport_IQ.c
- ${OPENAIR_TARGETS}/RT/USER/UE_transport_IQ.c
- ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
- ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
- ${T_SOURCE}
- )
-target_include_directories(rrh_gw PRIVATE ${OPENAIR_DIR}/common/utils/itti)
-target_link_libraries(rrh_gw
- -Wl,--start-group
- UTIL LFDS -ldl
- -Wl,--end-group )
-target_link_libraries (rrh_gw rt pthread m )
-target_link_libraries (rrh_gw ${LIB_LMS_LIBRARIES})
-target_link_libraries (rrh_gw ${T_LIB})
+# lte-uesoftmodem is UE implementation
+#######################################
+add_executable(lte-uesoftmodem
+ ${rrc_h}
+ ${s1ap_h}
+ ${OPENAIR_BIN_DIR}/messages_xml.h
+ ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
+ ${OPENAIR_TARGETS}/RT/USER/lte-ue.c
+ ${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
+ ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
+ ${OPENAIR_TARGETS}/SIMU/USER/init_lte.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
+ ${OPENAIR_DIR}/common/utils/utils.c
+ ${OPENAIR_DIR}/common/utils/system.c
+ ${XFORMS_SOURCE}
+ ${XFORMS_SOURCE_SOFTMODEM}
+ ${T_SOURCE}
+ ${CONFIG_SOURCES}
+ ${SHLIB_LOADER_SOURCES}
+ )
+
+target_link_libraries (lte-uesoftmodem
+ -Wl,--start-group
+ RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_UE_LIB PHY_UE LFDS L2_UE
+ ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7
+ -Wl,--end-group z dl)
+
+target_link_libraries (lte-uesoftmodem ${LIBXML2_LIBRARIES})
+target_link_libraries (lte-uesoftmodem 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-uesoftmodem ${LIB_LMS_LIBRARIES})
+target_link_libraries (lte-uesoftmodem ${T_LIB})
+
+# lte-softmodem-nos1 is both eNB and UE implementation
+###################################################
+add_executable(lte-uesoftmodem-nos1
+ ${rrc_h}
+ ${s1ap_h}
+ ${OPENAIR_BIN_DIR}/messages_xml.h
+ ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
+ ${OPENAIR_TARGETS}/RT/USER/lte-ue.c
+ ${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
+ ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
+ ${OPENAIR_TARGETS}/SIMU/USER/init_lte.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
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+ ${OPENAIR_DIR}/common/utils/system.c
+ ${XFORMS_SOURCE}
+ ${XFORMS_SOURCE_SOFTMODEM}
+ ${T_SOURCE}
+ ${CONFIG_SOURCES}
+ ${SHLIB_LOADER_SOURCES}
+ )
+target_link_libraries (lte-uesoftmodem-nos1
+ -Wl,--start-group
+ RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_UE_LIB PHY_UE LFDS L2_UE ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB}
+ ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7
+ -Wl,--end-group z dl )
+
+target_link_libraries (lte-uesoftmodem-nos1 ${LIBXML2_LIBRARIES})
+target_link_libraries (lte-uesoftmodem-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-uesoftmodem-nos1 ${LIB_LMS_LIBRARIES})
+target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB})
# USIM process
#################
@@ -1903,8 +2148,7 @@ add_executable(oaisim
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${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}
@@ -1915,18 +2159,18 @@ 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} ${MIH_LIB}
- -Wl,--end-group )
+ RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_UE_LIB PHY_UE LFDS L2_UE ${MSC_LIB} LIB_NAS_UE SIMU SECU_OSA ${ITTI_LIB} ${MIH_LIB}
+ ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
+ -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
- ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES})
+target_link_libraries (oaisim pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp z
+ ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
#Force link with forms, regardless XFORMS option
target_link_libraries (oaisim forms)
target_link_libraries (oaisim ${T_LIB})
-
# A all in one network simulator
################
add_executable(oaisim_nos1
@@ -1935,7 +2179,7 @@ add_executable(oaisim_nos1
${x2ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
- ${OPENAIR_TARGETS}/RT/USER/lte-enb.c
+ ${OPENAIR_TARGETS}/RT/USER/lte-ru.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
@@ -1948,7 +2192,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}
@@ -1958,8 +2202,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} ${MIH_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}
@@ -1994,11 +2238,12 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c
${XFORMS_SOURCE}
${T_SOURCE}
+ ${CONFIG_SOURCES}
)
target_link_libraries (${myExe}
-Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} LFDS7 -Wl,--end-group
- pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB}
+ pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB} dl
)
endforeach(myExe)
@@ -2066,7 +2311,7 @@ endforeach(myExe)
if (${T_TRACER})
foreach(i
#all "add_executable" definitions (except tests, rb_tool, updatefw)
- lte-softmodem lte-softmodem-nos1 rrh_gw oaisim oaisim_nos1
+ lte-softmodem lte-softmodem-nos1 oaisim oaisim_nos1
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
pdcchsim pucchsim prachsim syncsim
#all "add_library" definitions
@@ -2074,7 +2319,7 @@ if (${T_TRACER})
oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
oai_eth_transpro
FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO SECU_OSA
- SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL MIH CN_UTILS
+ SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL CN_UTILS
GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB)
if (TARGET ${i})
add_dependencies(${i} generate_T)
@@ -2134,9 +2379,8 @@ add_custom_command (
# retrieve the compiler options to send it to gccxml
get_directory_property(DirDefs COMPILE_DEFINITIONS )
foreach( d ${DirDefs} )
- set(module_cc_opt_tmp "${module_cc_opt_tmp} -D${d}")
+ set(module_cc_opt "${module_cc_opt} -D${d}")
endforeach()
-string(REPLACE "-DUSER_MODE" "" module_cc_opt ${module_cc_opt_tmp})
get_directory_property( DirDefs INCLUDE_DIRECTORIES )
foreach( d ${DirDefs} )
set(module_cc_opt "${module_cc_opt} -I${d}")
@@ -2168,15 +2412,7 @@ endfunction(make_driver name dir src)
# nashmesh module
################
list(APPEND nasmesh_src device.c common.c ioctl.c classifier.c tool.c mesh.c)
-# Actually nasty stuff to be FIXED: the hereafter flag is for RTAI compilation in the driver,
-# but has different meaning in the other parts of the code
-# We should change the constant name to xxx_RTAI or likely
-if(NOT ${module_cc_opt} MATCHES "DRTAI")
- set(module_cc_opt "${module_cc_opt} -DNAS_NETLINK")
-else()
- string(REPLACE "-DNAS_NETLINK" "" tmp "${module_cc_opt}")
- set(module_cc_opt ${tmp})
-endif()
+set(module_cc_opt "${module_cc_opt} -DNAS_NETLINK -DPDCP_USE_NETLINK")
# legacy Makefile was using NAS_NETLINK flag, but other drivers the hereafter flag
# so, this cmake use OAI_NW_DRIVER_USE_NETLINK everywhere
if (OAI_NW_DRIVER_USE_NETLINK)
@@ -2253,3 +2489,8 @@ ADD_CUSTOM_TARGET(oarf
DEPENDS ${OCT_FILES}
)
+include (${OPENAIR_DIR}/common/utils/telnetsrv/telnetsrv_CMakeLists.txt)
+
+
+
+
diff --git a/cmake_targets/at_commands/CMakeLists.txt b/cmake_targets/at_commands/CMakeLists.txt
index db49a9181d..54f369f977 100755
--- a/cmake_targets/at_commands/CMakeLists.txt
+++ b/cmake_targets/at_commands/CMakeLists.txt
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/core.py b/cmake_targets/autotests/core.py
index 2665e57372..09785df120 100644
--- a/cmake_targets/autotests/core.py
+++ b/cmake_targets/autotests/core.py
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/log.py b/cmake_targets/autotests/log.py
index 25eb2b5ffb..5a97b19cf2 100644
--- a/cmake_targets/autotests/log.py
+++ b/cmake_targets/autotests/log.py
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/openair.py b/cmake_targets/autotests/openair.py
index 7ad118ef1b..beb12cd2a2 100644
--- a/cmake_targets/autotests/openair.py
+++ b/cmake_targets/autotests/openair.py
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/run_compilation_autotests.bash b/cmake_targets/autotests/run_compilation_autotests.bash
index a6a861cb60..10e4caa04b 100755
--- a/cmake_targets/autotests/run_compilation_autotests.bash
+++ b/cmake_targets/autotests/run_compilation_autotests.bash
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash
index 5551ede44d..ff38ae9d3c 100755
--- a/cmake_targets/autotests/run_exec_autotests.bash
+++ b/cmake_targets/autotests/run_exec_autotests.bash
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py
index 9f08a00d1a..65bcfd5af8 100755
--- a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py
+++ b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py b/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
index f03facc7da..ee4f3f93bc 100755
--- a/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
+++ b/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py b/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py
index 52178a32a1..42e4b2ea9a 100755
--- a/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py
+++ b/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py b/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py
index 42ed5fdeba..8c2c1dd7f2 100755
--- a/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py
+++ b/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/configure_usrpb210.py b/cmake_targets/autotests/tools/configure_usrpb210.py
index 860a717d72..588bde9d33 100755
--- a/cmake_targets/autotests/tools/configure_usrpb210.py
+++ b/cmake_targets/autotests/tools/configure_usrpb210.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/find_usb_path.bash b/cmake_targets/autotests/tools/find_usb_path.bash
index c115d7a9dc..91156012b7 100755
--- a/cmake_targets/autotests/tools/find_usb_path.bash
+++ b/cmake_targets/autotests/tools/find_usb_path.bash
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/free_mem.bash b/cmake_targets/autotests/tools/free_mem.bash
index 8196bf3428..a5b2b00cb6 100755
--- a/cmake_targets/autotests/tools/free_mem.bash
+++ b/cmake_targets/autotests/tools/free_mem.bash
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/git-retry.sh b/cmake_targets/autotests/tools/git-retry.sh
index 9f4d96af8d..f0366b2ae5 100755
--- a/cmake_targets/autotests/tools/git-retry.sh
+++ b/cmake_targets/autotests/tools/git-retry.sh
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/iperf3_script b/cmake_targets/autotests/tools/iperf3_script
index bf506bbc65..93aa742bd3 100755
--- a/cmake_targets/autotests/tools/iperf3_script
+++ b/cmake_targets/autotests/tools/iperf3_script
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/iperf3_script_phone b/cmake_targets/autotests/tools/iperf3_script_phone
index e4ccc38237..1d9e9322a1 100755
--- a/cmake_targets/autotests/tools/iperf3_script_phone
+++ b/cmake_targets/autotests/tools/iperf3_script_phone
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script
index 28f239af09..d74462cbcc 100755
--- a/cmake_targets/autotests/tools/iperf_script
+++ b/cmake_targets/autotests/tools/iperf_script
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/iperf_script_phone b/cmake_targets/autotests/tools/iperf_script_phone
index 0195ee9eb3..29c670f826 100755
--- a/cmake_targets/autotests/tools/iperf_script_phone
+++ b/cmake_targets/autotests/tools/iperf_script_phone
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/lib_autotest.py b/cmake_targets/autotests/tools/lib_autotest.py
index 2e9a7df11f..54be808e1d 100644
--- a/cmake_targets/autotests/tools/lib_autotest.py
+++ b/cmake_targets/autotests/tools/lib_autotest.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/run_gdb b/cmake_targets/autotests/tools/run_gdb
index 9dea2d350c..ace8e7a296 100755
--- a/cmake_targets/autotests/tools/run_gdb
+++ b/cmake_targets/autotests/tools/run_gdb
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/tools/search_repl.py b/cmake_targets/autotests/tools/search_repl.py
index c3e73ccde4..f34533cfd0 100755
--- a/cmake_targets/autotests/tools/search_repl.py
+++ b/cmake_targets/autotests/tools/search_repl.py
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/autotests/v2/actions/3276.txt b/cmake_targets/autotests/v2/actions/3276.txt
new file mode 100644
index 0000000000..1976ceb3f3
--- /dev/null
+++ b/cmake_targets/autotests/v2/actions/3276.txt
@@ -0,0 +1,13 @@
+When running lsusb, if you have:
+
+ Bus 001 Device 002: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem (Mass Storage Mode)
+
+You need to run:
+
+ usb_modeswitch -v 12d1 -p 14fe -M '55534243123456780000000000000011062000000100000000000000000000'
+
+After what, running lsusb should give:
+
+ Bus 001 Device 004: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
+
+Values of 'Bus' and 'Device' may differ of course.
diff --git a/cmake_targets/autotests/v2/actions/bandrich.txt b/cmake_targets/autotests/v2/actions/bandrich.txt
index 8533750c5b..faa294465b 100644
--- a/cmake_targets/autotests/v2/actions/bandrich.txt
+++ b/cmake_targets/autotests/v2/actions/bandrich.txt
@@ -13,6 +13,16 @@ containing lines:
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="1a8d", ENV{ID_MODEL_ID}=="100d", ENV{ID_SERIAL_SHORT}=="357473040068155", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="bandrich.data", MODE="0666"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="1a8d", ENV{ID_MODEL_ID}=="100d", ENV{ID_SERIAL_SHORT}=="357473040068155", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="bandrich.control", MODE="0666"
+To avoid NetworkManager to play with the bandrich, add also the line:
+
+ ENV{ID_VENDOR_ID}=="1a8d", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+Maybe also add; , ENV{ID_MM_DEVICE_IGNORE}="1"
+to the two other lines.
+
+Then run: udevadm control --reload-rules
+And: service network-manager restart
+
Change vendor_id/model_id/serial/interface num to match yours.
Use lsusb -v to find values.
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
index e09e068c63..0994acdf9d 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
index 1f992daba2..5e8cd8007e 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
index bb7df8b72d..53eae1d531 100644
--- a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
index ff97827b57..d30a57041c 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
index ebb9e417e7..e90eb3fe51 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
index 4e89102766..5dbecd3813 100644
--- a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
index beaf5ae0f1..1397184cc7 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
index b0efe66e14..caebb36eb2 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
index 1b33c7b3c2..fe90cdb338 100644
--- a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
+++ b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
index dc64a69c00..5d9027ce15 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
index c93ce24d08..539f0bd744 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
index 57f7ef83b9..58b088002f 100644
--- a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
+++ b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
@@ -1,4 +1,4 @@
-Active_eNBs = ( "eNB_Eurecom_LTEBox");
+Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
@@ -10,7 +10,7 @@ eNBs =
cell_type = "CELL_MACRO_ENB";
- eNB_name = "eNB_Eurecom_LTEBox";
+ eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
diff --git a/cmake_targets/autotests/v2/connection.py b/cmake_targets/autotests/v2/connection.py
index 1952b8b72f..3a254f89b8 100644
--- a/cmake_targets/autotests/v2/connection.py
+++ b/cmake_targets/autotests/v2/connection.py
@@ -13,7 +13,7 @@ class connection:
try:
(pid, fd) = os.forkpty()
except BaseException, e:
- log("ERROR: forkpty for '" + description + "': " + e)
+ log("ERROR: forkpty for '" + description + "': " + str(e))
(pid, fd) = (-1, -1)
if pid == -1:
@@ -26,7 +26,7 @@ class connection:
os.execvp('sshpass', ['sshpass', '-p', password,
'ssh', user + '@' + host])
except BaseException, e:
- log("ERROR: execvp for '" + description + "': " + e)
+ log("ERROR: execvp for '" + description + "': " + str(e))
log("ERROR: execvp failed for '" + description + "'")
os._exit(1)
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index d2610c4abc..f5be69d3fa 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
@@ -42,7 +42,6 @@ conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
MSC_GEN="False"
XFORMS="True"
-FLEXRAN_AGENT_SB_IF="True"
PRINT_STATS="False"
VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER="False"
@@ -66,6 +65,7 @@ UE_AUTOTEST_TRACE="False"
UE_DEBUG_TRACE="False"
UE_TIMING_TRACE="False"
DISABLE_LOG_X="False"
+USRP_REC_PLAY="False"
BUILD_ECLIPSE=0
trap handle_ctrl_c INT
@@ -99,10 +99,6 @@ Options
Specify conf_nvram_path (default \"$conf_nvram_path\")
--UE-gen-nvram [output path]
Specify gen_nvram_path (default \"$gen_nvram_path\")
---RRH
- Makes the RRH
--a | --agent
- Enables agent for software-defined control of the eNB
-r | --3gpp-release
default is Rel14,
Rel8 limits the implementation to 3GPP Release 8 version
@@ -158,6 +154,8 @@ Options
Disable all LOG_* macros
--build-eclipse
Build eclipse project files. Paths are auto corrected by fixprj.sh
+--usrp-recplay
+ Build for I/Q record-playback modes
Usage (first build):
oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files
Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files
@@ -196,15 +194,14 @@ function main() {
GDB=1
CMAKE_BUILD_TYPE="Debug"
echo_info "Will Compile with gdb symbols and disable compiler optimization"
- CMAKE_CMD="$CMAKE_CMD -DCMAKE_BUILD_TYPE=Debug"
+ CMAKE_CMD="$CMAKE_CMD -DCMAKE_BUILD_TYPE=Debug --trace-expand"
shift;;
--eNB)
eNB=1
echo_info "Will compile eNB"
shift;;
-a | --agent)
- FLEXRAN_AGENT=1
- echo_info "Will compile eNB with agent support"
+ echo_info "FlexRAN support is always compiled into the eNB"
shift;;
--UE)
UE=1
@@ -216,10 +213,6 @@ function main() {
--UE-gen-nvram)
gen_nvram_path=$(readlink -f $2)
shift 2;;
- --RRH)
- RRH=1
- echo_info "Will compile RRH"
- shift;;
-r | --3gpp-release)
REL=$2
echo_info "Setting release to: $REL"
@@ -350,6 +343,10 @@ function main() {
BUILD_TELNETSRV=1
echo_info "Build embedded telnet server"
shift ;;
+ --usrp-recplay)
+ USRP_REC_PLAY="True"
+ echo_info "Enabling USRP record playback mode"
+ shift 1;;
-h | --help)
print_help
exit 1;;
@@ -362,9 +359,13 @@ function main() {
CMAKE_CMD="$CMAKE_CMD .."
echo_info "CMAKE_CMD=$CMAKE_CMD"
-
+ if [ "$eNB" = "1" ] && [ "$UE" = "1" ]; then
+ echo_error "Cannot build UE and eNB on one build_oai execution"
+ echo_error "use 2 build_oai invocations"
+ exit
+ fi
#########################################################
- # check validity of HW and TP parameters for RRH and eNB
+ # check validity of HW and TP parameters for eNB
#########################################################
# to be discussed
@@ -380,15 +381,6 @@ function main() {
fi
fi
- if [ "$RRH" = "1" ] ; then
- if [ "$TP" = "None" ] ; then
- echo_fatal "A transport protocol (e.g. -t ETHERNET) must be defined!"
- fi
- if [ "$HW" = "None" ] ; then
- echo_info "No radio head has been selected (HW set to $HW)"
- fi
- fi
-
echo_info "RF HW set to $HW"
#Now we set flags to enable deadline scheduler settings
#By default: USRP: disable,
@@ -473,11 +465,9 @@ function main() {
flash_firmware_bladerf
fi
fi
- if [ "$FLEXRAN_AGENT" == "1" ] ; then
- echo_info "installing protobuf/protobuf-c for flexran agent support"
- install_protobuf_from_source
- install_protobuf_c_from_source
- fi
+ echo_info "installing protobuf/protobuf-c for flexran agent support"
+ install_protobuf_from_source
+ install_protobuf_c_from_source
fi
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
@@ -502,10 +492,20 @@ function main() {
DIR=$OPENAIR_DIR/cmake_targets
if [ "$NOS1" = "1" ] ; then
lte_build_dir=lte_noS1_build_oai
- lte_exec=lte-softmodem-nos1
+ if [ "$eNB" = "1" ] ; then
+ lte_exec=lte-softmodem-nos1
+ fi
+ if [ "$UE" = "1" ] ; then
+ lte_exec=lte-uesoftmodem-nos1
+ fi
else
lte_build_dir=lte_build_oai
- lte_exec=lte-softmodem
+ if [ "$eNB" = "1" ] ; then
+ lte_exec=lte-softmodem
+ fi
+ if [ "$UE" = "1" ] ; then
+ lte_exec=lte-uesoftmodem
+ fi
fi
# configuration module libraries, one currently available, using libconfig
@@ -525,9 +525,6 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
- if [ "$FLEXRAN_AGENT" = "1" ] ; then
- echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
- fi
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
@@ -540,6 +537,7 @@ function main() {
echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file
echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file
+ echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file
if [ "$UE" = 1 -a "$NOS1" = "0" ] ; then
echo_info "Compiling UE S1 build : enabling Linux and NETLINK"
echo "set (LINUX True )" >> $cmake_file
@@ -560,6 +558,9 @@ function main() {
compilations \
$lte_build_dir $config_libconfig_shlib \
lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
+ compilations \
+ $lte_build_dir coding \
+ libcoding.so $dbin/libcoding.so
if [ "$NOS1" = "1" ] ; then
compilations \
@@ -686,9 +687,6 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
- if [ "$FLEXRAN_AGENT" = "1" ] ; then
- echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
- fi
echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
@@ -769,9 +767,6 @@ function main() {
cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
- if [ "$FLEXRAN_AGENT" = "1" ] ; then
- echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
- fi
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
@@ -785,61 +780,20 @@ function main() {
# oaisim_mme $dbin/oaisim_mme.$REL
fi
- # RRH compilation
- #####################
- if [ "$RRH" = "1" ] ; then
-
- rrh_exec=rrh_gw
- rrh_build_dir=rrh_gw
-
- echo_info "Compiling $rrh_exec ..."
-
- [ "$CLEAN" = "1" ] && rm -rf $DIR/rrh_gw/build
- mkdir -p $DIR/$rrh_build_dir/build
- cmake_file=$DIR/$rrh_build_dir/CMakeLists.txt
- echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
- echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
- echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
- echo "set ( ENABLE_ITTI False )" >> $cmake_file
- echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
- echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
- echo 'set ( PACKAGE_NAME "\"rrh_gw\"")' >> $cmake_file
- echo "set ( DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
- echo "set ( CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
- echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
- echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
- cd $DIR/$rrh_build_dir/build
- eval $CMAKE_CMD
- compilations \
- rrh_gw rrh_gw \
- rrh_gw $dbin/rrh_gw
-
- fi
# Telnet server compilation
#####################
if [ "$BUILD_TELNETSRV" = "1" ] ; then
-
- telnetsrv_build_dir=telnetsrv
- mkdir -p $DIR/$telnetsrv_build_dir/build
- cd $DIR/$telnetsrv_build_dir/build
- echo_info "Compiling telnet server library ..."
-
- [ "$CLEAN" = "1" ] && rm -rf $DIR/$telnetsrv_build_dir
- cmake_file=$OPENAIR_DIR/common/utils/$telnetsrv_build_dir/CMakeLists.txt
- cd $DIR/$telnetsrv_build_dir/build
- eval "$CMAKE_CMD $OPENAIR_DIR/common/utils/$telnetsrv_build_dir/"
- make
+ build_dir=$lte_build_dir
+ compilations \
+ $build_dir telnetsrv \
+ libtelnetsrv.so $dbin/libtelnetsrv.so
fi
# build RF device and transport protocol libraries
#####################################
- if [ "$eNB" = "1" -o "$UE" = "1" -o "$RRH" = "1" ] ; then
+ if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
- if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
- build_dir=$lte_build_dir
- else
- build_dir=$rrh_build_dir
- fi
+ build_dir=$lte_build_dir
# build RF device libraries
if [ "$HW" != "None" ] ; then
@@ -856,9 +810,9 @@ function main() {
ln -sf $dbin/liboai_exmimodevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to EXMIMO device library"
elif [ "$HW" == "OAI_USRP" ] ; then
- compilations \
- $build_dir oai_usrpdevif \
- liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
+ compilations \
+ $build_dir oai_usrpdevif \
+ liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
ln -sf liboai_usrpdevif.so liboai_device.so
ln -sf $dbin/liboai_usrpdevif.so.$REL $dbin/liboai_device.so
diff --git a/cmake_targets/epc_test/CMakeLists.template b/cmake_targets/epc_test/CMakeLists.template
index 76defbc7d7..e046bb7539 100644
--- a/cmake_targets/epc_test/CMakeLists.template
+++ b/cmake_targets/epc_test/CMakeLists.template
@@ -2,17 +2,13 @@ cmake_minimum_required(VERSION 2.8)
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
set ( ASN_DEBUG False)
-set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
set ( DRIVER2013 True )
-set ( EMOS False )
set ( EMIT_ASN_DEBUG False )
-set ( ENABLE_FXP True )
set ( ENABLE_ITTI True )
set ( ENABLE_NAS_UE_LOGGING True )
set ( ENABLE_NEW_MULTICAST True )
-set ( ENABLE_PGM_TRANSPORT True )
set ( ENABLE_SECURITY True )
set ( ENABLE_STANDALONE_EPC False)
set ( ENABLE_USE_CPU_EXECUTION_TIME True )
@@ -21,7 +17,6 @@ set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True)
set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE True )
set ( EXMIMO_IOT True )
-set ( HARD_RT False )
set ( JUMBO_FRAME True )
set ( LARGE_SCALE False )
set ( LINK_ENB_PDCP_TO_GTPV1U True)
@@ -33,7 +28,6 @@ set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False)
-set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX False )
@@ -42,38 +36,25 @@ set ( NAS_MME False )
set ( NAS_UE True )
set ( NB_ANTENNAS_RX "2" )
set ( NB_ANTENNAS_TX "2" )
-set ( NB_ANTENNAS_TXRX "2" )
-set ( NEW_FFT True )
set ( NO_RRM True )
-set ( OAI_EMU False )
set ( OAISIM False )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK True )
-set ( OPENAIR1 True )
set ( OPENAIR2 True )
set ( OPENAIR_LTE True )
set ( PACKAGE_NAME "epc_test" )
-set ( PBS_SIM False )
set ( PDCP_USE_NETLINK True )
-set ( PC_DSP True )
-set ( PC_TARGET True )
set ( PDCP_MSG_PRINT False )
-set ( PERFECT_CE False )
-set ( PHY_ABSTRACTION True )
set ( PHY_CONTEXT False )
set ( PHY_EMUL False )
set ( PHYSIM True )
-set ( PUCCH True )
-set ( RANDOM_BF False )
set ( RF_BOARD "False" )
set ( RLC_STOP_ON_LOST_PDU False )
set ( RRC_ASN1_VERSION "Rel10" )
set ( RRC_DEFAULT_RAB_IS_AM True)
set ( RRC_MSG_PRINT False )
-set ( RTAI False )
set ( SECU False )
set ( SMBV False )
set ( TEST_OMG False )
set ( USE_MME "R10" )
-set ( USER_MODE True )
set ( XER_PRINT True )
diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt
index ab718a8503..ca754449d7 100644
--- a/cmake_targets/lte-simulators/CMakeLists.txt
+++ b/cmake_targets/lte-simulators/CMakeLists.txt
@@ -6,9 +6,6 @@ set(XFORMS True)
set(ENABLE_ITTI False)
set(DEBUG_PHY False)
set(MU_RECIEVER False)
-set(RANDOM_BF False)
-set(PBS_SIM False)
-set(PERFECT_CE True)
set(NAS_UE False)
set(MESSAGE_CHART_GENERATOR False)
diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template
index 0a05d68d10..22faac75b5 100644
--- a/cmake_targets/oaisim_build_oai/CMakeLists.template
+++ b/cmake_targets/oaisim_build_oai/CMakeLists.template
@@ -1,16 +1,12 @@
cmake_minimum_required(VERSION 2.8)
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
-set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
set ( DRIVER2013 True )
-set ( EMOS False )
-set ( ENABLE_FXP True )
set ( ENABLE_ITTI True )
set ( ENABLE_NAS_UE_LOGGING True )
set ( ENABLE_NEW_MULTICAST True )
-set ( ENABLE_PGM_TRANSPORT True )
set ( ENABLE_RAL False )
set ( ENABLE_SECURITY True )
set ( ENABLE_STANDALONE_EPC False)
@@ -20,7 +16,6 @@ set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True)
set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE True )
set ( EXMIMO_IOT True )
-set ( HARD_RT False )
set ( JUMBO_FRAME True )
set ( LARGE_SCALE False )
set ( LINK_ENB_PDCP_TO_GTPV1U True)
@@ -32,7 +27,6 @@ set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False)
-set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX False )
@@ -41,40 +35,26 @@ set ( NAS_MME False )
set ( NAS_UE True )
set ( NB_ANTENNAS_RX "2" )
set ( NB_ANTENNAS_TX "2" )
-set ( NB_ANTENNAS_TXRX "2" )
-set ( NEW_FFT True )
set ( NO_RRM True )
-set ( OAI_EMU True )
set ( OAISIM True )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK True )
-set ( OPENAIR1 True )
set ( OPENAIR2 True )
set ( OPENAIR_LTE True )
set ( PACKAGE_NAME "oaisim" )
-set ( PBS_SIM False )
set ( PDCP_USE_NETLINK True )
-set ( PC_DSP True )
-set ( PC_TARGET True )
set ( PDCP_MSG_PRINT False )
-set ( PERFECT_CE False )
-set ( PHY_ABSTRACTION True )
set ( PHY_CONTEXT False )
set ( PHY_EMUL False )
set ( PHYSIM True )
-set ( PUCCH True )
-set ( RANDOM_BF False )
set ( RF_BOARD "False" )
set ( RLC_STOP_ON_LOST_PDU False )
set ( RRC_ASN1_VERSION "Rel10" )
set ( RRC_DEFAULT_RAB_IS_AM True)
set ( RRC_MSG_PRINT False )
-set ( RTAI False )
set ( SECU False )
set ( SMBV False )
-set ( SPECTRA False )
set ( TEST_OMG False )
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
set ( USE_MME "R10" )
-set ( USER_MODE True )
set ( XER_PRINT False )
diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template
index 69fa209b16..b18b23ee9a 100644
--- a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template
+++ b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template
@@ -1,16 +1,12 @@
cmake_minimum_required(VERSION 2.8)
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
-set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
set ( DRIVER2013 False )
-set ( EMOS False )
-set ( ENABLE_FXP False )
set ( ENABLE_ITTI True )
set ( ENABLE_NAS_UE_LOGGING False )
set ( ENABLE_NEW_MULTICAST False )
-set ( ENABLE_PGM_TRANSPORT False )
set ( ENABLE_RAL False )
set ( ENABLE_SECURITY False )
set ( ENABLE_STANDALONE_EPC False )
@@ -21,7 +17,6 @@ set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE False )
set ( EPC_BUILD True )
set ( EXMIMO_IOT False )
-set ( HARD_RT False )
set ( JUMBO_FRAME False )
set ( LARGE_SCALE False )
set ( LINK_ENB_PDCP_TO_GTPV1U True)
@@ -32,7 +27,6 @@ set ( LOG_NO_THREAD False )
set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 )
-set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX False )
@@ -42,42 +36,27 @@ set ( NAS_NETLINK False )
set ( NAS_UE False )
set ( NB_ANTENNAS_RX "2" )
set ( NB_ANTENNAS_TX "2" )
-set ( NB_ANTENNAS_TXRX "2" )
-set ( NEW_FFT False )
set ( NO_RRM False )
-set ( OAI_EMU False )
set ( OAISIM False )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK False )
-set ( OPENAIR1 False )
set ( OPENAIR2 False )
-set ( OPENAIR_EMU False )
set ( OPENAIR_LTE False )
set ( PACKAGE_NAME "EPC" )
-set ( PBS_SIM False )
-set ( PC_DSP False )
-set ( PC_TARGET False )
set ( PDCP_MSG_PRINT False )
-set ( PERFECT_CE False )
-set ( PHY_ABSTRACTION False )
set ( PHY_CONTEXT False )
set ( PHY_EMUL False )
set ( PHYSIM False )
-set ( PUCCH False )
-set ( RANDOM_BF False )
set ( RF_BOARD "False" )
set ( RRC_ASN1_VERSION "Rel10" )
set ( RLC_STOP_ON_LOST_PDU False )
set ( RRC_MSG_PRINT False )
-set ( RTAI False )
set ( SECU False )
set ( SMBV False )
-set ( SPECTRA False )
set ( TEST_OMG False )
set ( UPDATE_RELEASE_9 True)
set ( UPDATE_RELEASE_10 True)
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
set ( USE_MME "R10" )
-set ( USER_MODE True )
set ( XER_PRINT False )
set ( XFORMS False )
diff --git a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template
index 8e1670ea43..bc416cff55 100644
--- a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template
+++ b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template
@@ -1,15 +1,11 @@
cmake_minimum_required(VERSION 2.8)
-set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
set ( DRIVER2013 True )
-set ( EMOS False )
-set ( ENABLE_FXP True )
set ( ENABLE_ITTI True )
set ( ENABLE_NAS_UE_LOGGING False )
set ( ENABLE_NEW_MULTICAST True )
-set ( ENABLE_PGM_TRANSPORT True )
set ( ENABLE_RAL False )
set ( ENABLE_SECURITY False )
set ( ENABLE_STANDALONE_EPC False)
@@ -19,7 +15,6 @@ set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False)
set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE True )
set ( EXMIMO_IOT True )
-set ( HARD_RT False )
set ( JUMBO_FRAME True )
set ( LARGE_SCALE False )
set ( LINK_ENB_PDCP_TO_GTPV1U False)
@@ -33,51 +28,35 @@ set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False )
set ( MESSAGE_CHART_GENERATOR_RLC_MAC False )
set ( MESSAGE_CHART_GENERATOR_PHY False )
-set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
-set ( NAS_ADDRESS_FIX True )
+set ( NAS_ADDRESS_FIX False )
set ( NAS_BUILT_IN_UE False)
set ( NAS_MME False )
set ( NAS_UE False )
set ( NB_ANTENNAS_RX "2" )
set ( NB_ANTENNAS_TX "2" )
-set ( NB_ANTENNAS_TXRX "2" )
-set ( NEW_FFT True )
set ( NO_RRM True )
-set ( OAI_EMU True )
set ( OAISIM True )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK True )
-set ( OPENAIR1 True )
set ( OPENAIR2 True )
-set ( OPENAIR_EMU False )
set ( OPENAIR_LTE True )
set ( PACKAGE_NAME "oaisim" )
-set ( PBS_SIM False )
set ( PDCP_USE_NETLINK True )
-set ( PC_DSP True )
-set ( PC_TARGET True )
set ( PDCP_MSG_PRINT False )
-set ( PERFECT_CE False )
-set ( PHY_ABSTRACTION True )
set ( PHY_CONTEXT False )
set ( PHY_EMUL False )
set ( PHYSIM True )
-set ( PUCCH True )
-set ( RANDOM_BF False )
set ( RF_BOARD "False" )
set ( RRC_ASN1_VERSION "Rel10" )
set ( RLC_STOP_ON_LOST_PDU False )
set ( RRC_MSG_PRINT False )
-set ( RTAI False )
set ( SECU False )
set ( SMBV False )
-set ( SPECTRA False )
set ( TEST_OMG False )
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
set ( USE_MME "R10" )
-set ( USER_MODE True )
set ( XER_PRINT False )
set ( DEBUG_PHY False )
set ( DEBUG_PHY_PROC False)
diff --git a/cmake_targets/s1c_mme_test/CMakeLists.template b/cmake_targets/s1c_mme_test/CMakeLists.template
index 994edf8352..9f1ff3e360 100644
--- a/cmake_targets/s1c_mme_test/CMakeLists.template
+++ b/cmake_targets/s1c_mme_test/CMakeLists.template
@@ -1,17 +1,13 @@
cmake_minimum_required(VERSION 2.8)
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
-set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
set ( DRIVER2013 True )
-set ( EMOS False )
-set ( ENABLE_FXP True )
set ( ENABLE_ITTI True )
set ( ENABLE_NAS_UE_LOGGING True )
set ( ENABLE_NEW_MULTICAST True )
set ( ENABLE_PDCP_NETLINK_FIFO False )
-set ( ENABLE_PGM_TRANSPORT True )
set ( ENABLE_RAL False )
set ( ENABLE_SECURITY True )
set ( ENABLE_STANDALONE_EPC False)
@@ -21,7 +17,6 @@ set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True)
set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE True )
set ( EXMIMO_IOT True )
-set ( HARD_RT False )
set ( JUMBO_FRAME True )
set ( LARGE_SCALE False )
set ( LINK_ENB_PDCP_TO_GTPV1U True)
@@ -33,7 +28,6 @@ set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False)
-set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX False )
@@ -42,44 +36,30 @@ set ( NAS_MME False )
set ( NAS_UE True )
set ( NB_ANTENNAS_RX "2" )
set ( NB_ANTENNAS_TX "2" )
-set ( NB_ANTENNAS_TXRX "2" )
-set ( NEW_FFT True )
set ( NO_RRM True )
-set ( OAI_EMU True )
set ( OAISIM True )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK True )
-set ( OPENAIR1 True )
set ( OPENAIR2 True )
set ( OPENAIR_LTE True )
set ( PACKAGE_NAME "oaisim" )
-set ( PBS_SIM False )
set ( PDCP_USE_NETLINK True )
-set ( PC_DSP True )
-set ( PC_TARGET True )
set ( PDCP_MSG_PRINT False )
-set ( PERFECT_CE False )
-set ( PHY_ABSTRACTION True )
set ( PHY_CONTEXT False )
set ( PHY_EMUL False )
set ( PHYSIM True )
-set ( PUCCH True )
-set ( RANDOM_BF False )
set ( RF_BOARD "False" )
set ( RLC_STOP_ON_LOST_PDU False )
set ( RRC_ASN1_VERSION "Rel10" )
set ( RRC_DEFAULT_RAB_IS_AM True)
set ( RRC_MSG_PRINT False )
-set ( RTAI False )
set ( SECU False )
set ( SMBV False )
-set ( SPECTRA False )
set ( TEST_OMG False )
set ( TEST_S1C_MME True )
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
set ( USE_MME "R10" )
-set ( USER_MODE True )
set ( XER_PRINT False )
set ( XFORMS False )
diff --git a/cmake_targets/tools/asn1tostruct.py b/cmake_targets/tools/asn1tostruct.py
index e8ebb03d6d..8c0f7e8a16 100644
--- a/cmake_targets/tools/asn1tostruct.py
+++ b/cmake_targets/tools/asn1tostruct.py
@@ -38,7 +38,7 @@ def outputHeaderToFile(f, filename):
* 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.0 (the "License"); you may not use this file
+ * 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
*
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index f6c51944d2..706cd05fe9 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
@@ -95,6 +95,8 @@ get_distribution_release() {
check_supported_distribution() {
local distribution=$(get_distribution_release)
case "$distribution" in
+ "ubuntu17.10") return 0 ;;
+ "ubuntu17.04") return 0 ;;
"ubuntu16.04") return 0 ;;
"ubuntu14.04") return 0 ;;
"fedora24") return 0 ;;
@@ -230,6 +232,7 @@ install_protobuf_c_from_source(){
rm -rf /tmp/protobuf-c
git clone https://github.com/protobuf-c/protobuf-c.git
cd protobuf-c
+ git checkout 2a46af42784abf86804d536f6e0122d47cfeea45
./autogen.sh
./configure
echo "Compiling protobuf-c"
@@ -246,14 +249,14 @@ install_usrp_uhd_driver_from_source(){
cd /tmp
echo "Downloading UHD driver"
rm -rf /tmp/uhd
- git clone git://github.com/EttusResearch/uhd.git
+ git clone https://github.com/EttusResearch/uhd.git
cd uhd
git checkout tags/release_003_010_001_001
mkdir -p host/build
cd host/build
$CMAKE ../
echo "Compiling UHD"
- make
+ make -j`nproc`
make test
$SUDO make install
$SUDO ldconfig
@@ -274,10 +277,11 @@ check_install_usrp_uhd_driver(){
$SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils cmake
+ $SUDO pip install requests
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
# until EPEL repo hasn't bumped UHD driver to >=3.10 in EPEL, build driver from source
$SUDO $INSTALLER -y remove uhd uhd-devel uhd-firmware
- install_ursp_uhd_driver_from_source
+ install_usrp_uhd_driver_from_source
else
$SUDO $INSTALLER -y install uhd uhd-devel uhd-firmware
fi
@@ -479,16 +483,26 @@ check_install_oai_software() {
fi
$SUDO $INSTALLER update -y
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
+ local LAPACK_LIBNAME="liblapack.so"
+ local LAPACK_TARGET="/usr/lib/atlas-base/atlas/liblapack.so"
$SUDO apt install -y software-properties-common
case "$(get_distribution_release)" in
"ubuntu14.04")
- specific_packages="libtasn1-3-dev"
+ specific_packages="libtasn1-3-dev gccxml libgnutls-dev libatlas-dev"
# For iperf3
$SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe"
$SUDO apt-get update
;;
"ubuntu16.04")
- specific_packages="libtasn1-6-dev"
+ specific_packages="libtasn1-6-dev gccxml libgnutls-dev libatlas-dev"
+ ;;
+ "ubuntu17.04")
+ specific_packages="libtasn1-6-dev castxml libgnutls28-dev libatlas-dev"
+ ;;
+ "ubuntu17.10")
+ specific_packages="libtasn1-6-dev castxml libgnutls28-dev"
+ LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
+ LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;;
esac
$SUDO apt-get install -y \
@@ -504,7 +518,6 @@ check_install_oai_software() {
texlive-latex-base \
ethtool \
flex \
- gccxml \
gdb \
git \
graphviz \
@@ -515,7 +528,6 @@ check_install_oai_software() {
iptables \
iptables-dev \
libatlas-base-dev \
- libatlas-dev \
libblas-dev \
libconfig8-dev \
libffi-dev \
@@ -553,11 +565,9 @@ check_install_oai_software() {
wget \
libxpm-dev
- $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
-
- $SUDO apt-get install -y nettle-dev nettle-bin
+ $SUDO update-alternatives --set "$LAPACK_LIBNAME" "$LAPACK_TARGET"
- $SUDO apt-get install -y libgnutls-dev
+ $SUDO apt-get install -y nettle-dev nettle-bin
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
if rpm -q epel-release > /dev/null; then
@@ -635,7 +645,8 @@ check_install_oai_software() {
lapack \
lapack-devel \
blas \
- blas-devel
+ blas-devel \
+ libyaml-devel
fi
install_asn1c_from_source
diff --git a/cmake_targets/tools/build_test_epc_tools b/cmake_targets/tools/build_test_epc_tools
index f9d8057c93..dc2d016545 100755
--- a/cmake_targets/tools/build_test_epc_tools
+++ b/cmake_targets/tools/build_test_epc_tools
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/example_enb_exmimo_mme_hss.txt b/cmake_targets/tools/example_enb_exmimo_mme_hss.txt
index 546ae1ba86..238554f8e2 100644
--- a/cmake_targets/tools/example_enb_exmimo_mme_hss.txt
+++ b/cmake_targets/tools/example_enb_exmimo_mme_hss.txt
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt b/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt
index baccdbc288..9996a53e19 100644
--- a/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt
+++ b/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/fix_asn1 b/cmake_targets/tools/fix_asn1
index 805a4ce66a..fe819c2716 100755
--- a/cmake_targets/tools/fix_asn1
+++ b/cmake_targets/tools/fix_asn1
@@ -4,7 +4,8 @@
#
RRC_Rel14=(
- "SystemInformation-r8-IEs.h" 562e3c3aeb7c6d76d722f31bf24488a26e627f33 "fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff"
+ "SystemInformation-r8-IEs.h" 4df485c5ddf2540eca271876cdc512caa19b0890 "fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff"
+ "SystemInformation-NB-r13-IEs.h" 6d91332d5c39205819b06e5e36efe62ff8e5b33b "fix_asn1.data/RRC.rel14/SystemInformation-NB-r13-IEs.h.diff"
)
RRC_Rel10=(
diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-NB-r13-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-NB-r13-IEs.h.diff
new file mode 100644
index 0000000000..37ac4cd858
--- /dev/null
+++ b/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-NB-r13-IEs.h.diff
@@ -0,0 +1,47 @@
+48a49,70
+> struct SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member {
+> SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_PR present;
+> union SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_u {
+> SystemInformationBlockType2_NB_r13_t sib2_r13;
+> SystemInformationBlockType3_NB_r13_t sib3_r13;
+> SystemInformationBlockType4_NB_r13_t sib4_r13;
+> SystemInformationBlockType5_NB_r13_t sib5_r13;
+> SystemInformationBlockType14_NB_r13_t sib14_r13;
+> SystemInformationBlockType16_NB_r13_t sib16_r13;
+> /*
+> * This type is extensible,
+> * possible extensions are below.
+> */
+> SystemInformationBlockType15_NB_r14_t sib15_v1430;
+> SystemInformationBlockType20_NB_r14_t sib20_v1430;
+> SystemInformationBlockType22_NB_r14_t sib22_v1430;
+> } choice;
+>
+> /* Context for parsing across buffer boundaries */
+> asn_struct_ctx_t _asn_ctx;
+> };
+>
+52,72c74
+< A_SEQUENCE_OF(struct SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member {
+< SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_PR present;
+< union SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_u {
+< SystemInformationBlockType2_NB_r13_t sib2_r13;
+< SystemInformationBlockType3_NB_r13_t sib3_r13;
+< SystemInformationBlockType4_NB_r13_t sib4_r13;
+< SystemInformationBlockType5_NB_r13_t sib5_r13;
+< SystemInformationBlockType14_NB_r13_t sib14_r13;
+< SystemInformationBlockType16_NB_r13_t sib16_r13;
+< /*
+< * This type is extensible,
+< * possible extensions are below.
+< */
+< SystemInformationBlockType15_NB_r14_t sib15_v1430;
+< SystemInformationBlockType20_NB_r14_t sib20_v1430;
+< SystemInformationBlockType22_NB_r14_t sib22_v1430;
+< } choice;
+<
+< /* Context for parsing across buffer boundaries */
+< asn_struct_ctx_t _asn_ctx;
+< } ) list;
+---
+> A_SEQUENCE_OF(struct SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member) list;
diff --git a/cmake_targets/tools/indent_source_code b/cmake_targets/tools/indent_source_code
index 17a29fb073..a16914a91d 100755
--- a/cmake_targets/tools/indent_source_code
+++ b/cmake_targets/tools/indent_source_code
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/init_exmimo2 b/cmake_targets/tools/init_exmimo2
index 1ed65cf0e0..8e902a8433 100755
--- a/cmake_targets/tools/init_exmimo2
+++ b/cmake_targets/tools/init_exmimo2
@@ -5,7 +5,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/init_nas_nos1 b/cmake_targets/tools/init_nas_nos1
index 3aaf547823..f7347e5508 100755
--- a/cmake_targets/tools/init_nas_nos1
+++ b/cmake_targets/tools/init_nas_nos1
@@ -5,7 +5,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
@@ -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
diff --git a/cmake_targets/tools/init_nas_s1 b/cmake_targets/tools/init_nas_s1
index 003a3ae600..cab4ad047b 100644
--- a/cmake_targets/tools/init_nas_s1
+++ b/cmake_targets/tools/init_nas_s1
@@ -8,7 +8,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/perf_oai.bash b/cmake_targets/tools/perf_oai.bash
index 44d9d1c74a..cd1ef5a400 100755
--- a/cmake_targets/tools/perf_oai.bash
+++ b/cmake_targets/tools/perf_oai.bash
@@ -3,7 +3,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/run_enb_s1_exmimo b/cmake_targets/tools/run_enb_s1_exmimo
index 028b492341..1bb6ce4425 100755
--- a/cmake_targets/tools/run_enb_s1_exmimo
+++ b/cmake_targets/tools/run_enb_s1_exmimo
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/run_enb_s1_usrp b/cmake_targets/tools/run_enb_s1_usrp
index 3d49fe40bd..e119126683 100755
--- a/cmake_targets/tools/run_enb_s1_usrp
+++ b/cmake_targets/tools/run_enb_s1_usrp
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/run_enb_ue_virt_noS1 b/cmake_targets/tools/run_enb_ue_virt_noS1
index a5139d4b44..79d5bc35dc 100755
--- a/cmake_targets/tools/run_enb_ue_virt_noS1
+++ b/cmake_targets/tools/run_enb_ue_virt_noS1
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/run_enb_ue_virt_s1 b/cmake_targets/tools/run_enb_ue_virt_s1
index 8e717f393a..50fc819ec8 100755
--- a/cmake_targets/tools/run_enb_ue_virt_s1
+++ b/cmake_targets/tools/run_enb_ue_virt_s1
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/cmake_targets/tools/stop_exmimo2 b/cmake_targets/tools/stop_exmimo2
index 85d9bec309..fdfe19425d 100755
--- a/cmake_targets/tools/stop_exmimo2
+++ b/cmake_targets/tools/stop_exmimo2
@@ -4,7 +4,7 @@
# * 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.0 (the "License"); you may not use this file
+# * 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
# *
diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c
index 42ea7259c3..040cd92faf 100644
--- a/common/config/config_cmdline.c
+++ b/common/config/config_cmdline.c
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -52,9 +52,12 @@ char defbool[2]="1";
switch(cfgoptions->type)
{
case TYPE_STRING:
- config_check_valptr(cfgoptions, (char **)(cfgoptions->strptr), sizeof(char *));
- config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(tmpval+1));
- sprintf(*(cfgoptions->strptr), "%s",tmpval);
+ if (cfgoptions->numelt == 0 ) {
+ config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(tmpval)+1);
+ sprintf(*(cfgoptions->strptr), "%s",tmpval);
+ } else {
+ sprintf( (char *)(cfgoptions->strptr), "%s",tmpval);
+ }
printf_cmdl("[CONFIG] %s set to %s from command line\n", cfgoptions->optname, tmpval);
optisset=1;
break;
diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c
index 8351d4d82c..7860742804 100644
--- a/common/config/config_load_configmodule.c
+++ b/common/config/config_load_configmodule.c
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -129,20 +129,21 @@ int i;
/* default */
if (cfgparam == NULL) {
- cfgparam = "libconfig:oaisoftmodem.conf";
+ tmpflags = tmpflags | CONFIG_NOOOPT;
+ cfgparam = DEFAULT_CFGMODE ":" DEFAULT_CFGFILENAME;
}
/* parse the config parameters to set the config source */
i = sscanf(cfgparam,"%m[^':']:%ms",&cfgmode,&modeparams);
if (i< 0) {
fprintf(stderr,"[CONFIG] %s, %d, sscanf error parsing config source %s: %s\n", __FILE__, __LINE__,cfgparam, strerror(errno));
- cfgmode=strdup("libconfig");
- modeparams = strdup("oaisoftmodem.conf");
+ cfgmode=strdup(DEFAULT_CFGMODE);
+ modeparams = strdup(DEFAULT_CFGFILENAME);
}
else if ( i == 1 ) {
/* -O argument doesn't contain ":" separator, assume -O option, default cfgmode to libconfig
with one parameter, the path to the configuration file */
modeparams=cfgmode;
- cfgmode=strdup("libconfig");
+ cfgmode=strdup(DEFAULT_CFGMODE);
}
cfgptr = malloc(sizeof(configmodule_interface_t));
@@ -196,25 +197,40 @@ int i;
return cfgptr;
}
-void end_configmodule()
+
+/* free memory allocated when reading parameters */
+/* config module could be initialized again after this call */
+void end_configmodule(void)
{
if (cfgptr != NULL) {
if (cfgptr->end != NULL) {
printf ("[CONFIG] calling config module end function...\n");
cfgptr->end();
}
+
+ printf ("[CONFIG] free %u config value pointers\n",cfgptr->numptrs);
+ for(int i=0; inumptrs ; i++) {
+ if (cfgptr->ptrs[i] != NULL) {
+ free(cfgptr->ptrs[i]);
+ cfgptr->ptrs[i]=NULL;
+ }
+ }
+ cfgptr->numptrs=0;
+ }
+}
+
+/* free all memory used by config module */
+/* should be called only at program exit */
+void free_configmodule(void)
+{
+ if (cfgptr != NULL) {
+ end_configmodule();
if( cfgptr->cfgmode != NULL) free(cfgptr->cfgmode);
printf ("[CONFIG] free %u config parameter pointers\n",cfgptr->num_cfgP);
for (int i=0; inum_cfgP; i++) {
if ( cfgptr->cfgP[i] != NULL) free(cfgptr->cfgP[i]);
}
- printf ("[CONFIG] free %u config value pointers\n",cfgptr->numptrs);
- for(int i=0; inumptrs ; i++) {
- if (cfgptr->ptrs[i] != NULL) {
- free(cfgptr->ptrs[i]);
- }
- cfgptr->ptrs[i]=NULL;
- }
+
free(cfgptr);
cfgptr=NULL;
diff --git a/common/config/config_load_configmodule.h b/common/config/config_load_configmodule.h
index 71c642f680..724cd1dbf5 100644
--- a/common/config/config_load_configmodule.h
+++ b/common/config/config_load_configmodule.h
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -40,14 +40,18 @@
#define CONFIG_MAX_OOPT_PARAMS 10 // maximum number of parameters in the -O option (-O :P1:P2...
#define CONFIG_MAX_ALLOCATEDPTRS 1024 // maximum number of parameters that can be dynamicaly allocated in the config module
+/* default values for configuration module parameters */
+#define DEFAULT_CFGMODE "libconfig" // use libconfig file
+#define DEFAULT_CFGFILENAME "oai.conf" // default config file
+
/* rtflags bit position definitions */
-#define CONFIG_PRINTPARAMS 1 // print parameters values while processing
-#define CONFIG_DEBUGPTR 2 // print memory allocation/free debug messages
-#define CONFIG_DEBUGCMDLINE 4 // print command line processing messages
-#define CONFIG_HELP 8 // print help message
-#define CONFIG_ABORT 16 // config failed,abort execution
-
-
+#define CONFIG_PRINTPARAMS 1 // print parameters values while processing
+#define CONFIG_DEBUGPTR 1<<1 // print memory allocation/free debug messages
+#define CONFIG_DEBUGCMDLINE 1<<2 // print command line processing messages
+#define CONFIG_NOABORTONCHKF 1<<3 // disable abort execution when parameter checking function fails
+#define CONFIG_HELP 1<<20 // print help message
+#define CONFIG_ABORT 1<<21 // config failed,abort execution
+#define CONFIG_NOOOPT 1<<22 // no -O option found when parsing command line
typedef int(*configmodule_initfunc_t)(char *cfgP[],int numP);
typedef int(*configmodule_getfunc_t)(paramdef_t *,int numparams, char *prefix);
typedef int(*configmodule_getlistfunc_t)(paramlist_def_t *, paramdef_t *,int numparams, char *prefix);
diff --git a/common/config/config_paramdesc.h b/common/config/config_paramdesc.h
index a7de5e3098..6f153535fb 100644
--- a/common/config/config_paramdesc.h
+++ b/common/config/config_paramdesc.h
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -55,16 +55,61 @@
#define PARAMFLAG_PARAMSET (1 << 16) // parameter has been explicitely set in get functions
#define PARAMFLAG_PARAMSETDEF (1 << 17) // parameter has been set to default value in get functions
+
+/* checkedparam_t is possibly used in paramdef_t for specific parameter value validation */
+#define CONFIG_MAX_NUMCHECKVAL 20
+typedef struct paramdef paramdef_t;
+typedef union checkedparam {
+ struct {
+ int (*f1)(paramdef_t *param); /* check an integer against a list of authorized values */
+ int okintval[CONFIG_MAX_NUMCHECKVAL]; /* integer array, store possible values */
+ int num_okintval; /* number of valid values in the checkingval array */
+ } s1;
+ struct {
+ int (*f1a)(paramdef_t *param); /* check an integer against a list of authorized values and set param value */
+ /* to the corresponding item in setintval array (mainly for RRC params) */
+ int okintval[CONFIG_MAX_NUMCHECKVAL]; /* integer array, store possible values in config file */
+ int setintval[CONFIG_MAX_NUMCHECKVAL]; /* integer array, values set in the paramdef structure */
+ int num_okintval; /* number of valid values in the checkingval array */
+ } s1a;
+ struct {
+ int (*f2)(paramdef_t *param); /* check an integer against an authorized range, defined by its min and max value */
+ int okintrange[CONFIG_MAX_NUMCHECKVAL]; /* integer array, store min and max values */
+
+ } s2;
+ struct {
+ int (*f3)(paramdef_t *param); /* check a string against a list of authorized values */
+ char *okstrval[CONFIG_MAX_NUMCHECKVAL]; /* string array, store possible values */
+ int num_okstrval; /* number of valid values in the checkingval array */
+ } s3;
+ struct {
+ int (*f3a)(paramdef_t *param); /* check a string against a list of authorized values and set param value */
+ /* to the corresponding item in setintval array (mainly for RRC params) */
+ char *okstrval[CONFIG_MAX_NUMCHECKVAL]; /* string array, store possible values */
+ int setintval[CONFIG_MAX_NUMCHECKVAL]; /* integer array, values set in the paramdef structure */
+ int num_okstrval; /* number of valid values in the checkingval array */
+ } s3a;
+ struct {
+ int (*f4)(paramdef_t *param); /* generic check function, no arguments but the param description */
+
+ } s4;
+ struct {
+ void (*checkfunc)(void) ;
+ } s5;
+} checkedparam_t;
+
+/* paramdef is used to describe a parameter, array of paramdef_t strustures is used as the main parameter in */
+/* config apis used to retrieve parameters values */
typedef struct paramdef
{
- char optname[MAX_OPTNAME_SIZE]; /* parameter name, can be used as long command line option */
- char *helpstr; /* help string */
- unsigned int paramflags; /* value is a "ored" combination of above PARAMFLAG_XXXX values */
- union { /* pointer to the parameter value, completed by the config module */
+ char optname[MAX_OPTNAME_SIZE]; /* parameter name, can be used as long command line option */
+ char *helpstr; /* help string */
+ unsigned int paramflags; /* value is a "ored" combination of above PARAMFLAG_XXXX values */
+ union { /* pointer to the parameter value, completed by the config module */
char **strptr;
char **strlistptr;
uint8_t *u8ptr;
- char *i8ptr;
+ int8_t *i8ptr;
uint16_t *u16ptr;
int16_t *i16ptr;
uint32_t *uptr;
@@ -72,18 +117,21 @@ typedef struct paramdef
uint64_t *u64ptr;
int64_t *i64ptr;
double *dblptr;
+ void *voidptr;
} ;
union { /* default parameter value, to be used when PARAMFLAG_MANDATORY is not specified */
- char *defstrval;
- char **defstrlistval;
- uint32_t defuintval;
- int defintval;
- uint64_t defint64val;
- int *defintarrayval;
- double defdblval;
+ char *defstrval;
+ char **defstrlistval;
+ uint32_t defuintval;
+ int defintval;
+ uint64_t defint64val;
+ int *defintarrayval;
+ double defdblval;
} ;
char type; /* parameter value type, as listed below as TYPE_XXXX macro */
int numelt; /* number of elements in a list or array parameters or max size of string value */
+ checkedparam_t *chkPptr; /* possible pointer to the structure containing the info used to check parameter values */
+ int *processedvalue; /* used to store integer values computed from string original value */
} paramdef_t;
#define TYPE_INT TYPE_INT32
diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c
index ad2e355d52..c1acc84384 100644
--- a/common/config/config_userapi.c
+++ b/common/config/config_userapi.c
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -36,6 +36,7 @@
#include
#include
#include "config_userapi.h"
+extern void exit_fun(const char* s); // lte-softmodem clean exit function
configmodule_interface_t *config_get_if(void)
@@ -50,12 +51,16 @@ configmodule_interface_t *config_get_if(void)
char * config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length)
{
- printf_ptrs("-- %s 0x%08lx %i\n",cfgoptions->optname,(uintptr_t)(*ptr),length);
+ printf_ptrs("[CONFIG] %s ptr: 0x%08lx requested size: %i\n",cfgoptions->optname,(uintptr_t)(ptr),length);
+ if(cfgoptions->numelt > 0) { /* already allocated */
+ return *ptr;
+ }
+
if (*ptr == NULL) {
*ptr = malloc(length);
if ( *ptr != NULL) {
memset(*ptr,0,length);
- if ( (cfgoptions->paramflags & PARAMFLAG_NOFREE) != 0) {
+ if ( (cfgoptions->paramflags & PARAMFLAG_NOFREE) == 0) {
config_get_if()->ptrs[config_get_if()->numptrs] = *ptr;
config_get_if()->numptrs++;
}
@@ -107,7 +112,29 @@ int tmpval=val;
break;
}
}
+void config_assign_processedint(paramdef_t *cfgoption, int val) {
+ cfgoption->processedvalue = malloc(sizeof(int));
+ if ( cfgoption->processedvalue != NULL) {
+ *(cfgoption->processedvalue) = val;
+ } else {
+ fprintf (stderr,"[CONFIG] %s %d malloc error\n",__FILE__, __LINE__);
+ exit(-1);
+ }
+}
+int config_get_processedint(paramdef_t *cfgoption) {
+ int ret;
+ if ( cfgoption->processedvalue != NULL) {
+ ret=*(cfgoption->processedvalue);
+ free( cfgoption->processedvalue);
+ cfgoption->processedvalue=NULL;
+ printf_params("[CONFIG] %s: set from %s to %i\n",cfgoption->optname, *(cfgoption->strptr), ret);
+ } else {
+ fprintf (stderr,"[CONFIG] %s %d %s has no processed integer availablle\n",__FILE__, __LINE__, cfgoption->optname);
+ ret=0;
+ }
+return ret;
+}
void config_printhelp(paramdef_t *params,int numparams)
{
for (int i=0 ; is4.f4 != NULL) {
+ st += params[i].chkPptr->s4.f4(&(params[i]));
+ }
+ }
+ if (st != 0) {
+ fprintf(stderr,"[CONFIG] config_execcheck: %i parameters with wrong value\n", -st);
+ if ( CONFIG_ISFLAGSET(CONFIG_NOABORTONCHKF) == 0) {
+ exit_fun("exit because configuration failed\n");
+ }
+ }
+return st;
+}
+
int config_get(paramdef_t *params,int numparams, char *prefix)
{
int ret= -1;
@@ -133,6 +181,7 @@ configmodule_interface_t *cfgif = config_get_if();
ret = config_get_if()->get(params, numparams,prefix);
if (ret >= 0) {
config_process_cmdline(params,numparams,prefix);
+ config_execcheck(params,numparams,prefix);
}
return ret;
}
@@ -147,3 +196,90 @@ int config_isparamset(paramdef_t *params,int paramidx)
return 0;
}
}
+
+void print_intvalueerror(paramdef_t *param, char *fname, int *okval, int numokval) {
+ fprintf(stderr,"[CONFIG] %s: %s: %i invalid value, authorized values:\n ",
+ fname,param->optname, (int)*(param->uptr));
+ for ( int i=0; ichkPptr->s1.num_okintval ; i++) {
+ if( *(param->uptr) == param->chkPptr->s1.okintval[i] ) {
+ return 0;
+ }
+ }
+ print_intvalueerror(param,"config_check_intval", param->chkPptr->s1.okintval,param->chkPptr->s1.num_okintval);
+ return -1;
+}
+
+int config_check_modify_integer(paramdef_t *param)
+{
+
+ for (int i=0; i < param->chkPptr->s1a.num_okintval ; i++) {
+ if (*(param->uptr) == param->chkPptr->s1a.okintval[i] ) {
+ printf_params("[CONFIG] %s: read value %i, set to %i\n",param->optname,*(param->uptr),param->chkPptr->s1a.setintval [i]);
+ *(param->uptr) = param->chkPptr->s1a.setintval [i];
+ return 0;
+ }
+ }
+ print_intvalueerror(param,"config_check_modify_integer", param->chkPptr->s1a.okintval,param->chkPptr->s1a.num_okintval);
+ return -1;
+}
+
+int config_check_intrange(paramdef_t *param)
+{
+ if( *(param->iptr) >= param->chkPptr->s2.okintrange[0] && *(param->iptr) <= param->chkPptr->s2.okintrange[1] ) {
+ return 0;
+ }
+ fprintf(stderr,"[CONFIG] config_check_intrange: %s: %i invalid value, authorized range: %i %i\n",
+ param->optname, (int)*(param->uptr), param->chkPptr->s2.okintrange[0], param->chkPptr->s2.okintrange[1]);
+ return -1;
+}
+
+void print_strvalueerror(paramdef_t *param, char *fname, char **okval, int numokval) {
+ fprintf(stderr,"[CONFIG] %s: %s: %s invalid value, authorized values:\n ",
+ fname,param->optname, *(param->strptr));
+ for ( int i=0; ichkPptr->s3.num_okstrval ; i++) {
+ if( strcasecmp(*(param->strptr),param->chkPptr->s3.okstrval[i] ) == 0) {
+ return 0;
+ }
+ }
+ print_strvalueerror(param, "config_check_strval", param->chkPptr->s3.okstrval, param->chkPptr->s3.num_okstrval);
+ return -1;
+}
+
+int config_checkstr_assign_integer(paramdef_t *param)
+{
+
+
+ for (int i=0; i < param->chkPptr->s3a.num_okstrval ; i++) {
+ if (strcasecmp(*(param->strptr),param->chkPptr->s3a.okstrval[i] ) == 0) {
+ config_assign_processedint(param, param->chkPptr->s3a.setintval[i]);
+ return 0;
+ }
+ }
+ print_strvalueerror(param, "config_check_strval", param->chkPptr->s3a.okstrval, param->chkPptr->s3a.num_okstrval);
+
+ return -1;
+}
diff --git a/common/config/config_userapi.h b/common/config/config_userapi.h
index 6acaacf716..923a690f51 100644
--- a/common/config/config_userapi.h
+++ b/common/config/config_userapi.h
@@ -3,7 +3,7 @@
* 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.0 (the "License"); you may not use this file
+ * 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
*
@@ -42,16 +42,30 @@ extern "C"
#define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP )
#define CONFIG_GETP(P) ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgP[P] )
#define CONFIG_ISFLAGSET(P) ( (config_get_if()==NULL) ? 0 : !!(config_get_if()->rtflags & P))
-
+#define CONFIG_ISPARAMFLAGSET(P,F) ( !!(P.paramflags & F))
+/* utility functions, to be used by configuration module and/or configuration libraries */
extern configmodule_interface_t *config_get_if(void);
extern char * config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) ;
extern void config_printhelp(paramdef_t *,int numparams);
extern int config_process_cmdline(paramdef_t *params,int numparams, char *prefix);
-extern int config_get(paramdef_t *params,int numparams, char *prefix);
-extern int config_isparamset(paramdef_t *params,int paramidx);
+extern void config_assign_processedint(paramdef_t *cfgoption, int val);
extern void config_assign_int(paramdef_t *cfgoptions, char *fullname, int val);
-extern int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix);
+
+/* apis to get parameters, to be used by oai modules, at configuration time */
+extern int config_get(paramdef_t *params,int numparams, char *prefix);
#define config_getlist config_get_if()->getlist
+
+/* apis to retrieve parameters info after calling get or getlist functions */
+extern int config_isparamset(paramdef_t *params,int paramidx);
+extern int config_get_processedint(paramdef_t *cfgoption);
+
+/* functions to be used in parameters definition, to check parameters values */
+extern int config_check_intval(paramdef_t *param);
+extern int config_check_modify_integer(paramdef_t *param);
+extern int config_check_intrange(paramdef_t *param);
+extern int config_check_strval(paramdef_t *param);
+extern int config_checkstr_assign_integer(paramdef_t *param);
+
#define CONFIG_GETCONFFILE (config_get_if()->cfgP[0])
#ifdef __cplusplus
diff --git a/common/config/libconfig/config_libconfig.c b/common/config/libconfig/config_libconfig.c
index 35a70dfcc7..a73a0737f2 100644
--- a/common/config/libconfig/config_libconfig.c
+++ b/common/config/libconfig/config_libconfig.c
@@ -1,3 +1,33 @@
+/*
+ * 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
+ */
+/*! \file common/config/libconfig/config_libconfig.c
+ * \brief: implementation libconfig configuration library
+ * \author Francois TABURET
+ * \date 2017
+ * \version 0.1
+ * \company NOKIA BellLabs France
+ * \email: francois.taburet@nokia-bell-labs.com
+ * \note
+ * \warning
+ */
#define _GNU_SOURCE
#include
@@ -21,21 +51,23 @@ int read_strlist(paramdef_t *cfgoptions,config_setting_t *setting, char *cfgpath
{
const char *str;
int st;
+int numelt;
- cfgoptions->numelt=config_setting_length(setting);
- cfgoptions->strlistptr=malloc(sizeof(char *) * (cfgoptions->numelt));
+ numelt=config_setting_length(setting);
+ config_check_valptr(cfgoptions,(char **)&(cfgoptions->strlistptr), sizeof(char *) * numelt);
st=0;
- for (int i=0; i< cfgoptions->numelt && cfgoptions->strlistptr != NULL; i++) {
+ for (int i=0; i< numelt ; i++) {
str=config_setting_get_string_elem(setting,i);
if (str==NULL) {
printf("[LIBCONFIG] %s%i not found in config file\n", cfgoptions->optname,i);
} else {
- cfgoptions->strlistptr[i]=malloc(strlen(str)+1);
+ config_check_valptr(cfgoptions,&(cfgoptions->strlistptr[i]),strlen(str)+1);
sprintf(cfgoptions->strlistptr[i],"%s",str);
st++;
printf_params("[LIBCONFIG] %s%i: %s\n", cfgpath,i,cfgoptions->strlistptr[i]);
}
}
+ cfgoptions->numelt=numelt;
return st;
}
@@ -104,17 +136,28 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
cfgpath,str,cfgoptions[i].numelt);
str[strlen(str)-1] = 0;
}
- config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *));
- config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(str)+1);
- sprintf( *(cfgoptions[i].strptr) , "%s", str);
- printf_params("[LIBCONFIG] %s: %s\n", cfgpath,*(cfgoptions[i].strptr) );
+ if (cfgoptions[i].numelt == 0 ) {
+ config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *));
+ config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(str)+1);
+ sprintf( *(cfgoptions[i].strptr) , "%s", str);
+ printf_params("[LIBCONFIG] %s: \"%s\"\n", cfgpath,*(cfgoptions[i].strptr) );
+ } else {
+ sprintf( (char *)(cfgoptions[i].strptr) , "%s", str);
+ printf_params("[LIBCONFIG] %s: \"%s\"\n", cfgpath,(char *)cfgoptions[i].strptr );
+ }
} else {
if( cfgoptions[i].defstrval != NULL) {
defval=1;
- config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *));
- config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(cfgoptions[i].defstrval)+1);
- sprintf(*(cfgoptions[i].strptr), "%s",cfgoptions[i].defstrval);
- printf_params("[LIBCONFIG] %s set to default value %s\n", cfgpath, *(cfgoptions[i].strptr));
+
+ if (cfgoptions[i].numelt == 0 ) {
+ config_check_valptr(&(cfgoptions[i]), (char **)(&(cfgoptions[i].strptr)), sizeof(char *));
+ config_check_valptr(&(cfgoptions[i]), cfgoptions[i].strptr, strlen(cfgoptions[i].defstrval)+1);
+ sprintf(*(cfgoptions[i].strptr), "%s",cfgoptions[i].defstrval);
+ printf_params("[LIBCONFIG] %s set to default value \"%s\"\n", cfgpath, *(cfgoptions[i].strptr));
+ } else {
+ sprintf((char *)*(cfgoptions[i].strptr), "%s",cfgoptions[i].defstrval);
+ printf_params("[LIBCONFIG] %s set to default value \"%s\"\n", cfgpath, (char *)*(cfgoptions[i].strptr));
+ }
} else {
notfound=1;
}
@@ -183,7 +226,7 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
read_intarray(&cfgoptions[i],setting,cfgpath);
} else {
if( cfgoptions[i].defintarrayval != NULL) {
- config_check_valptr(&(cfgoptions[i]),(char **)&(cfgoptions[i].iptr), sizeof(int32_t));
+ config_check_valptr(&(cfgoptions[i]),(char **)&(cfgoptions[i].iptr), sizeof(int32_t*));
cfgoptions[i].iptr=cfgoptions[i].defintarrayval;
defval=1;
for (int j=0; jlock)) abort();
}
-void usage(void)
-{
- printf(
-"options:\n"
-" -d this option is mandatory\n"
-" -on turn log ON for given GROUP or ID\n"
-" -off turn log OFF for given GROUP or ID\n"
-" -ON turn all logs ON\n"
-" -OFF turn all logs OFF\n"
-" note: you may pass several -on/-off/-ON/-OFF,\n"
-" they will be processed in order\n"
-" by default, all is off\n"
-" -ip connect to given IP address (default %s)\n"
-" -p connect to given port (default %d)\n"
-" -debug-gui activate GUI debug logs\n",
- DEFAULT_REMOTE_IP,
- DEFAULT_REMOTE_PORT
- );
- exit(1);
-}
-
static void *gui_thread(void *_g)
{
gui *g = _g;
@@ -248,13 +231,15 @@ static void click(void *private, gui *g,
enb_data *ed = private;
enb_gui *e = ed->e;
int ue = ed->ue;
+ int do_reset = 0;
if (button != 1) return;
if (w == e->prev_ue_button) { ue--; if (ue < 0) ue = 0; }
if (w == e->next_ue_button) ue++;
- if (w == e->current_ue_button) reset_ue_ids();
+ if (w == e->current_ue_button) do_reset = 1;
if (pthread_mutex_lock(&ed->lock)) abort();
+ if (do_reset) reset_ue_ids();
if (ue != ed->ue) {
set_current_ue(g, ed, ue);
ed->ue = ue;
@@ -314,14 +299,14 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database,
input_signal_plot = new_xy_plot(g, 256, 55, "input signal", 20);
widget_add_child(g, line, input_signal_plot, -1);
- xy_plot_set_range(g, input_signal_plot, 0, 7680*10, 20, 70);
+ xy_plot_set_range(g, input_signal_plot, 0, 7680*10 * ed->nb_rb/25, 20, 70);
input_signal_log = new_framelog(h, database,
"ENB_PHY_INPUT_SIGNAL", "subframe", "rxdata");
/* a skip value of 10 means to process 1 frame over 10, that is
* more or less 10 frames per second
*/
framelog_set_skip(input_signal_log, 10);
- input_signal_view = new_view_xy(7680*10, 10,
+ input_signal_view = new_view_xy(7680*10 * ed->nb_rb/25, 10,
g, input_signal_plot, new_color(g, "#0c0c72"), XY_LOOP_MODE);
logger_add_view(input_signal_log, input_signal_view);
@@ -639,7 +624,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database,
container_set_child_growable(g, top_container, text, 1);
e->legacy = new_view_textlist(10000, 10, g, text);
- set_current_ue(g, ed, 0);
+ set_current_ue(g, ed, ed->ue);
register_notifier(g, "click", e->current_ue_button, click, ed);
register_notifier(g, "click", e->prev_ue_button, click, ed);
register_notifier(g, "click", e->next_ue_button, click, ed);
@@ -661,6 +646,28 @@ void view_add_log(view *v, char *log, event_handler *h, void *database,
on_off(database, log, is_on, 1);
}
+void usage(void)
+{
+ printf(
+"options:\n"
+" -d this option is mandatory\n"
+" -rb setup for this number of RBs (default 25)\n"
+" -on turn log ON for given GROUP or ID\n"
+" -off turn log OFF for given GROUP or ID\n"
+" -ON turn all logs ON\n"
+" -OFF turn all logs OFF\n"
+" note: you may pass several -on/-off/-ON/-OFF,\n"
+" they will be processed in order\n"
+" by default, all is off\n"
+" -ip connect to given IP address (default %s)\n"
+" -p connect to given port (default %d)\n"
+" -debug-gui activate GUI debug logs\n",
+ DEFAULT_REMOTE_IP,
+ DEFAULT_REMOTE_PORT
+ );
+ exit(1);
+}
+
int main(int n, char **v)
{
extern int volatile gui_logd;
@@ -681,6 +688,8 @@ int main(int n, char **v)
reset_ue_ids();
+ enb_data.nb_rb = 25;
+
/* write on a socket fails if the other end is closed and we get SIGPIPE */
if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort();
@@ -691,6 +700,8 @@ int main(int n, char **v)
if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage();
if (!strcmp(v[i], "-d"))
{ if (i > n-2) usage(); database_filename = v[++i]; continue; }
+ if (!strcmp(v[i], "-rb"))
+ { if (i > n-2) usage(); enb_data.nb_rb = atoi(v[++i]); continue; }
if (!strcmp(v[i], "-ip")) { if (i > n-2) usage(); ip = v[++i]; continue; }
if (!strcmp(v[i], "-p"))
{ if (i > n-2) usage(); port = atoi(v[++i]); continue; }
@@ -706,6 +717,11 @@ int main(int n, char **v)
usage();
}
+ switch (enb_data.nb_rb) {
+ case 25: case 50: case 100: break;
+ default: printf("ERROR, bad value for -rb (%d)\n", enb_data.nb_rb); exit(1);
+ }
+
if (database_filename == NULL) {
printf("ERROR: provide a database file (-d)\n");
exit(1);
@@ -724,7 +740,7 @@ int main(int n, char **v)
g = gui_init();
new_thread(gui_thread, g);
- enb_data.ue = 0;
+ enb_data.ue = 3;
enb_data.e = ⪚
enb_data.database = database;
diff --git a/common/utils/T/tracer/extract.c b/common/utils/T/tracer/extract.c
new file mode 100644
index 0000000000..b9fca959ed
--- /dev/null
+++ b/common/utils/T/tracer/extract.c
@@ -0,0 +1,124 @@
+#include
+#include
+#include
+#include
+#include "database.h"
+#include "event.h"
+#include "config.h"
+
+void usage(void)
+{
+ printf(
+"usage: [options] \n"
+"options:\n"
+" -d this option is mandatory\n"
+" -o