Commit Graph
100 Commits
Author SHA1 Message Date
Robert Schmidt 36ceb6f9c0 Merge remote-tracking branch 'origin/Fix_PM_value_for_DCI_1_0' into integration_2024_w04 2024-01-27 11:11:58 +01:00
Robert Schmidt 8e0664c0c0 Merge remote-tracking branch 'origin/NR_UE_fix_find_pucch_resourceset' into integration_2024_w04 2024-01-27 11:11:49 +01:00
Robert Schmidt f3f8e8403b Update FEATURE_SET.md for F1AP 2024-01-25 17:12:31 +01:00
baea11c35c Add O-RAN 7.2 FHI library
- Add the O-RAN 7.2 FHI library, interfacing with OSC xRAN library (E
  release)
- Add Findxran.cmake to detect the library and headers, including
  version information
- Test for numa and DPDK presence
- Add patch for OSC xRAN to make interworking possible
- Add sample config files for LiteOn, Benetel, and VVDN units.

Documentation is provided in the next commit.

Co-authored-by: Raymond Knopp <raymond.knopp@eurecom.fr>
Co-authored-by: Cedric Roux <cedric.roux@eurecom.fr>
Co-authored-by: Manish Kumar Singh <manish1.kumar@amd.com>
Co-authored-by: thamizhselvan.k <thamizhselvan.k@vvdntech.in>
Co-authored-by: rajeshwari.p <rajeshwari.p@vvdntech.in>
Co-authored-by: Hongzhi Wang <hongzhi.wang@openairinterface.org>
Co-authored-by: Sofia Pison <Sofia.Pison@eurecom.fr>
2024-01-23 13:50:49 +01:00
Robert Schmidt eca56653c1 Increase oai0_config maximum antennas to 8
Certain FH 7.2 use cases require 8 antennas, so make room to propagate
this down.
2024-01-23 13:46:48 +01:00
Robert Schmidt 061fd39feb L1_rx_thread(): leave if thread-pool returns NULL 2024-01-23 13:46:32 +01:00
Robert Schmidt bd9498062a Add some parameters for split 7 in split 8 openair0 config
For the initialization of the xran library (split 7.2), we need some
parameters such as PRACH or frame config. However, to date,
initialization of split at level 7 use the split 8 openair0_config
structure, which does not have the necessary information.

Hence, add a single structure that contains that information.
2024-01-23 13:43:04 +01:00
Robert Schmidt d48027242f Harmonize frame parameter initialization at ru_thread
* make a single call to various function
* make fill_rf_config() static, it is only used in this file
* do not initialize the number of antennas in openair0_cfg in
  init_NR_RU(), as it is already done in fill_rf_config()
2024-01-23 13:42:55 +01:00
Robert Schmidt 46dea9671f Move loading of RU transport to ru_thread
Harmonize the call to openair0_transport_load(), by putting it in a
single place instead of multiple calls

Further, delay the call to ru_thread, for two reasons:

1) it is somewhat "symmetric" with local RF, which is done there as well

2) for the xran library, we need to read some parameters such as PRACH,
   frame format, etc. At the RU, the corresponding FAPI config request
   parameter structure is copied from the gNB to RU at the beginning of
   the ru_thread, so we have to wait for that to happen.
2024-01-23 13:42:47 +01:00
Robert Schmidt 6f394db3a1 Respect do_precoding variable, print correct precoding stats
Reformat code to properly copy memory if we skip precoding.

precoding_stats timing is not part of ru->feptx_ofdm, but
ru->feptx_prec, so always print it.

