Commit Graph
100 Commits
Author SHA1 Message Date
luis_pereira87 0a0dfae333 Restore previous 'local_bwp_id' on RRCReestablishment 2025-12-19 11:02:39 +01:00
luis_pereira87 71e23b12c2 Reset outdated PUCCHs to avoid Assertion caused by non-processed and active PUCCHs
When there is real-time issues in L1 it may happen that the scheduler misses/skips some slots, thus, L2 not processing and not freeing some structures like PUCCH.
This commit avoids the Assertion by resetting any Active outdated PUCCH
2025-12-12 16:48:24 +00:00
luis_pereira87 cf507115e4 Fix unsigned to signed decoding parameters to allow for 'no affinity'/'no pin' threads to CPUs
By default, 'L1_rx_thread_core', 'L1_tx_thread_core', 'ru_thread_core' are set to '-1' but the values were decoded from config file as unsigned instead of signed types, thus, it was not allowing to set them with '-1' from config file
2025-11-05 20:51:02 +00:00
luis_pereira87 f231655b31 Restore UE Capability IE after RRCReestablishment 2025-10-20 15:04:26 +01:00
luis_pereira87 0aa19da568 CI: Add DedicatedBWP to '40 MHz TDD F1+E1 SA' in 'RAN-SA-B200-Module-SABOX-Container' 2025-07-24 10:47:39 +01:00
luis_pereira87 72d9761698 Remove 'searchspaceid' from 'verify_agg_levels' function because it was used only for LOG 2025-07-24 10:47:39 +01:00
luis_pereira87 7a5d1e55f0 Add a 'common' type SearchSpace in the NR_BWP_DownlinkDedicated IE for DedicatedBWPs to get DCIs decoded in common searchspace of a DedicatedBWP
After RRCSetup, until RRCReconfigurationComplete, gNB continues to schedule ULSCH using DCIs in a common searchspace.
In theory, the UE should decode DCIs in:

            <downlinkBWP-ToAddModList>
                <BWP-Downlink>
                    <bwp-Common>
                        <pdcch-ConfigCommon>
                            <setup>
                                <commonSearchSpaceList>
                                    ...
                                </commonSearchSpaceList>

However, due to the limited amount of time to investigate this issue, the easy way I found to get DCIs decoded in common searchspace of a DedicatedBWP was by adding a common searchspace in the bwp-Dedicated:

                    <bwp-Dedicated>
                        <pdcch-Config>
                            <setup>
                                <searchSpacesToAddModList>
                                    <SearchSpace>
                                        ...
                                    </SearchSpace>
                                </searchSpacesToAddModList>

This way, let's call it a workaround.
2025-07-24 10:47:39 +01:00
luis_pereira87 8c58abf85a Fix fill 'initialDownlinkBWP->pdsch_Config' when there are DedicatedBWPs
This fixes the reported 'RSRP = 0' issue when the UE is in the InitialBWP and we have DedicatedBWPs configured
2025-07-24 10:39:01 +01:00
luis_pereira87 641cf84c0c Improve CORESET selection 2025-07-24 10:39:01 +01:00
luis_pereira87 0ccf1879ae Improve SearchSpace selection
There is a removal of the NR_SearchSpace__searchSpaceType_PR because, at this point, the gNB already selected the searchspace and it calls this function only to find the coreset with controlResourceSetId based on the previously searchspace id selected;
There is no need to send a pointer to the entire searchspace structure because we only need the controlResourceSetId: NR_ControlResourceSetId_t coreset_id = *ss->controlResourceSetId;

