Commit Graph
100 Commits
Author SHA1 Message Date
Laurent THOMAS bb766be0c3 Reformatting and cleanup 2024-07-30 14:57:17 +02:00
Laurent THOMAS 8e92df78de Use gold cache in PUCCH decoding 2024-07-30 14:57:10 +02:00
Laurent THOMAS 803b0289a6 Use gold cache in code word (un)scrambling 2024-07-30 14:57:06 +02:00
Laurent THOMAS f207ac12be Use gold cache in UCI 2024-07-30 14:57:01 +02:00
Laurent THOMAS 00cb43bac3 Use gold cache for PRS decoding 2024-07-30 14:55:35 +02:00
Laurent THOMAS e445ba2d1a Use gold cache PUSCH decoding
Harmonize nr_gold_pusch() and nr_gold_pdsch(), as the gold sequence
calculation for PUSCH and PDSCH is the same.
2024-07-30 14:52:06 +02:00
Laurent THOMAS 745ea1c1dd Use gold cache for PDSCH decoding 2024-07-30 14:50:57 +02:00
Laurent THOMAS 99c8dd420a Use gold cache for PDCCH decoding, scrambling, unscrambling 2024-07-30 14:49:46 +02:00
Laurent THOMAS 0316431e27 Use gold cache for PBCH encoding&decoding 2024-07-30 14:48:36 +02:00
Laurent THOMAS 59086151e0 Add generic usage-based gold cache
Add gold sequence cache with dynamic size, private to each thread. It
periodically reorders by call rate. To free the gold sequences after end
of life time of a thread, use the pthread API.
2024-07-26 16:39:28 +02:00
Laurent THOMAS 9aaa7f100a Inversion in flags name 2024-06-19 13:49:00 +02:00
Laurent THOMAS 37e6e7e944 add test physical cell id in 5G range 2024-06-10 10:51:16 +02:00
Laurent THOMAS 45d4cec2a6 fix regressions for large physical cell id values 2024-06-10 10:51:08 +02:00
Laurent THOMAS f23c91cc5a remove rb_mask_ul from permanent storage for stack local usage 2024-06-04 19:08:47 +02:00
Laurent THOMAS b461fe5e6b fix-dci11-type0-bitmap-setting 2024-05-23 10:26:28 +02:00
Laurent THOMAS 00e883c563 remove a unused struct member 2024-05-23 08:46:12 +02:00
Laurent THOMAS 2f05261f6b reject packets of 0's 2024-05-23 08:41:01 +02:00
Laurent THOMAS 4bca825053 remove wrong trace when packet is not decoded 2024-05-23 08:03:12 +02:00
Laurent THOMAS 819427a6a0 bug fix ue UL payload filling randomly done in retransmissions (pointer
not set)
2024-05-23 08:03:12 +02:00
Laurent THOMAS 6379350f51 Correct data offset for unscrambling in PUSCH processing
Correctly compute the offset of data to unscramble in PUSCH processing
at the gNB. Rename variables to make them easier to spot (instead of
"s"), and remove a global variable.