Previously, in order to speed up processing if precoding is disabled, we
just copy the pointer from txdataF to txdataF_BF, as opposed to do a
full memcpy() to duplicate the data. The same happens if we cannot have
precoding, i.e., in SISO. This has implications such as memory leaks,
which is why this is not being done. However, the code comment is
intentionally placed there.
2024-01-23 13:42:38 +01:00
Robert Schmidt b8e377d4ca Add single assert to check for validity in code 2024-01-23 13:42:29 +01:00
Robert Schmidt 0bf96c9b39 Print PRACH RX timing 2024-01-23 13:42:21 +01:00
Robert Schmidt 9b113d2cce Add configuration for phase compensation
For 7.2 FH, some RUs do phase compensation, whereas for others, the DU
does it. In fact, this can be "negotiated" using the M plane. Since we
don't have the M plane yet, add a configuration option to set where
phase compensation is performed.
2024-01-23 13:41:41 +01:00
Robert Schmidt 4783905cdb Increase priority for thread-pool threads
For certain processing, e.g., in the case of FH 7.2, we need to ensure
that critical L1 processing happens fast. Try to force speedy processing
with this high priority.
2024-01-23 13:41:36 +01:00
Robert Schmidt 1a8582aaf2 Log when creating new threads in threadCreate() 2024-01-23 13:41:26 +01:00
Robert Schmidt 44cbe9c8a4 Remove misleading log message
init_RU_proc() does not start the ru_thread, this is done by
start_RU_proc()
2024-01-23 13:41:14 +01:00
Robert Schmidt fca094f794 threadCreate(): print function names and ret/errno consistently in error case 2024-01-23 13:32:44 +01:00
Robert Schmidt 47c069347d Merge branch 'integration_2024_w03' into 'develop'
Integration: 2024.w03

See merge request oai/openairinterface5g!2524

* !2519 fix(build): migrating rocky dockerfiles to Rocky-linux-9 to ease maintenance
* !2508 NR UE PDCP RLC indexing
* !2511 chore(ci): updating 5G RF / L2 simulator scenarios to release v2.0
* !2486 E2 agent: Use FlexRIC release v2 and add to CU-UP
* !2453 Liteon DU integration
* !2516 remove ASAN_OPTIONS: detect_leaks=0 from SA rfsim CI tests
* !2199 NR precoding matrix generation at MAC
2024-01-22 07:40:16 +00:00
Robert Schmidt e379291ffd F1AP: Bugfix: system information is not required
The F1AP DU F1 Setup Request encoder made the sytem information
required, but it is optional. Handle correctly.
2024-01-18 15:02:00 +01:00
Robert Schmidt f021b8b5be Bugfix: only fill DU system information if SA
In NSA, we don't have SIB1. However, the DU system information requires
both MIB and SIB1, but is itself optional. So, in NSA, don't fill the DU
system information.
2024-01-18 15:02:00 +01:00
Robert Schmidt 3df31b0e55 RRC: check for DU MIB1/SIB and handle accordingly
For LiteOn DU, we do not receive the MIB/SIB1 in the F1 Setup Request.
This is not a problem in itself, but it might happen that certain
procedures are executed without MIB/SIB1. Check for it and handle
appropriately:
- During normal connection establishment, we might not be able to
  calculate measurement config
- During reestablishment, we might not be able to calculate ARFCN SSB
  and cannot do reestablishment; do RRC setup instead.
2024-01-18 15:02:00 +01:00
Robert Schmidt d89dfafb51 Add read_version() to convert version string to numbers
read_version() takes a version string in format "x.y.z" with x being
major, y minor, and z patch number. It transforms reads them into
separate numbers, and outputs in the correspondingly named variables.
2024-01-18 15:01:28 +01:00
Robert Schmidt 2b717d4920 Merge branch 'integration_2024_w02' into 'develop'
Integration: 2024.w02

See merge request oai/openairinterface5g!2514

