b9f0299165142173010df94fbaf176ff3bf1e7ab
The case securityModeFailure didn't seem to be implemented properly, so I just removed it entirely. The variable 'securityMode' did not make much sense, removed as well. Plus for integrity, there was: securityMode |= 1 << 5 for nea1 and << 6 for nea2, which does not seem correct (I would expect << 4 and << 5 respectively), so it was properly incorrect. 'securityModeCommand->criticalExtensions.choice.securityModeCommand' was accessed before checking that 'securityModeCommand->criticalExtensions.present' is 'NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand', which is wrong. The tests 'securityMode >= NO_SECURITY_MODE' and 'securityMode != 0xff' don't make sense/are unclear, so removed too. So let's simplify this function, wrong in several places. And put some AssertFatal() so that the code won't do weird things. The AssertFatal() can be removed later and the function improved later if needed. The case securityModeFailure can also be handled later, but I think there is more work to do than just encoding the message and send it to the gNB, so it's not bad to remove it for the moment.
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
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 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
├── 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.
├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
├── openshift : OpenShift helm charts for some deployment options of OAI
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, ...
└── targets : Some configuration files; only historical relevance, and might be deleted in the future
Languages
C
91.8%
CMake
2.9%
C++
1.9%
TeX
1%
Python
1%
Other
1.1%
