0f43c2c713e9b9f29a509e5ac69d5841b804806c
nr_pdcp_entity_recv_sdu() processes PDCP SDUs, and forwards the PDU at the end of the function, while having the PDCP lock. This can lead to deadlocks, e.g., when another thread goes through RLC and tries to access the PDCP while the PDCP tries to lock the RLC. This commit changes the logic: instead of having recv_sdu() forward the PDU directly, it fills a buffer with the PDU (thus the name change to process_sdu()), and returns. We then unlock the PDCP, before forwarding the PDU, thus eliminating potential deadlocks.
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
More information and documentation can be found in the doc folder. Unfortunately, not all information is available there, 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
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common : Some common OAI utilities, other tools can be found at openair2/UTILS.
├── doc : Contains an up-to-date feature set list and starting tutorials.
├── executables : Top-level executable source files.
├── LICENSE : License file.
├── maketags : Script to generate emacs tags.
├── nfapi : Contains the NFAPI code. A local Readme file provides more details.
├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
│ ├── PHY
│ ├── SCHED
│ ├── SCHED_NBIOT
│ ├── SCHED_NR
│ ├── SCHED_NR_UE
│ ├── SCHED_UE
│ └── SIMULATION : PHY RF simulation.
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│ ├── COMMON
│ ├── DOCS
│ ├── ENB_APP
│ ├── F1AP
│ ├── GNB_APP
│ ├── LAYER2/RLC/ : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
│ ├── LAYER2/PDCP/PDCP_v10.1.0
│ ├── M2AP
│ ├── MCE_APP
│ ├── NETWORK_DRIVER
│ ├── NR_PHY_INTERFACE
│ ├── NR_UE_PHY_INTERFACE
│ ├── PHY_INTERFACE
│ ├── RRC
│ ├── UTIL
│ └── X2AP
├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│ ├── COMMON
│ ├── DOCS
│ ├── GTPV1-U
│ ├── M3AP
│ ├── MME_APP
│ ├── NAS
│ ├── S1AP
│ ├── SCTP
│ ├── SECU
│ ├── TEST
│ ├── UDP
│ └── UTILS
├── radio : drivers for various radios such as USRP, AW2S, RFsim, ...
└── targets : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
Languages
C
91.8%
CMake
2.9%
C++
1.9%
TeX
1%
Python
1%
Other
1.1%
