61 Commits
Author SHA1 Message Date
Cedric Roux b99fcdf289 fix IP address
The following error was appearing when running LTE UE:

    inet_pton(): cannot convert -64.-74.0.2 to IPv4 network address

The allocated address by the core actually is 192.182.0.2.

On my host "char" is signed, leading to the above error (192 and 182
are seen as signed).

Let's force "ip_addr" unsigned and everyone is happy.
2025-04-17 10:55:18 +02:00
Bartosz Podrygajlo e61bf5132d Refactor tun_if.h
Use a common function for generating interface name. Use full interface
name in tun_if.h functions.
2025-02-07 12:25:35 +01:00
Robert Schmidt 89d89a7564 Create tun_if module for TUN interface handling
Move openair3/RRC/NAS/nas_config.c to common/utils/tun_if.c, and remove
the former from all targets.
2024-08-02 15:31:04 +02:00
Robert Schmidt 3a99fb8293 Set up 4G UE addr via nas_config() 2024-08-02 15:31:04 +02:00
Robert Schmidt 9001ad2d7c Correct calloc_or_fail() signature 2023-10-27 10:22:55 +02:00
Robert Schmidt 0b91791f67 Use (std) bool instead of custom bool types
OAI is riddled with boolean_t, FALSE, TRUE, etc. This makes no sense, as
there is a standard bool type, and could lead to nasty bugs if a
definition of a bool is non-standard (0 == false, true == !false). This
commit removes all non-standard bools in the whole project.
2022-06-27 10:07:48 +02:00
Melissa Elkadi 70be674227 Code clean up part 2.
This commit continues to clean up the reminader
of the changed files in the merge req 1274.
The changes include log updates, comment removals,
etc.
2021-09-23 14:19:55 -07:00
Melissa Elkadi 97a648e35f IP Traffic not working, tun if established by NRUE
Updated the configuration files. Added a sleep to
ensure that the LTE UE gets attached to the EPC
before the bearer is modified to be gNB. Updated
the ifconfig tunnel up command to be brought up
by the NR UE socket when in NSA mode. Lastly,
started the gNB PDCP layer in S1 mode.
2021-07-28 15:36:11 -07:00
Melissa Elkadi 7f2e622b0e Sending tunnel interface 'up' command to NR UE
Once the LTE UE's tunnel interface with the EPC
is ready to be established, if we are in NSA mode,
we do not want to launch the tunnel interface
from the LTE UE side, but in the NR UE. Via itti_msgs
we send the string containing the tunnel interface
'up' command to the NR UE and bring it up from the NR UE.
2021-07-07 11:55:34 -07:00
Raymond Knopp a446eb0ebc Merge branch 'episys/master' into episys-merge
Conflicts:
	common/utils/LOG/log.h
	common/utils/ocp_itti/intertask_interface.cpp
	nfapi/oai_integration/nfapi_vnf.c
	nfapi/open-nFAPI/nfapi/src/nfapi.c
	openair2/LAYER2/MAC/main_ue.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	openair2/PHY_INTERFACE/phy_stub_UE.c
	openair2/RRC/LTE/rrc_UE.c
	openair2/RRC/LTE/rrc_eNB.c
	openair3/NAS/UE/ESM/esm_ebr_context.c
	targets/COMMON/openairinterface5g_limits.h
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-uesoftmodem.c
2021-02-13 22:52:33 +01:00
Melissa Elkadi 42ae8207ee NFAPI_MODE logic to include standalone mode
Every if statement that includes a check for
the NFAPI_MODE that did not check for the new
PNF_STANDALONE_MODE now has been updated. Also
changed the tx_req and dl_config_req logs
when they are received at the OAI UE to be
info logs instead of error logs.
2021-01-12 06:54:16 -08:00
Robert Schmidt a6126a39a5 Remove MAX_NUMBER_NETIF and use num UE 2020-10-13 09:07:46 +02:00
Robert Schmidt 8c5976e279 Use "ip add" to add IP addresses
This then only uses the "modern" ip tool instead of ifconfig, and the
command is more "homogeneous".
2020-10-13 09:07:46 +02:00
Robert Schmidt 298956509f Delete double UE IP config setup 2020-10-13 09:07:46 +02:00
Robert Schmidt 4c7035e6e3 Remove UESIM_EXPANSION
This completely removes the UESIM_EXPANSION define: it does not compile
at the moment. Its function was to multiplex multiple UEs on the same
TUN interface. However, this functionality is not needed since it is
possible to allocate many TUN devices (i.e., >= 32).
2020-10-13 09:07:46 +02:00
Michael Cook 3a2e4a3189 Use LOG_A for log messages intended for analysis
This change allows us to disable the LOG_I messages to reduce
overhead.

