5adfeb80c31abf934c9b73b1d3ea87aa2fa2d778
Make all targets compile This MR enables us to compile all targets, and does that in one CI test. This closes #726. Now, this should work: cd ~/openairinterface5g mkdir build && cd build cmake .. -GNinja && ninja To achieve this, I did the following: - some targets have been fixed (warnings, errors) - some targets have been removed when they did not seem to serve a good purpose (e.g., an almost empty test) - some targets have been commented (e.g., LTE simulators, some unitary tests) which we maybe want to revive in the future - some targets built when just building with ninja, but not all. For instance, telnetsrv_enb would typically build, but it was missing a dependency. Doing cmake .. -GNinja && ninja telnetsrv_enb would show this (in develop) To help with the last bullet point, there is a script compile_targets.sh that can compile targets independently (and in parallel, to not wait for ages) to show that targets compile properly compile-targets.patch. In almost all cases, the problem is that a specific module uses the logging module, which depends on T, which needs to dynamically create headers. The way to do this is to have a dependency, and many targets use generate_T or {T_LIB} ({} intentional: T might be absent, so then it evaluates to nothing). However, not all do this, and those that depend on T actually don't depend on T, but on the logging module, which in turn depends on T. So in many places, a simple dependency onto log_headers fixes this problem, and generate_T or {T_LIB} simplifies the dependency (but not always). The commits should have more info. Note that at least the targets in FlexRIC do not all compile, at least in the configuration that we use in docker/Dockerfile.build.ubuntu. So for the latter, we cannot build with a simple ninja, but FlexRIC seems to be the only one that does not compile. Since FlexRIC is a separate repository, that needs to be addressed in the corresponding repository.
OpenAirInterface License
It is distributed under OAI Public License V1.1.
The license information is distributed under LICENSE file in the same directory.
Please see NOTICE file for third party software that is included in the sources.
Where to Start
- General overview of documentation
- The implemented features
- System Requirements for Using OAI Stack
- How to build
- How to run the modems
Not all information is available in a central place, and information for specific sub-systems might be available in the corresponding sub-directories. To find all READMEs, this command might be handy:
find . -iname "readme*"
RAN repository structure
The OpenAirInterface (OAI) software is composed of the following parts:
openairinterface5g
├── charts
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── CMakeLists.txt : Top-level CMakeLists.txt for building
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common : Some common OAI utilities, some other tools can be found at openair2/UTILS.
├── doc : Documentation
├── docker : Dockerfiles to build for Ubuntu and RHEL
├── executables : Top-level executable source files (gNB, eNB, ...)
├── maketags : Script to generate emacs tags.
├── nfapi : (n)FAPI code for MAC-PHY interface
├── openair1 : Layer 1 (3GPP LTE Rel-10/12 PHY, NR Rel-15 PHY)
├── openair2 : Layer 2 (3GPP LTE Rel-10 MAC/RLC/PDCP/RRC/X2AP, LTE Rel-14 M2AP, NR Rel-15+ MAC/RLC/PDCP/SDAP/RRC/X2AP/F1AP/E1AP), E2AP
├── openair3 : Layer 3 (3GPP LTE Rel-10 S1AP/GTP, NR Rel-15 NGAP/GTP)
├── openshift : OpenShift helm charts for some deployment options of OAI
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, 7.2 FHI, ...
├── targets : Some configuration files; only historical relevance, and might be deleted in the future
└── tools : Tools for use by the developers/ci machines: code analysis and formatting
How to get support from the OAI Community
You can ask your question on the mailing lists.
Your email should contain below information:
- A clear subject in your email.
- For all the queries there should be [Query] in the subject of the email and for problems there should be [Problem].
- In case of a problem, add a small description.
- Do not share any photos unless you want to share a diagram.
- OAI gNB/DU/CU/CU-CP/CU-UP configuration file in
.confformat only. - Logs of OAI gNB/DU/CU/CU-CP/CU-UP in
.logor.txtformat only. - In case your question is related to performance, include a small description of the machine (Operating System, Kernel version, CPU, RAM and networking card) and diagram of your testing environment.
- Known/open issues are present on GitLab, so keep checking.
Always remember a structured email will help us understand your issues quickly.
Languages
C
91.8%
CMake
2.9%
C++
1.9%
TeX
1%
Python
1%
Other
1.1%