* !2506 NR UE MAC config fixes
* !2478 Moving computation of base graph for LDPC at MAC in the UE
* !2481 fix UE RX/TX thread several bugs in synchronisation of events, add LOG_E and...
* !2494 Fix for building rach occasions in case of multiple BWPs
* !2498 Fix security header type for PDU session establishment, and update sqn, counters
* !2509 Fixed typos in init_ru
* !2512 Null pointer in nr generate msg3 retransmission
* !2505 USRP doc: Include b205-mini, improve markup
2024-01-15 08:25:53 +00:00
Robert Schmidt 72b7f93fe1 Merge remote-tracking branch 'origin/doc-usrp' into integration_2024_w02 2024-01-13 17:42:53 +01:00
Robert Schmidt b81dce836c Merge remote-tracking branch 'origin/null-pointer-in-nr_generate_Msg3_retransmission' into integration_2024_w02 2024-01-13 17:42:30 +01:00
Robert Schmidt 4226daee7f USRP doc: Include b205-mini, improve markup 2024-01-12 09:10:46 +01:00
Robert Schmidt 4a12bdc305 fix tx_resume_ind_fifo messages sending bugs, rename associated function send_slot_ind() to what it actually does send_dl_done_to_tx_thread() 2024-01-09 16:15:14 +01:00
Robert Schmidt 9d98693bec Make nr_ue_process_rar() static 2024-01-09 16:15:14 +01:00
Robert Schmidt f918be96ff Merge branch 'integration_2024_w01' into 'develop'
Integration: 2024.w01

See merge request oai/openairinterface5g!2502

* !2482 Trigger UL Failure if Ack of Msg4 not received and implement RA Contention Resolution timer in gNB
* !2484 function to harmonize handling of NAS registraction accept
* !2487 Rework PUCCH codec with c16_t type and functions to make readable code
* !2491 improvements for NR UE detaching
* !2499 Update L1sim and RFsim documentation
* !2500 Fix FAPI CoreSetType enumeration options after the fix on the description made by SCF
* !2489 NR UE improvements RRCSetup
2024-01-08 08:38:36 +00:00
Robert Schmidt 9b64029217 doc: RUNMODEM.md: explains almost exclusively 5G, so make it clearer
- update explanation for noS1
- better help for nr-uesoftmodem options
- consistent writing of name "RFsimulator"
- remove LDPC section at end, is already referenced in doc/README.md
2024-01-05 13:40:17 +01:00
Robert Schmidt 2965519af6 Explain noS1 mode in documentation 2024-01-05 13:39:24 +01:00
Robert Schmidt 1fe4cef03d Update/Improve RFsim documentation
- Add TOC
- Better describe what RFsim does
- Remove misleading, wrong, unnecessary information
  * It is futile to mention --phy-test or other modes, RFsim works with
    all
  * Explaining how to ping is not the task of the RFsim documentation
    (that is what tutorials are for)
  * Remove useless/outdated build log information
- Add some more information on which flags to run
- Improve formatting, and minor clarifications
2024-01-05 13:39:00 +01:00
Robert Schmidt 49351add88 Update L1sim documentation
- Do not list L1sim as a way of running OAI: it is untested, and might
  not work
