Commit Graph
11640 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova 3231b0bcfc Merge remote-tracking branch 'origin/ntn-phytest-mode' into integration_2025_w04 (!3192)
fix nr phy-test mode in ntn

Following SIB19 MR !3019 (merged), the phy-test mode is no longer working
In this MR we update the handling NTN-Config from ServingCellConfigCommon
to be the same as when NTN-Config is received in SIB19

More details: !3019 (comment 145103)
2025-01-24 11:28:32 +01:00
Jaroslava Fiedlerova 2da68f6056 Merge remote-tracking branch 'origin/e1ap-issue-878' into integration_2025_w04 (!3171)
- Refactor SCTP Association Response Handling
  - Unified function for both CU-CP and CU-UP handling
  - CU-CP: Notifies RRC of E1 connection loss with CU-UP
  - CU-UP: Initiates a new SCTP association request to regain E1 connection
  - this fix will prevent issue #878 from happening

- Send list of PDU Session Resources to Failed Setup in the (PDU Session
  Resource/Initial Context) Setup Response
  - depending on different failure scenarios
  - e.g. (#878) when No CU-UP is associated and still the CU-CP receives a PDU
    Session Setup Request
  - add relevant functions to handle NGAP Setup Response messages with failed
    list of items
  - this is an extra failure handling to make #878 is handled if it ever happens
    again

- NGAP Cause Refactoring
  - Refactor struct for NGAP cause group and value
  - Add extended radio network cause enumeration values
  - Refactor redundant code into a new NGAP cause encoding function

- Minor logging, function descriptions improvements

Closes #878
2025-01-23 17:50:55 +01:00
Laurent THOMAS 536b5d8760 Clean up logging module debug flags
cleanup debug/dump flags by avoiding repetitions in the source code and
enable compiler checks. Add a help text if we set a wrong debug trace
option.
2025-01-23 14:12:29 +01:00
Laurent THOMAS 0f970326c2 Remove unused UESIM_EXPANSION compile option 2025-01-23 14:10:50 +01:00
Laurent THOMAS 17bb19c7be Remove unused LOCALIZATION compile option 2025-01-23 14:10:33 +01:00
Laurent THOMAS b0734604e9 Remove useless RRC states 2025-01-23 14:10:16 +01:00
Laurent THOMAS a54eba8fe0 Remove commented code and unused type definitions 2025-01-23 14:08:17 +01:00
Guido Casati beee87cdf6 Add check on CU-UP association before sending any E1 Bearer Context Modification Request 2025-01-17 18:07:02 +01:00
Badescu, Ciprian 2924d18ebe Fix ntn phy-test mode
Following SIB19 MR !3019, the phy-test mode is no longer working
In this MR we update the handling NTN-Config from ServingCellConfigCommon
to be the same as when NTN-Config is received in SIB19
2025-01-16 13:27:18 +02:00
Robert Schmidt 356aec9aa4 Merge remote-tracking branch 'origin/phytest-ue-random-data' into integration_2025_w03 (!3195)
UE MAC: in phy-test/do-ra, fill TB randomly

See commit description for more details.
2025-01-15 15:05:03 +01:00
Robert Schmidt a4bbf9e513 Merge remote-tracking branch 'origin/UE_log_improv' into integration_2025_w03 (!3179)
UE statistics improvements
2025-01-15 15:04:19 +01:00
Guido Casati 9e9bd278a9 Minor: RCconfig_NR_CU_E1 function description and logging 2025-01-14 14:13:49 +01:00
Guido Casati bcd1270237 Refactor SCTP association response handler
* this function is used by both CU-CP and CU-UP
* it behaves differently depending on the type of E1 instance:
  CU-CP: inform RRC of E1 connection loss with CU-UP
  CU-UP: trigger a new SCTP association request by sending an ITTI to the CU-UP task
* after receiving the E1AP register request, the CU-UP will send a new association request to
  SCTP until new E1 connection is achieved by sending a TIMER_HAS_EXPIRED message to the CU-UP
  task. The function e1apHandleTimer() is basically triggering a new E1 association request
  until new E1 connection is achieved
* print SCTP association state in e1ap.c whenever needed

Related to #878
2025-01-14 14:13:49 +01:00
Guido Casati b922fd2649 Clean up NGAP Setup Failure messages: there's no such message in 3GPP TS 38.413
* the list of PDU Session Resources Failed to Setup shall be sent in the Response message
2025-01-14 14:13:49 +01:00
Guido Casati a1abf90d5b Handle PDU Session Resource to Setup Failure in (PDU Session Resource/Initial Context) Setup Response
* add function to check whether cu-up is connected
* add functions to send the relevant response messages with the failed list
  e.g. to fill PDU Session Resource Failed to Setup items
* set return value of trigger_bearer_setup to bool and handle the
  failure by sending setup response messages with list of PDU sessions failed to setup
  i.e. send failed list of items when no CU-UP is associated to the CU-CP
  note: it considers all PDU Sessions as failed to setup in the considered failure scenarios
* e.g. send a list of failed PDU session resources in the response message to reject
  PDU Session Resource Setup in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ
* the Initial Context Setup has a Failure message, but for the considered failure scenario
  when no CU-UP is available the current design is just sending a list of failed to setup
  items in the Response message
* transfer PDU Session Resource/Initial Context Setup Request NAS PDU to UE

closes #878
2025-01-14 14:13:49 +01:00
Guido Casati f00a7a0197 Refactor NGAP cause
* new struct definition including both NGAP cause group and value
* add encoding function, temporarily in ngap_common.c
  (in the long term to be place in a enc/dec NGAP library)
* extend Radio Network cause enum values
* add cause member to Setup Failure
2025-01-14 14:13:49 +01:00
Robert Schmidt b96dfadae9 Fix compilation problem when defining ENABLE_MAC_PAYLOAD_DEBUG
Reported-by:  Abdo Gaber <abdo.nasser.ali.gaber@emerson.com>
2025-01-14 08:03:54 +01:00
Robert Schmidt 959bb59f35 Merge remote-tracking branch 'origin/rssi-thres' into integration_2025_w02 (!3182)
RSSI threshold for PUSCH & PUCCH power control

To prevent ADC railing or "clipping" when the received power is too
large, introduce RSSI threshold parameters for PUSCH and PUCCH, which
are now configured in units of 0.1 dB. Here is how you can configure and
use these thresholds:

1. Configuration:
   - Set the pusch_RSSI_Threshold and pucch_RSSI_Threshold parameters in
     your configuration file (e.g., gnb.conf) (MACRLC section).
   - These parameters define the maximum acceptable RSSI values for
     PUSCH and PUCCH, respectively. The unit is either dBm or dBFS,
     depending on the RSSI reporting configuration.

2. Usage:
   - The nr_limit_tpc function will automatically adjust the Transmit
     Power Control (TPC) commands based on the configured RSSI
     thresholds.
   - If the RSSI exceeds the threshold, the TPC command will be limited
     to prevent further increase in power, thereby avoiding ADC
     clipping.
2025-01-13 10:10:29 +01:00
Robert Schmidt 72aaf45fa8 Merge remote-tracking branch 'origin/race-ue-rrc-mac' into integration_2025_w02 (!3103)
Introduce ITTI queue in RRC-to-MAC direction

resolve ue rcc to mac race conditions by a itti queue, but it doesn't
resolve the problem of exact slot we should apply the new cell
configurtion
2025-01-13 10:10:07 +01:00
Robert Schmidt 39d9d32eda Merge remote-tracking branch 'origin/local-UL_INFO' into integration_2025_w02 (!3076)
Move UL_INFO structure allocation local to a rx slot processing

UL_INFO is allocated a gNB, so require mutex and obscur information
passing function to function.  Instead, make a local UL_INFO per slot,
removing the mutex and making the code easier to understand.
2025-01-13 07:46:05 +01:00
francescomani 9d9902d883 apply ITTI queue to SIB19 2025-01-10 18:28:27 +01:00
Laurent THOMASandRobert Schmidt b4bc7c96ba Move UL_INFO structure allocation local to a rx slot processing
Use UL_INFO on the stack, to simplify the code.  move in the same struct
the associated rach, pdu, crc, srs arrays that where pointed from
directly in gNB structure Keep in nfapi the existing logic that make
malloc for theses rach, pdu, crc, srs array lists

Pass only relevant fields, where appropriate.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-01-10 18:05:58 +01:00
Robert Schmidt 38f9436837 Merge remote-tracking branch 'origin/NR_UE_DCI_mask_size' into integration_2025_w02 (!3188)
NR UE fix DCI mask size

Previous maximum size was 15 but in practice it could be at least up to
18. Also moved assertion on non-contiguous type0 DLSCH allocation to L1
(to remove blocking point for L2 implementation).
2025-01-10 11:47:27 +01:00
Robert Schmidt 751dad3126 Merge remote-tracking branch 'origin/NR_MSG3_TPC' into integration_2025_w02 (!3130)
NR gNB MSG3 TPC

This MR improves the handling of MSG3 TPC commands at MAC gNB.

TODO: Compute TPC when PRACH sends a valid power measurements (currently
not the case for OAI L1, to be verified with Aerial L1)

Closes #866
2025-01-10 11:45:14 +01:00
Robert Schmidt 03c7386649 Merge remote-tracking branch 'origin/NR_gNB_MAC_improvements_for_analog_beam_management' into integration_2025_w02 (!3101)
NR gNB improvements for analog beam management

- Improvements at gNB MAC layer to properly handle analog beam
  management for all channels
- Simple beam switching mechanism based on UE RSRP report
2025-01-10 11:44:45 +01:00
Bartosz Podrygajlo dcc33d3931 Add RSSI threshold-based power control for PUSCH and PUCCH
- Introduced new configuration parameters `pusch_RSSI_Threshold` and `pucch_RSSI_Threshold`
  (MACRLC section)
- Added `nr_limit_tpc` function in `gNB_scheduler_primitives.c` to limit TPC based on RSSI
  threshold.
- Integrated `nr_limit_tpc` in PUCCH and PUSCH power control

Example Configuration

puxch_RSSI_Threshold takes value between -1280 and 0 and is mapped to range -128.0 dBm/dBFS
to 0.0 dBm/dBFS in 0.1 dB increments. Unit depends on RSSI reporting config.

pucch_RSSI_Threshold = -500;  # Set the PUSCH RSSI threshold to -50.0dBm/-50dBFS
pucch_RSSI_Threshold = -600;  # Set the PUCCH RSSI threshold to -60.0dBm/-60dBFS
2025-01-10 08:24:12 +01:00
Robert Schmidt e2a3cde4b7 Further cleanup: define oai_exit for 4G
The parent commit cleans up and groups oai_exit in one place,
nr-softmodem-common.h. Therefore, this 5G file is included in the 4G
defs_common.h (at least it's mostly 4G), which is not nice. Instead,
define oai_exit also in 4G softmodem-common.h, and include this in
defs_common.h. Remove the cyclic inclusion of defs_common.h in
softmodem-common.h, and resolve all subsequent errors around unknown
types and extern definition mismatches.
2025-01-09 15:28:25 +01:00
Laurent THOMAS e0ca70c36d replace a set of #define by a C bit array, remove duplicated extern global variable declaration 2025-01-09 15:28:25 +01:00
Robert Schmidt 54c88a4a4a UE MAC: in phy-test/do-ra, fill TB randomly
Commit d641a76196 ("fix BSR report malformed, add SHORT BSR when it
can") removed code to fill the remainder of a TB, if it is not filled
with data from RLC, with random data when using phy-test or do-ra modes.
This random data filling is intentional, as it might prove useful for
demos or when debugging (e.g., to see used spectrum instead of 0, etc.).
Reintroduce the functionality, but unlike the original code, make it
dependent on the mode, not RFsim.

See also discussion in #888.

Fixup: d641a76196
2025-01-09 15:24:23 +01:00
francescomani 35e9d1e0c2 tentative fix for double sib1 decoding 2025-01-06 12:09:29 +01:00
Robert Schmidt 966a3a7264 Move UE RRC msg defs to rrc_messages_types.h 2025-01-06 12:09:29 +01:00
Laurent THOMAS 9c0d90a014 Introduce UE RCC to MAC ITTI queue
Reduce race conditions through a itti queue, such that RRC-initiated MAC
memory modifications happen at the same time as MAC thread writes.
However, it doesn't resolve the problem of exact slot we should apply
the new cell configurtion.
2025-01-06 12:09:29 +01:00
francescomani a7b9a85640 move temporary code to process type0 as type1 when the RB allocation is contiguous to L1 2025-01-06 12:07:15 +01:00
francescomani d6f678ffc1 set TPC for MSG3 retransmissions 2025-01-06 10:43:51 +01:00
francescomani 4dd69427d8 set MSG3 TPC based on preamble power indicated from L1 2025-01-06 10:43:47 +01:00
francescomani d718e67797 automatic determination of DCI mask size at the UE 2025-01-06 09:56:28 +01:00
francescomani a9c72222dd minor: adding two logs for debugging 2025-01-02 11:01:38 +01:00
francescomani 0cd0ec7a67 MAC beam allocation for ULSCH 2025-01-02 11:01:38 +01:00
francescomani 5e930b0b72 MAC beam allocation for DLSCH 2025-01-02 11:01:38 +01:00
francescomani f235b249ba remove FR1 in preprocessor name 2025-01-02 11:01:38 +01:00
francescomani 912fec55ef MAC beam allocation for scheduling request 2025-01-02 11:01:38 +01:00
francescomani 8de9d006f5 MAC beam allocation for SRS 2025-01-02 11:01:38 +01:00
francescomani 2940ee5eda MAC beam allocation for periodic CSI measurements 2025-01-02 11:01:38 +01:00
francescomani dc9a2cf1ad simple beam switching procedure based on strongest reported SSB 2025-01-02 11:01:38 +01:00
francescomani 19c667fa80 remove unused tci handling function 2025-01-02 11:01:38 +01:00
francescomani 2d2a92dd12 improvements in handling CSI report for RSRP 2025-01-02 11:01:38 +01:00
francescomani 70a6434168 remove unused input from get_beam_index function 2025-01-02 11:01:38 +01:00
Jaroslava Fiedlerova a82b1450e4 Merge remote-tracking branch 'origin/develop-fix-tpmi' into integration_2024_w51 (!3154)
Fix TPMI for UL retransmissions

If the ul_ri of srs_feedback changes between a UL transmission and a
retransmission, we use the TPMI of transmission.

Closes #879

Assertion ((*nrOfLayers==1 && srs_feedback->tpmi <= 1) || (*nrOfLayers==2 && srs_feedback->tpmi == 0)) failed!
In compute_precoding_information() /home/user/openairinterface5g/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c:2896
TPMI 1 is invalid!
2024-12-20 15:59:39 +01:00
francescomani f7bb1367f5 print UE statistics only in connected mode 2024-12-19 14:31:35 +01:00
Robert Schmidt d820c187fc OPT: Replace AssertFatal with static_assert
See parent commit
2024-12-19 03:26:27 +01:00