- 15 Nov, 2025 1 commit
-
-
Robert Schmidt authored
Refactor imscope This MR refactors imscope by introducing changes to the default layout in the config file imgui.ini. The global settings are moved to a new menu item. This modified layout is intended as a suggestion subject to change based on feedback. This MR also adds PDCCH LLR and IQ plots to the UE scope and set axes to AutoFit by default. The MR has a screenshot of the new layout.
-
- 14 Nov, 2025 39 commits
-
-
Robert Schmidt authored
Remove schedule response and update L1 threading documentation This merge requests removes the somewhat superfluous "schedule response" mechanism. "schedule response" was run after running the scheduler itself and copied various FAPI messages into a global msgDataTx structure from which the various TX/RX jobs were triggered. It is not necessary, though, given that the scheduler is run inside the tx_func() (running the TX jobs of the L1), and so the scheduler output FAPI messages can directly be read into a variable of the existing NR_Sched_Rsp_t type. This allows to delete a couple of hundred lines of code (while retaining functionality), and simplifies the msgDataTx type (which is still there to trigger TX job (including the scheduler) from the ru thread). In short, prior, there was this call chain: - tx_func() calls run_scheduler_monolithic() (through fptr NR_slot_indication()) - get some memory through allocate_sched_response() which has enough space for NR_Sched_Rsp_t type variable - call the scheduler and fill the variable - call nr_schedule_response() (through fptr NR_schedule_response()) which copies into L1: to msgDataTx for TX, to separate structures for RX this is changed to - tx_func() runs one message at a time, hence we can use memory in the data segment for NR_Sched_Rsp_t. It calls run_scheduler_monolithic() through the fptr - pointers into NR_Sched_Rsp_t are passed to the scheduler, which fills as before - we return, memory is in its right place and does not need an extra copy. Additionally, this merge request updates documentation on threading and cleans up some unused code along the way. -
Jaroslava Fiedlerova authored
Update log header format to align log output The new format: - left-aligns the log header name and enforces a minimum width of 6 characters, padding shorter names with spaces while allowing longer names to be printed in full - shortens UTC timestamp - align function names to 32 characters Example output: [19:51:34.647930] [NGAP] I (ngap_gNB_decode_initiat:100) Handover Resource Allocation initiating message [19:51:34.648539] [NGAP] D (decode_ng_handover_requ:267) AllowedNSSAI.list.count 2 [19:51:34.648586] [NGAP] I (ngap_gNB_handle_handove:728) Received NG Handover Request from AMF OAI-AMF (ID=1) [19:51:34.648627] [NR_RRC] I (rrc_gNB_process_Handove:1199) Received Handover Request (on NR Cell ID=11111111, PCI=1) [19:51:34.648647] [NR_RRC] A (rrc_gNB_create_ue_conte:230) [--] (cellID 0, UE ID 1 RNTI ffff) Create UE context: CU UE ID 1 DU UE ID 4294967295 (rnti: ffff, random ue id ffffffffffffffff) [19:51:34.648659] [NR_RRC] A (set_UE_security_algos:692) [--] (cellID 0, UE ID 1 RNTI ffff) Selected security algorithms: ciphering 0, integrity 2
-
Jaroslava Fiedlerova authored
Handling newly opened UE issues Closes #1025 #1024 #1026 #1031 #1030
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Reimplement nFAPI message exchange between L1 and L2 following the changes in parent commit removing msgDataTx. Avoid direct calls and use NR_IF_module fptrs to avoid linking problems. allowing to remove some function definitions that are not needed.
-
Robert Schmidt authored
Note: after this commit, monolithic works but nFAPI operation is broken and fixed in the next commit, to keep the changes small(er). All simulators work. This commit removes the use of msgDataTx's intermediate buffers for FAPI messages and the call of the "Schedule response". The latter incurs an additional copy of FAPI messages for the TX chain (for the RX chain, it is and will remain there) which we can avoid. Instead, it uses an NR_Sched_Rsp_t-typed variable sched_response to store the results of the scheduler when called from tx_func(). Thus, the scheduler remains unchanged (it gets a pointer to where to put FAPI messages), but we don't call nr_schedule_response() to then copy FAPI messages into the L1, but have them in a local variable sched_response. sched_response on on the data segment, as it is big and would overflow the stack; at the same time, this is ok because only one tx_func() runs at a time. Since we don't use allocate_sched_response() anymore, we don't need deref_sched_response(). clear_slot_beamid() is moved to tx_func(), as it was called in nr_schedule_response(). Since the "intermediate" NR_gNB_DLSCH_t structure groups both the DL_tti_pdsch and TX_data.req structures, a pointer has been created to point to pdsch_pdu. This affects a number of simulators, as they have to put some messages on the stack: - nr_dlschsim: put the corresponding variable on the stack - nr_pbchsim: a new array for the SSB PDUs has been introduced Further, these changes are now necessary: - nr_dlsim: there were variables "rel15" and "pdsch_pdu_rel15" that point to the same PDSCH PDU. At least "rel15" would not exist, as the corresponding pointer is now populated in phy_procedures_gNB_TX(), and we therefore refer to the single PDSCH PDU variable with "pdsch_pdu_rel15", but at the place where "rel15" used to be initialized. - nr_ulsim: use nr_save_ul_tti_req() to load PDUs into the RX chain instead of nr_schedule_response(), which does not exist anymore.
-
Robert Schmidt authored
The next commit will remove msgDataTx. We can therefore not use msgDataTx to retain the PDSCH/DLSCH variables, and move them to the gNB. Note that the only reason for NR_gNB_DLSCH_t after this commit is to hold various large buffers (c, b, f). Future work could be done to remove this, in which case the array inside PHY_VARS_gNB could be deleted. On this occasion, clean up the use of init_DLSCH_struct() and reset_DLSCH_struct() (renamed destroy_DLSCH_struct()) and centralize their call in phy_init_nr_gNB()/phy_free_nr_gNB(), and correct simulators accordingly.
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/improve-readability-phy_procedures_gNB_uespec_RX' into integration_2025_w46 (!3707) Cleanup phy_procedures_gNB_uespec_RX phy_procedures_gNB_uespec_RX is too long function with too long lines of code, this commit only shorten lines and improve a bit the readability
-
Jaroslava Fiedlerova authored
[MAC] Add UL total/used aggregated MAC stats; [E2 agent] Properly calculate used UE PRBs in KPM; [CI] Simplify and improve the Undeploy_Object() and implement Stop_Object() - Create common dlul_mac_stats_t struct for both DL and UL total/used aggregated PRBs - Use correct unit [%] for RRU.PrbTotDl and RRU.PrbTotUl , instead of [PRBs] - Use correct unit [Mb] for DRB.PdcpSduVolumeDL and DRB.PdcpSduVolumeUL [kb] - Implement Stop_Object() (docker compose stop = SIGTERM) - Simplify the Undeploy_Object() function - Improve the logging for Deploy/Undeploy_Object() functions - OAI-FlexRIC CI: properly stop all the containers (one by one or a subgroup of running containers), and rename oai-flexric to nearRT-RIC container
-
Jaroslava Fiedlerova authored
CI: Increase tested UL throughput on Aerial pipeline using 2L UL The goal of this MR is to activate the use of 2-layer uplink by enabling SRS and to increase the tested UL throughput in CI.
-
Robert Schmidt authored
-
Robert Schmidt authored
The new format left-aligns the component name and enforces a minimum width of 7 (log component) characters, padding shorter names with spaces after the closing "]". Example output: [14:05:43.395376] [E1AP] I releasing UE 1 [14:05:43.395400] [GTPU] I [91] UE ID 1: Delete all tunnels (1 tunnels) [14:05:43.395414] [NR_RRC] A [DL] (cellID bc614e, UE ID 1 RNTI 8e27) Send RRC Release [14:05:43.395431] [RRC] I UE 1: received bearer release complete [14:05:43.424551] [RLC] W Remove UE 36391 [14:05:43.424597] [NR_RRC] I removed UE CU UE ID 1/RNTI 8e27 [14:05:43.424773] [NR_RRC] A [--] (cellID bc614e, UE ID 1 RNTI 8e27) Remove UE context [14:05:43.425205] [NR_MAC] I Remove NR rnti 0x8e27 [14:05:43.582158] [HW] W Lost socket ^C ** Caught SIGTERM, shutting down Returned from ITTI signal handler [14:05:43.948721] [GNB_APP] I stopping nr-softmodem [14:05:43.948746] [PHY] I Killing gNB 0 processing threads [14:05:44.574818] [PHY] I Stopping RU 0 processing threads [14:05:44.575000] [PHY] I RU 0 RF device stopped [14:05:44.575006] [GNB_APP] I turned off RU rfdevice -
Robert Schmidt authored
Prior to this change, when no "level" option is given to the logging module, we see [PHY] RU 0 RF started cpu_meas_enabled 0 [HW] No connected device, generating void samples... with three spaces, which is too much. This change reduces the amount of spaces to 1 without log level. Co-authored-by:Robert Schmidt <robert.schmidt@openairinterface.org>
-
Robert Schmidt authored
We probably almost never care about the date, but it takes a lot of space. Remove it; if somebody needs the full time stamp including the date, we could still add it with a new option.
-
Teodora authored
1. Rename oai-flexric to nearRT-RIC. FlexRIC is a project combining nearRT-RIC, xApps, and E2 agent emulators. 2. Instead of undeploying all the containers at the same time, and not checking the logs for xApps and nearRT-RIC, do the following: - Stop containers (docker compose stop) - one or subgroup of running containers in the following order: a) xapp-kpm-moni b) xapp-kpm-rc c) xapp-gtp-mac-rlc-pdcp-moni d) oai-nr-ue oai-nr-ue2 e) oai-gnb f) nearRT-RIC - Undeploy containers (docker compose down), collect and analyze all the logs.
-
Robert Schmidt authored
For some test cases, we might want to stop a service earlier. This functionality is done by StopObject(). Test log collection is still done by UndeployObject(), which will collect the logs of all services (at that point, stopped or not).
-
Robert Schmidt authored
In all these cases, the intention is to undeploy all services. Correspondingly, remove the services from the XML to avoid any ambiguity.
-
Robert Schmidt authored
Consistently print requested services (if applicable) and outcome of the step.
-
Robert Schmidt authored
GetRunningServices() was returning all services, running or stopped. Hence, rename to reflect what this function does, and rewrite slightly to better capture what is actually happening. Also, don't return the container ID, as we don't use it. Call stop on all services, as we will down the deployment right after. The list of services is still used to retrieve logs. Remove a stray "return False", which would sometimes prevent us from seeing all error messages.
-
Jaroslava Fiedlerova authored
Collection of small fixes A few fixes needed while testing FHI libraries - set subcarrier spacing in PUSCH PDU in NRUE - a set of two LOG_Ds that prints out the PUSCH allocation on gNB & UE
-
Jaroslava Fiedlerova authored
[NGAP] Fix incorrect AMF Set ID type (uint8 → uint16) causing AMF lookup failure This PR fixes issue #1012 , a data type issue related to the AMF Set ID used during UE RRC reestablishment. The AMF Set ID was mistakenly declared as uint8_t instead of uint16_t, even though it is a 10-bit field as specified in 3GPP TS 23.003 section 2.10.1. As a result, AMF Set IDs greater than 255 were truncated, leading to failed AMF lookups and the following warning: No matching AMF found for PLMN (MCC=%03d MNC=%0*d) and AMF SetID=%u. Verified reestablishment succeeds with AMF Set IDs >255.
-
Robert Schmidt authored
-
Robert Schmidt authored
A later commit will remove "msgTx" altogether. Push it out from L1 functions.
-
Robert Schmidt authored
-
Robert Schmidt authored
DLSCH encoding is not concerned with HARQ processes directly. Instead, it gets the redundancy version and encodes a specific redundancy version for a given TB. The rest is up to the MAC, the L1 is stateless in that regard. Hence, remove the HARQ type and put it into DLSCH, which also simplifies the code elsewhere.
-
Robert Schmidt authored
unav_res is already computed in nr_generate_pdsch(), and then used inside of nr_dlsch_encoding() right after.
-
Robert Schmidt authored
-
Robert Schmidt authored
Similarly to the parent commit, simplify the array type to the FAPI PDU towards further refactoring, and encapsulate the code in a function for easier reuse in a later refactoring step. Note on ZP-CSI: after this commit, we continue treating CSI PDUs. The prior code was returning, which I think is wrong (as this information is only for the currently treated CSI-RS PDU).
-
Robert Schmidt authored
There is no point in tracking the "active" state: the SSB PDU will be sent from MAC to L1, encoded, and then "discarded" (by marking the number of SSB PDUs as 0). Hence, remove this intermediate type.
-