Closes: #734
2024-05-22 09:04:33 +02:00
Laurent THOMAS f2213bf792 fix a error that was created by over complexity in setting a pointer to null for a wrong later assert verification 2024-05-20 20:57:46 +02:00
Laurent THOMAS e217980249 simplify and make better performance the mutual exclusion of processSlotTX() function 2024-05-16 14:06:24 +02:00
Laurent THOMAS 3e4526a6ad rename persisted ul harq status per pid with a uniq name as this variable is persisted in memory and accessed by multiple threads, a uniq name helps to debug 2024-05-16 14:05:39 +02:00
Laurent THOMAS 00d78f048a remove a unused global storage of slot number
This has no meaning at a global level, we run several slots: one tx,
several rx at same time. Some minor cleaning of C style
2024-05-03 18:32:26 +02:00
Laurent THOMAS c02908453a fix order error in ru.common.rxdataF filling lock, use consistently #define for buffer size 2024-05-03 18:31:45 +02:00
Laurent THOMAS bb66056b75 fix nr-ru.c external declarations in .c file
The external declarations were incorrect, leading to mismatching
prototypes of config_ru and config_rru (true bug in OAI lte!).
2024-05-03 18:31:17 +02:00
Laurent THOMAS 445aac11b9 put dci search in trace level trace, so the trace level debug prints the decoded DCIs 2024-04-29 16:03:43 +02:00
Laurent THOMAS 309d5cacc9 remove sleep() in UE NAS that have no good purpose 2024-04-26 10:19:59 +02:00
Laurent THOMAS d67383bd42 segv on missing if() clause 2024-04-26 10:19:59 +02:00
Laurent THOMAS a07461813d NR UE: Implement DCI format 11 type0 for contiguous allocations 2024-04-26 10:07:23 +02:00
Laurent THOMAS ab2b868b75 improve polar init and polar readability 2024-04-24 15:26:21 +02:00
Laurent THOMAS df9cd171f6 remove a useless copy and specific buffer for all UE UL payload 2024-04-17 10:59:13 +02:00
Laurent THOMAS 0d0e111135 remove asserts on min RX/TX, set the RX/TX shift as 2 in the UE 2024-04-17 09:50:23 +02:00
Laurent Thomas be3452a10e Reduce stack memory size for layer mapping
Delete small pieces of dead code
2024-04-12 11:14:08 +02:00
Laurent THOMAS df86214067 Add a generic function for tx write out of order (timestamps not increasing)
Add an API to allow out-of-order writes to a radio interface, unlike the
current interface.

this function is called in UE in this commit, even if the tx might
still be in order.

Later, i plan to improve UE pulti-threading, that will lead to out of
order tx.  also, the gNB will benefit of this new function to replace
several specific pieces of code that reorder tx with over complex and
slow systems
2024-04-04 08:19:52 +02:00
Laurent THOMAS effe4f1c81 replace transient malloc by stack allocation, add defense code on block size 2024-04-03 10:31:34 +02:00
Laurent THOMAS 7106f3c15c fix sleeping UE when PSS detection is wrapping over frame buffer 2024-04-03 09:44:50 +02:00
Laurent THOMAS a3f472a58b remove stored G in UE DL, not needed and creating issues with DCI format 11/type0 2024-04-03 09:42:46 +02:00
Laurent THOMAS 6b4710d36d add error code for pdu session reject in the ue 2024-03-27 13:12:35 +01:00
Laurent THOMAS 86ebebf3f5 fix merge conflicts 2024-03-27 10:06:33 +01:00
Laurent THOMAS 9a4294ebab for_review_then_squash 2024-03-26 20:58:44 +01:00
Laurent THOMAS a95dffc80e delete dead files 2024-03-26 20:57:31 +01:00
Laurent THOMAS 80d4d600f3 print the mib when decoded 2024-03-26 20:57:31 +01:00
Laurent THOMAS 88fb3c3598 change type to c16_t around dmrs computation pieces of code 2024-03-26 20:57:31 +01:00
Laurent THOMAS 99e1bb1a00 fix ug on pilot 2 in nr_pbch_dmrs_correlation() that is lacking signal processing, make the code in pbch simpler and faster 2024-03-26 20:57:31 +01:00
Laurent THOMAS 39400a458e change partially pbch detection to c16_t instead of hidden complex in int16_t and int32_t 2024-03-26 20:57:31 +01:00
Laurent THOMAS 34f260769b make better log text for ue synchronization, make better sync code, no functional change 2024-03-26 20:57:29 +01:00
Laurent THOMAS b97c70fd87 remove 5G dependency on 4G mac.h include, separate RA state enums between 4G/5G and UE/gNB
add RA stat trace by enum name instead of integer printing