Removed LOG_VAR macro because it was used in only one place, and
a better solution is to simply use `__attribute__((unused))`.
2020-09-06 07:54:56 -07:00
frtabu 6014ca42ac ENABLE_ITTI macro removal, modified telnet server to support all executables, modified record player to finalize switch to run-time option and allow usage with any device 2020-02-12 19:05:44 +01:00
Dong Anyuan db137bf1d5 Fix Coverity Scan CID 60393 (Using uninitialized value pid when calling esm_ebr_context_release.) 2019-06-20 12:33:52 +09:00
Dong Anyuan 5275b4c7c6 Fix Coverity Scan CID 60435 (Using uninitialized value bid when calling esm_ebr_context_release.) 2019-06-20 12:31:35 +09:00
frtabu 30b7c973e0 merge nfapi_cleanup 2019-04-05 18:43:40 +02:00
frtabu fb46545526 Fix corrupted LOGs in L1L2simulator, introducing two new components NFAPI_VNF and NFAPI_pnf. Integrate Fujitsu fix for up to 50 UEs. Apply astyle to all modified files in the branch 2019-02-25 16:50:03 +01:00
frtabu eb26975451 attempt to fix l2 simulator issue 2019-02-19 19:50:44 +01:00
frtabu 3f61d5f720 fix compilation warning 2019-02-17 23:46:45 +01:00
frtabu 38d772d8a2 nos1 et s1 execs identical, nos1 enforced based on exec name or --noS1 option 2019-02-17 23:46:45 +01:00
frtabu 875bdaf282 cppcheck fixes (2) 2019-02-12 09:46:02 +01:00
Raphael Defosseux 8260607ed6 CI: fix in L2-simulator VM build start script
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-01-22 21:37:40 +01:00
yoshio.inoue 11df1684b7 cleanup warnings 2018-11-07 21:04:12 +09:00
yoshio.inoue 64b395c64a Fixed overflow related to oip generation 2018-11-02 19:28:15 +09:00
yoshio.inoue e13c962d24 Fixed bug that u-plane is not transferred with multiple UEs 2018-11-02 16:54:19 +09:00
Y_Tomita f39f321d3b Compiling error fix. 2018-10-23 18:50:46 +09:00
Y_Tomita 35e81d8a66 Add virtual NIC setting for L2 FAPI simulator. 2018-10-23 15:28:04 +09:00
frtabu 30509955c2 remove compilation warnings, especially when disabling T_TRACER. enhance LOG_M macro implementation, introduce LOG_DEBUG_XXX macro to replace #ifdef DEBUG_XXX 2018-07-30 20:07:22 +02: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 9535e7a276 bugfix: make some functions thread safe
Those functions modify a global char array (a string).

Let's pass a buffer to those functions, so that it's
thread safe. The caller has been modified, with hopefully
a buffer big enough (still bigger than what was there before,
so should not break more than it did).
2017-02-16 15:35:07 +01:00
Imad ALAWE 8bff2cff3e BUGFIX(GTP-U): Add missing ip rules in order to have point to point connection 2017-01-25 13:59:47 +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 1ca4d551b8 UE: review and annotate code with FIXME 2017-01-25 13:27:43 +01:00
Frédéric Leroy 556d5a65e9 UE/*: exit on error 2017-01-25 13:24:30 +01:00
Frédéric Leroy 38d7adc7e3 UE/*: fix ueid = 0 2017-01-25 13:24:30 +01:00
Frédéric Leroy a99e1a95af API/USER: move _user_api_id to nas_user_t 2017-01-25 13:24:30 +01:00
Frédéric Leroy 53fa94785a UE/EMM: remove extern definitions for timers 2017-01-25 13:24:30 +01:00
Frédéric Leroy 46438c7cd9 UE/ESM: move _default_eps_bearer_context_data to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy 809be889a7 UE/ESM: move _esm_ebr_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy f99e5e1ff0 UE/ESM: remove useless #if directive in esm_ebr.c 2017-01-25 13:08:19 +01:00
Frédéric Leroy 84fa851dfa UE/ESM: use static buffer per UE to allow reentrancy in esm_sap.c 2017-01-25 13:08:19 +01:00
Frédéric Leroy 73937668f0 UE/ESM: move _esm_pt_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy 844a8af418 UE/ESM: move _esm_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy 55364a8860 UE/ESM: fix esm_pt_start_timer callback 2017-01-25 13:08:19 +01:00
Frédéric Leroy 223247ceb0 UE/EMM: add nas_user_t parameter to emm_sap_send
Surprisingly, it touches every part of openair3, and most of the prototype.
Moreover, a special attention have been put to callback review.
However, there are still places to fix or review indicated by FIXME
2017-01-25 13:08:19 +01:00