33 Commits

Author SHA1 Message Date
Aaron van Diepen
8ec7b4009b Implement SUCI Profile Scheme A for 5G UE
Extend UICC configuration parsing to provide: routing_indicator,
protection_scheme, home_network_public_key, and home_network_public_key_id.
Use the protection_scheme value to decide what SUCI Profile Scheme to
apply during SUCI generation. Add support for Profile Scheme A which
provides ECIES-based encryption using Curve25519 and X9.63 KDF as outlined
in TS 33.501 Section C.3.4.1 Profile A.

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.
2026-03-31 00:44:32 +02:00
Robert Schmidt
8107939f08 Change OAI license to CSSL v1.0 (and others)
- all RAN code, CI code, configuration files, dockerfiles, in CSSL v1.0
- all deployment code (openshift, charts, ancillary files like shell
  scripts), in MIT
- documentation in CC-BY-4.0
- exceptions might apply and are listed in NOTICE
- there is a new LICENSES folder with all licenses
- CONTRIBUTIONS.md has been updated accordingly

For automated changes based on OAI PL v1.1:

    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.{c,h,cpp}
    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.ts
    perl -i~ -0pe 's/<!--.*Licensed to the OpenAirInterface.*openairinterface.org\n.*-->/<!-- SPDX-License-Identifier: LicenseRef-CSSL-1.0 -->/s' **/*.xml

The rest (cmake, files with missing license, cmake) manually.
2026-03-27 16:36:37 +01:00
Robert Schmidt
6ae4ec37ca Remove most doxygen file-level commands, copyrights, and authors
Remove the \file directive, as it is always superfluous  because the
current file is implicit [1]:

> If the file name is omitted (i.e. the line after \file is left blank)
> then the documentation block that contains the \file command will belong
> to the file it is located in.

Author names and e-mails are not relevant for us: it can always be
inferred from git blame, and is often outdated.

Eurecom code has been contributed and was under OAI PL v1.0/v1.1.

For the cpack package contact: put generic email address that is
independent of an individual and that will remain reachable.

[1] https://www.doxygen.nl/manual/commands.html#cmdfile
2026-03-27 14:52:47 +01:00
Robert Schmidt
cdfe069c34 Remove unused cmake macros 2026-02-25 16:26:21 +01:00
Laurent THOMAS
ca37e0c123 Clean up NAS code, remove unused compile options 2025-01-23 14:12:06 +01:00
Guido Casati
6faa5d3066 Refactor TLVEncoder
* deleted unused TLVEncoder.c
* removed dependency from LOG module in TLVEncoder Macros
2024-11-25 13:15:10 +01:00
Laurent THOMAS
63b64d4fce move common code file in common directory
remove several unused files
remove mem_block_t that is never used in a different way than a simple heap buffer
move up IP address type and remove duplications of the same struct declaration
2023-12-19 10:37:10 +01:00
Robert Schmidt
387f5e4118 Make shlib_loader OBJECT library to prevent multiple compilations
Including sources in targets makes that file being compiled multiple
times. Instead, define an OBJECT library (i.e., it is only compiled, but
not linked), and link it into each target that uses it.
2023-07-07 08:35:28 +02:00
Robert Schmidt
7ebdaf35c5 Remove cmake ENB_MODE option
ENB_MODE is a cmake option to swap the order of include directories.
This has historical reasons; before OAI used cmake, it was very
sensitive to the order of includes. Nowadays, the order does not matter.
Remove this option, and fix the compilation issues that arise while
doing so.
2023-07-07 08:35:28 +02:00
Robert Schmidt
852a6c4f28 Remove write-only variables 2023-04-14 13:52:12 +02:00
mir
986a1a80ff Remove nettle library from OAI, support OpenSSL 3.0 and 1.1
Add byte_array_t structure under common/
2023-02-10 16:49:54 +01:00
Robert Schmidt
6160ab14be Remove targets/bin/ 2022-09-29 10:03:28 +02:00
Robert Schmidt
00e058537d Remove MSC library, it is not used anywhere 2022-01-27 10:53:07 +01:00
Raymond Knopp
f5fcd5687d small changes in main-ocp to reflect initialization differences int phy_init_lte_eNB(). 2021-03-14 09:28:06 +01:00
Raymond Knopp
c47e1fc97f Merge remote-tracking branch 'origin/develop' into enhancement-ltem 2019-01-19 12:14:23 +01:00
Cedric Roux
aea6b4b5a6 fix a lot of file mode
For whatever reason most of the files had their permission
changed from 644 to 755, which is not wanted.
2019-01-07 16:22:28 +01:00
laurent
80ac9ece17 issue 384 2018-12-23 18:05:51 +01:00
Cedric Roux
1b1f941e3c upgrade license to version 1.1 2017-10-23 12:22:13 +02:00
Cedric Roux
cff9149920 fix issue 227 - UE IP settings disrupts realtime
see https://gitlab.eurecom.fr/oai/openairinterface5g/issues/227

When the UE connects to the eNodeB and receives its IP address from the
network, it calls system() to set it in the linux kernel world. This call
is not done in a realtime thread, but in the NAS, which uses its own thread,
independent of the realtime processing.

In some situations this totally disrupts realtime processing.

It is difficult to know precisely why that happens, but it seems that calling
fork(), as system() does, in a multi-threaded program is not a good idea. (So
say several people on the internet.) It is not clear why the softmodem is
impacted, but it seems that fork() is really what triggers the disruption.
Several tests lead to that conclusion.

To fix the problem, we create a child background process very early in main()
(before anything else basically). Then instead of calling system(), the main
process sends the string to the background process. The background process
gets the string, passes it to system() and reports the success/failure back
to the main process.

This solution involves a lot of system calls, but calling system() in the
first place is not cheap either. As long as no realtime thread uses this
mechanism, things should be fine. Time will tell.
2017-03-23 12:34:24 +01:00
Cedric Roux
106f31524b update CMakeLists for ubuntu 16.04
The previous version did not compile on ubuntu 16.04.
I left the old version, commented, just in case.
2017-01-27 15:58:17 +01:00
Imad ALAWE
b3ded7799a openairinterface5g: Fix multi definition of UE/eNB NB_MAX
In openairinterface5g many definitions in many layers of UE or eNB NB_MAX.
We created a file called openairinterface5g_limits.h
located at openairinterface5g_dir/targets/COMMON/ declaring the number max
of UE and eNB to be used in ALL layers depending on launching conditions
(LARGE_SCALE for example).
2017-01-25 13:58:53 +01:00
Frédéric Leroy
e36aee0b7f UE: factorize calloc() calls and exit on failure 2017-01-25 13:29:10 +01:00
Frédéric Leroy
e6b5e1c34d UE: fix at_nas_ue compilation 2017-01-25 13:08:19 +01:00
Rohit Gupta
e084e58388 merge from develop 2016-10-11 18:52:14 +02:00
Rohit Gupta
42b00ead01 cmake list fix for detecting nettle version for at_commands 2016-10-01 08:54:27 -07:00
Cedric Roux
b0662e4bbe update licensing information in remaining files
The text has been updated in all those files.

	modified:   README.txt
	modified:   cmake_targets/CMakeLists.txt
	modified:   cmake_targets/at_commands/CMakeLists.txt
	modified:   cmake_targets/autotests/core.py
	modified:   cmake_targets/autotests/log.py
	modified:   cmake_targets/autotests/openair.py
	modified:   cmake_targets/autotests/run_exec_autotests.bash
	modified:   cmake_targets/autotests/run_exec_lte-softmodem_tests.py
	modified:   cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
	modified:   cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py
	modified:   cmake_targets/autotests/tools/configure_usrpb210.py
	modified:   cmake_targets/autotests/tools/find_usb_path.bash
	modified:   cmake_targets/autotests/tools/free_mem.bash
	modified:   cmake_targets/autotests/tools/iperf3_script
	modified:   cmake_targets/autotests/tools/iperf3_script_phone
	modified:   cmake_targets/autotests/tools/iperf_script
	modified:   cmake_targets/autotests/tools/iperf_script_phone
	modified:   cmake_targets/autotests/tools/lib_autotest.py
	modified:   cmake_targets/autotests/tools/search_repl.py
	modified:   cmake_targets/build_oai
	modified:   cmake_targets/tools/asn1tostruct.py
	modified:   cmake_targets/tools/build_helper
	modified:   cmake_targets/tools/build_test_epc_tools
	modified:   cmake_targets/tools/example_enb_exmimo_mme_hss.txt
	modified:   cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt
	modified:   cmake_targets/tools/indent_source_code
	modified:   cmake_targets/tools/init_exmimo2
	modified:   cmake_targets/tools/init_nas_nos1
	modified:   cmake_targets/tools/perf_oai.bash
	modified:   cmake_targets/tools/run_enb_s1_exmimo
	modified:   cmake_targets/tools/run_enb_s1_usrp
	modified:   cmake_targets/tools/run_enb_ue_virt_noS1
	modified:   cmake_targets/tools/run_enb_ue_virt_s1
	modified:   openair2/DOCS/TEMPLATES/README/Readme.doxy
	modified:   openair2/DOCS/TEMPLATES/README/readme.txt
	modified:   openair2/Makefile
	modified:   openair2/UTIL/OCG/Readme.doxy
	modified:   openair2/UTIL/OCG/readme.txt
	modified:   openair2/UTIL/OSD/recep.php
	modified:   openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py
	modified:   openair3/DOCS/DOXYGEN/Makefile.am
	modified:   openair3/DOCS/Latex/EPC/Makefile
	modified:   openair3/DOCS/Makefile.am
	modified:   openair3/GTPV1-U/Makefile.am
	modified:   openair3/GTPV1-U/Makefile.eNB
	modified:   openair3/NAS/TEST/AS_SIMULATOR/Makefile
	modified:   openair3/NAS/TEST/NETWORK/Makefile
	modified:   openair3/NAS/TEST/USER/Makefile
	modified:   openair3/NAS/TOOLS/Makefile
	modified:   openair3/NAS/UE/API/USER/Makefile
	modified:   openair3/NAS/UE/API/USER/tst/Makefile
	modified:   openair3/NAS/UE/API/USIM/Makefile
	modified:   openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py
	modified:   openair3/TEST/Makefile.am
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc
	modified:   targets/PROJECTS/E-MBMS/build_all.bash
	modified:   targets/PROJECTS/E-MBMS/start_enb.bash
	modified:   targets/PROJECTS/E-MBMS/start_ue.bash
	modified:   targets/PROJECTS/E-MBMS/utils.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/networks.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/utils.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash
	modified:   targets/SCRIPTS/install_asn1c_0.9.24.modified.bash
	modified:   targets/TEST/OAI/case01.py
	modified:   targets/TEST/OAI/case02.py
	modified:   targets/TEST/OAI/case03.py
	modified:   targets/TEST/OAI/case04.py
	modified:   targets/TEST/OAI/case05.py
	modified:   targets/TEST/OAI/case11.py
	modified:   targets/TEST/OAI/case12.py
	modified:   targets/TEST/OAI/case13.py
	modified:   targets/TEST/OAI/core.py
	modified:   targets/TEST/OAI/log.py
	modified:   targets/TEST/OAI/openair.py
	modified:   targets/TEST/OAI/test01.py
	modified:   targets/TEST/OAI/test02.py
	modified:   targets/TEST/PDCP/readme.txt
	modified:   targets/build_helper.bash
	modified:   targets/build_oai.bash
	modified:   targets/perf_oai.bash
2016-09-28 11:17:33 +02:00
gauthier
7b5431a62c renamed openair-cn to openair3
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7886 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-10-06 16:53:42 +00:00
gauthier
c7518ecf42 SVN to GIT migration (removed EPC software, updated mailing list address in all files)
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7885 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-10-06 16:24:54 +00:00
navid
1f816e3a10 * fix the compilation of at_nas_ue
* fix the check for MIH_C_MEDIEVAL_EXTENSIONS var in CMakeLists, and seg fault in eNB when multiple MCC/MNC issued by EPC


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7770 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-08-06 15:09:17 +00:00
gauthier
2c2a2c6ae9 git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7653 818b1a75-f10b-46b9-bf7c-635c3b92a50f 2015-06-24 13:16:51 +00:00
Lionel Gauthier
62b5ded657 bad effect msc tool
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7236 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-04-21 13:05:34 +00:00
Lionel Gauthier
c459ca04f0 Compile, to be tested
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7166 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-04-15 10:03:07 +00:00
Lionel Gauthier
72665ce96b Under construction
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7163 818b1a75-f10b-46b9-bf7c-635c3b92a50f
2015-04-14 14:46:01 +00:00