Commit Graph
2192 Commits
Author SHA1 Message Date
Robert Schmidt 492247054f Merge remote-tracking branch 'origin/SIB1_RedCap' into integration_2025_w12 (!3274)
Add initial support for RedCap

- RedCap SIB1-v17-IEs parameters implemented in SIB1
- Create an configuration file for RedCap devices
2025-03-24 15:03:41 +01:00
Robert Schmidt bbae3b24ad Merge remote-tracking branch 'origin/arm-build-pipeline' into integration_2025_w12 (!3286)
Add support for ARM build pipeline

Modify the existing python code to be able to build images where the
image tag can be prepended with a prefix, here arm_. This is preparatory
work to create the ARM build image pipeline, and reuse the existing
internal registry on porcepix to have x86 and ARM images coexist.

Fix various bugs in the build system to allow to build on a system with
as many cores as gracehopper.

Also, fix two programs (usim, nvram) to work correctly under ARM.
2025-03-24 14:45:12 +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
ndomingues b92af6b6be Implementation of TYPE_INT8 in config_yaml.cpp file 2025-03-20 18:13:12 +01:00
Robert Schmidt 252c9db246 Correctly express dependency on LOG headers
Various libraries in this commit use the log headers (that is the
direct dependency). The log headers in turn include the T headers
(transitive dependency). Building on gracehopper with its many cores
triggers the build of these libraries before T headers have been
generated.

To resolve this and force the generation of T headers before building
the libraries, correctly express their dependency on the log headers,
which in turn ensures that T headers have been generated.

Depending on log_headers is preferrable because it is really the headers
that we depend on. Using instead e.g., utils, would trigger build of
source files, that we don't need for these libraries.  This commit is
part of a larger cleanup that I have that is not merged yet. Follow-up
work will generalize this in the repo, and ensure that every(!) library
builds.

We have to add CONFIG_LIB, as the log module has a direct dependency
onto the configuration module (it uses it). I am not sure why this was
not relevant before.
2025-03-18 09:21:24 +01:00
Robert Schmidt 4ed801dce3 Add correct T_headers dependencies
T_headers needs to ensure that T headers have actually been created.
This can be forced by depending on generate_T.
2025-03-18 09:21:24 +01:00
Guido Casati c456d6951e Add telnet trigger to force C-RNTI RA on the UE 2025-03-17 16:54:14 +01:00
francescomani 96f1a2d474 implementation of RAR response window timer suspension
(this is needed because it might expire while MSG2 is being decoded despite being received inside the window)
2025-03-12 10:30:17 +01:00
francescomani e92f3484b6 Merge remote-tracking branch 'origin/remove_some_mac_extern' into integration_2025_w10 2025-03-07 08:35:47 +01:00
francescomani a04e7af63e formatting 2025-03-03 17:00:26 +01:00
francescomani 06e66330ab remove unnecessary extern bandtable declaration 2025-03-03 17:00:26 +01:00
francescomani 33bfeb500d Merge remote-tracking branch 'origin/add-utc-timestamp' into integration_2025_w09 2025-03-01 16:47:01 +01:00
Jaroslava Fiedlerova 95e661de6f Add log option for UTC time stamp
If "utc_time" is selected, log lines are prepended with the UTC time,
formatted as YYYY-MM-DD hh:mm:ss.ssssss UTC.

The documentation has been updated. For other time methods, additional
description of what they show has been added.
2025-02-28 12:15:57 +01:00
Sakthivel Velumani 591e009326 Fix prach K,kbar for mu 0 2025-02-25 11:58:41 -05:00
Sakthivel Velumani cf0206e7c6 Fix scheduler for long prach
Long PRACH extends beyond a slot. Changes necessary to mark future slots
that may contain prach in ru, phy and mac functions.

In RU, the PRACH IDFT is done only after receiving last slot and marks
for L1 to start processing. The L1 processes at the last prach slot and
reports to MAC with the first slot index.

In MAC scheduler, the VRB for future slots are also marked as used.
PRACH scheduler is called in advance one frame minus num prach slots.
2025-02-25 11:58:41 -05:00
Robert Schmidt f0d6d42aec Merge remote-tracking branch 'origin/fhi72-no-polling' into integration_2025_w07 (!3200)
FHI72: remove polling, fix memory leak

- FHI72 used polling to track the next slot. This is not necessary, a
  simple queue does the job and allows to save one core that was
  previously at 100%