fix minor a few minor typos
2024-03-15 10:55:11 +01:00
Laurent THOMAS 77d749ba87 improve function that map ro to ssb in the UE: make dynamic smaller memory allocation than array[max][max][.... Saves about 100MB of memory and avoid real time glitch of milli seconds of memset(110MB) 2024-03-12 09:53:02 +01:00
Laurent THOMAS 1ab3b8dd8e add version signature in core files to be able to compare with the ELF one 2024-03-08 16:29:54 +01:00
Laurent THOMAS 782a850159 tx_timestamp computation doesnt count slots from rx timestamp, and a small simplification just after 2024-03-08 16:29:54 +01:00
Laurent THOMAS c5e4bea6b9 make explicit return of the clock drift to shift the corresponding number of samples
remove corresponding global variables
2024-03-07 15:28:22 +01:00
Laurent THOMAS 4245dd9be9 Remove useless declarations 2024-03-07 09:57:31 +01:00
Laurent THOMAS c5c883f71d small-bug-from-cdb18d38bfa6aee288a68d9e8881615a48addd83-and-one-gcc-warning 2024-03-06 15:44:56 +01:00
Laurent THOMAS 24d30ae78a log module improvement: remove redundant declarations y using C macro, remove unused variables, remove unused log components, move information to smaller visibility 2024-03-06 09:03:20 +01:00
Laurent THOMAS bc6d1ad48d reduce the hot memory for LOG_x decision from 1.2MB to less than one mem page (4KB) 2024-03-06 08:52:34 +01:00
Laurent THOMAS d1002cc729 move declarations out from log.h to a better place 2024-03-06 08:51:24 +01:00
Laurent THOMAS 2129ee3c9c remove global visibility of log variables, remove circular .h dependancy 2024-03-06 08:51:24 +01:00
Laurent THOMAS 2962340a8b Add variable pointer to catch the rx gain between redundant strct members rfdevice and ifdevice 2024-03-04 10:48:13 +01:00
Laurent THOMAS 50d4d489f7 fix timing advance from msg2/rar 2024-03-04 10:07:07 +01:00
Laurent THOMAS c92cbe67b5 fix b210 usrp tx sample error compemsation 2024-03-04 10:07:07 +01:00
Laurent THOMAS 7466297568 move command line sample offset and 3/4 sampling option at top level, as it is common option for 4G,5G xNB and UE 2024-03-04 10:07:07 +01:00
Laurent THOMAS bedc5bea4c remove a gcc warning while making the code a bit simpler 2024-03-04 10:07:07 +01:00
Laurent THOMAS d26f0b9196 add LOG_DDUMP() to dump a buffer in the regular tracing filter system (like PHY, MAC, ...), use it and do simple cleaning (better format) 2024-03-04 10:07:07 +01:00
Laurent THOMAS 56c4a6ec07 change trace to new NR_MAC_DCI and NR_PHY_DCI for DCI processing 2024-03-01 12:20:32 +01:00
Laurent THOMAS 8666b084d5 improve code of dci decoding and add tracing for all dci fields 2024-02-28 10:17:11 +01:00
Laurent THOMAS 948188b200 basic C cleaning of dci decoding 2024-02-27 10:04:45 +01:00
Laurent THOMAS 8e24272a03 Fix multiple errors in nr_dlsch_channel_level_median() and nr_dlsch_channel_level()
UBsan fails with errors without this commit. The commit changes:

- avoid two possible integer overflows in nr_dlsch_channel_level() and nr_dlsch_channel_level_median()
- nr_dlsch_channel_level_median() is simplified
- use MAX_ANT in avg to handle more than 4x4 config
2024-02-22 15:55:10 +01:00
Laurent THOMAS eac30839c6 rework the ul_config_request data structure: put the mutex in correct place and encapsulate the struct management in access API, remove internal storage visibility 2024-01-24 16:14:49 +01:00
Laurent THOMAS 3e9274eed6 simplify and make more efficient the tx data pdu attach to the pusch configuration 2024-01-24 14:18:59 +01:00
Laurent THOMAS cc436a2074 split nr_ue_dl_indication in two different functions, that have little interaction: nr_ue_dl_processing and nr_ue_dl_scheduler. the call remain nr_ue_dl_indication 2024-01-24 12:29:57 +01:00
Laurent THOMAS 7fce30f331 split nr_ue_scheduled_response in nr_ue_scheduled_response_ul and nr_ue_scheduled_response_dl. Make these functions code more readable 2024-01-24 12:24:26 +01:00
Laurent THOMAS 7e244b3da3 make return in ul_config case correct, replace asserts by LOG_E()and return error 2024-01-24 11:41:01 +01:00
Laurent THOMAS 84ade524e4 Simplify interface by removing dcireq_t struct that was only calling one function and remove fill_scheduled_response that also fills only a struct in a complex way 2024-01-23 18:38:11 +01:00
Laurent THOMAS 99815be715 make frame/slot in ul_config dl_config instead of upper structures value, fix modulo computation of frame 2024-01-23 18:04:08 +01:00
Laurent THOMAS 44fd6e4edf simple code cleaning 2024-01-23 16:31:50 +01:00
Laurent THOMAS 58450dff19 add a cpu measurement macro for test purpose 2024-01-23 16:27:34 +01:00
Laurent THOMAS f24cff929e make better version of nr_get_msg3_payload() 2024-01-12 17:56:36 +01:00
Laurent THOMAS 4958f8b6d7 segv on null pointer 2024-01-12 17:55:50 +01:00
Laurent THOMAS b5e169ec07 add const or other simple C code improvement 2024-01-09 16:15:14 +01:00
Laurent THOMAS 4c7b185d92 merge two reduntant and incoherent enums for rnti_type_t, make a macro to stringify properly instead of hardcoded side strings array 2024-01-09 16:15:14 +01:00
Laurent THOMAS 18919576b7 rework PUCCH codec with c16_t type, rewrite large parts of functions to make readable code. Not fixed parts that are using SIMD. No change, the code is still same block by block (variable visibility narrowed, declaration can be shifted) 2024-01-04 10:21:15 +01:00
Laurent THOMAS 63b64d4fce move common code file in common directory
remove several unused files
remove mem_block_t that is never used in a different way than a simple heap buffer
move up IP address type and remove duplications of the same struct declaration
2023-12-19 10:37:10 +01:00
Laurent THOMAS 99413989c9 remove some gibberish C in pdsch encoding 2023-12-12 15:23:55 +01:00
Laurent THOMAS 0875037497 fix a useless computation done in case we activate LOG_D(PHY,... 2023-12-12 14:13:57 +01:00
Laurent THOMAS 175e835d05 update the polar codec function that creates the internal LUTs
to use faster code
- replaced hundreds mallocs by either local arrays or by the OAI multi-dimensionalarray (G_N_tab array)
- made in SIMD a one bit per byte packing function to packed (ordinary) bits in bytes
2023-12-08 17:11:16 +01:00
Laurent THOMAS 99ca87a1c1 Refactor LDPC API to make common API with various implementations 2023-11-28 09:37:37 +01:00
Laurent THOMAS 18951bad4d remove-cblas-oai-5g 2023-11-14 11:47:38 +01:00
Laurent THOMAS dd059343d9 ue-rrc-coarse-cleaning 2023-11-10 17:43:59 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Laurent THOMAS a198239084 Introduce no-thread mode in ITTI
Introduce a --no-itti-threads command line option to disable threading
in ITTI, and call message handlers in the current thread. This is being
introduced in order to increase repeatability when testing the nrUE with
the IQPlayer. Without this feature, runs with the IQPlayer will end up
differently, depending on the timing of ITTI threads, mostly when
sending messages to RRC and NAS.
2023-10-27 13:02:36 +02:00
Laurent THOMAS 724c8c014c Simplify ITTI task definition 2023-10-27 13:02:33 +02:00
Laurent THOMAS 75cc625fe9 Use recursive mutex in PDCP to prevent deadlocks 2023-10-27 13:02:31 +02:00
Laurent THOMAS 1fb68160b0 config: harmonize number array parameters 2023-10-27 13:02:28 +02:00
Laurent THOMAS b257734c6f Fix tPool calls: symmetric to pushing messages
Messages are pushed using pushNotifiedFIFO(), so we pullNotifiedFIFO()
2023-10-27 13:02:24 +02:00
Laurent THOMAS bba9aac079 fix most of doxygen warnings and errors 2023-10-26 16:47:19 +02:00
Laurent THOMAS 4a52b17386 fix-doxygen 2023-10-25 18:10:40 +02:00
Laurent THOMAS 3b57e3ba51 hot-fix-ue-dci-format-11 2023-10-24 13:53:50 +02:00
Laurent THOMAS 6b56b46811 Break UE DCI processing function in smaller pieces 2023-10-12 07:46:45 +02:00
Laurent THOMAS 838b284aa4 remove-global-rx_spatial_power_in_gnb 2023-10-10 15:45:21 +02:00