It also prevents a segmentation fault, in develop when NR_SearchSpace__searchSpaceType_PR_common because gNB calls sched_ctrl->coreset = get_coreset(nr_mac, scc, bwpd, sched_ctrl->search_space, target_ss); the bwpd is NR_BWP_DownlinkDedicated_t *bwpd = NULL; and is it incompatible with the cast to NR_BWP_Downlink_t in coreset = ((NR_BWP_Downlink_t*)bwp)->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet; this was never noticed until now because gNB barely used NR_SearchSpace__searchSpaceType_PR_common
2025-07-24 10:39:00 +01:00
luis_pereira87 260135a35b Fix Msg3 with MAC CE for C-RNTI and RRCReestablishmentComplete
Only trigger RRCReconfiguration if UE is not performing RRCReestablishment
The RRCReconfiguration will be triggered by the RRCReestablishmentComplete
2025-06-23 11:00:51 +01:00
luis_pereira87 736ea530f7 Only reestablish RLC while processing reconfiguration complete after a RRCReestablishment and not for every RRCReconfiguration 2025-06-13 12:05:34 +01:00
luis_pereira87 a9ae56395e Fix resource block assignment information (RIV field) for DCI format 0_0 when scheduling in any type of PDCCH common search space 2025-05-15 16:14:31 +01:00
luis_pereira87 8c7d4c6d02 Fix PUSCH BWP Start and Size when PUSCH is scheduled with a DCI format 0_0 in any type of PDCCH common search space 2025-05-15 16:14:31 +01:00
luis_pereira87 7b1c1ddc17 Fix resource block assignment information (RIV field) for DCI format 1_0 when scheduling in any type of PDCCH common search space 2025-05-15 16:14:31 +01:00
luis_pereira87 35d5309ef1 Fix PDSCH BWP Start and Size when PDSCH is scheduled with a DCI format 1_0 in any type of PDCCH common search space 2025-05-15 16:14:31 +01:00
luis_pereira87 3dea00b006 Get and store CORESET start RB 2025-05-15 16:13:30 +01:00
luis_pereira87 089d1ec49e Tutorials: add support for 'default'/"empty" DNN to CN5G configuration file
Add support for 'default' DNN to CN5G configuration file (that will also be used when DNN is not available, "empty" DNN). This configuration will allow most of the COTS UE to get PDUSession without any APN configuration made by the user