- Remove a workaround to avoid a memory leak (fixes #812); allows to
  also run RFsim/USRP/otehr radios when compiling for FHI72
2025-02-17 15:10:01 +01:00
Robert Schmidt 919bfb8cfb Merge remote-tracking branch 'origin/improv_TDD' into integration_2025_w07 (!3249)
Improvements in TDD configuration

Including using the frame structure introduced in !2799 also at the UE
2025-02-14 15:10:22 +01:00
Bartosz Podrygajlo 095b791929 Add PDCCH UESS aggregation level configuration option
Added uess_agg_levels configuration option which changes the number of PDCCH
candidates per aggregation level.
2025-02-13 10:57:25 +01:00
Robert Schmidt 2cd0bba9c4 notified_fifo: include malloc.h for memalign() 2025-02-13 09:17:00 +01:00
francescomani d0ba1a30e3 use frame_type in frame_structure instead of bool 2025-02-12 11:24:56 +01:00
Robert Schmidt 805ed55788 Merge remote-tracking branch 'origin/NR_add_new_BW' into integration_2025_w06 (!3245)
Added Support of 35Mhz,45Mhz,70Mhz Bandwidth

Added Support of 35Mhz,45Mhz,70Mhz Bandwidth for 30Khz Subcarrier
Spacing, Also added 35Mhz, 45Mhz bw for 15Khz Subcarrierspacing.

Referred Spec TS 38.101 v18.6.0 section 5.3.2, table 5.3.2-1
2025-02-11 17:47:59 +01:00
Robert Schmidt 8c39825688 Merge remote-tracking branch 'origin/tun_if_refactor' into integration_2025_w06 (!3238)
Refactor tun_if.h

Use a common function for generating interface name. Use full interface
name in tun_if.h functions.
2025-02-07 17:32:28 +01: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
Raghavendra Dinavahi 3e27175ac2 Added Support of 35Mhz,45Mhz,70Mhz Bandwidth for SCS 30Khz
Also added support for 35Mhz, 45Mhz bw for 15Khz Subcarrierspacing
Referred Spec TS 38.101 v18.6.0 section 5.3.2, table 5.3.2-1
2025-02-06 16:44:45 +01:00
francescomani 65cbcec57a fixes to allow FR2 dlsim test 2025-02-04 08:38:51 +01:00
Robert Schmidt 1cb82bae20 Merge remote-tracking branch 'origin/Mult_TDD_Pattern' into integration_2025_w05 (!2799)
Changes to support multiple TDD patterns

- Updated the configuration changes for 2 Patterns
- Update the TDD table configuration for NFAPI
- Added the tdd bitmap for the period
- Adapted the bitmap for UL/DL for the multi TDD pattern
- Updated the RACH procedure for multi TDD pattern
- Updated DL and UL scheduler for multi TDD pattern
2025-02-03 08:32:02 +01:00
Laurent THOMAS 6d14ac735b remove dead commented code 2025-01-30 17:15:11 +01:00
Laurent THOMAS 5416be3736 move byte2m128i in a more logical place 2025-01-30 17:14:10 +01:00
Laurent THOMAS 268172a435 pure bad code fix 2025-01-30 17:12:27 +01:00
Guido Casati 00f1d52f92 Rewrite get_first_ul_slot to use pattern configuration stored in frame_structure
* the function is returning the index of the first full UL slot in tdd_slot_bitmap
  or the first UL slot (including mixed) if the "mixed" flag is provided
2025-01-28 10:07:31 +01:00
Guido Casatiandvijay chadachan c3a6700037 Implement MAC/RRC setter/getter functions to support multiple TDD patterns
* set_tdd_bmap_period, config_tdd_patterns: to configure TDD period, including bitmap, in the frame structure
* get_tdd_periodicity: to retrieve the periodicity in milliseconds for the given TDD pattern
* get_tdd_period_idx: to get the TDD period index based on pattern periodicities
* get_ul_slots_per_period: get the number of UL slots (including mixed with UL symbols) in period
* get_full_ul_slots_per_period: get the number of full UL slots in period
* get_dl_slots_per_period: get the number of DL slots (including mixed with DL symbols) in period
* get_full_dl_slots_per_period: get the number of full DL slots in period

Co-authored-by: vijay chadachan <vijay.chadachan@firecell.io>
2025-01-28 09:42:45 +01:00
vijay chadachanandGuido Casati 9cf1ce7427 Add new TDD period and bitmap configuration structs definitions (nr_common.h)
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 09:42:45 +01:00
Robert Schmidt 2cecffb02f Merge remote-tracking branch 'origin/fix-huge-malloc' into integration_2025_w04 (!3211)
Avoid huge calloc by alloc'ing TBs independently

Fix real-time problems on smaller machines due to big calloc(). See the
commit(s) for more details.
2025-01-27 11:40:53 +01:00
Robert Schmidt 8eca2e0591 Correctly link function
ran_func_kpm.c uses cp_ba_to_str(), but it is not defined in OAI. Define
it so we can link properly, instead of relying on FlexRIC (where it was
defined).
2025-01-27 07:45:39 +01:00
Jaroslava Fiedlerova 7520218195 Merge remote-tracking branch 'origin/t-hacks-small-improvement' into integration_2025_w04 (!3217)
minor improvements in T hacks
2025-01-24 16:06:19 +01:00
Cedric Roux fc4cc9ef55 T: update list of mandatory libraries 2025-01-23 16:57:43 +01:00
Cedric Roux 28a08786bb T hacks: time_meas: add a periodic tracing mode
Useful to debug realtime issues, for example when calling a periodical
routine, if it's not programmed carefully enough, it may be that the first
call takes way longer than the next ones (for example it uses some memory
that is not mapped in the process, leading to many page faults the first
time it's executed).

Having a periodic log for the timing of this routine with min/avg/max/count
will reveal that a call is way longer than average and will help in
finding where exactly in the code the time is spent, thanks to the ease
of use of the T tracer; you put T(T_XX, T_INT(1)) just before the code
you want to measure, you put T(T_XX, T_INT(0)) just after and time_meas
will show the delta time between those events. Then you cut the routine
in smaller pieces, measure with T(1)/T(0), and you finally reach the small
guilty part that takes too long.
2025-01-23 16:57:43 +01:00
Cedric Roux 44637de3b2 T hacks: minor bugfix: don't log more than once
In time_meas.c, when getting 0 for the event, we log delta time with
previous 1 for the event. "start_valid" was not cleared, so receiving
a second 0 without 1 in between may lead to wrong logging.

Should not happen in practice, but still, little bug.

(Note: we don't protect against streams of 1, but this case should also
not happen.)
2025-01-23 16:57:43 +01:00
Cedric Roux e6ce301e83 T hacks: minor: remove executable when doing 'make clean' 2025-01-23 16:57:43 +01:00
Robert Schmidt c4b57963ee Add some documentation on debug flags/dump 2025-01-23 14:15:51 +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
Robert Schmidt a20d229b6b Merge remote-tracking branch 'origin/pucch2-delay-compensation' into integration_2025_w03 (!3034)
Delay compensation for PUCCH2

- Implementation of delay compensation for PUCCH2, which minimizes for
  exampe logs "reported RSRP index XXX invalid"
- Adding a test to the CI to perform the delay compensation in PUCCH2
- Refactor code to use c16_t data type in PUCCH decoder
2025-01-15 18:34:53 +01:00
Robert Schmidt 284a0edea7 Merge remote-tracking branch 'origin/minor-t-compilation-fixes' into integration_2025_w03 (!3201)
T tracer: minor fixes for compilation

only fixing some hacks tools, no functional change in main programs, no
need to test anything.
2025-01-15 15:05:31 +01:00
Robert Schmidt 77ddc36236 Merge remote-tracking branch 'origin/tpool-nospinlock' into integration_2025_w03 (!3193)
Remove spinlock from threadpool task return

The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added.
2025-01-15 15:04:37 +01:00
Bartosz Podrygajlo 0657ab2275 Remove spinlock from threadpool task return
The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added
2025-01-14 15:17:19 +01:00
Cedric Roux c77874d64e T tracer: minor fixes for compilation 2025-01-14 11:51:41 +01:00
Laurent THOMAS 6384517c01 Better code for PUCCH2 decoding 2025-01-14 11:34:22 +01:00
Laurent THOMAS 7d0c89185c gcc warning on #define duplicated 2025-01-14 10:07:31 +01:00
Robert Schmidt d892732ff7 Merge remote-tracking branch 'origin/improve-pusch-per-symbol-processing' into integration_2025_w02 (!3175)
Improvements for PUSCH per symbol processing

- Improved the assert in task_ans.c
- Fixed and issue with PUSCH per-symbol processing that could cause an
  issue in case num_pusch_symbols_per_thread is not 1.
2025-01-10 11:45:50 +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