1dd66355a2b837e0e5e51d5df1b1a8e7cbfbac79
UE: Implement SUCI Profile Scheme A This MR modifies the nrUE to support Profile Scheme A based SUCI generation as outlined in TS 33.501 §C.3 Elliptic Curve Integrated Encryption Scheme (ECIES), this further extends SUCI generation, which currently only supports the NULL Scheme. Changes: - Extend UICC structure for SUCI parameters. - Add cryptographic primitives (Curve25519, X9.63 KDF). - Add an abstracted function to transfer digit strings into their corresponding BCD value. - Updates SUCI generation to support Profile Scheme A. - Updates NAS SUCI encoding to support hexadecimal cryptographic output in addition to BCD encoded MSINs. Notes: When a configuration file specifies an unsupported Profile Scheme, the NAS layer triggers a fatal error. This occurs either because Profile Scheme B is unimplemented or the build uses OpenSSL < 3.0, which lacks Curve25519 and X9.63 KDF support, ensuring users are informed of the incompatibility. Support for Profile Scheme B (TS 33.501 §C.3.4.2 Profile B) can be implemented at a later stage using P-256-based encryption. The implementation of SUCI Profile Scheme A was tested against Open5GS’s core implementation. OpenAirInterface’s cn5G does not yet support Scheme A and should be extended to include it in a future update.
OpenAirInterface License
The source code is distributed under CSSL v1.0. Some files, such as for orchestration, are distributed under MIT license(MIT.txt). Documentation is distributed under Creative Commons Attribution 4.0 International license.
Please see NOTICE for other licenses which are used in the software.
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%