The 'default'/"empty" DNN configuration support was added in https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf/-/merge_requests/343
2025-05-13 11:24:26 +01:00
luis_pereira87 9350db4979 Tutorials: update UHD to v4.8.0.0 2025-05-13 11:24:26 +01:00
luis_pereira87 e5d7fd3904 Tutorials: Update docker install to the latest instructions on the official website 2025-05-13 11:24:26 +01:00
luis_pereira87 b8617819b1 Tutorials: Update links for the latest Ubuntu 24.04 LTS iso file 2025-05-13 11:24:26 +01:00
luis_pereira87 78378f3301 Avoid segmentation fault when testing trigger reestablishment and there is no DRB[0] established 2025-04-30 10:04:17 +01:00
luis_pereira87 f1811b5934 Move the initialization of bler_stats to 'add_new_nr_ue()' function 2025-04-10 13:18:29 +01:00
luis_pereira87 b421d6eaa9 Set 'min_mcs' in 'bler_stats' when initializing and when no activity is detected, instead of hardcode it to '9' 2025-04-10 11:20:59 +01:00
luis_pereira87 699afafc6f Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters, they will enforce the gNB scheduler to select always a MCS equal or above its values 2025-04-10 09:11:17 +01:00
luis_pereira87 96b0cae63e Drop 'min_grant_mcs' configuration parameter 2025-04-10 09:11:17 +01:00
luis_pereira87 b6e06e8f47 Turn off any Nagle-like algorithm for SCTP
This means that packets will be sent as soon as possible and no unnecessary delays are introduced, at the cost of more packets in the network.
https://www.man7.org/linux/man-pages/man7/sctp.7.html
2025-04-02 21:50:39 +01:00
luis_pereira87 c152177327 Harmonize and update Frequency Range computation to the current values specified by the standard
3GPP TS 38.101-1 Version 19.0.0 Table 5.1-1: Definition of frequency ranges
- FR1 from 410 MHz to 7125 MHz
- FR2 from 24.25 GHz to 71 GHz
2025-03-20 20:41:21 +00:00
luis_pereira87 f765352be7 Reset timing_advance on sync/re-sync
This prevents the UE to use an outdated timing_advance after a re-sync. It prevents the UE to send a PRACH with a wrong TA, thus preventing a RAPID mismatch in Msg2 (example: '[UE 0][RAPROC][0.0] Received RAR preamble (29) doesn't match the intended RAPID (30)')
2025-03-06 16:25:42 +00:00
luis_pereira87 1d84b6d07d Fix OAI UE uplink_frequency in FDD mode 2025-03-06 13:30:58 +00:00
luis_pereira87 e1d4ff1126 Upgrade SIMDe commit 2025-02-19 10:32:00 +00:00
luis_pereira87 63abc04a45 Fix yaml example config file
amf_ip_address is decoded as a paramlist_def_t and not as a paramdef_t, so in the config file it should be a list of ip addresses
2025-01-09 21:35:47 +00:00
luis_pereira87 99ea71462b Refactor UL MAC PDU decoding 2024-12-04 09:07:14 +00:00
luis_pereira87 ad9b91627c Prevent DLSCH scheduler to allocate PRBs outside of current BWP 2024-10-26 11:19:40 +02:00
luis_pereira87 de887a1d2a Improve PUSCH and PUCCH SNR stability
Reset TPC to 0 dB, after sending it to the UE, to not request new gain multiple times before computing new value for SNR
2024-10-18 09:06:28 +01:00
luis_pereira87 9a3162f049 Tutorials: update UHD to v4.7.0.0 and update dependencies for Ubuntu 24.04 2024-10-16 08:54:01 +01:00
luis_pereira87 156aedb96b Tutorials: Update docker install to the latest instructions on the official website 2024-10-16 08:53:30 +01:00
luis_pereira87 1ff4ff1455 Tutorials: Update links for the latest Ubuntu 24.04 LTS iso file 2024-10-16 08:52:50 +01:00
luis_pereira87 303e724845 Always set firstActive/defaultBWP
Always set the firstActive and defaultBWP in the initial
cellGroupConfig. This is necessary to make the Quectel accept the
handover RRCReconfiguration; it seems that this also works reliably in
normal connection set up, so we can add it.
2024-09-06 10:20:08 +02:00
luis_pereira87 8172da04c8 CI: Set max_rxgain to 75 (max value for N310) in SA 2x2 pipeline 2024-08-28 21:09:37 +01:00
luis_pereira87 cbf8489707 Switch to BWP where RA is configured when Msg3 contains MAC CE for C-RNTI
Switch to BWP where RA is configured, typically in the InitialBWP
At this point, MAC CE for C-RNTI received at gNB, UE already switched and triggered RA in that BWP, need to do BWP switching also at gNB for that C-RNTI
2024-07-15 13:34:13 +01:00
luis_pereira87 2e3ee6f57d Change UE static IP (use_local_subscription_info: no) network address blocks for a 'Private-Use' range.
Address block 12.1.0.0/16 is for public use, so we should not use it for the UEs (https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)
2024-07-05 12:49:15 +01:00
luis_pereira87 2c1f32b6e6 Do not extract CSI report if PUCCH format 2 CRC check fails in polar decoder
This fix prevents the scheduler to process a wrong CSI feedback message, for example, it avoids the scheduler to compute a wrong MCS from CQI or a wrong RI from CQI
2024-07-01 10:34:32 +01:00
luis_pereira87 ce0f48d2b2 Add support for MIMO 2x2 with USRP B210 at 20 MHz BW and 3/4 sampling rate
Tested with B210 and Quectel RM500Q-GL
2024-06-07 15:16:20 +01:00
luis_pereira87 9278394f3c Tutorials: Update links for the latest Ubuntu 22.04 LTS iso file 2024-05-22 07:14:36 +01:00
luis_pereira87 246a8aff16 Tutorials: Rename OAI CN5G docker network interface name from 'demo-oai' to 'oai-cn5g' and remove commented lines 2024-05-22 07:14:36 +01:00
luis_pereira87 3c6ae9c2cb Tutorials: Fix multiple S-NSSAI redefinitions for the same S-NSSAI in the configuration file 2024-05-22 07:14:36 +01:00
luis_pereira87 db6710f853 Fix debug for ongoing transactions, it is limited to 3 but the maximum number of ongoing transactions can be 4 (NR_RRC_TRANSACTION_IDENTIFIER_NUMBER):
TS 36.331: RRC-TransactionIdentifier ::= INTEGER (0..3)
2024-05-16 12:36:21 +01:00
luis_pereira87 615284c5c8 Add support for USRP X410 to run with 200 MHz bandwidth in FR2 at 120 kHz SCS 2024-04-26 08:23:19 +01:00
luis_pereira87 bbb1832c07 Handle Msg3 with SRB1 RRCReestablishmentComplete and MAC CE C-RNTI
From 3GPP TS 38.321 Section 5.4.3 Multiplexing and assembly, we need to process the highest priority subPDUs first:
- MAC CE for C-RNTI is the one with higher priority
2024-03-28 11:39:07 +00:00
luis_pereira87 791531015d Fix UPF crash at startup after latest Docker and Ubuntu updates 2024-03-23 20:54:48 +00:00
luis_pereira87 10d7b537a4 Tutorials: upgrade Open Cells Project UICC/SIM programming tool to version 3.3 2024-03-06 07:56:52 +00:00
luis_pereira87 dd5691f0ce Rename FR2 SA configuration file to be compliant with the 'Configuration files: naming style guide'
Missing u3
2024-03-06 07:56:52 +00:00
luis_pereira87 3d8b38f7e6 Fix FR2 SSB start subcarrier and SSB frequency at gNB
for FR2 offsetToPointA is expressed in terms of 60 kHz SCS and k_SSB expressed in terms of the subcarrier spacing provided by the higher-layer parameter subCarrierSpacingCommon
2024-02-14 13:13:42 +00:00
luis_pereira87 c78399ee36 Update 5G RFsim FR2 SA test to have kSSB different from 0
Enable CI to test kSSB with a value different from 0 for FR2 to prevent regressions on future updates related with kSSB
2024-02-14 11:17:09 +00:00
luis_pereira87 be36b2f9bc Fix CI 5G RFsim FR2 SA ping test 2024-02-14 11:17:09 +00:00
luis_pereira87 9f315932d0 Fix CI runtime errors
Fix for CI runtime error: left shift of 1 by 31 places cannot be represented in type 'int'

Fix for CI runtime error: left shift of 128 by 24 places cannot be represented in type 'int'
2024-02-14 11:17:09 +00:00
luis_pereira87 60af0f1af2 Tutorials: replace oai-spgwu-tiny by oai-upf
Replace oai-spgwu-tiny by the new oai-upf

Change UE IP network address blocks for a 'Private-Use' range. Address block 12.1.0.0/16 is for public use, so we should not use it for the UEs (https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)
2024-02-07 17:02:15 +00:00
luis_pereira87 05babdfc5c Tutorials: add link for Ettus UHD installation page and remove 'source oaienv' from instructions 2024-02-07 17:00:55 +00:00
luis_pereira87 7ee0cfc28c Tutorials: remove OAI UE SIM section
The main goal of this tutorial is to get 5G end-to-end connectivity as simple and fast as possible. For advanced topic the user should search for specific documentation.
2024-02-07 17:00:55 +00:00
luis_pereira87 e29c938130 Tutorials: simplify the pull section for the CN5G images
No need to pull every single image independently, we can pull all the images with the corresponding tag that is in the 'docker-compose.yaml' with the 'docker compose pull' command
2024-02-07 17:00:55 +00:00
luis_pereira87 99f3ef1a61 Tutorials: add FR2 SA configuration file and instructions for RFsimulator 2024-02-07 17:00:55 +00:00
luis_pereira87 6ec4918187 Tutorials: update the OAI nrUE SIM card description
This tutorial aims to achieve end-to-end connectivity as simple as possible. Let's remove this complex topic from here.
Also, if a user copy-paste the section as it was, nrUE gets a segfault because there is no imeisv here, tutorial is out-dated.
2024-02-07 17:00:55 +00:00
luis_pereira87 be08184fbe Tutorials: update UHD to v4.6.0.0 and update dependencies as described in the official Ettus website 2024-02-07 17:00:55 +00:00
Luis Pereira 04c6c34d24 NR MAC stats: make more compact, update CI checker
- show MAC bytes in one line
- add MCS table idx
- show ulsch errors before ulsch DTX (as in DL)
- show if UE in-sync/out-of-sync
- show CU UE ID next to RNTI to stats

Since we modify the format of the statistics, fix the format in the retx
checkers of the CI.
2024-02-03 11:24:41 +01:00
luis_pereira87 263104388c Improve Precoding Matrix computation taking in consideration the DCI format 2024-01-26 10:04:45 +00:00
luis_pereira87 87e8ba0ba1 Fix FAPI CoreSetType enumeration options after the fix on the description made by SCF
SCF FAPI 222.10.02 had a bug on the description of CoreSetType:
0: CORESET is configured by the PBCH or SIB1
(subcarrier 0 of CRB0 for DMRS mapping)
1: otherwise (subcarrier 0 of CORESET)

That was fixed in SCF 222.10.04:
0: CORESET is configured by the PBCH or SIB1
(subcarrier 0 of the CORESET)
1: otherwise (subcarrier 0 of CRB0 for DMRS mapping)

That wrong description created a misunderstanding, to overcome it we "wrongly" added a third value. This commit fixes that and aligns the CoreSetType with FAPI 222.10.04
2024-01-04 09:32:18 +00:00
luis_pereira87 c58eea2ac7 Implement RA Contention Resolution timer in gNB accordingly with 3GPP TS 38.321 Section 5.1.5 Contention Resolution 2023-12-27 07:32:24 +00:00
luis_pereira87 3e80765668 Trigger UL Failure if Ack of Msg4 not received
The UE will trigger new RA either with MAC CE C-RNTI or with new RRCSetupRequest:
- MAC CE C-RNTI: The ul_failure_timer will be reset
- RRCSetupRequest: New UE will be created and the previous one will be deleted
2023-12-27 07:32:24 +00:00
luis_pereira87 f7dfffe1d4 Delete ra_timer 2023-12-27 07:32:24 +00:00
luis_pereira87 32f7f475e4 T2: update documentation and refactor ldpc-offload-enable 2023-12-21 11:22:00 +01:00
luis_pereira87 3f22837d88 Fix gNB RA procedures when Msg4 Ack not received
When the gNB does not receive PUCCH with Ack for Msg4 we have to consider Msg4 received by the UE, so we need to apply the CellGroupConfig sent to the UE.
There are two scenarios:
1 - The UE never decoded PDSCH for Msg4, the RA will fail because RA Contention Resolution timer, the UE will come with a new RA with new RRCSetupRequest
2 - The UE decoded PDSCH for Msg4, and if SR does not work and no resources for PUSCH, it will trigger RA with MAC CE C-RNTI in Msg3 (so, gNB must be ready for it)
2023-12-19 07:45:44 +00:00
luis_pereira87 f0df1ccb53 Hotfix: swap UIDs after RRCReestablishment
The CellGroup is created considering UID, for example:
'pucchres0->startingPRB = 8 + uid;' and since we keep the CellGroup from
the previous RNTI/UID we should keep also the previous UID.

Considering the scenario where a UE did successful RRCReestablishment,
it was getting uid = 1, and uid = 0 was removed.
When another UE connected, it was getting UID = 0 (because 0 was already
free), and so the PUCCH 0 resource was conflicting with the first UE.

On that occasion, also correct the comment that describes the code, as
it was wrong/misleading.
2023-12-08 11:09:52 +01:00
luis_pereira87 c80fc07719 Fix scaling for FR2
Position of SSB from Point A depends on offsetToPointA and Kssb, and for both, the unit for RB is expressed as 15KHz for FR1 and 60 KHz for FR2, so scaling must be 4 for FR2 frequencies
2023-12-01 14:27:01 +00:00
luis_pereira87 d6abd0117a Add config file for FDD band 1 and 15 kHz SCS 2023-11-24 09:11:41 +00:00
luis_pereira87 088bdf234e Fix read n_TimingAdvanceOffset from the configuration file 2023-11-20 21:42:52 +00:00
luis_pereira87 5b5b0f9595 Fix AssertFatal when using NR band n1 2023-11-02 18:41:17 +00:00
luis_pereira87 dbdfe06d1e Fix comment from 10% to 25% 2023-09-27 16:01:26 +01:00
luis_pereira87 cf36c6d893 Improvements to reduce ITTI log message volume when queues full 2023-09-27 15:59:08 +01:00
luis_pereira87 debd35a877 Apply function with better performance to reverse bits for polar encoder/decoder in PBCH 2023-09-27 08:30:06 +01:00
luis_pereira87 2360925e29 Reverse bits in UCI message when using polar encoder/decoder 2023-09-27 08:30:06 +01:00
luis_pereira87 58f6cb2af9 Implement function for reversing bits with better performance 2023-09-27 08:30:06 +01:00
luis_pereira87 8571416ac8 Tutorials: upgrade UHD version to 4.5.0.0 2023-09-21 09:43:52 +01:00
luis_pereira87 0994d79585 Tutorials: Update NR SA Tutorials to be compliant with OAI CN5G pre-2.0 release 2023-09-15 07:35:02 +01:00
luis_pereira87 0ace73bba9 Add SRB1 and SRB2 received bytes to statistics 2023-09-06 06:57:21 +01:00
luis_pereira87 2509733678 Set security for all active SRBs after NR_RRCReestablishment 2023-08-25 08:03:08 +01:00
luis_pereira87 452615f9d0 Tutorials: update links for Open Cells SIM Card programming tool and Ubuntu 22.04 LTS 2023-08-23 08:53:48 +01:00
luis_pereira87 9318bf30a3 Fix support for NR band n40 accordingly with 3GPP TS 38.101-1 V15.22.0 2023-07-19 10:50:09 +01:00
luis_pereira87 4deb58339b Fix multiple PDUSessions after review, now DRBs are configured sequentially, no matter what PDUSession id we receive 2023-07-08 13:15:03 +02:00
luis_pereira87 7e7b3c13f1 Fix multiple PDUSessions 2023-07-08 13:14:06 +02:00
luis_pereira87 62d33ce523 Add function to remove all SDAP entities for a UE 2023-07-03 09:42:06 +01:00
luis_pereira87 57a3f9fe2f Bugfix when deleting a SDAP entity that is not the first one on the list and prevents segfault when removing the last one on the list
Fix delete entity function, a SDAP entity is a combination of a UE and PDUSession, we cannot just simply delete the first entity for a UE
2023-07-03 09:42:06 +01:00
luis_pereira87 9ea0ef666e Add support for NR band n48 2023-07-01 10:05:07 +01:00
luis_pereira87 7a4dc63575 Avoid segmentation fault when optional IE nAS_PDU is NULL 2023-06-23 08:43:04 +01:00
luis_pereira87 ab1cff7220 Tutorials: Update docker install to the latest instructions on the official website 2023-06-20 14:31:19 +01:00
luis_pereira87 de7e9e274f Fix drb_id to be aligned with the current implementation of one DRB per PDU Session 2023-05-30 17:07:25 +01:00
luis_pereira87 1a287bb3b5 Update 'Active' flag for SRB 2 when setting it up and avoind to add it multiple times in rlc_BearerToAddModList 2023-05-30 16:35:45 +01:00
luis_pereira87 2b2c471c22 Do not reset DRB_configList because we are only filling it with nb_drb_to_setup 2023-05-30 16:26:36 +01:00
luis_pereira87 655925ddea Remove outdated documentation 2023-05-24 09:30:02 +01:00
luis_pereira87 b08041caa4 Tutorials: update ubuntu iso download link to 22.04.2, update Windows Quectel driver version, remove nokrnmod flag, it is enabled by default 2023-05-24 09:11:26 +01:00