- Reword the tutorial where necessary, remove outdated/wrong information
  (e.g., we don't test this mode AFAIK)
2024-01-04 09:40:03 +01:00
Robert Schmidt c37974ca5f Merge branch 'integration_2023_w51' into 'develop'
Integration: 2023.w51

See merge request oai/openairinterface5g!2483

* !2221 NR UE going to IDLE state
* !2464 move common .h file in common directory, remove mem_block_t
* !2479 CI: test with 2 UL layers in AW2S pipeline
* !2468 LDPC T2 card: fix and doc update
* !2480 Enabling multi-ue support in the open-source L2 proxy
* !2476 Fixes for multi-DU/CU-UP and CI test
* !2482 Trigger UL Failure if Ack of Msg4 not received
* !2484 function to harmonize handling of NAS registraction accept
2023-12-23 18:50:48 +00:00
Robert Schmidt ca41df3863 Merge remote-tracking branch 'origin/multi-f1-e1-fixes' into integration_2023_w51 2023-12-23 11:52:50 +01:00
Robert Schmidt f078373107 F1: better document DU F1 IP address config 2023-12-21 16:25:40 +01:00
Robert Schmidt df20a35601 Merge remote-tracking branch 'origin/episys/enabling-multi-ues' into integration_2023_w51 2023-12-21 16:14:11 +01:00
Robert Schmidt cbff849b82 Merge remote-tracking branch 'origin/t2-offload-mr2' into integration_2023_w51 2023-12-21 16:14:02 +01:00
Robert Schmidt 9a4952e7d8 Merge remote-tracking branch 'origin/ci-aw2s-enable-2layers-UL' into integration_2023_w51 2023-12-21 16:10:18 +01:00
Robert Schmidt 460f11e3f3 Merge remote-tracking branch 'origin/remove-unused-memblock' into integration_2023_w51 2023-12-21 16:10:05 +01:00
Robert Schmidt fe21ae7199 Improve 5G RFsim README: link to F1+E1 2023-12-21 15:34:13 +01:00
Robert Schmidt 4e56e15ee3 5G RFsim test: speed up core start, verify UE attached 2023-12-21 15:32:43 +01:00
Robert Schmidt 63e2ca15bc Extend F1+E1 test for multiple CU-UPs
The 5G-RFsim F1 test tested multiple DUs at one CU. This
functionality is retained in the new F1+E1 test.

The 5G-RFsim E1 test tested a single CU-UP at a single CU-CP.  Here, we
extend to use multiple CU-UPs, one for each DU. The associated is
ensured by using three different F1-U transport networks, one for each
DU/CU-UP pair.
2023-12-21 15:31:12 +01:00
Robert Schmidt 6c830a488d Simplify F1 test and harmonize with complex F1+E1 test
- Test only one DU at the CU (3 DUs is tested in F1+E1)
- Harmonize IP configuration to make it simpler to reuse in the F1+E1
  test
- Speed up the test by reducing the number of steps to deploy core/RAN
- Add traffic test
2023-12-21 15:31:04 +01:00
Robert Schmidt 284116522b F1AP SCTP: don't bind local address
binding the local address for SCTP is pointless, because we don't really
care through which interface SCTP traffic goes. Actually, we even might
want to set the DU remote_n_addr and the the local_n_addr to addresses
in different networks, because we might want to have GTP traffic go
through a different interface than SCTP, as done in the CI test for E1.
2023-12-21 14:22:59 +01:00
Robert Schmidt db2e27e653 Increase log level for CU-UP selection to improve visibility 2023-12-20 15:25:50 +01:00
Robert Schmidt 09652061bb Lower RFsim EAGAIN error message to debug message
We set the RFsim TCP socket to non-blocking. Thus, it may happen that we
cannot write() to the socket when the kernel cannot handle the request,
in which case we wait some time before trying again. This is the
correct/expected behavior.

Since this is *normal*, an error message is not justified; we did not
even print a message in this case before commit 21790f9c4f introduced it.
2023-12-20 15:22:15 +01:00
Robert Schmidt 61cc505f5c Remove commented code 2023-12-20 15:22:15 +01:00
Robert Schmidt 63f3b123ae Print F1AP UE Release Request message after UL failure
Additionally, initialize the F1AP PDU to zeros
2023-12-20 15:21:41 +01:00
Robert Schmidt 25a290ed0b F1AP: fixup: use correct DRB array index 2023-12-20 15:19:38 +01:00
Robert Schmidt 8daf1edbc6 RRC: bearer context setup: correctly store DRB QoS params
When setting up bearer(s) through F1, the corresponding F1 message has
QoS fields for the DRB(s) to be set up, as well as for all flows
associated to this DRB. In this commit, set the DRB QoS field to be
equal to the first flow (it is unclear/unspecified how it should be set
up, based on the flows), which was not set before and therefore
contained unitialized data.

The F1 module uses this data, and in split mode, F1 message generation
failed due to uninitialized data.
2023-12-20 15:19:38 +01:00
Robert Schmidt 51f0c245aa GTP: clarify GTP Error Ind error message 2023-12-20 15:19:38 +01:00
Robert Schmidt 8c8971258e NGAP: read correct PDU session NSSAI
The allowed NSSAIs is NOT the NSSAI to be used for a UE. Fix it to use
the correct one.
2023-12-20 15:19:38 +01:00
Robert Schmidt 642fd9996b CU-CP/UP: release UE at PDCP in CU-CP
We reuse RRC UE IDs at the RRC. Previous to this commit, we did not
release a UE at the CU-CP's PDCP (for SRBs). Thus, when reconnecting a
UE, the PDCP might not be in a good state, since we did not release the
previous PDCP UE context.
2023-12-20 15:19:38 +01:00
Robert Schmidt b2c5f4bcfa Merge branch 'integration_2023_w50' into 'develop'
Integration: 2023.w50

See merge request oai/openairinterface5g!2474

* !2460 bugfix: initialize TX and RX antennas separately
* !2471 fix a useless computation done in case we activate LOG_D
* !2417 PDSCH precoding optimization
* !2436 Fix the DoS vulnerability in RA procedure
* !2472 (ci): adding new packages in cuup dockerfiles
* !2463 NR UE RRC MAC configuration improvements
* !2475 Fix gNB RA procedures when Msg4 Ack not received
2023-12-19 16:21:38 +00:00
Robert Schmidt 62773670aa Merge remote-tracking branch 'origin/Fix_Msg4_Ack_not_received' into integration_2023_w50 2023-12-19 13:28:27 +01:00
Robert Schmidt c58382788d Merge remote-tracking branch 'origin/NR_UE_MAC_configuration_further_improvements' into integration_2023_w50 2023-12-19 10:29:57 +01:00
Robert Schmidt 6f9b8824d0 Merge remote-tracking branch 'origin/ci-addition' into integration_2023_w50 2023-12-18 17:08:00 +01:00
Robert Schmidt fa78e13515 Merge remote-tracking branch 'origin/fix-dos-vulnerability-of-RA-procedure' into integration_2023_w50 2023-12-18 17:07:23 +01:00
Robert Schmidt 398bdce1e2 Reuse variable, remove error message, do not skip UE 2023-12-18 11:10:13 +01:00
Robert Schmidt 3e23a7957b 5G-RFsim test: run OAI-UE without address sanitizer
The CI machine for these tests is overloaded with many
UEs running at the same time, all using the address sanitizer.
2023-12-15 18:36:32 +01:00
Robert Schmidt ad712614cb Merge remote-tracking branch 'origin/pdsch-precoding-opti' into integration_2023_w50 2023-12-15 17:47:54 +01:00
Robert Schmidt 34dd375a64 Merge remote-tracking branch 'origin/fix-cpu-usage-trace' into integration_2023_w50 2023-12-15 17:44:48 +01:00
Robert Schmidt 91628bd901 Merge remote-tracking branch 'origin/bugfix_antenna_init' into integration_2023_w50 2023-12-15 17:44:09 +01:00
Robert Schmidt 790c3b999d Merge branch 'integration_2023_w49' into 'develop'
Integration: 2023.w49

See merge request oai/openairinterface5g!2470

* !2264 Improvements in f1ap for qos
* !2377 Store allowed NSSAIs from NAS message
* !2462 Hotfix: swap UIDs after RRCReestablishment
* !2449 Improve performance of polar initialization
* !2469 handling configuration of MAC-CellGroupConfig at UE
* !2395 `nr_generate_pdsch()` clean up and little performance improves
* !2461 CI: add FDD test to SA B200 pipeline
* !2424 Improvements in SDAP RRC management
2023-12-12 12:39:04 +00:00
Robert Schmidt 5249dd9670 Merge remote-tracking branch 'origin/NR_UE_SDAP_management' into integration_2023_w49 2023-12-12 09:31:11 +01:00
Robert Schmidt 6cb52cf2ef Merge remote-tracking branch 'origin/ci-add-fdd-test' into integration_2023_w49 2023-12-12 05:42:42 +01:00
Robert Schmidt 889a116497 Merge remote-tracking branch 'origin/pdsch-layer-mapping-32bit-assign' into integration_2023_w49 2023-12-12 05:42:22 +01:00
Robert Schmidt 7cd6d36716 Merge remote-tracking branch 'origin/NR_UE_handle_MAC-CellGroupConfig' into integration_2023_w49 2023-12-11 14:56:42 +01:00
Robert Schmidt 6c2194038a Merge remote-tracking branch 'origin/enhance-polar-perf' into integration_2023_w49 2023-12-11 14:56:15 +01:00
Robert Schmidt e161ca227f Merge remote-tracking branch 'origin/Hotfix_swap_UIDs_after_RRCReestablishment' into integration_2023_w49 2023-12-08 13:08:29 +01:00
Robert Schmidt 4f653c8471 Merge remote-tracking branch 'origin/NR-UE-store-allowed-nssai' into integration_2023_w49 2023-12-08 09:53:23 +01:00
Robert Schmidt 1f0e5bd664 Merge remote-tracking branch 'origin/improvements_f1ap_for_QoS' into integration_2023_w49 2023-12-08 09:53:12 +01:00
Robert Schmidt ff758dd029 Correct number of bands assert in Setup Request decoder 2023-12-07 15:07:38 +01:00
Robert Schmidt c5aeaf03dc Merge branch 'integration_2023_w48' into 'develop'
See merge request oai/openairinterface5g!2459

* !2419 chore(ci): running 5G RF simulator scenarios with address sanitizer
* !2455 Remove mac_LogicalChannelConfig from RLC (handled at MAC)
* !2456 Setting uniform periodicity for CSI-RS and measurement report
* !2429 LDPC encoding/decoding offload to the T2 card
* !2447 E2 agent: build in CI, fix slice support, add gNB-DU and gNB-CU-UP IDs
* !2452 Include sample advance option in UE tutorial
* !2430 bugfix: nr-ue: set first_tx=1 at first transmission of a harq process
* !2457 Fix scaling for FR2
2023-12-05 15:44:43 +00:00
Robert Schmidt ada4e8ebd8 Merge remote-tracking branch 'origin/NR_UE_USRP_tutorial_update' into integration_2023_w48 2023-12-05 07:40:15 +01:00
Robert Schmidt 3580ddb546 Merge remote-tracking branch 'origin/Fix_FR2_SSB_ARFCN_scalling' into integration_2023_w48 2023-12-05 07:40:02 +01:00
Robert Schmidt b4b2389753 Merge remote-tracking branch 'origin/ue-fix-ul-first-tx' into integration_2023_w48 2023-12-05 07:39:51 +01:00
Robert Schmidt fecb4bc3a9 Merge remote-tracking branch 'origin/fix-e2-agent' into integration_2023_w48 2023-12-04 17:23:54 +01:00
Robert Schmidt 5440d6671f Merge remote-tracking branch 'origin/t2-offload-mr' into integration_2023_w48 2023-12-04 17:16:51 +01:00
Robert Schmidt 39468ca98e Merge remote-tracking branch 'origin/NR_RRC_uniform_CSI_period' into integration_2023_w48 2023-12-04 07:56:36 +01:00
Robert Schmidt 581f280cd7 Merge remote-tracking branch 'origin/NR_RLC_remove_LogicalChannelConfig' into integration_2023_w48 2023-12-04 07:56:28 +01:00
Robert Schmidt 8e990850c3 Correctly read node_id (gNB ID) for RRC
The node ID (which corresponds to the gNB ID) should be read in all
cases of execution, not only CU.
2023-11-30 17:10:11 +01:00
Robert Schmidt 72b485a2fe Bugfix: set pointer to NULL after free 2023-11-30 15:45:45 +01:00
Robert Schmidt 6104dbc749 Documentation: add description when it is DU, CU, gNB 2023-11-30 08:07:20 +01:00
Robert Schmidt 39df275fa4 Remove confusing macrlc_has_f1 variable
The macrlc_has_f1 (static) variable was introduced to signal when we use
F1 in the configuration. It is superfluous: the node_type already passes
this information in a unique manner; hence, remove.
2023-11-30 08:06:16 +01:00
Robert Schmidt aec6170df4 Build E2 agent in Ubuntu images 2023-11-30 08:06:16 +01:00
Robert Schmidt 41c491a0fa Update E2 Agent submodule: use special FlexRIC commit before v2 2023-11-30 08:06:16 +01:00
Robert Schmidt 107c0c8d65 Reformat Dockerfile.build.ubuntu20 2023-11-30 08:06:16 +01:00
Robert Schmidt e13a4813ee E2 Agent: Match UEs based on NSSAI
Correctly match UEs based on the NSSAI in MAC and RRC. There is a
convenience function capture_sst_sd() that extracts SST and SD (which
form the NSSAI). Because a previous version used integers to convey the
slice identifier, this function gracefully handles this case, although
it is not spec-compliant.
2023-11-30 08:06:16 +01:00
Robert Schmidt 89b776925d E2 agent: fix memory leak by not allocating memory
Prior to this commit, the RAN function for KPM is leaking memory: it
allocates using calloc() but never frees it.

The fix consists of not allocating this memory on the heap in the first
place, but on the stack. Therefore, there are changes to pass in a
pointer to various functions to the structure on the stack, instead of
passing the "container" for the heap memory by value.

Further, the MAC was allocating an excessive amount of memory (N times
sizeof(NR_UE_info_t)). Instead of copying the entire struct, the present
code stores a pointer to the MAC UE container (NR_UE_info_t *). For the
RRC, there is a similar simplification that consists in not storing the
entire struct f1_ue_data_t (which is not required), but only the RRC UE
ID.

Note that both MAC and RRC might suffer from race conditions. For the
MAC, we should lock the scheduler for the time we read statistics. For
the RRC, the problem is more delicate as no mutex exists; the RRC
assumes everything is executed synchronously in the ITTI task loop. In
both cases, this commit does not address this problem
2023-11-30 08:06:16 +01:00
Robert Schmidt 5168ef72d9 E2 agent: remove broken NSSAI filtering, simplify code
Filtering UEs by NSSAI is broken, so remove it. A later commit will
reestablish this functionality.

Simplify the code: we only handle one condition, so we can check for it
upfront.
2023-11-30 08:06:16 +01:00
Robert Schmidt deac180224 Set correct gNB/gnB-DU/gNB-CU-UP ID for agent start 2023-11-30 08:06:16 +01:00
Robert Schmidt 7c6c4fc7d3 Start E2 agent only if configuration present
This commit introduces an additional (implicit) option that signals if
the E2 agent is to be activated or not. When reading the configuration,
we now check if all fields are set, and activate the E2 agent only if
this is the case. If not, we only print a warning and start the gNB
without the agent.

Note that previously, if not all fields are set correctly, the gNB
stopped.

To implement this behavior, it is necessary to change the defaults of
the RIC IP and the directory for SMs to a (non-NULL) default value.
Otherwise, the configuration system would not consider the field to be
set to the default, and wrongly assumes the field is set, even though it
is not; at least, this change is necessary to make config_isparamset()
return NULL if the configuration is not set.
2023-11-30 08:06:16 +01:00
Robert Schmidt 79c920cd81 Introduce separate gNB-CU-UP ID in configuration
3GPP has the concept of a gNB-CU-UP ID and a (separate) gNB ID (for gNB,
CU-CP). This commit introduces the gNB-CU-UP as a separate ID that has to be
set in the configuration file when running as a CU-UP. For the
CU/monolithic gNB, it is optional (but needs to be the same as the
gNB-ID if specified).

The CU-UP ID is necessary, as some entities, e.g., the e2 agent, need to
signal both IDs, e.g., to reconcile a CU-CP and (multiple) CU-UP(s)
belonging together.
2023-11-30 08:06:16 +01:00
Robert Schmidt 6f14b11847 Introduce separate gNB-DU ID in configuration
3GPP has the concept of a gNB-DU ID and a (separate) gNB ID (for gNB,
CU). This commit introduces the gNB-DU as a separate ID that has to be
set in the configuration file. It is necessary, as some entities, e.g.,
the e2 agent, need to signal both IDs, e.g., to reconcile a CU and
(multiple) DU(s) belonging together.
2023-11-30 08:06:16 +01:00
Robert Schmidt ec24b9c3e9 Add License headers to all E2 RAN function files 2023-11-30 08:04:41 +01:00
Robert Schmidt 463115bf19 Remove redundant config code block 2023-11-30 08:04:41 +01:00
Robert Schmidt 6a91f49e9f Fix non-compiling lte-softmodem agent config 2023-11-30 08:04:41 +01:00
Robert Schmidt b5e2c76d93 UE_iterator is a for_each macro, add to clang-format 2023-11-30 08:04:41 +01:00