Compare commits

..

941 Commits

Author SHA1 Message Date
Qizhi Pan
d37e64829b try to merge the encoder branch, but bug exist 2025-08-24 01:03:19 +08:00
Qizhi Pan
3ea2cd8b21 change naming 2025-08-23 09:56:04 +08:00
Qizhi Pan
403b6ec572 clean up version organization a bit -G for grace hopper support, -P for general GPU 2025-08-22 16:54:25 +08:00
Qizhi Pan
e8dd817392 GPU memory version should be finnished 2025-08-20 19:45:03 +08:00
Raymond Knopp
32248a6628 use ldpc shared lib for sizes other than 384 or 384 with less than 9 segments 2025-08-19 16:23:27 +00:00
Qizhi Pan
7ff4813a3d Inter stream problem fixed 2025-08-19 16:15:46 +08:00
Qizhi Pan
360435912d Inter stream problem fixed 2025-08-19 15:44:43 +08:00
Qizhi Pan
6d78852ac0 Add prefetch, the inter stream problem still exists 2025-08-19 15:26:50 +08:00
Qizhi Pan
2ac916a847 Add prefetch, now the performance is quite stable 2025-08-19 14:53:22 +08:00
Qizhi Pan
e1d754322c Modify LDPC decoder to use GPU memory instead of GH200 direct memory 2025-08-19 13:55:24 +08:00
Qizhi Pan
ae492731af half added, try to merge the encoder 2025-08-16 13:29:24 +08:00
Raymond Knopp
9c77c7e513 added check for new tconcat timer 2025-08-15 16:23:46 +00:00
Raymond Knp
bdc8e1efa1 more optimization of segement concatenation at output of encoder 2025-08-15 16:41:09 +02:00
Raymond Knopp
b51697c2c1 128-bit NEON optimizations for input and output data formatting 2025-08-15 09:15:56 +00:00
Raymond Knopp
a3adab8312 added missing file for cuda encoder 2025-08-08 15:34:21 +00:00
Raymond Knopp
e4d3520648 add ldpc_encoder32.c. Cleanup of commented code in cuda encoder host functions 2025-08-08 15:32:59 +00:00
Raymond Knopp
3420c2df41 interleaver optimization 2025-08-08 08:27:36 +00:00
Raymond Knopp
7831e52798 handling of multiple 32-bit segment groups, segment interleaving/deinterleaving optimization 2025-08-07 16:45:48 +00:00
Qizhi Pan
701fd5a755 update encoder 2025-08-07 23:20:26 +08:00
Qizhi Pan
28dcbb49f8 Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-07-31 08:39:47 +00:00
Qizhi Pan
42931472a5 version v1 with parallel bug 2025-07-31 08:34:34 +00:00
Qizhi Pan
55a4a0632a version v1 with parallel bug 2025-07-29 19:28:23 +00:00
Qizhi Pan
5305698b78 Parallel version basically done. Not stable performance 2025-07-28 14:58:10 +00:00
Aida Teshome Teressa
c4f8bb6cd0 CUDA stream version almost done, need to fix the parallerl collision and high SNR error 2025-07-26 14:43:02 +00:00
Aida Teshome Teressa
ca968bbf8f building cuda streaming now 2025-07-23 09:15:25 +00:00
Aida Teshome Teressa
b5b3e53a70 one scheduler done, now working on multiple streams 2025-07-22 14:25:01 +00:00
Aida Teshome Teressa
980b29415b One big scheculer works but not equivalent BLER performance, need to improved 2025-07-22 09:38:02 +00:00
Aida Teshome Teressa
8fb4cbedd7 -P option added, runs in CUDA stream, need debug 2025-07-21 14:06:48 +00:00
Aida Teshome Teressa
00ac9f0469 Now the parity check is on GPU now 2025-07-17 11:20:35 +00:00
panq from NVIDIA H200
2b6781a017 Bn to Cn is now on GPU too, only the parity check need to work on 2025-07-15 18:13:12 +00:00
panq from NVIDIA H200
03e3fc8b1f cn2bnProcBuf is now in the CnProc part 2025-07-14 12:50:54 +00:00
panq from NVIDIA H200
def1f3ac38 slight agjustment 2025-07-08 13:12:56 +00:00
panq from NVIDIA H200
e478d2ab28 Bn_Proc done 2025-07-08 09:15:35 +00:00
panq from NVIDIA H200
7624903bce change cn_proc to a big kernel 2025-07-02 12:59:36 +00:00
panq from NVIDIA H200
61b48a8e6b add some profiling 2025-06-27 10:10:00 +00:00
Raymond Knopp
b0cf5e4b27 generator for single-worker 2025-06-14 14:43:26 +00:00
panq from NVIDIA H200
838bbdf7db add option for lower version gpu(need cudaMalloc; need cudastream); make the code more readable; some debug traces remaining 2025-06-11 15:01:42 +00:00
panq
c2856440ae not use mem_manage 2025-06-10 11:36:07 +02:00
panq
39399f1a0c use mem_manage 2025-06-10 11:35:42 +02:00
panq
2f091764d2 use mem_manage 2025-06-10 11:31:34 +02:00
panq
af1a5d59a2 dump first output 2025-06-10 11:17:54 +02:00
panq
069463a3d5 128 dump 2025-06-10 11:14:11 +02:00
panq
e46f16ae60 use unified memory, no memcpy 2025-06-10 11:11:01 +02:00
panq
4200f98fcf use unified memory, no memcpy 2025-06-10 11:09:57 +02:00
panq
8d6279a9f8 use unified memory 2025-06-10 11:05:45 +02:00
panq
699ba0932a use unified memory 2025-06-10 11:03:09 +02:00
panq
9989516b6b use unified memory 2025-06-10 10:58:19 +02:00
panq
9247017f06 use unified memory 2025-06-10 10:51:55 +02:00
panq
ad6df4870a testing 2025-06-10 10:48:22 +02:00
panq
1422e7b5ad remove memcpy 2025-06-10 10:41:50 +02:00
panq
050c0e061d remove memcpy 2025-06-10 10:40:22 +02:00
panq
f8752d1485 remove memcpy 2025-06-10 10:39:10 +02:00
panq
83f4c6ea17 remove memcpy 2025-06-10 10:37:22 +02:00
panq
7244a33dc6 works properly version 2025-06-10 10:34:57 +02:00
panq
c123a0499b works properly version 2025-06-10 10:32:29 +02:00
panq
00a2dda48b debug 2025-06-10 10:26:14 +02:00
panq
205e92071a debug 2025-06-10 10:22:41 +02:00
panq
ce6225bd1f debug 2025-06-10 10:11:31 +02:00
panq
9a74fb2b47 debug 2025-06-10 10:07:51 +02:00
panq
8223e61ec1 debug 2025-06-10 10:04:53 +02:00
panq
78d93ff335 debug 2025-06-10 10:03:18 +02:00
panq
ff551fb902 debug 2025-06-10 09:54:07 +02:00
panq from NVIDIA H200
dcb668593a dump data 2025-06-10 07:45:28 +00:00
panq
08a6979191 debug 2025-06-10 09:41:22 +02:00
panq
712e8bbc9f debug 2025-06-10 09:40:08 +02:00
panq
e3b652b8ff debug 2025-06-10 09:25:31 +02:00
panq
6e2b6dd2f4 debug 2025-06-10 09:22:05 +02:00
panq
321bc27b67 debug 2025-06-10 09:18:23 +02:00
panq
695e4e6044 debug 2025-06-10 09:07:54 +02:00
panq
ad09d09ea0 debug 2025-06-10 08:48:10 +02:00
panq
5c4b1cc0be debug 2025-06-10 08:46:46 +02:00
panq
0bfd05ee35 debug 2025-06-10 08:29:27 +02:00
panq
0f81225abc debug 2025-06-10 08:25:36 +02:00
panq
307413ce24 debug 2025-06-10 08:19:58 +02:00
panq
de92c277b5 debug 2025-06-10 00:29:06 +02:00
panq
fc130034f5 debug 2025-06-10 00:25:53 +02:00
panq
1e73d9fa17 debug 2025-06-09 23:58:10 +02:00
panq
714707bbe3 debug 2025-06-09 23:51:28 +02:00
panq
147dc8998f debug 2025-06-09 23:47:30 +02:00
panq
3b2359dc0d debug 2025-06-09 23:34:50 +02:00
panq
17db765c19 Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 23:18:56 +02:00
panq
299a6167ab debug 2025-06-09 23:18:48 +02:00
panq from NVIDIA H200
9c8f25448a dump data 2025-06-09 20:55:58 +00:00
panq
d824a5deef debug 2025-06-09 22:53:25 +02:00
panq
b12d46b7d6 debug 2025-06-09 22:43:18 +02:00
panq
ba61b16dc6 debug 2025-06-09 22:39:17 +02:00
panq
64e1704c2a Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 22:31:52 +02:00
panq
38422eff50 debug 2025-06-09 22:31:42 +02:00
panq from NVIDIA H200
75e707b893 dump data 2025-06-09 20:26:35 +00:00
panq
28856b9f6a debug 2025-06-09 22:20:21 +02:00
panq
c740ba54a5 debug 2025-06-09 22:13:33 +02:00
panq
baa5843cc6 debug 2025-06-09 22:11:28 +02:00
panq
d52c5dcae1 debug 2025-06-09 21:59:05 +02:00
panq
010f5e4b04 debug 2025-06-09 21:56:24 +02:00
panq
52a6da8b85 debug 2025-06-09 21:55:21 +02:00
panq
94dbe1f946 Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 21:24:29 +02:00
panq
215365ca87 for debug 2025-06-09 21:24:16 +02:00
panq from NVIDIA H200
11414c35b0 dump data 2025-06-09 13:52:39 +00:00
panq
aedd4a9a69 debug 2025-06-09 15:48:20 +02:00
panq
6d76d2d889 debug 2025-06-09 15:31:50 +02:00
panq from NVIDIA H200
8e1e40a13d dump date 2025-06-09 13:22:17 +00:00
panq
6988f7015e debug 2025-06-09 15:20:00 +02:00
panq
efbc20b6ff debug 2025-06-09 15:18:00 +02:00
panq
df38dff948 debug 2025-06-09 15:05:27 +02:00
panq
085a9b2c0a Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 15:02:06 +02:00
panq
ccf529ad3d debug 2025-06-09 15:01:59 +02:00
panq from NVIDIA H200
84af1bbf7c dump data 2025-06-09 12:55:12 +00:00
panq
f575917922 debug 2025-06-09 14:53:54 +02:00
panq
e92d6a85f9 Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 14:52:36 +02:00
panq
6ac7a5d23d debug 2025-06-09 14:52:29 +02:00
panq from NVIDIA H200
f86edbc6dc dump data 2025-06-09 12:14:35 +00:00
panq
49a25f33fb debug 2025-06-09 14:13:17 +02:00
panq
4a948dad5a Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 14:10:37 +02:00
panq
c8e6c05b3f debug 2025-06-09 14:10:25 +02:00
panq from NVIDIA H200
4f2e735f5b dump data 2025-06-09 11:57:15 +00:00
panq
8160dd3f0d debug 2025-06-09 13:55:38 +02:00
panq from NVIDIA H200
2fc3cdf2b8 dump data 2025-06-09 11:51:30 +00:00
panq
6c97af2bae Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-09 13:48:30 +02:00
panq
77d361aa21 debug 2025-06-09 13:48:18 +02:00
panq from NVIDIA H200
f63dac6e76 dump data 2025-06-08 13:48:49 +00:00
panq
de64521228 change address 2025-06-08 15:46:55 +02:00
panq
8e6d8a1c4f change address 2025-06-08 15:36:13 +02:00
panq
7d63abd14c change address 2025-06-08 15:32:34 +02:00
panq
1a0c3764a4 change address 2025-06-08 15:28:19 +02:00
panq
79c03ae4b5 fix lut 2025-06-08 13:49:00 +02:00
panq
264b522fd2 check input 2025-06-08 13:05:10 +02:00
panq
7da4543ca8 check input 2025-06-08 12:58:18 +02:00
panq
f69b11bd0f check input 2025-06-08 12:54:36 +02:00
panq from NVIDIA H200
0e188111b1 check dump file 2025-06-08 10:31:58 +00:00
panq
12c5b054f5 debugging 2025-06-08 12:29:10 +02:00
panq
65d5cc8ac0 debugging 2025-06-08 12:24:10 +02:00
panq
7a76b6adb9 debugging 2025-06-08 12:19:42 +02:00
panq
a41a3a7bbe debugging 2025-06-08 12:16:55 +02:00
panq
fc72657bf5 fix lut 2025-06-08 12:07:36 +02:00
panq
e0a97a23be fix lut 2025-06-08 12:03:39 +02:00
panq
20725355c8 fix lut 2025-06-08 12:01:55 +02:00
panq
1f6a943c63 fix lut 2025-06-08 12:00:13 +02:00
panq
4376de5e13 Merge branch 'ldpc_decoder_cuda' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc_decoder_cuda 2025-06-08 11:55:25 +02:00
panq
128eccf84b fix lut 2025-06-08 11:54:04 +02:00
panq from NVIDIA H200
898be9efb7 debug 2025-06-08 09:00:03 +00:00
panq
a806f7d847 debug 2025-06-08 10:49:14 +02:00
panq from NVIDIA H200
0e3aa00687 debug 2025-06-08 08:38:51 +00:00
panq from NVIDIA H200
02a9023d26 dump data 2025-06-08 08:02:46 +00:00
panq from NVIDIA H200
e5022f03db check dump result 2025-06-08 07:08:22 +00:00
panq from NVIDIA H200
b97a0a8ed0 kernel launch successfully but input is not correct. Fixing it 2025-06-07 20:15:41 +00:00
panq from NVIDIA H200
b8b0ae1808 debugging, cn_Proc can run but not corecctly functionning 2025-06-07 12:00:28 +00:00
panq from NVIDIA H200
b417019711 two dummy file for debug 2025-06-06 10:03:21 +00:00
panq from NVIDIA H200
23ce9c98e2 add no stream version 2025-06-06 08:04:58 +00:00
Raymond Knopp
4ac89e6d46 removed ldpc_encoder generated file 2025-06-05 07:33:59 +00:00
Qizhi Pan
32a800bbd2 Merge branch 'ldpc_encoder_test' into 'ldpc_decoder_cuda'
LDPC cuda cn_Proc parts successfully work in the ldpctest

See merge request oai/openairinterface5g!3469
2025-06-05 07:33:07 +00:00
panq from NVIDIA H200
949115e4f0 cuda_decoder first test succeed 2025-06-04 17:33:32 +00:00
panq from NVIDIA H200
a06ad04366 encoder works so far 2025-06-04 14:31:36 +00:00
Raymond Knopp
1c8f88bbb8 added ifdef for unified CPU/GPU memory configuration (e.g. Gracehopper). 2025-06-01 21:22:34 +00:00
Raymond Knopp
2ad88ae0f3 initial implementation of 32-segment interleaved LDPC encoder for NVidia GPU (CUDA). functionally correct and integrated in existing CUDA library. Works only BG1 Zc 384. Integrated into ldpctest 2025-06-01 10:34:20 +00:00
Raymond Knopp
b6a67635ee change to CODING/CMakeLists.txt 2025-05-30 13:01:45 +00:00
Raymond Knopp
3cf8f6344c added initial CUDA implementation (and code generator) for ldpc encoder 2025-05-30 12:56:44 +00:00
panq from NVIDIA H200
050a231b55 cuda version nrLDPC_cn_Proc_BG1.cu 2025-05-29 12:44:52 +00:00
panq from NVIDIA H200
17c4d20042 first commit 2025-05-29 12:29:39 +00:00
Robert Schmidt
bab05384a4 Merge branch 'integration_2025_w22' into 'develop'
Integration: `2025.w22`

Closes #832

See merge request oai/openairinterface5g!3452

* !3415 several fixes and cleanup for nrLDPC_coding_t2
* !3448 T: macpdu2wireshark: dump to file instead of sending UDP packets
* !3449 bugfix: pass correct buffer
* !3453 CI: revert modification of SSB per RACH occasion in SC-FDMA test
* !3440 Update NAS documentation
* !3451 fix the number of preambles per SSB at UE in case PRACH is configured with groupB
* !3441 Replace hashtable with epoll_event_t in rfsimulator
* !3277 Add CI test to force RRC IDLE and new connection setup with 5G-S-TMSI
* !3454 Keep old MAC stats after re-establishment
* !3450 Make number of UL/DL actors in NR UE fully configurable
* !3458 (doc): update README with build icons for dedicated arch and os
2025-05-28 22:03:09 +00:00
Robert Schmidt
714b223a95 Merge remote-tracking branch 'origin/readme-update' into integration_2025_w22 (!3458)
(doc): update README with build icons for dedicated arch and os
2025-05-28 14:57:04 +02:00
Robert Schmidt
68b4535328 Merge remote-tracking branch 'origin/configure-actor-framework' into integration_2025_w22 (!3450)
Make number of UL/DL actors in NR UE fully configurable

Due to different processing requirements on different CPUs it might be
beneficial to enable the users to set the number of UL/DL actors.

Allow disabling UL/DL actor frameworks and processing inline or setting
the number of DL/UL threads with --num-ul-actors/num-dl-actors

This was tested to work with 0 UL/DL actors with rfsim.
2025-05-28 14:56:38 +02:00
arora
6574bc2c61 (doc): update README with build icons for dedicated arch and os
Signed-off-by: arora <sagar.arora@openairinterface.org>
2025-05-28 10:09:23 +02:00
Bartosz Podrygajlo
56330fde7c Make number of UL/DL actors in NR UE fully configurable
Due to different processing requirements on different CPUs it might
be beneficial to enable the users to set the number of UL/DL actors.

Allow disabling UL/DL actor frameworks and processing inline or
setting the number of DL/UL threads with --num-ul-actors/num-dl-actors

This was tested to work with 0 UL/DL actors with rfsim.
2025-05-28 07:49:10 +02:00
Raymond Knopp
6856460923 added entry LDPC encoder routines for CUDA parity check implementation. Limited to BG1 Zc=384 for now. Also, left unoptimized interleaving of input for 32-bit. Will do after with SIMD bit-interleaving. 2025-05-27 21:19:42 +00:00
Jaroslava Fiedlerova
b68d63e8ba Merge remote-tracking branch 'origin/reestablishment_keep_stats' into integration_2025_w22 (!3454)
Keep old MAC stats after re-establishment
2025-05-27 19:32:09 +02:00
Jaroslava Fiedlerova
e84b567a88 Merge remote-tracking branch 'origin/add-ci-ue-rrc-idle-test' into integration_2025_w22 (!3277)
Add CI test to force RRC IDLE and new connection setup with 5G-S-TMSI

This MR is a follow up to !2725 (merged)..

The primary goal is to introduce a CI test that enforces the following behavior:
- Forces the UE to enter RRC_IDLE state.
- Validates the UE's re-connection procedure using the 5G-S-TMSI as the UE
  identity.
2025-05-27 19:30:08 +02:00
Raymond Knopp
9a76f26b91 added first version of generator for CUDA LDPC encoder code 2025-05-27 13:31:38 +00:00
Jaroslava Fiedlerova
5dd1bea5da Merge remote-tracking branch 'origin/fix_ue_groupB_preambles' into integration_2025_w22 (!3451)
fix the number of preambles per SSB at UE in case PRACH is configured with groupB

To fix an issue reported in the mailing list related to UE configured by a 3rd
party gNB with groupB PRACH
2025-05-27 12:50:54 +02:00
Jaroslava Fiedlerova
b69bc8cb5a Merge remote-tracking branch 'origin/rfsim-cleanup' into integration_2025_w22 (!3441)
Replace hashtable with epoll_event_t in rfsimulator

Replace the FD <-> buffer_t hashtable with epoll_event_t mapping. This
simplifies the code, reduces the probability of memory leaks, and removes
a possible data race on the hashtable during rfsimulator shutdown.
2025-05-27 12:49:46 +02:00
Jaroslava Fiedlerova
63f3a6fa51 Merge remote-tracking branch 'origin/nas-documentation' into integration_2025_w22 (!3440)
Update NAS documentation

This MR is updating the NAS documentation w.r.t the latest code refactoring and
current design.
2025-05-27 12:47:31 +02:00
Bartosz Podrygajlo
8f9b89925e Replace hashtable with epoll_event_t in rfsimulator
Replace the FD <-> buffer_t hashtable with epoll_event_t mapping.
This simplifies the code, reduces the probability of memory leaks and removes a
possible data race on the hashtable during rfsimulator shutdown.
2025-05-27 10:01:52 +02:00
francescomani
09543b3255 copy stats to new UE during re-establishment 2025-05-27 09:54:00 +02:00
Guido Casati
1b84bd8b65 Update README.md 2025-05-27 08:46:41 +02:00
Guido Casati
16740e5eb0 Use UL NAS Count to derive KgNB (6.8 of 3GPP TS 33.501)
The UE shall use the currently stored UL NAS count to derive the
KgNB. Hardcoding the UL count to 0 is wrong, if there is a reset
to be done it should be explicitly done elsewhere.

Closes #832
2025-05-26 17:05:00 +02:00
Guido Casati
d405cbb77f Handle security header type "integrity protected with new 5G NAS security context"
The Security Mode Command is the only NAS message sending a security header
type "integrity protected with new 5G NAS security context". Such header
type is indicating that there is no valid security context and it is
indicating the current one configured by the AMF.

When receiving a Security Mode Command the "AMF shall reset the downlink NAS COUNT"
and use it to integrity protect the initial Security Mode Command. "The AMF shall
send the SECURITY MODE COMMAND message unciphered, but shall integrity protect [...]
The AMF shall set the security header type of the message to
"integrity protected with new 5G NAS security context".

See 5.4.2.2 3GPP TS 24.501.

This commit is ensuring the NAS DL count is reset when the relevant security header
is received. Also, the security container is deleted since no more valid and
NAS_SECURITY_NO_SECURITY_CONTEXT is returned. The setup of the new security context
is done by "handle_security_mode_command",
2025-05-26 17:05:00 +02:00
Guido Casati
f672d9088c Simplify handling of security check of received NAS messages
NAS 3GPP TS 24.501 clause 4.4.4.2 specify which NAS messages
are an exception to the integrity protection. All the other
scenarios are expected to be integrity protected. The
nas_security_rx_process function is returning:

1) NAS_SECURITY_NO_SECURITY_CONTEXT if no security context is established
2) NAS_SECURITY_UNPROTECTED for the messages listed in 4.4.4.2
3) NAS_SECURITY_INTEGRITY_PASSED if the integrity check is successful

These 3 results can be all considered successful. The other not.

Also, add a function to check whether a message is allowed to be
integrity unprotected, as per clause 4.2.2.2.
2025-05-26 17:05:00 +02:00
Guido Casati
e651a29a2a Use byte_array_t in nas_security_rx_process 2025-05-26 17:05:00 +02:00
Guido Casati
7f96a04c1b Add handler for NAS Identity Request
* trigger Identity Response callback from the handler
* process decoded message

According to 4.4.4.2 3GPP TS 24.501, Identity Request
with Identity Type SUCI is not expected to be
integrity protected.
2025-05-26 17:05:00 +02:00
Guido Casati
330b8dc8fa Add library for NAS Identity Request
* Add Identity Request decoding function
* Define type for Identity Type NAS IE
* Target include directory in NAS IEs CMakeLists.txt (for NAS utils)
2025-05-26 17:05:00 +02:00
Guido Casati
737b2f44c4 Print NAS_DOWNLINK_DATA_IND message type content
The information about the payload carried by NAS DOWNLINK is helpful
in the logging and also for debugging purposes, therefore it was
added in this commit by enabling the already existing relevant function.
2025-05-26 17:05:00 +02:00
Guido Casati
4129619714 Bugfix in nas_security_rx_process: process first the security type and then the header length
This commit restores the behaviour before the changes introduced in 611c0554. The NAS
Deregistration Accept message is unprotected, therefore the function will return
NAS_SECURITY_UNPROTECTED that would then be considered as NAS_SECURITY_INTEGRITY_PASSED

Unprotected message have a plain header of 3 octets, however security protected messages
have a 7 octets header.
2025-05-26 17:05:00 +02:00
Guido Casati
f7a04de762 Add ciUE telnet command to trigger UE initiated deregistration 2025-05-26 17:05:00 +02:00
Guido Casati
bcab56afb4 sdap_tun_read_thread(): handle and log different errno 2025-05-26 17:05:00 +02:00
Guido Casati
844986ff92 SDAP: close TUN socket to unblock thread and clean interface shutdown
* Close entity->pdusession_sock manually before pthread_join() to unblock sdap_tun_read_thread()
* Update tun_destroy() to open a fresh socket for interface management, independent from the data socket
* Fix check on success of change_interface_state() in tun_destroy(): is a boolean
* Handle ENODEV error when bringing interface down: treat as success if the interface is already gone.
* tun_destroy() is now handling INTERFACE_DOWN, so `INTERFACE_DOWN` in `tun_config()` is no longer needed
2025-05-26 17:05:00 +02:00
Guido Casati
ad2a8a8991 Add 5 tests to force RRC_IDLE in a row in 5g_rfsimulator_24prb pipeline 2025-05-26 17:04:55 +02:00
Jaroslava Fiedlerova
c4617371f8 Merge remote-tracking branch 'origin/sabox-test-revert' into integration_2025_w22 (!3453)
CI: revert modification of SSB per RACH occasion in SC-FDMA test

This MR reverts the parameter ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR back
to 4, undoing the change introduced in commit a4f9a7a6. The initial modification
was made as a potential fix for a reestablishment failure observed in the SC-FDMA
test case of the SABOX-B200 pipeline. However, further validation has shown that
this parameter was not the root cause of the issue.
2025-05-26 16:06:04 +02:00
francescomani
f84ec1340c limit the number of preambles per SSB at UE in case PRACH is configured with groupB 2025-05-26 15:32:01 +02:00
Jaroslava Fiedlerova
8e2fcc900e Merge remote-tracking branch 'origin/bugfix-lte-bad-uecapabilities' into integration_2025_w22 (!3449)
bugfix: pass correct buffer
2025-05-26 12:44:32 +02:00
Jaroslava Fiedlerova
3d78eb8426 Merge remote-tracking branch 'origin/macdpu2wireshark-big-traces' into integration_2025_w22 (!3448)
T: macpdu2wireshark: dump to file instead of sending UDP packets

In NR with several layers, we may have MAC PDU of size bigger than 64KB,
which does not fit into a UDP buffer, destroying macpdu2wireshark.

Let's add an option to dump to a pcap file instead of using UDP packets.
The DLT 252 magic is used (check wireshark documentation to understand).
Run macpdu2wireshark with -h to see how to configure wireshark to read
the produced files.
2025-05-26 12:43:43 +02:00
Jaroslava Fiedlerova
afb138420b Merge remote-tracking branch 'origin/fix_nrLDPC_coding_t2' into integration_2025_w22 (!3415)
several fixes and cleanup for nrLDPC_coding_t2

Newer DPDK driver versions may directly provide the internal HW mbuf in the
dequeued structure. So don't try to free the mbufs from that dequeued structure,
but the ones we allocated. Also, this mbuf has an offset to its output data, we
must consider this when accessing the output data.

Main contents of this MR:
- support newer DPDK versions
- make sure to free allocated mbufs
- fix q_bufs memory leak
- use rte_pktmbuf_mtod_offset() to consider offset when accessing output data
- convert the correct number of LLRs from 16 Bit to 8 Bit
- remove unused variables and functions
- some more code cleanup
2025-05-26 12:41:22 +02:00
Jaroslava Fiedlerova
549c71c32c CI: revert modification of SSB per RACH occasion in SC-FDMA test
Set ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR parameter back to 4,
revert modification done in a4f9a7a6d4.
2025-05-26 12:25:27 +02:00
Cedric Roux
b815c8648c bugfix: pass correct buffer 2025-05-23 16:57:38 +02:00
Cedric Roux
ae650bc9ea T: macpdu2wireshark: dump to file instead of sending UDP packets
In NR with several layers, we may have MAC PDU of size bigger than 64KB,
which does not fit into a UDP buffer, destroying macpdu2wireshark.

Let's add an option to dump to a pcap file instead of using UDP packets.
The DLT 252 magic is used (check wireshark documentation to understand).
Run macpdu2wireshark with -h to see how to configure wireshark to read
the produced files.
2025-05-23 11:07:26 +02:00
Guido Casati
278a0bcc67 Update USIM section in 5GS NAS documentation 2025-05-20 15:46:08 +02:00
Guido Casati
4eb55f83ab Remove gNB NAS documentation section: noCore function is no longer supported 2025-05-20 15:18:07 +02:00
Guido Casati
6638839177 Update NAS documentation with information about NAS 5GS and OAI implementation status 2025-05-20 15:16:25 +02:00
Thomas Schlichter
b264ddc1ec nrLDPC_coding_t2 fix: convert the correct number of LLRs from 16 Bit to 8 Bit 2025-05-20 08:55:31 +00:00
Thomas Schlichter
073a705720 nrLDPC_coding_t2: minor cleanup 2025-05-20 08:55:30 +00:00
Thomas Schlichter
ffb8e8ff37 nrLDPC_coding_t2: nb_TBs is of type int 2025-05-20 08:53:57 +00:00
Thomas Schlichter
c3d0b2db5c nrLDPC_coding_t2 fix: use rte_pktmbuf_mtod_offset() to consider offset when accessing output data 2025-05-20 08:51:37 +00:00
Thomas Schlichter
944ac15ab5 nrLDPC_coding_t2: allocate array of rte_bbdev_dec_op pointers on stack instead of heap 2025-05-20 08:00:36 +00:00
Thomas Schlichter
2df487fc8b nrLDPC_coding_t2: use rte_bbdev_op_type_str() instead of hardcoded array of strings 2025-05-20 08:00:36 +00:00
Thomas Schlichter
af7054554b nrLDPC_coding_t2: make parameters for set_ldpc_dec_op() more smilar to set_ldpc_enc_op() 2025-05-20 08:00:36 +00:00
Thomas Schlichter
d442461bd1 nrLDPC_coding_t2: remove unused start_idx from set_ldpc_enc_op() and set_ldpc_dec_op() 2025-05-20 08:00:35 +00:00
Thomas Schlichter
b5c9e13df3 nrLDPC_coding_t2: remove unused #define HARQ_INCR 2025-05-20 07:57:23 +00:00
Thomas Schlichter
07ff8a27c4 nrLDPC_coding_t2: remove unused functions mbuf_reset() and check_bit() 2025-05-20 07:57:23 +00:00
Thomas Schlichter
c1e057bc8b nrLDPC_coding_t2: remove unused atomic variables nb_dequeued and processing_status 2025-05-20 07:57:23 +00:00
Thomas Schlichter
adbf056abb nrLDPC_coding_t2: remove unused global variable m_head 2025-05-20 07:57:23 +00:00
Thomas Schlichter
4dde956e84 nrLDPC_coding_t2: remove unused vector_mask 2025-05-20 07:57:23 +00:00
Thomas Schlichter
b02e6e8ddd nrLDPC_coding_t2: inline and remove now nearly empty init_test_op_params() 2025-05-20 07:57:23 +00:00
Thomas Schlichter
ea7e6ffb0b nrLDPC_coding_t2: remove unused num_to_process 2025-05-20 07:57:23 +00:00
Thomas Schlichter
73c6d1fb62 nrLDPC_coding_t2: remove unused burst_sz 2025-05-20 07:57:23 +00:00
Thomas Schlichter
f47b549f41 nrLDPC_coding_t2: remove unused rte_bbdev_dec_op from test_op_params and thread_params 2025-05-20 07:57:23 +00:00
Thomas Schlichter
e45aff7763 nrLDPC_coding_t2: replace global mp_dec and mp_enc by bbdev_op_pool in thread_params 2025-05-20 07:57:23 +00:00
Thomas Schlichter
300346c43a nrLDPC_coding_t2: replace global q_bufs by struct data_buffers on stack 2025-05-20 07:57:23 +00:00
Thomas Schlichter
48e78ff4b0 nrLDPC_coding_t2: fix q_bufs memory leak 2025-05-20 07:57:23 +00:00
Thomas Schlichter
ac9a8f017b nrLDPC_coding_t2 fix: make sure to free allocated mbufs
The DPDK driver may directly provide the internal HW mbuf in the dequeued structure.
So don't try to free the mbufs from that dequeued structure, but the ones we allocated.
2025-05-20 07:57:21 +00:00
Thomas Schlichter
1612ba33a8 nrLDPC_coding_t2: remove unused soft_outputs, harq_inputs and harq_outputs elements 2025-05-20 07:56:26 +00:00
Thomas Schlichter
d8b3bfd17b nrLDPC_coding_t2: use nb_segments_decoding() and nb_segments_encoding() to calculate num_segments 2025-05-20 07:56:24 +00:00
Thomas Schlichter
084bbb0363 nrLDPC_coding_t2: also support newer DPDK versions 2025-05-20 07:54:12 +00:00
Robert Schmidt
b2c9a1d2b5 Merge branch 'integration_2025_w20' into 'develop'
Integration: `2025.w20`

Closes #826 and #884

See merge request oai/openairinterface5g!3438

* !3168 Improvements for LDPC encoding
* !3386 E1 Bearer Context Release enc/dec lib and unit test
* !3394 Fix Liteon with MTU 1500 and update the FHI docs
* !3437 CI: RFsim F1/HO: Use hanging-workaround to avoid blocking of second client
* !3384 Add enc/dec library and unit test for E1 Bearer Context Modification Failure
* !3418 Use common function to generate CSI-RS signal
* !3379 Add physim tests into ctest framework
* !3420 Added intercommunication between namespaces
* !3422 Tutorials: updates for NR SA Tutorials
* !3436 Beam switching small fixes
* !3439 Fix RRC resources periodicity determination according to number of slots per period
* !3434 Remove EPC/UE main.py parameters
* !3423 Fix PDSCH and PUSCH BWP Start and Size when PXSCH is scheduled with a DCI format x_0 in any type of PDCCH common search space
* !3442 Fix UL chanel estimates mapping in 2-layer MMSE receiver
2025-05-20 05:46:54 +00:00
Robert Schmidt
4a722c01d1 Revert "CI: Conf file adjustment to improve UL throughput in SA-2x2 pipeline"
This reverts commit 69be78254f.
2025-05-19 16:10:07 +02:00
Robert Schmidt
3ff01b085a Merge remote-tracking branch 'origin/sa-2x2-test' into integration_2025_w20 (!3442)
Fix UL chanel estimates mapping in 2-layer MMSE receiver

This MR addresses a degradation in UL throughput observed in 4x4 MIMO
tests, starting from 2025.w17.

The issue was traced to incoherent indexing in the ul_ch_estimates_ext
when handling 4-antenna UL configurations.
2025-05-19 16:09:12 +02:00
Jaroslava Fiedlerova
b4d35845dc Fix UL chanel estimates mapping in 2-layer MMSE receiver
Resolve issue introduced in 7982a9da41.
2025-05-19 15:08:33 +02:00
Robert Schmidt
04af07fee0 Merge remote-tracking branch 'origin/Fix_xlsch_bwp_start_size' into integration_2025_w20 (!3423)
Fix PDSCH and PUSCH BWP Start and Size when PXSCH is scheduled with a DCI format x_0 in any type of PDCCH common search space

- Fix PDSCH and PUSCH BWP Start and Size when PDSCH/PUSCH is scheduled
  with a DCI format x_0 in any type of PDCCH common search space
- Fix resource block assignment information (RIV field) for DCI format
  x_0 when scheduling in any type of PDCCH common search space
2025-05-19 12:19:10 +02:00
Robert Schmidt
fc756f758d Merge remote-tracking branch 'origin/ci-remove-ue-main-parameters' into integration_2025_w20 (!3434)
Remove EPC/UE main.py parameters
2025-05-19 12:18:41 +02:00
Robert Schmidt
0f094a5a57 Remove any usage of UE* main.py parameters
The parameter is not used. Remove them.
2025-05-19 11:42:11 +02:00
Robert Schmidt
c4bc119732 Merge remote-tracking branch 'origin/fix_periodicityoffset' into integration_2025_w20 (!3439)
Fix RRC resources periodicity determination according to number of slots per period

Otherwise we may end up in scenarios where some channels would end in
the wrong TDD slot type
2025-05-19 11:36:37 +02:00
Robert Schmidt
90383b85fe Merge remote-tracking branch 'origin/prevent_beam_switch' into integration_2025_w20 (!3436)
Beam switching small fixes

To prevent activation of beam switching when not required
2025-05-19 11:36:16 +02:00
francescomani
58d0747a29 fix RRC resources periodicity determination according to number of slots per period 2025-05-17 13:34:07 +02:00
Robert Schmidt
4f1eabd088 Merge remote-tracking branch 'origin/NR_SA_Tutorials' into integration_2025_w20 (!3422)
Tutorials: updates for NR SA Tutorials

- Update links for the latest Ubuntu 24.04.2 LTS iso file
- Update docker install to the latest instructions on the official
  website
- Update UHD to v4.8.0.0
- 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
    oai/cn5g/oai-cn5g-amf!343
2025-05-17 12:08:13 +02:00
Robert Schmidt
458db98df9 Merge remote-tracking branch 'origin/multi-ue-script' into integration_2025_w20 (!3420)
Added intercommunication between namespaces

Added intercommunication between namespaces to support sidelink
communication between nearby UEs.
2025-05-17 12:07:43 +02:00
Robert Schmidt
918ea49686 Merge remote-tracking branch 'origin/phy_simulators_ctest' into integration_2025_w20 (!3379)
Add physim tests into ctest framework

Convert physim testcases listed in
cmake_targets/autotests/test_case_list.xml into ctest. Note: Tests for
dlsim_tm4 are excluded, due to compilation issues.

CTest evaluates success based on return code: '0' = pass, non-zero =
fail. For some simulators, the return code is non-zero even when the
test is successful (as indicated by success messages in the test logs).
For some simulators, the return code is always '0'. This inconsistency
has been address in the first two commits of this MR.

To build and execute these tests:

- using cmake

    cd openairinterface5g
    mkdir build && cd build # you can also do that in cmake_targets/ran_build/build
    cmake .. -GNinja -DENABLE_PHYSIM_TESTS=ON && ninja tests
    ctest

- using build_oai: physim-related ctests are activated when PHY
  simulators are built (use build_oai with '-P' or '--phy_simulators'
  option)

    cd openairinterface5g/cmake_targets
    ./build_oai --ninja --phy_simulators
    cd ran_build/build
    ctest

Link to newly created 4g and 5g RAN-Physim-Cluster pipelines:

- RAN-Physim-Cluster-4G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-4G/
- RAN-Physim-Cluster-5G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-5G/
2025-05-17 12:05:27 +02:00
Jaroslava Fiedlerova
c861dcb7d0 Add doc on how to rerun failed CI physim test 2025-05-16 16:38:54 +02:00
rmagueta
4c41387bd4 Improve physim documentation: structure, ctest usage, and clarity 2025-05-16 16:38:54 +02:00
Jaroslava Fiedlerova
4f64dd98ee CI: split RAN-Physim-Cluster pipeline into 4G and 5G 2025-05-16 16:38:54 +02:00
Jaroslava Fiedlerova
1de7e0541c CI: adjust tested SNR for nr_pucchsim
Initially we were testing SNR from -3 to 7 dB, in recent runs PUCCH test
succeeds at SNR = 0 or 1 dB. Starting at higher SNR helps to reduce test
runtime. Set maximum SNR to 7dB, as it was done in the initial test scenario,
to ensure that possible performance degradation is detected.
2025-05-16 16:38:54 +02:00
Jaroslava Fiedlerova
77f2a2b678 CI: remove global PHYSIM and PhySim class
The cls_physim1.py is no longer needed. Function for physim deployment has
been migrated to the Cluster class. Log analysis functionality has been
moved to the Analysis class.
2025-05-16 16:38:54 +02:00
Jaroslava Fiedlerova
b3a3ed70e6 CI: Create separate XML files for 4G and 5G physims 2025-05-16 16:38:54 +02:00
Jaroslava Fiedlerova
dad8814bdf CI: Add functions for OC Physim deployment and analysis 2025-05-16 16:38:49 +02:00
Jaroslava Fiedlerova
986db77b88 CI: add helm charts for 4G and 5G OC deployments with ctest 2025-05-16 16:29:55 +02:00
Jaroslava Fiedlerova
2827eecfd9 Remove autotest physim test framework
No longer used in CI, replaced by ctest testing.
xmlstarlet not used anymore, can be removed from build_helper

Closes #826
2025-05-16 16:29:55 +02:00
Jaroslava Fiedlerova
e878b9fbbc CI: remove helm charts for physim OC deployment
To be replaced by ctest physim implementation in the following commit.
2025-05-16 16:29:55 +02:00
Jaroslava Fiedlerova
f171778b68 Update physim Dockerfile for ctest support
Set the CMAKE_RUNTIME_OUTPUT_DIRECTORY CMake option during the OAI build
to control the location of runtime target files. This ensures that ctest
can locate necessary executables after they are copied to the target
Docker image.
2025-05-16 16:29:55 +02:00
Jaroslava Fiedlerova
5312e9e43b Convert physims in cmake_targets/autotests/test_case_list.xml to ctest
Convert physim testcases defined in cmake_targets/autotests/test_case_list.xml
into CTest based tests. These test are activated when '-DENABLE_PHYSIM_TESTS=ON'
CMake flag is set.

Note: Tests for dlsim_tm4 are excluded, due to compilation issues.

CTest evaluates success based on return code: '0' = pass, non-zero = fail.

The following table outlines the physim executables, their success expressions
(`expr_true`), and the return codes for success (`ret_success`) and failure
(`ret_fail`). The `expr_true` is used in test_case_list.xml to check for test
results.

| test_exec     | expr_true      | ret_succ        | ret_fail          |
| ------------- | -------------- | --------------- | ----------------- |
| dlsim         | passed         | 0               | -1                |
| ulsim         | passed         | 0 (ret)         | 1 (ret)           |
| ldpctest      | BLER 0.000000  | 0               | 1                 |
| polartest     | BLER= 0.000000 | 0               | 1                 |
| nr_pbchsim    | PBCH test OK   | 0               | 1                 |
| nr_dlsim      | PDSCH test OK  | 0               | 1                 |
| smallblocktest| BLER= 0.000000 | 0               | 1                 |
| nr_ulschsim   | PUSCH test OK  | 0 (n_errors)    | n_errors          |
| nr_pucchsim   | PUCCH test OK  | 0               | 1                 |
| nr_ulsim      | PUSCH test OK  | 0 (ret)         | -1 (ret)          |
| nr_prachsim   | PRACH test OK  | 0 (prach_errors)| > 0 (prach_errors)|
| nr_psbchsim   | PSBCH test OK  | 0 (errors)      | > 0 (errors)      |

Add CMake flag "ENABLE_PHYSIM_TESTS=ON" when building OAI with "-P"
or "--phy_simulators" option. This allows physim-related ctest to
be executed from build directory.

Add dependency on coding lib for all 4G physims
2025-05-16 16:29:43 +02:00
Jaroslava Fiedlerova
dec74058e5 Disable DEBUG_UE_TIMING logs in 4g dlsim test
Setting the DEBUG_UE_TIMING flag caused a flood of UE timing logs, resulting
in dlsim output logs as large as 1.5MB per test in CI. This commit comments
out the line where we set the flag to reduce log verbosity.
2025-05-16 13:42:23 +02:00
Jaroslava Fiedlerova
2402f37271 Modify nr_dlsim, nr_pbchsim and nr_pucchsim to return '0' on success
- Change return value of nr_dlsim, nr_pbchsim and nr_pucchsim to:
  - Return '0' if test succeeds (indicated also by "PDSCH/PBCH/PUCCH test
    OK" in the test log).
  - Return '1' if test fails.
2025-05-16 13:42:23 +02:00
Jaroslava Fiedlerova
8ca6a4a06e Modify polartest, smallblocktest and ldpctest to return '0' on success
- Updated polartest, smallblocktest, and ldpctest to check BLER and return
  appropriate status:
  - Returns '0' if BLER equals 0.000000 (indicating success).
  - Returns '1' for all other BLER values (indicating failure).
- This change improves consistency in return values across the test physims.
2025-05-16 13:42:14 +02:00
Robert Schmidt
36ee23255c Merge remote-tracking branch 'origin/csi-generate-common-func' into integration_2025_w20 (!3418)
Use common function to generate CSI-RS signal

Remove code duplication.
2025-05-16 13:12:57 +02:00
Robert Schmidt
3735734eea Merge remote-tracking branch 'origin/e1-bearer-mod-failure' into integration_2025_w20 (!3384)
Add enc/dec library and unit test for E1 Bearer Context Modification Failure

This MR is adding:

- the enc/dec library
- unit test
- handler and callback in stack

For the E1 Bearer Context Modification Failure.
2025-05-16 13:12:21 +02:00
Jaroslava Fiedlerova
69be78254f CI: Conf file adjustment to improve UL throughput in SA-2x2 pipeline
Reduction of target SNR in 4x4 configuration with 60 MHz seems to improve
UL throughput and reduce number of UL errors.
2025-05-15 19:25:48 +02:00
Robert Schmidt
c3f833ca30 Merge remote-tracking branch 'origin/rfsim-ci-ho' into integration_2025_w20 (!3437)
CI: RFsim F1/HO: Use hanging-workaround to avoid blocking of second client
2025-05-15 19:17:27 +02:00
Robert Schmidt
97856a812f Merge remote-tracking branch 'origin/oran-fh-doc-fix' into integration_2025_w20 (!3394)
Fix Liteon with MTU 1500 and update the FHI docs

- Closes #884 - needed to update the max fragments needed for
  transmission of one symbol; technically, 5 are enough but due to wrong
  equation in the xran F release we had to increase to 6
- Clarify packet length for VFs
- Update Foxconn doc and config file with MTU set for jumbo frames
- Update Benetel docs with new version v1.2.2
2025-05-15 19:16:40 +02:00
Robert Schmidt
1847843614 Merge remote-tracking branch 'origin/e1-bearer-context-release' into integration_2025_w20 (!3386)
E1 Bearer Context Release enc/dec lib and unit test

This MR is adding:

- the enc/dec library
- unit test

And adopting the lib in stack, for the E1 Bearer Context Release.
2025-05-15 19:16:08 +02:00
Robert Schmidt
7298f41e5d Merge remote-tracking branch 'origin/ldpc_enc_avx512' into integration_2025_w20 (3168)
Improvements for LDPC encoding

AVX512 modifications for LDPC encoding: interleaving, ZC384 BG1, output
formatting for encoder, segmentation (memcpy instead of loop). some
improvement in TX for aarch64 in same places where AVX512 support was
added. Also, rate matching and interleaving are done on bytes containing
8 segments and reformatting of the output is done at the end of segment
processing instead of after ldpc encoding.

This improves the overall performance of the NR DL transmitter in gNB

See the merge request description for numbers.
2025-05-15 19:15:27 +02: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
Guido Casati
ce17663017 Release all user plane resources when going to IDLE
Release all SDAP entities for a UE in nr_rrc_going_to_IDLE().
With this change the SDAP entities of the UE are cleaned up
when going into RRC_IDLE, including tun sockets, threads etc.
A new SDAP entity is created when re-attaching to the network.
2025-05-15 11:20:10 +02:00
Guido Casati
729b0eb348 Print errno in nr_sdap_rx_entity 2025-05-15 11:20:10 +02:00
Bartosz Podrygajlo
5354ad8a26 Add support for TYPE_IPV4ADDR in yaml config module 2025-05-15 11:20:10 +02:00
Guido Casati
79df739598 Add callback/handler for E1AP Bearer Context Modification Failure 2025-05-15 10:17:07 +02:00
Guido Casati
306a44ebff Add enc/dec lib and unit test for E1AP Bearer Context Modification Failure 2025-05-15 10:17:03 +02:00
Robert Schmidt
b6fcb69e4c CI: RFsim F1/HO: Use hanging-workaround to avoid blocking of second client 2025-05-15 10:04:16 +02:00
francescomani
f4da265423 fix config file with multiple ssbs but single antenna 2025-05-15 09:28:56 +02:00
francescomani
4246b538c9 do not perform beam switching procedures if there is no beam information 2025-05-14 17:12:01 +02:00
Robert Schmidt
5f0289ba32 Remove EPC* main.py parameters
Any pipeline still using this parameter will fail, showing if it has
been removed properly everywhere.
2025-05-13 18:46:50 +02:00
Romain Beurdouche
b1e0bfdda6 fix(CI RAN-gNB-N300-Timing-Phytest-LDPC): update reference timings
Update reference `L1 Tx processing` and `DLSCH encoding` timing in `RAN-gNB-N300-Timing-Phytest-LDPC` CI test
to reflect performance improvements.
2025-05-13 14:08:33 +00:00
Romain Beurdouche
1734e1916c fix(nrLDPC_coding_interface): mistaken line forgotten in documentation 2025-05-13 14:08:33 +00:00
Romain Beurdouche
360f341394 feat(nrLDPC_coding_t2): Shift encoder output with 64 bits shift
Use 64 bits shift to shift the output segment of the encoding operations to their offset in the coding library output buffer.
2025-05-13 14:08:33 +00:00
Romain Beurdouche
2feb36407c feat(reverse_bits_u8): increase vector size in bits reversal
Reverse bits by 512 bits vector instead of 128 bits vector

Also removed SIMDE as the preprocessor directives were allowing only AVX512
2025-05-13 14:08:33 +00:00
Jaroslava Fiedlerova
b31dd728cb T2: Use 8b packed output of the T2 encoder
- modify retrieve_ldpc_enc_op() to store encoded results in a packed format
- add timing measurements for T2 encoder
- add simde implementation for bit reversal
  - Introduce new bit reversal implementation using simde_mm_gf2p8affine_epi64_epi8
    instruction, based on https://wunkolo.github.io/post/2020/11/gf2p8affineqb-bit-reversal/.
    This implementation requires GFNI and AVX512VL support on the target machine.
2025-05-13 14:08:33 +00:00
Romain Beurdouche
4d092495bf feat(nr_codeword_scrambling): Use SIMD XOR for scrambling 2025-05-13 14:08:33 +00:00
Romain Beurdouche
0aa3dba5b7 feat(nrLDPC_coding_segment): Encoding with sequential output write
1. The encoder writes the output in sequence after the encoding tasks completed instead of writing within the tasks.

2. Simplify the output writing to make it more readable.

Co-authored-by: Laurent Thomas <laurent.thomas@open-cells.com>
2025-05-13 14:08:33 +00:00
Romain Beurdouche
b1e1c161ec feat(nrLDPC_coding_segment_encoder): Mitigate race condition
There was a risk of a race condition between encoding tasks on the output array.
It could be that two task compete in writing a word at the border of their respective segment groups.

This commit offers to solve this issue by retaining the tail word in a struct that is returned after task completion so that segment group border can be fixed after completion of all the tasks.

Comes with additional cleanups of nrLDPC_coding_segment_encoder:
1. Move the section of code dedicated to writing to the encoding library output to a separate function.
2. Remove bit interleave debug in AVX512VBMI case of output writing for improving code readability.
2025-05-13 14:08:33 +00:00
Romain Beurdouche
06c81030dc fix(nrLDPC_coding_segment_encoder): address review
1. nrLDPC_coding_segment_encoding: Clarifying encoder parameters
   The way the encoder implementation params was used could be made clearer:
   * `macro_num` was always used in order to calculate segment indexes.
     It is clearer to pass directly the first segment index.
   * The initialisation of a common implementation parameters structure can be made clearer.

2. nrLDPC_coding_segment_encoder: Remove multi segment dimension in encoder output
   The output of `LDPCencoder` was a 2D unsigned char array.
   But all the segments were actually packed in the first segment, 8 bits of different segments per byte of the first segment.
   So the first dimension was useless. This commit removes this dimension.

3. nrLDPC_coding_segment_encoder: Rename `nrLDPC_prepare_TB_encoding` into `nrLDPC_launch_TB_encoding`

4. nrLDPC_coding_segment_encoder: Remove the useless second rate matching for E2, one rate matching with max(E, E2) does the job.

5. nr_interleaving_ldpc: cleanup
   Rewrite code to use different SIMD sizes in a linear fashion.
   This means cascading preprocessor directives are used to start from a high SIMD size an decrease it progressively.

6. ldpc_encoder_optim8segmulti: linear usage of SIMD
   Use cascading preprocessor directives to include different SIMD sizes and types depending on which are available on the system.
   The different loops use a common index that is progressively incremented.
   Also add AVX512 version of bits distribution from 8 segments into one byte.

Co-authored-by: Laurent Thomas <laurent.thomas@open-cells.com>
2025-05-13 14:08:33 +00:00
Romain Beurdouche
1b31ac417b fix(nrLDPC_coding_interface): Move the encoding output to the TB
Since this branch aims to bring all the encoded segments packed and contiguous,
it doesn't make anymore sense to have one output array per segment.
Therefore this commit moves the output array to the TB instead of the segment and adapts its size.

TODO: Adapt the size of f where it is relevant.
2025-05-13 14:08:33 +00:00
Romain Beurdouche
f3daf0ed83 fix(nrLDPC_coding): Miscellaneous fixes
1. nrLDPC_coding_segment_encoder: pointer not aligned on 64 bits
   An undefined behavior was happening because of a shift on a __m64 which
   was actually a uint32_t which was not aligned on 64 bits.
   This commit suggests a fix by properly loading into a __m64 with _mm_set_pi32
   before performing the shift.

2. nr_rate_matching: Filler bits detection
   Previously, if the bit selection was reaching Ncb and restarting selection from the beginning of encoded data, the filler bits were detected by testing the bytes again NR_NULL which was equal to 2.
   But on this branch the bits of up to 8 segments are stored in one byte while doing rate matching so that one byte could be tested to be a filler while it is not.
   So this commit changes the way to test filler bits.
   Instead of relying on NR_NULL, bit selection now relies on the offset and size of filler bits.

3. nr_ulsch_coding: missing filling f with zeros
   The array `f` of the UE UL HARQ process was not filled with zeros between transmissions.
   This is a problem if the encoder does not properly overwrite its output.
   In order to avoid such situation, this commit adds a memset to fill `f` with zeros before passing it to the encoder.

4. nrLDPC_coding_segment_encoder: missing init of f to zeros
   In the encoder, `f` is not filled with zeros before being used.
   `f` is instead somehow filled with arbitrary values.
   When writing to `output` by 64 bit vectors, some arbitrary bits may be added after the segment.
   Then the arbitrary added ones are not overwritten when writing the next segment because of writing with a logical or.
   This commit properly fills `f` and `f2` with zeros.

5. nr_ulschsim & nr_dlschsim: Adapt modulation to new encoder output
   The QPSK symbols that are feed to the channel model of nr_dlschsim were determined based on the bytes of the encoder output.
   With the new output of the encoder, it had to be reworked to determine the QPSK symbols based on the bits of the encoder output.
2025-05-13 14:08:33 +00:00
Raymond Knopp
bbbbda70f5 feat(nrLDPC_coding_segment_encoder): Dense Rate Matching and Dense and Concatenated Output
1. 3GPP Rate-matching/interleaving on 8-segment blocks, deinterleaving at output of multi-segment processing.

2. Bit-packing done in nrLDPC_coding_segment_encoder.c now instead of nr_scrambling.
   Interestingly, it improves performance significantly too.
   Tested for AVX512 only for now.
2025-05-13 14:08:33 +00:00
Raymond Knopp
33078f9e3d feat(cnProc_gen_BG1_128): Put back small change in 128-bit SIMD code generator for LDPC decoder (cnProc).
Avoid the use of simde_mm_sign_epi8 which is inefficient on aarch64.
Decoding times are significantly improved on aarch64.

Co-authored-by: Romain Beurdouche <romain.beurdouche@eurecom.fr>
2025-05-13 14:08:33 +00:00
Raymond Knopp
a4c950774b feat(ldpc_encoder_optim8segmulti): Improvements for Arm Neoverse
Use 128 bit SIMD in packing and unpacking segment bits in bytes
Adapt compiler options for Neoverse.
2025-05-13 14:08:33 +00:00
Raymond Knopp
8964fdb6a2 AVX512 modifications for LDPC encoding: interleaving, ZC384 BG1, output formatting for encoder, segmentation (memcpy) 2025-05-13 14:08:33 +00:00
Raymond Knopp
c07bfe6db5 Put CPU affinity control in nr_ulsim. 2025-05-13 14:08:33 +00:00
Robert Schmidt
c7deef8203 Merge branch 'add-rhel-9.6' into 'develop'
Add RHEL9.6 to list of supported distributions

See merge request oai/openairinterface5g!3431
2025-05-13 12:40:40 +00:00
Robert Schmidt
cf22ed79f2 Fix llvm version conflict after upgrade to RHEL9.6
Add --allowerasing, which will downgrades some packets in order to
satisfy LLVM dependencies.

When building the docker image for clang, CI fails with

    Error:
     Problem: llvm-18.1.8-3.el9.i686 from ubi-9-appstream-rpms  does not belong to a distupgrade repository
      - package llvm-toolset-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires llvm = 18.1.8, but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires llvm-libs(x86-64) = 18.1.8-3.el9, but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires libLLVM.so.18.1()(64bit), but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires libLLVM.so.18.1(LLVM_18.1)(64bit), but none of the providers can be installed
      - cannot install both llvm-libs-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms and llvm-libs-19.1.7-2.el9.x86_64 from @System
      - package mesa-dri-drivers-24.2.8-2.el9_6.x86_64 from @System requires libLLVM.so.19.1()(64bit), but none of the providers can be installed
      - package mesa-dri-drivers-24.2.8-2.el9_6.x86_64 from @System requires libLLVM.so.19.1(LLVM_19.1)(64bit), but none of the providers can be installed
      - package mesa-libGL-24.2.8-2.el9_6.x86_64 from @System requires libgallium-24.2.8.so()(64bit), but none of the providers can be installed
      - package mesa-libGL-24.2.8-2.el9_6.x86_64 from @System requires libgallium-24.2.8.so(libgallium-24.2.8.so)(64bit), but none of the providers can be installed
      - package mesa-libGL-devel-24.2.8-2.el9_6.x86_64 from @System requires mesa-libGL(x86-64) = 24.2.8-2.el9_6, but none of the providers can be installed
      - conflicting requests
      - problem with installed package mesa-libGL-devel-24.2.8-2.el9_6.x86_64
    (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

So when trying to install llvm-toolset from docker/Dockerfile.clang.rhel9,
we have a conflict because this installs 18.1 from ubi-9-appstream-rpms,
but various mesa packets have llvm 19.1.

1. I don't understand why we have mesa installed (no graphics system?)
2. --allowerasing downgrades the relevent mesa package(s)

Alternatively, we would need to select 19.1 when installing
llvm-toolset, but I don't know how to do that.
2025-05-13 14:39:24 +02:00
Robert Schmidt
176fd405d9 Add RHEL/rocky 9.6/9.7 to list of supported distributions 2025-05-13 14:39:24 +02:00
Teodora
e6e9aaed7f Clarification on the packet length needed to configure VFs
As per CUS spec, the MTU can be 1500 or 9000 B, where MTU = IQ data format.

Packet length = ethernet header + RTE_PKTMBUF_HEADROOM + MTU

However, xran assumes different definitions of the MTU:
(1) in xran_init_mbuf_pool(): MTU = ethernet header + IQ data format;
(2) in xran_get_num_prb_elm(), xran_init_PrbMap_from_cfg(), xran_init_PrbMap_from_cfg_for_rx(), xran_init_PrbMap_by_symbol_from_cfg(): MTU = complitely wrong (as the IQ data format is not well included).

Additionally, xran assumes that the max MTU 9600 B, instead of 9000 B as per spec.
Nevertheless, I left 9600 B in all config files and docs due to wrong calculation of (2) for the total number of PRBs per fragment.
2025-05-13 12:55:18 +02:00
Teodora
29acc08f9e Add new Benetel supported versions 2025-05-13 12:55:18 +02:00
Teodora
3a1fc2ef65 Fix Liteon for xran F release and improve docs
1. Closes #884 - increase the XRAN_MAX_FRAGMENT from 4 to 6 (sufficient for MTU 1500 with compression 8b)
2. Add new firmware version that supports jumbo frames
3. Update the config file to align with the new Liteon unit in our lab - center frequency, jumbo frames, compression and RU MAC address,
as well as the max DL MIMO layers.
2025-05-13 12:53:16 +02: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
Jaroslava Fiedlerova
f9e1657840 Merge branch 'integration_2025_w19' into 'develop'
Integration: `2025.w19`

Closes #852, #952, and #957

See merge request oai/openairinterface5g!3427

* !3409 Correctly handle minimum RB condition in MAC
* !3421 Fix DMRS for PUCCH format 2
* !3424 limit the number of HARQ processes in case of DCI00 and 10
* !3116 ue txData more contextual, but still global as it is entangled with usrp driver
* !3408 Handling 2 search spaces per slot in SIB1
* !3419 PRACH configuration index warning
* !3429 CI: Add `-l` option for the UL iperf test
* !3381 Add 5GMM Authentication Failure enc/dec lib and unit test
2025-05-13 08:55:55 +00:00
beraoudabdelkhalek
6f5644e489 Added intercommunication between namespaces.
- Added abort function.
- Added intercommunication between UE namespaces.
- Reduced code size.
- Removed default getops error messages.
2025-05-13 10:39:32 +02:00
Romain Beurdouche
d6ee29a193 feat(nrLDPC_encoder): remove _optim and _optim8seg
It is pointless to keep updating ldpc_optim and ldpc_optim8seg.
So we remove them.
2025-05-13 07:32:36 +00:00
Guido Casati
66d32fb39b Add cause to Bearer Context Release message trigger 2025-05-12 21:46:07 +02:00
Guido Casati
67ec7d3174 Use Bearer Context Release Complete enc/dec lib in stack 2025-05-12 21:46:02 +02:00
Guido Casati
8f9761ac84 Add Bearer Context Release Complete enc/dec lib and unit test 2025-05-12 21:45:58 +02:00
Guido Casati
f8eba806da Use Bearer Context Release Command enc/dec lib in stack 2025-05-12 21:45:47 +02:00
Guido Casati
3c8caeb9b2 Add Bearer Context Release Command enc/dec lib and unit test 2025-05-12 21:45:08 +02:00
Jaroslava Fiedlerova
b00c2fec99 Merge remote-tracking branch 'origin/fix-aerial-ul' into integration_2025_w19 (!3429)
CI: Add `-l` option for the UL iperf test

In this MR, we set the packet length to 1428 bytes for UL iperf3 testing using
the -l option to prevent packet fragmentation. Fragmentation is causing packet
drops between the gNB and the UPF, leading to failed UL throughput tests in CI.
2025-05-12 15:08:23 +02:00
Jaroslava Fiedlerova
3a9936d485 Merge remote-tracking branch 'origin/nr-ue-nas-auth-failure' into integration_2025_w19 (!3381)
Add 5GMM Authentication Failure enc/dec lib and unit test

This MR is introducing the 5GMM Authentication Failure message library as per
8.2.4 of 3GPP TS 24.501. This message is sent from UE to network under certain
conditions. The message is also introduced in stack and is send if the received
ngKSI already in use.

- add new library for 5GMM Authentication Failure enc/dec and unit test
- introduce handler and generate function for NAS Authentication Failure
  store ngKSI
- send Authentication Failure if ngKSI is already associated with one of
  the 5G security contexts stored in the UE

Closes #852
2025-05-12 15:06:12 +02:00
Guido Casati
4587210384 Add handler for Authentication Request
* store ngKSI
* send Authentication Failure if ngKSI is already associated
  with one of the 5G security contexts stored in the UE
2025-05-12 10:26:29 +02:00
Teodora
83afb8b852 Set common E&F releases for CUS and CUSM 2025-05-10 00:31:03 +02:00
Sakthivel Velumani
bff9c169c6 Update MTU for Foxconn to 9600
After capturing the FH packets, we observed that the RU supports the MTU value for jumbo frames.

Therefore, no fragmentation needed on DL.

Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
2025-05-10 00:31:03 +02:00
Jaroslava Fiedlerova
12562609eb Merge remote-tracking branch 'origin/PRACH_config_index_warning' into integration_2025_w19 (!3419)
PRACH configuration index warning
2025-05-09 16:37:40 +02:00
Jaroslava Fiedlerova
2ffc518201 Merge remote-tracking branch 'origin/fix_2_ss_sib1' into integration_2025_w19 (!3408)
Handling 2 search spaces per slot in SIB1

Closes #952
2025-05-09 16:37:01 +02:00
Jaroslava Fiedlerova
cecd4a0cff Merge remote-tracking branch 'origin/ue-fix-txdata' into integration_2025_w19 (!3116)
ue txData more contextual, but still global as it is entangled with usrp driver

- txData buffer is global and entangled even in usrp oai driver because of tx
  thread feature
- it also makes weird combination with continuous tx usrp bug workaround
- this MR makes most of the calls contextual but keep the globakl txData
- later a MR should remove the global and tackle it with proper context, but we
  need to modify gNb, UE, 4G and probably all oai drivers
2025-05-09 16:35:20 +02:00
Reem Bahsoun
e7d91b8a04 Set packet length with -l option to 1428 for the UL iperf command line to avoid packet fragmentation.
*Packet fragmentation results in packet drops, leading to zero packets being received from the gNB to the UPF*
2025-05-09 16:15:18 +02:00
Jaroslava Fiedlerova
0603ed8976 Merge remote-tracking branch 'origin/issue_957' into integration_2025_w19 (!3424)
limit the number of HARQ processes in case of DCI00 and 10

Closes #957
2025-05-09 12:28:14 +02:00
Jaroslava Fiedlerova
4ebf3cabb0 Merge remote-tracking branch 'origin/fix-DMRS-PUCCH2' into integration_2025_w19 (!3421)
Fix DMRS for PUCCH format 2

This MR fixes the DMRS for PUCCH format 2.
While at the OAI-UE we have:

uint16_t startingPRB = pucch_pdu->prb_start + pucch_pdu->bwp_start;
uint idxGold = startingPRB >> 2;
uint32_t *seq = gold_cache(temp_x2, idxGold + pucch_pdu->prb_size);

At gNB side, it was missing pucch_pdu->bwp_start, i.e., it was:

uint32_t *sGold = gold_cache(x2, pucch_pdu->prb_start / 4 + ngroup / 2);
uint8_t *sGold8 = (uint8_t *)(sGold + pucch_pdu->prb_start / 4);

This MR was tested with COTS UE with a bwp_start other than 0, and now PUCCH format 2 is being decoded correctly.
2025-05-09 12:25:34 +02:00
Jaroslava Fiedlerova
51f9627f6c Merge remote-tracking branch 'origin/min-grant-fixes' into integration_2025_w19 (!3409)
Correctly handle minimum RB condition in MAC
- Correctly handle Msg3 min PRB size == BWP size
- Make min_grant_prb u16 to also allow to have 273 PRBs
2025-05-09 12:24:29 +02:00
Laurent THOMAS
33d72f6080 fix C style, unefficient and complex 2025-05-09 12:10:41 +02:00
Laurent THOMAS
44716febce ue txData more contextual, but still global as it is entangled with usrp driver 2025-05-09 12:10:39 +02:00
Nick Hedberg
d55bcecdc3 Use u16 for minimum grant option, could be 273PRBs 2025-05-08 16:50:12 +02:00
Robert Schmidt
34ee9ffd29 Move log for Msg3 allocation done
Move this message down, at the end of the function, if no code path
exists under which msg3 allocation might fail despite this log having
been printed.
2025-05-08 16:50:12 +02:00
Robert Schmidt
d8b67af156 Respect minimum grant condition for Msg3 2025-05-08 16:42:27 +02:00
Nick Hedberg
7d8658f5ef Correct ULSCH minimum RB condition
Assume the minimum grant (min_rb) size to be the bandwidth part size. As
an example: rbStart 0, min_rb=bwpSize=106. This should pass, hence
modify these two conditions.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-05-08 16:42:27 +02:00
francescomani
2f1dbed8ec limit the number of HARQ processes in lists for DCI 10 and 00
(also removed unnecessary call to create lists at UE init)
2025-05-08 15:49:03 +02:00
francescomani
321df962d2 make functions to create harq lists static 2025-05-08 15:05:13 +02:00
rmagueta
51dfab0c56 Fix DMRS for PUCCH format 2 2025-05-07 15:55:36 +01:00
francescomani
f9b76dd2bf fix sim prach configuration index 2025-05-07 09:19:19 +02:00
Guido Casati
5c38a619ab Use e1ap_cause_t in e1ap_bearer_release_cmd_t 2025-05-06 17:36:19 +02:00
francescomani
b6b4332809 PRACH configuration index assertion to avoid PRACH in last symbol 2025-05-06 16:37:40 +02:00
francescomani
aa516bf1b5 scheduling pdcch structure in SIB1 depends on the associated SSB, can't be precomputed
start symbol may depend on the associated SSB index
2025-05-06 16:00:58 +02:00
francescomani
f41c572aff fix for UE reception of PDCCH not starting from symbol 0 2025-05-06 16:00:42 +02:00
Sakthivel Velumani
8c5340f135 Code cleanup
Use c16_t instead of int32_t for CSI RS freq domain samples.
Use const for rxdataF when used as input to functions.
2025-05-06 09:21:14 -04:00
Sakthivel Velumani
6128d1bb62 Use common function to generate CSI-RS signal
The functions nr_generate_csi_rs() and nr_ue_generate_csi_rs() are
identical. This commit removes nr_ue_generate_csi_rs() and moves
nr_generate_csi_rs() to nr_phy_common_csirs.c so both gNB and UE can use
the same function.
2025-05-06 09:11:40 -04:00
Robert Schmidt
9b878d920d Merge branch 'integration_2025_w18' into 'develop'
Integration: `2025.w18`

Closes #953

See merge request oai/openairinterface5g!3413

* !3385 Add enc/dec lib for E1 Bearer Context Setup Failure
* !3410 Avoid segmentation fault when testing trigger reestablishment and there is no DRB[0] established
* !3411 Remove assert for SRI-PUSCH-PowerControl
* !3291 Improvements in handling UE context in gNB DU
* !3416 Signal gNB-DU config update CellStatus from DU to CU
* patch to fix memory leak on DRB_ToAddModList
* update phytest-timing thresholds
2025-05-06 13:01:19 +00:00
Robert Schmidt
34a7a12cf6 CI phytest-timing: Update timing thresholds 2025-05-06 10:24:02 +02:00
Robert Schmidt
976f4cbc5d Free DRB_ToAddModList 2025-05-05 22:47:03 +02:00
Robert Schmidt
b0a0844b21 Merge remote-tracking branch 'origin/gnb-du-config-cell-status' into integration_2025_w18 (!3416)
Signal gNB-DU config update CellStatus from DU to CU

Add the cell status to gNB-DU configuration update message, including
test. Use the gNB-DU configuration update to signal the cell status in
the stack.

This IE was not included in a previous refactoring round, but is at
least necessary to be decoded when interoperating with the OSC O-DU.
2025-05-05 22:37:21 +02:00
francescomani
fbfe76bdc5 fix size of access_ue_list
the current UE list is zero-terminated (see e.g., the UE_iterator
macro).
2025-05-05 22:34:03 +02:00
Robert Schmidt
a083bd830e Merge remote-tracking branch 'origin/new_UE_context_improvements' into integration_2025_w18 (!3291)
Improvements in handling UE context in gNB DU

The goal of this MR is to improve the handling of UE context in gNB DU.
To achieve this goal, the UE structure is created as soon as the gNB
receive a PRACH indication. At that stage the UE is placed in a new
structure containing UEs performing RA, untill RA is complete where it
is moved to the list of connected UEs. To simplify the code and to
improve the handling of initial procedures (see #751), DCI 10 and DCI 00
is used at every stage until the DU receives from CU the indication of
UE RRC reconfiguration being completed.
2025-05-05 09:10:36 +02:00
Robert Schmidt
de2778b26c Merge remote-tracking branch 'origin/issue-953' into integration_2025_w18 (!3411)
Remove assert for SRI-PUSCH-PowerControl

SRI-PUSCH-PowerControl is not implemented at this point but its enough
to warn about incorrect power control behavior rather than assert on the
configuration.

Closes #953
2025-05-05 08:23:37 +02:00
Robert Schmidt
8c559345db Merge remote-tracking branch 'origin/avoid-segfault-test-reestablishment' into integration_2025_w18 (!3410)
Avoid segmentation fault when testing trigger reestablishment and there is no DRB[0] established
2025-05-05 08:22:59 +02:00
francescomani
2626dbd24b further adjustment in timing test 2025-05-04 09:34:42 +02:00
Robert Schmidt
5205d1d4b7 Read security only for CU or Monolithic: avoid warning at DU 2025-05-04 09:34:42 +02:00
Robert Schmidt
b4a7a1a194 Allow F1 to be used in do-ra
This is preparatory work to allow NSA-like modes to be used over F1 in
the future. Notably, it fills the F1 message for UE context setup with
GTP TEID, and fills additional information to "make the F1 encoder
happy" (fill in QFI etc). Also, provide some F1 fixes to make this work.
Remove stale UE connections, if relevant.
2025-05-04 09:34:42 +02:00
Robert Schmidt
b9edba2186 Reimplement NSA release using F1
The RLC function is not used, this is handled at the DU.
2025-05-04 09:34:42 +02:00
Robert Schmidt
8a7987812a Stop SDAP/noS1 interface in all cases reliably 2025-05-04 09:34:42 +02:00
Robert Schmidt
94443aefde Save in SDAP context if is UE or gNB
sdap_tun_read_thread needs to know if we are gNB/UE. Previously, we
passed this into the thread, but the next commit also needs to for
interface termination, where this info is not available. So, for noS1
mode, pass this in.
2025-05-04 09:34:42 +02:00
Robert Schmidt
958b2f3fac Move generate_CG_Config() to rrc_gNB_nsa.c
Remove the (now) unused rrc_gNB_internode.c. generate_CG_Config() is
only used in NSA, so can be static.
2025-05-04 09:34:42 +02:00
Robert Schmidt
efbdd92694 Move get_default_reconfig() to rrc_gNB_nsa.c 2025-05-04 09:34:41 +02:00
Robert Schmidt
fddcb2a5e8 Reply X2 Addition Request after F1 UE context setup in NSA 2025-05-04 09:34:41 +02:00
Robert Schmidt
67f04d828a Implement UE context addition in CU through F1 in do-ra/phy-test
Add functionality to trigger the addition of a new RRC UE context (in
the CU) for NSA modes, using F1. This commit makes do-ra and phy-test
modes work. "True" NSA will work in the next commit, which also sends
the X2 addition request answer message.
2025-05-04 09:34:41 +02:00
francescomani
031be06665 use already generated RNTI when creating a new NSA US and take get_reconfiguration_with_sync out of get_default_secondaryCellGroup 2025-05-04 09:34:41 +02:00
Robert Schmidt
7b9442f58d DU-level changes to handle F1 UE Context Setup in NSA/phy-test/do-ra
Co-authored-by: Francesco Mani <email@francescomani.it>
2025-05-04 09:34:41 +02:00
Robert Schmidt
6c5514d5c9 Refactor out useless function 2025-05-04 09:34:41 +02:00
Robert Schmidt
953a5ed33e Trigger release request on RA timeout only once
Checking for < 0 makes the contention resolution timer trigger on each
iteration once it is < 0. Instead, use == 0, which will trigger only
once.
2025-05-04 09:34:41 +02:00
francescomani
3ec14152a1 fix for ULSCH number of layers in case of DCI00 2025-05-04 09:34:41 +02:00
francescomani
a4357b74c5 use DCIX0 in commmon search space in any scenario before reconfiguration complete
this allows to remove a lot of complicated procedures relying on flags and timers
2025-05-04 09:34:36 +02:00
Robert Schmidt
286e3279d5 rrc_gNB_du.c: all logs into NR_RRC log category 2025-05-02 16:51:32 +02:00
Robert Schmidt
ae6ea60a7a Use gNB-DU config update/CellStatus in stack
Use the gNB-DU configuration update to signal the cell status in the
stack. At the DU, modify the code to always send this message --
previously, we only sent this message if a SIB1 update was necessary,
but now it's always, only including SIB1 updates if necessary.

At the CU, as we don't really have a use as of now, print the
information, but don't do anything with it.
2025-05-02 16:49:29 +02:00
Robert Schmidt
f33c6cd0da f1ap: Add CellStatus list in gNB-DU config update 2025-05-02 16:24:35 +02:00
Robert Schmidt
ff99599b25 Merge remote-tracking branch 'origin/e1-bearer-setup-failure' into integration_2025_w18 (!3385)
Add enc/dec lib for E1 Bearer Context Setup Failure

This MR is adding:

- the enc/dec library
- unit test
- handler and callback in stack

For the E1 Bearer Context Setup Failure.
2025-05-02 08:16:11 +02:00
francescomani
c494c631d1 target search space as input of function to configure UE BWP 2025-05-01 11:04:22 +02:00
francescomani
5729b638a5 add dci 10 to config 2025-05-01 11:04:08 +02:00
francescomani
356a27aad1 handle ul harq inside rx sdu function 2025-05-01 10:48:29 +02:00
francescomani
bf37994f78 separate function for RA ULSCH SDU 2025-05-01 10:48:24 +02:00
francescomani
8f62baefa6 Use list of UEs during RA instead of array of RA processes
- rewrite add_UE_to_list() and rewrite remove_UE_from_list() to simplify
  list handling
- return pointer from get_new_nr_ue_inst(); it's completely freed by
  delete_nr_ue_data()
- have add_new_UE_RA() add UE context to access list; remove with
  nr_release_ra_UE()
- have add_connected_nr_ue() only add UE to connected list; to move from
  access to connected use transition_ra_connected_nr_ue(); remove with
  mac_remove_nr_ue() as previously
- free memory on problems during RA
- add some documentation
- in NSA/HO: check for pre-configured RA process
- there are asserts in all functions to clarify when a UE has RA
2025-05-01 10:48:11 +02:00
francescomani
a7c199cabf new name for UE list 2025-05-01 10:04:41 +02:00
francescomani
a337354588 Add function to compute slot for RA-RNTI 2025-05-01 10:03:24 +02:00
Robert Schmidt
a1e1405ee6 Start E1 before gNB_app
In phy-test and do-ra modes, we will trigger a UE context creation after
F1 Setup (because the DU is ready), in a later commit. However, before
this commit, E1 is started after the gnb_app (which triggers F1 Setup).
E1 starts an (integrated) CU-UP; if the E1 Setup arrives after the F1
setup (which creates a UE context), then the E1 setup handler will drop
the newly created RRC context for a do-ra/phy-test mode.

Avoid/minimize this by starting E1 first, so that E1 setup is done
before F1 Setup is completed (this does not make sure the problem does
not happen, but lowers the risk of the above problem).
2025-05-01 10:03:23 +02:00
francescomani
b88efd74b8 fix in determining the num of cdm groups with no data for ULSCH 2025-05-01 10:03:19 +02:00
Bartosz Podrygajlo
c2b342d129 Remove assert for SRI-PUSCH-PowerControl
SRI-PUSCH-PowerControl is not implemented at this point but its enough
to warn about incorrect power control behavior rather than assert on the
configuration.
2025-04-30 13:06:04 +02:00
Guido Casati
9311931e90 Introduce handler/callback for Bearer Context Setup Failure in stack
This commit does not introduce the callback on the CU-UP to trigger
a Bearer Context Setup Failure when the setup of the bearer context was unsuccessful.
This should be handled properly in the stack e.g. in e1_bearer_context_setup (a comment
in the code says "We assume all DRBs to setup have been setup successfully, so we always
send successful outcome in response and no failed DRBs")
2025-04-30 11:57:12 +02:00
Guido Casati
606b9832af Add unit test for Bearer Context Setup Failure 2025-04-30 11:06:50 +02:00
Guido Casati
be7e52b679 Add enc/dec lib for Bearer Context Setup Failure 2025-04-30 11:06:35 +02: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
Robert Schmidt
acb982d0bd Merge branch 'integration_2025_w17' into 'develop'
Integration: `2025.w17`

Closes #947

See merge request oai/openairinterface5g!3403

* !3377 Fix all direct MAC memory leaks
* !3397 Fix for MIB/SIB gNB delay mechanism
* !3399 SIBs in DL slot check
* !3401 F1AP: Allocate gNB_DU_ID before storing ID
* !3380 Issue 947 and compilation improvements
* !3391 small bugfix for T tracer
* !3261 Add Bearer Context Modification Request/Response enc/dec lib and adopt in stack
* !3178 mod: refactor PHY multiplications
* !3382 Improve radio for Metanoia RU (and likely others)
* !3388 Update CN5G images tags to the latest release in all CI pipelines
* !3351 Fix ASN1 struct double free
* !3405 Fix for NR UE DLSCH decoding barrier in case of no feedback
* !3404 Polar: remove dead code and a wrong comment
2025-04-29 06:52:39 +00:00
Robert Schmidt
688156164c Merge remote-tracking branch 'origin/remove-dead-code-polar' into integration_2025_w17 (!3404)
Polar: remove dead code and a wrong comment

a file code duplicated and no more used a comment is wrong:
uint16_t x = INFINITY; is wrong, the gcc comment is true
uint16_t x= INFINITY; sets x=-32768 because it is truncature of 0x7FFFFF

add SIMD for the top lines when i run polartest
2025-04-28 17:46:34 +02:00
Robert Schmidt
af7ce8e9b1 Merge remote-tracking branch 'origin/fix_for_tx_wait_for_dlsch' into integration_2025_w17 (!3405)
Fix for NR UE DLSCH decoding barrier in case of no feedback

In !3291 NTN CI RFsim test fails with the UE being stuck. After some
investigation, this seems to be caused by the scenario where there is no
feedback for DLSCH. In that case there is no need to wait for DLSCH
being completed before generating feedback (there is no feedback).
2025-04-28 17:46:11 +02:00
Robert Schmidt
d46fb4fc68 Merge remote-tracking branch 'origin/fix-asn1-free' into integration_2025_w17 (!3351)
Fix ASN1 struct double free

When paging, RA and other SI have same PDCCH search space, we should
free the struct once and reset the other pointers to NULL.
2025-04-28 17:45:46 +02:00
Robert Schmidt
d12a9d9063 Merge remote-tracking branch 'origin/ci-update-cn5g-images-tags' into integration_2025_w17 (!3388)
Update CN5G images tags to the latest release in all CI pipelines

This MR is updating the tags of the CN5G docker images to the latest
release v2.1.9, for all CI pipelines.
2025-04-28 12:23:21 +02:00
Robert Schmidt
7eba632b79 Merge remote-tracking branch 'origin/metanoia-improve-conn' into integration_2025_w17 (!3382)
Improve radio for Metanoia RU (and likely others)

We introduced a regression that lowered the achievable DL throughput
with at least the Metanoia RU (i.e., in the configuration and the UE
that we use). git bisect showed up one commit, which does not seem
necessary. We just revert this commit, as it improves the throughput and
does not seem to have a negative impact on performance.

Further, increase RLC buffers a bit. Limit 7.2 pipeline number of layers
to 2.
2025-04-28 12:22:40 +02:00
Robert Schmidt
f8449846fc Merge remote-tracking branch 'origin/refactor_simd_multiplications' into integration_2025_w17 (!3178)
mod: refactor PHY multiplications

Refactoring multiple copies of the same "complex multiplication code"
into inline functions
2025-04-28 12:21:59 +02:00
Laurent THOMAS
1208521959 remove dead code and a wrong comment 2025-04-28 11:59:17 +02:00
Robert Schmidt
d2f332e18e Limit FHI-72 to two layers
With PMI reporting working (see HEAD^^), it seems that four layers put
two much processing strain on the machine (cacofonix), which asserts
immediately. In tests, it was found that the same test throughput
(600Mbps) can be achieved with two layers, while not crashing the
machine.
2025-04-28 10:12:49 +02:00
francescomani
799c19b229 no need to wait for dlsch decoding being completed before ack/nack if feedback is disabled 2025-04-28 07:54:03 +02:00
Laurent THOMAS
d980301f29 fix old bug always increasing frame_tx compared with 3GPP frame number 2025-04-27 20:27:36 +02:00
Sakthivel Velumani
18c9a3720d Fix asn1c double free
The UE stores PDCCH search spaces from the network in NR_BWP_PDCCH_t
struct within NR_UE_MAC_INST_t. After storing, the pointers otherSI_SS,
ra_SS and paging_SS are updated to point to the stored SS. Multiple
pointers could point to the same stored SS struct depending on
configuration. Then when the UE wants to release the SS, the pointers
are used to free the stored SS using ASN_STRUCT_RESET(). If multiple
pointers point to the same SS, calling ASN_STRUCT_RESET() on all
pointers would lead to double free. So one needs to check for dangling
pointer before freeing.

Instead of using pointers and assigning them during configuration, we
use SS id for otherSI_SS, ra_SS and paging_SS to retrieve the pointers
whenever needed. When the UE wants to release the SS, we make them -1
indicating an invalid SS id.
2025-04-25 15:40:07 -04:00
Robert Schmidt
6728d3b923 Merge remote-tracking branch 'origin/e1-bearer-mod-encdec-tests' into integration_2025_w17 (!3261)
Add Bearer Context Modification Request/Response enc/dec lib and adopt in stack

This MR is introducing the Bearer Context Modification Response enc/dec
library with relative unit test, and it is also adopting it in the
stack.  Also:

- Refactor Security Information IE decoding function
- Adopt Bearer Context Modification Request lib in stack (introduced in
  !3219 (merged))
2025-04-25 15:03:55 +02:00
Robert Schmidt
73cd5d4a02 Merge remote-tracking branch 'origin/bugfix_T_txdataF' into integration_2025_w17 (!3391)
small bugfix for T tracer

small bugfix: missing beam index when addressing txdataF in T tracer
command. Also changed order of if(gNB->phase_comp) so that data is
exported in any case.
2025-04-25 14:54:16 +02:00
Robert Schmidt
7639cea5e5 Merge remote-tracking branch 'origin/issue_947' into integration_2025_w17 (!3380)
Issue 947 and compilation improvements

This MR started with a small commit (03c7f151) to close #947. Little did
I know that I would be taken in a long journey through OAI compilation
hell.
2025-04-25 14:53:46 +02:00
Matthias Mehlhose
04e35af5a5 mod: remove simde_ prefix and use oai_ prefix instead 2025-04-25 14:48:00 +02:00
Matthias Mehlhose
59d7e74157 add: unit tests 2025-04-25 14:47:59 +02:00
Matthias Mehlhose
8bfc0dfedd del: double defines (see tools_defs.h) 2025-04-25 14:47:59 +02:00
Laurent THOMAS
8c55c4b8ab move traces of phy simulators to stdout (some were in stderr) 2025-04-25 14:47:59 +02:00
Laurent THOMAS
7982a9da41 set correct parameter type, and fuse funcions that do same real/complex vector operations, doing this, fix a lot of unitary multiplications (else there would be numerous cast operations 2025-04-25 14:47:59 +02:00
Laurent THOMAS
95ae7772bf simplifly, reegroup functions in tools_defs.h 2025-04-25 14:47:59 +02:00
Laurent THOMAS
04fc2fbb2e make correct description of sub_cpx_vector16 and remove mixed dead code 2025-04-25 14:47:59 +02:00
Laurent THOMAS
4e3fab67a8 remove unused function with duplicated name to another one 2025-04-25 14:47:59 +02:00
Laurent THOMAS
2528a0614a - replace SIMDE package internal types usage by oai defined types
- remove some unused functions
2025-04-25 14:47:59 +02:00
Laurent THOMAS
fefb96a115 merge functions conj(a)*b and a*conj(b) 2025-04-25 14:47:59 +02:00
Laurent THOMAS
bb93b06663 use one call to multiply the full size vector 2025-04-25 14:47:59 +02:00
HHI
f470ea5946 mod: refactor PHY multiplications 2025-04-25 14:47:59 +02:00
Guido Casati
f418078a0e Update ci-scripts/yaml_files/5g_rfsimulator/README.md 2025-04-25 12:23:45 +02:00
Robert Schmidt
14269b7933 Merge remote-tracking branch 'origin/f1-du-config-update-fixes' into integration_2025_w17 (!3401)
F1AP: Allocate gNB_DU_ID before storing ID

Update the test so it would catch that bug. Check in eq_() that both
gNB_DU_IDs would be present, or not, using xor.

Found while interop testing with OSC DU.
2025-04-25 08:40:17 +02:00
Robert Schmidt
566790c8ec Merge remote-tracking branch 'origin/sib_misconfiguration_assertion' into integration_2025_w17 (!3399)
SIBs in DL slot check

This MR add assertions to prevent scheduling SIBs in slots that are not DL
2025-04-25 08:39:53 +02:00
Robert Schmidt
67887e1040 Merge remote-tracking branch 'origin/fix_3372' into integration_2025_w17 (!3397)
Fix for MIB/SIB gNB delay mechanism

Fix for !3372 to start scheduling/print gNB stats when the PRACH noise
estimation is ready
2025-04-25 08:38:19 +02:00
Robert Schmidt
aee1e663d9 Merge remote-tracking branch 'origin/fix-all-mem-leak-mac-no-ue' into integration_2025_w17 (!3377)
Fix all direct MAC memory leaks

This MR fixes many memory leaks in the MAC that are otherwise shown by
asan if the gNB is started. UEs can be connected and it seems the MAC
does not leak memory. It also fixes a number of memory problems where
e.g., the generation of SIB1 "steals" memory from the
ServingCellConfigCommon. See the commits for more details.

Note that this still leaves behind a lot of memory after calling the new
function mac_top_destroy_gNB(). To see them, add free(mac); in that
function. However, there are no "direct leaks", so it would be feasible
to still clean up (it's just that we don't do it, yet).

I checked. In a "standard" configuration (FR1, 30kHz), the memory leaks
come basically from RRC. Also, the F1 UE context setup message leaks
some memory, which we will handle in the future by adding
encoding/decoding functions that with corresponding utility (free, copy)
functions. On the other hand, the frequent F1 messages (UL/DL RRC
Message Transfer) do not leak memory (they have the utility functions).

A final commit just makes the inability to write nrRRC_stats.log,
nrL1_stats.log, and nrMAC_stats.log, non-fatal to the gNB.
2025-04-25 08:37:34 +02:00
Robert Schmidt
413b84b179 Allocate gNB_DU_ID before storing ID
Update the test so it would catch that bug. Check in eq_() that both
gNB_DU_IDs would be present, or not, using xor.
2025-04-24 18:42:06 +02:00
francescomani
657a464e6f increase size of max measurement definitions in OAI UE as per 38.331 2025-04-24 18:40:49 +02:00
francescomani
76040b97aa move rrc_config_dl_ptrs_params to common header since it is also used by dlsim 2025-04-24 18:40:49 +02:00
francescomani
4f7bbda19a remove LTE/rrc_vars.h include in ulsim 2025-04-24 18:40:49 +02:00
francescomani
50e91dc386 remove pdcp.h dependency in nr-uesoftmodem 2025-04-24 18:40:49 +02:00
francescomani
b7185b3b6a remove NR/nr_rrc_proto.h dependency from nr_rlc_oai_api.h 2025-04-24 18:40:49 +02:00
francescomani
85ee4647b5 remove NR/nr_rrc_defs.h dependency from asn1_msg.h 2025-04-24 18:40:49 +02:00
francescomani
b05d1ff599 remove gNB structure dependency from get_MeasConfig in asn1_msg.c 2025-04-24 18:40:49 +02:00
francescomani
bda64a05d9 remove gNB structure dependency from do_RRCReestablishment in asn1_msg.c 2025-04-24 18:40:49 +02:00
francescomani
368e74930c remove gNB structure dependency from do_RRCReconfiguration in asn1_msg.c 2025-04-24 18:40:49 +02:00
francescomani
735a631499 remove gNB structure dependency from do_RRCSetup in asn1_msg.c 2025-04-24 18:40:49 +02:00
francescomani
7a4c5ab6aa remove LTE/rrc_defs.h dependency in rrc_UE.c 2025-04-24 18:40:49 +02:00
francescomani
9e0d3c50bc move NR_RRC_BUF_SIZE to common 2025-04-24 18:40:49 +02:00
francescomani
492fae4292 remove rrc_defs.h dependency in L2_interface 2025-04-24 18:40:49 +02:00
francescomani
9df009cf66 remove rrc_gNB_radio_bearers.h dependency in nr_pdcp_entity.h 2025-04-24 18:40:49 +02:00
francescomani
60a57c69b3 Remove dependency from RRC gNB structure in NR RLC API
Pass a "type" of RLC operational mode, from which split-type/gNB/UE
decision is derived.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-04-24 18:40:07 +02:00
Florian Kaltenberger
183b4a1d0f small bugfix: missing beam index when addressing txdataF in T tracer command. Also changed order of if(gNB->phase_comp) so that data is exported in any case. 2025-04-24 18:09:47 +02:00
Robert Schmidt
f9224e1fc8 File-based stats: abort writing if we can't write
There might be a number of reasons, such as read-only write system,
erros, etc. Still gracefully continue instead of aborting the operation.
2025-04-24 17:22:43 +02:00
Robert Schmidt
83dc33d3bf Avoid memory leaks: ext1 directly overwritten by p2 2025-04-24 17:22:43 +02:00
Robert Schmidt
d785187f28 Make deep copy for TDD_UL_DL_ConfigCommon instead of stealing pointer 2025-04-24 17:22:42 +02:00
Robert Schmidt
d41e7a95df Fix direct memory leak 2025-04-24 17:22:42 +02:00
Robert Schmidt
a57e4cd655 Fix direct memory leak 2025-04-24 17:22:42 +02:00
Robert Schmidt
de35a0a59c Fix memory leak: fix_tdd_pattern() allocates pattern1.ext 2025-04-24 17:22:42 +02:00
Robert Schmidt
8ee0b8efdf Introduce mac_top_destroy_gNB(): free MAC memory 2025-04-24 17:22:42 +02:00
Robert Schmidt
6afc0dee50 Correctly free 2-step RA/MsgA structures in fix_scc() 2025-04-24 17:22:42 +02:00
Robert Schmidt
b18fff6ae2 Correctly deep-copy memory structures on SIB1 creation 2025-04-24 17:22:42 +02:00
Robert Schmidt
c26a12e6b7 Correctly free ASN.1 memory for unused dedicated BWPs
prepare_scd() sets up memory for possible dedicated BWPs to be set up.
If they are not used, they are freed in fix_scd(). [1]

There are two problems:

1. in prepare_scd(), multiple structures are allocated once (for
   multiple elements), but inserted once. When trying to free those, the
   logic of ASN.1 is to free list elements individually, but then we try
   to call free() on each element of the list that has been allocated in
   one go. Fix this by doing multiple allocations to be in line with
   ASN.1 logic.

2. in fix_scd(), free recursively all data structures, not only the
   sequence element itself.

[1] this is horrible. We should only allocate memory if we actually need
it, but let's fix the more urgent problem of memory leaks first. Fixing
the logic problem would be more involved.
2025-04-24 17:22:42 +02:00
Guido Casati
e9dcbc66f0 Adopt DRB failed item enc/dec in PDU Session Resource Setup List item enc/dec 2025-04-24 11:30:29 +02:00
Guido Casati
e2e3ed09a9 Use in stack enc/dec library for E1 Bearer Context Modification Response 2025-04-24 11:29:10 +02:00
francescomani
2e9f5a7789 asserting if the otherSIB slot is not downlink 2025-04-24 09:30:28 +02:00
francescomani
f63ac3f1e4 asserting if the SIB1 slot is not downlink 2025-04-24 09:30:24 +02:00
francescomani
0301b239a2 print stats only after scheduler started 2025-04-23 16:42:03 +02:00
francescomani
3afa5760b8 fix num_scheduled_prach_rx with num occasion per slot 2025-04-23 14:49:57 +02:00
francescomani
3974136a05 remove LTE/rrc_vars dependency in uesoftmodem 2025-04-23 08:16:30 +02:00
francescomani
9f3a374758 remove NR UE rrc_defs dependency in rrc_messages_types 2025-04-23 08:16:30 +02:00
francescomani
3ba7c6bb11 remove unused nr_mac_rrc_sl_mib_ind 2025-04-23 08:16:30 +02:00
Robert Schmidt
4da30019be Merge branch 'integration_2025_w16' into 'develop'
Integration: `2025.w16`

Closes #949, #929, and #941

See merge request oai/openairinterface5g!3392

* !3207 Create nrUE network interface from SDAP (rebased)
* !3293 Cleanup and refactor initial gNB configuration
* !3326 Enable SSB-SINR based CSI reporting
* !3330 NR UE: consider the ratio of PUSCH EPRE to DMRS EPRE when calculating PUSCH DMRS power scaling
* !3376 Correct block_length to Kprime for LDPC decoder
* !3390 fix IP address in 4G UE
* !3071 time management module
* !3254 Follow up on NAS Registration Accept lib
* !3121 Bugfix for number of PRBs in PUCCH format 2
* !3387 fix NTN LEO scenario
* !3393 rejecting DRB if not configured in PDCP-Config
* !3372 Add Delay Mechanism for Initial MIB/SIB Transmission in gNB Scheduler
2025-04-22 16:16:33 +00:00
Thomas Schlichter
8f93424e53 Adapt NTN-LEO config after integration branch runs 2025-04-22 15:47:41 +02:00
Robert Schmidt
d623cbed7d Merge remote-tracking branch 'origin/issue_949' into integration_2025_w16 (!3393)
rejecting DRB if not configured in PDCP-Config

Closes issue #949
2025-04-22 09:38:42 +02:00
Robert Schmidt
f5b0d9603b Merge remote-tracking branch 'origin/fix_ntn_leo' into integration_2025_w16 (!3387)
fix NTN LEO scenario

NR UE: in nr_slot_fep() perform FO compensation in local tmp_dft_in
array instead of global rxdata array.

This avoids problems if nr_slot_fep() is called more than once for an
OFDM symbol.
2025-04-22 09:38:07 +02:00
Robert Schmidt
884e60da69 Merge remote-tracking branch 'origin/remove-prach-delay' into integration_2025_w16 (!3372)
Add Delay Mechanism for Initial MIB/SIB Transmission in gNB Scheduler

- Delay MIB/SIB in gNB until PRACH noise converges
- Remove the first PRACH random access attempt delay in NR UE
2025-04-22 09:37:31 +02:00
Jaroslava Fiedlerova
3d5177e5f7 Merge remote-tracking branch 'origin/bugfix_pucch2_prb_size' into integration_2025_w16 (!3121)
Bugfix for number of PRBs in PUCCH format 2

[TS 38.213 - Section 9.2.1 PUCCH Resource Sets] If the format indicates
PUCCH-format2 or PUCCH-format3, the PUCCH format configured for a PUCCH resource
is PUCCH format 2 or PUCCH format 3, respectively, where the PUCCH resource also
includes a number of PRBs provided by nrofPRBs, a number of symbols for a PUCCH
transmission provided by nrofSymbols, and a first symbol for the PUCCH
transmission provided by startingSymbolIndex.

[TS 38.213 - Section 9.2.3 UE procedure for reporting HARQ-ACK] If a UE transmits
a PUCCH with O_ACK HARQ-ACK information bits and O_CRC bits using PUCCH format 2
or PUCCH format 3 in a PUCCH resource that includes M_PUCCH_RB PRBs, the UE
determines a number of PRBs M_PUCCH_RB_min for the PUCCH transmission to be the
minimum number of PRBs (...)

[TS 38.213 - Section 9.2.5.1 UE procedure for multiplexing HARQ-ACK or CSI and
SR in a PUCCH] If a UE transmits a PUCCH with O_ACK HARQ-ACK information bits,
O_SR = ⌈log2(K+1)⌉ SR bits, and O_CRC CRC bits using PUCCH format 2 or PUCCH
format 3 in a PUCCH resource that includes M_PUCCH_RB PRBs, the UE determines
a number of PRBs M_PUCCH_RB_min for the PUCCH transmission to be the minimum
number of PRBs (...)

[TS 38.213 - Section 9.2.5.2 UE procedure for multiplexing HARQ-ACK/SR/CSI in
a PUCCH] If a UE has HARQ-ACK, SR and wideband or sub-band CSI reports to
transmit and the UE determines a PUCCH resource with PUCCH format 2, or the UE
has HARQ-ACK, SR and wideband CSI reports to transmit and the UE determines a
PUCCH resource with PUCCH format 3 or PUCCH format 4, where (...) the UE
transmits the HARQ-ACK, SR, and CSI reports bits by selecting the minimum number
PUCCH M_PUCCH_RB_min of the M_PUCCH_RB PRBs satisfying (...)

[TS 38.213 - Section 9.2.5.2 UE procedure for multiplexing HARQ-ACK/SR/CSI in a
PUCCH] If a UE has one or more CSI reports and zero or more HARQ-ACK/SR
information bits to transmit in a PUCCH where the HARQ-ACK, if any, is in
response to a PDSCH reception without a corresponding PDCCH; if any of the CSI
reports are overlapping (...); else, the UE transmits the
O_ACK + O_SR + O_CSI + O_CRC bits in a PUCCH resource provided by
pucch-CSI-ResourceList and determined as described in clause 9.2.5

Therefore, the number of PRBs to be used by PUCCH-format2 is M_PUCCH_RB_min,
except if we have zero HARQ-ACK bits, or if we have any HARQ-ACK, is in response
to a PDSCH reception without a corresponding PDCCH. In this case, we must use
the resources indicated in the pucch-CSI-ResourceList and determined as described
in clause 9.2.5.

In OAI, we have:
asn1cSeqAdd(&csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list, pucchcsires);

Where the resource added to the list corresponds to:

pucchres2->pucch_ResourceId = *pucchressetid;
pucchres2->startingPRB = 0;
pucchres2->intraSlotFrequencyHopping = NULL;
pucchres2->secondHopPRB = NULL;
pucchres2->format.present = NR_PUCCH_Resource__format_PR_format2;
pucchres2->format.choice.format2 = calloc(1,sizeof(*pucchres2->format.choice.format2));
pucchres2->format.choice.format2->nrofPRBs = 8;
pucchres2->format.choice.format2->nrofSymbols = 1;
pucchres2->format.choice.format2->startingSymbolIndex = 13;

Currently, in develop branch, we get these prb_size for PUCCH-format2:

[NR_RRC]   NGAP_PDUSESSION_SETUP_RESP: sending the message
[NGAP]   pdusession_setup_resp_p: pdusession ID 1, gnb_addr 172.31.0.1, SIZE 4, TEID 1579669408
[NR_MAC]   (596.3) pucch_pdu->prb_size = 4
[NR_MAC]   (596.4) pucch_pdu->prb_size = 3
[NR_MAC]   (600.3) pucch_pdu->prb_size = 4
[NR_MAC]   (600.4) pucch_pdu->prb_size = 3
[NR_MAC]   (604.3) pucch_pdu->prb_size = 4
[NR_MAC]   (604.4) pucch_pdu->prb_size = 3
[NR_MAC]   (608.3) pucch_pdu->prb_size = 4

While in QXDM we have Num RB = 8, whenever we have zero HARQ-ACK bits:

UCI Request BMask =             ACK_NACK_RPT | CSI_RPT
               Start symbol = 13
               Num Symbols = 1
               Starting RB = 0
               REL16 DMRS EN = 0
               Dual Pol Status = 0
               Num RB = 2
               Freq Hopping Flag =          HOP_MOD_NEITHER
               Second Hop RB = NA
               Num HARQ ACK Bits = 1
               Num SR Bits = 0
               Num UCI P1 Bits = 8

UCI Request BMask =             ACK_NACK_RPT | CSI_RPT
               Start symbol = 13
               Num Symbols = 1
               Starting RB = 0
               REL16 DMRS EN = 0
               Dual Pol Status = 0
               Num RB = 3
               Freq Hopping Flag =          HOP_MOD_NEITHER
               Second Hop RB = NA
               Num HARQ ACK Bits = 3
               Num SR Bits = 0
               Num UCI P1 Bits = 13

UCI Request BMask =                            CSI_RPT
               Start symbol = 13
               Num Symbols = 1
               Starting RB = 0
               REL16 DMRS EN = 0
               Dual Pol Status = 0
               Num RB = 8
               Freq Hopping Flag =          HOP_MOD_NEITHER
               Second Hop RB = NA
               Num HARQ ACK Bits = 0
               Num SR Bits = 0
               Num UCI P1 Bits = 10

UCI Request BMask =                   CSI_RPT | SR_RPT
               Start symbol = 13
               Num Symbols = 1
               Starting RB = 0
               REL16 DMRS EN = 0
               Dual Pol Status = 0
               Num RB = 8
               Freq Hopping Flag =          HOP_MOD_NEITHER
               Second Hop RB = NA
               Num HARQ ACK Bits = 0
               Num SR Bits = 1
               Num UCI P1 Bits = 11

Therefore, this MR fixes the prb_size, so that the number of PUCCH-format2 PRBs matches correctly.
2025-04-18 14:24:07 +02:00
Jaroslava Fiedlerova
94e82200e3 Merge remote-tracking branch 'origin/nas-reg-accept-lib' into integration_2025_w16 (!3254)
Follow up on NAS Registration Accept lib

This MR is a follow up on !2984 (merged).

The goal is to enhance the NAS Registration Accept lib:
- Add regression test for NAS Registration Accept: the goal of this test is to
  prevent on the decoding of the NAS Registration Accept sent by the OAI CN5G
- Add equality check and free utility functions to NAS Registration Accept
  library
- Free NAS Registration Accept after use: heap memory is allocated for this
  message during decoding and shall be free after processing
- Remove harcoded Slice Differentiator (SD) in NAS decode_nssai_ie and update
  the processing logic: The SD stored in the allowed S-NSSAI list was hardcoded
  in the decoding function, however this IE is not mandatory but optional.
  Therefore, the check of the decoded message contents should take into account
  the presence of the field in the received message and in that scenario, check
  the stored value against the one from the UICC. If no SD was received, consider
  the UICC SD a valid one.
- Cleanup and other fixes to decode_registration_accept: (1) adopt byte array
  (2) move registration result enc/dec to registration accept library (3) check
  on buffer lengths (4) add defines whenever necessary (5) simplify the code
2025-04-18 14:21:22 +02:00
Bartosz Podrygajlo
84b9272979 Disable PRACH delay workaround in NR UE
Disable the PRACH workaround in NR UE. With the MIB/SIB delay
implemented on the gNB there is no longer a need to delay first
NR UE random access attempt.
2025-04-18 10:27:23 +02:00
Bartosz Podrygajlo
a3ef5293fb Add Delay Mechanism for Initial MIB/SIB Transmission in gNB Scheduler
This commit introduces a delay mechanism for the first MIB/SIB transmission
in the gNB scheduler to allow PRACH noise estimate to converge stabilize
before first PRACH preamble reception.

Key changes:
- Added the `num_scheduled_prach_rx` variable to gNB_MAC_INST to keep track
  of total number scheduled of PRACH receptions. Using uint64_t type to avoid
  overflow.
- Updated the `gNB_dlsch_ulsch_scheduler` function to conditionally schedule
  MIB/SIB transmissions if `num_scheduled_prach_rx` is at least 100.
  The value comes from OAIs implementation of PRACH noise estimate.
2025-04-18 10:26:36 +02:00
francescomani
ba2a0c4d1e rejecting DRB addition if DRB field not present at setup in PDCP-Config 2025-04-18 09:44:41 +02:00
Jaroslava Fiedlerova
c0d9212afc Merge remote-tracking branch 'origin/feature-time-manager' into integration_2025_w16 (!3071)
time management module

introduction of a time management module
2025-04-18 09:08:24 +02:00
Guido Casati
906b564ed0 Add unit tests for Bearer Context Modification Response
One for successful setup and the other for setup failure.
2025-04-18 09:07:35 +02:00
Cedric Roux
b89b3abd13 API change: new arguments to time_manager_start() 2025-04-18 09:05:39 +02:00
Cedric Roux
4834d93006 fix typo 2025-04-18 09:02:55 +02:00
Cedric Roux
2f7eb6ebf9 replace many DevAssert with AssertFatal for better user experience 2025-04-18 09:02:55 +02:00
Cedric Roux
b487c4deb2 restructure the code for retrieval of configuration parameters 2025-04-18 09:02:55 +02:00
Cedric Roux
c9ad10f9f9 remove ngap from linking
It used to be necessary.
2025-04-18 09:02:55 +02:00
Cedric Roux
59be08e3e6 add link to time management module to the main readme 2025-04-18 09:02:55 +02:00
Cedric Roux
7cbedb1575 time management module
This commit introduces a time management module.

See doc/time_management.md for details.
2025-04-18 09:02:54 +02:00
Jaroslava Fiedlerova
9bccad31b5 Merge remote-tracking branch 'origin/hotfix-ip-address-lte-ue' into integration_2025_w16 (!3390)
fix IP address in 4G UE

The following error was appearing when running LTE UE:

inet_pton(): cannot convert -64.-74.0.2 to IPv4 network address

The allocated address by the core actually is 192.182.0.2.
On my host "char" is signed, leading to the above error (192 and 182
are seen as signed).
Let's force "ip_addr" unsigned and everyone is happy.
2025-04-18 08:10:28 +02:00
Jaroslava Fiedlerova
32d1026b16 Merge remote-tracking branch 'origin/fix-ldpcdecoder-compile-by-clang' into integration_2025_w16 (!3376)
Correct block_length to Kprime for LDPC decoder

When compile the OAI by CMake, it shows the following error:

../openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_CL.c:353:40: error: no member named 'block_length' in 'struct nrLDPC_dec_params'
    int block_length    = p_decParams->block_length;
2025-04-18 08:09:23 +02:00
Jaroslava Fiedlerova
18372ae27e Merge remote-tracking branch 'origin/issue-929' into integration_2025_w16 (!3330)
NR UE: consider the ratio of PUSCH EPRE to DMRS EPRE when calculating PUSCH
DMRS power scaling

When calculating DMRS scaling ratio, we should consider PUSCH EPRE to DMRS
EPRE according to TS 38.214 Table 6.2.2-1.

Close #929
2025-04-17 23:03:13 +02:00
Jaroslava Fiedlerova
6e67c1ac20 Merge remote-tracking branch 'origin/NR_SSB_SINR' into integration_2025_w16 (!3326)
Enable SSB-SINR based CSI reporting

3GPP 38.331 release 16 specifies that If the field reportQuantity-r16 is present,
UE shall ignore reportQuantity (without suffix). reportQuantity-r16 configures
SSB based SINR as the reporting quantity.

set do_SINR = 1; in gNB params part of the config file to enable SSB based SINR
reporting.
2025-04-17 23:01:08 +02:00
Jaroslava Fiedlerova
315ed8e564 Merge remote-tracking branch 'origin/nr-gnb-config-refactor' into integration_2025_w16 (!3293)
Cleanup and refactor initial gNB configuration

This is follow-up on !3048 (merged). Major changes in this MR:
- Add config functions to reduce redundant code repeated in multiple places in the file
- Add macros to reduce redundant code in gNB configuration
- Refactor RCconfig_NR_NG
- Cleanup obsolete and commented out code
- Refactor includes in executables/nr-gnb.c
- Introduce platform type plmn_id_t for consistency across the stack: F1AP, NGAP can now use the same struct type
- And other minor formatting
2025-04-17 19:56:58 +02:00
Jaroslava Fiedlerova
ba2d1a880d Merge remote-tracking branch 'origin/sdap-changes' into integration_2025_w16 (!3207)
Create nrUE network interface from SDAP (rebased)

A rebase of !2485. Dropped a few refactors and SDAP manager changes.
Changes
1. Move tunnel interface read thread to SDAP for gNB (noS1) and UE (noS1 and SA).
2. Hold tunnel interface socket fd in SDAP entity instead of global variable.
3. Handle UE tunnel interface creation and IP configuration from NAS thread in noS1 and SA modes.
4. Modified UE tunnel interface naming scheme. Additional PDU sessions get oaitun_ue<id>p<pdusession_id>.

Closes #941
2025-04-17 19:53:57 +02:00
alexjiao
570c1b5639 Consider the ratio of PUSCH EPRE to DMRS EPRE when calculating PUSCH DMRS power scaling 2025-04-17 14:23:03 +02:00
Cedric Roux
b99fcdf289 fix IP address
The following error was appearing when running LTE UE:

    inet_pton(): cannot convert -64.-74.0.2 to IPv4 network address

The allocated address by the core actually is 192.182.0.2.

On my host "char" is signed, leading to the above error (192 and 182
are seen as signed).

Let's force "ip_addr" unsigned and everyone is happy.
2025-04-17 10:55:18 +02:00
Thomas Schlichter
1aa6aab120 NR UE: in nr_slot_fep() perform FO compensation in local tmp_dft_in array instead of global rxdata array
This avoids problems if nr_slot_fep() is called more than once for an OFDM symbol.
2025-04-16 17:42:11 +00:00
Thomas Schlichter
5f8aeaacc9 fix CI files for NTN LEO scenario 2025-04-16 17:00:36 +00:00
Guido Casati
3a449747de Update CN5G images tags to the latest release in all CI pipelines 2025-04-16 17:45:42 +02:00
Bartosz Podrygajlo
1ab8a58a2f Refactor TUN Interface Management and Move to SDAP Layer
This commit refactors the TUN interface management by moving its creation
and configuration from the PDCP layer to the SDAP layer for UE.

Key changes include:

- Introduced `tun_generate_ue_ifname` and `tun_destroy` functions for better
  TUN interface lifecycle management.
- Added support for creating and destroying UE-specific TUN interfaces in SDAP.
- Refactored `nr_pdcp_module_init` to remove TUN-related logic and moved it
  to SDAP.
- Updated NAS and SDAP layers to handle PDU session-specific TUN interface
  creation and configuration.
- Enhanced SDAP entity management to include TUN socket handling and thread
  lifecycle.
- Updated NAS message handling to initialize default PDU session TUN
  interfaces in NOS1 mode.
- Use a single SDAP thread function for gNB and UE
- Allow noS1 mode also in SA on gNB

These changes improve modularity by isolating TUN interface management within
the SDAP layer, aligning with the 3GPP architecture, and simplifying the PDCP
layer.

Co-Authored-By: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-04-16 15:03:18 +02:00
Thomas Schlichter
5ac3f59d61 NR UE: fix and improve PHY layer debugging 2025-04-16 12:59:13 +00:00
Guido Casati
a19c786600 Add regression test for NAS Registration Accept decoding
This test verifies that a NAS Registration Accept message, as received
from the OAI CN5G, is correctly decoded and matches the expected output
structure. It ensures that future changes to the NAS decoder do not
break compatibility or correctness with existing decoding behavior.
2025-04-16 09:44:59 +02:00
Guido Casati
3fe601fa6b Add equality check to NAS Registration Accept library 2025-04-15 19:54:23 +02:00
Guido Casati
73b89726ad Remove harcoded Slice Differentiator (SD) in NAS decode_nssai_ie and update the processing logic
The SD stored in the allowed S-NSSAI list was hardcoded in the decoding
function, however this IE is not mandatory but optional, therefore
the check of the decoded message contents should take into account
this and check the stored value against the one from the UICC only when the field is present.
If no SD was received, consider the UICC SD a valid one.

Also, add free function to Registration Accept library and adopt in stack to free NAS
Registration Accept after use: heap memory is allocated for this message during decoding
and shall be free after processing.
2025-04-15 19:54:23 +02:00
Guido Casati
c6271a23e4 Add number of slices to decoding of NSSAI 2025-04-15 19:54:23 +02:00
Guido Casati
51661bd83c Cleanup and other fixes to decode_registration_accept
* adopt byte array
* add check on minimum buffer length
* improve comments
* remove call to LOG utility functions
* replace magic numbers with defines
* refined includes
2025-04-15 19:54:23 +02:00
Guido Casati
5c4595e699 Refactor 5GS registration result enc/dec functions
* adopt byte_array
* move enc/dec functions to Registration Accept library
* simplify code
* log result received in Registration Accept
2025-04-15 19:54:19 +02:00
Robert Schmidt
e30fe59489 increase RLC buffers for reduced losses 2025-04-15 16:19:14 +02:00
Robert Schmidt
8bd2d709cf Revert "Fix PMI condition: avoid division by zero"
This reverts commit 17e36029fa.
2025-04-15 16:19:05 +02:00
Raghavendra Dinavahi
bbcb31f64b Added description for do_SINR 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi
1666dced3e gNB changes- Extract SSB-SINR from received CSI report 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi
516a618816 UE changes- Generate SSB based SINR CSI report 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi
6e371b9e48 UE changes in PHY- Enable SSB based SINR measurement 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi
61778f3d55 gNB changes- Compute bitlen in case of SSB-SINR
compute SINR bitlen according to 38.212 table 6.3.1.1.2-6A
2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi
2c164336bc gNB changes in RRC- Enable SSB-SINR based CSI reporting
3GPP 38.331 release 16 specifies that If the field reportQuantity-r16 is present, UE shall ignore reportQuantity (without suffix).
reportQuantity-r16 configures SSB based SINR as the reporting quantity.

set do_SINR = 1; in gNB params part of the config file to enable SSB based SINR reporting instead of the default RSRP based.
2025-04-15 16:02:34 +02:00
rmagueta
9e787a0ba2 Bugfix for number of PRBs in PUCCH format 2 2025-04-15 14:49:19 +01:00
Guido Casati
9b4245d921 Add generation function and handler for NAS Authentication Failure 2025-04-15 15:47:52 +02:00
Guido Casati
f5df7e17b0 Add NAS Authentication Failure enc/dec lib and unit tests 2025-04-15 15:47:51 +02:00
Guido Casati
a48e64f6f8 Adopt snprintf across the code in openair2/GNB_APP/gnb_config.c
Replaced `sprintf` with `snprintf` in gnb_config.c to enhance memory safety
by preventing potential buffer overflows. `sprintf` can cause buffer overflows
by not checking the destination buffer size. In contrast, `snprintf` allows
specifying a maximum buffer size, ensuring no overflow occurs by limiting
the number of characters written, including the null terminator.
2025-04-15 15:28:36 +02:00
Guido Casati
7ee6feac42 Use config module macros in openair2/E1AP/e1ap_setup.c 2025-04-15 15:28:36 +02:00
Guido Casati
e6da64b1a3 Refactor RCconfig_NR_NG
* use macros from config module
* cleanup irrelevant code
2025-04-15 15:28:36 +02:00
Guido Casati
bf6dff025b Cleanup obsolete code in gNB_app_task 2025-04-15 15:28:36 +02:00
Guido Casati
65e9ad7fdf Move get_node_type after init_gNB 2025-04-15 15:28:36 +02:00
Guido Casati
33ad0f917e Cleanup obsolete commented out code in gnb_config.h 2025-04-15 15:28:36 +02:00
Guido Casati
54990c2bc1 Refactor includes in executables/nr-gnb.c
* used IWYU tools + manual review
* output from IWYU:

The full include-list for /code/executables/nr-gnb.c:
/#include <PHY/NR_ESTIMATION/nr_ul_estimation.h>           // for dump_nr_I0_...
/#include <common/utils/LOG/log.h>  // lines 39-39
/#include <common/utils/system.h>                          // for threadCreate
/#include <fcntl.h>                                        // for SEEK_SET
/#include <openair1/PHY/NR_TRANSPORT/nr_dlsch.h>           // for dump_pdsch_...
/#include <openair1/PHY/NR_TRANSPORT/nr_ulsch.h>           // for dump_pusch_...
/#include <pthread.h>                                      // for pthread_join
/#include <stdint.h>                                       // for int64_t
/#include <stdio.h>                                        // for NULL, fclose
/#include <string.h>                                       // for memset
/#include <time.h>                                         // for clock_gettime
/#include <unistd.h>                                       // for sleep, size_t
/#include "NR_PHY_INTERFACE/NR_IF_Module.h"                // for NR_UL_IND_t
/#include "PHY/INIT/nr_phy_init.h"                         // for init_DLSCH_...
/#include "PHY/MODULATION/nr_modulation.h"                 // for apply_nr_ro...
/#include "PHY/NR_TRANSPORT/nr_transport_proto.h"          // for reset_activ...
/#include "PHY/TOOLS/tools_defs.h"                         // for c16_t
/#include "PHY/defs_RU.h"                                  // for RU_t, proce...
/#include "PHY/defs_common.h"                              // for wait_sync
/#include "PHY/defs_gNB.h"                                 // for PHY_VARS_gNB
/#include "PHY/defs_nr_common.h"                           // for NR_DL_FRAME...
/#include "PHY/impl_defs_nr.h"                             // for NR_MIXED_SLOT
/#include "SCHED_NR/fapi_nr_l1.h"                          // for nr_schedule...
/#include "SCHED_NR/phy_frame_config_nr.h"                 // for nr_slot_select
/#include "SCHED_NR/sched_nr.h"                            // for L1_nr_prach...
/#include "T.h"                                            // for T3, T_PUT_p...
/#include "assertions.h"                                   // for AssertFatal
/#include "common/ran_context.h"                           // for RAN_CONTEXT_t
/#include "common/utils/LOG/log.h"                         // for NR_PHY, LOG_D
/#include "executables/softmodem-common.h"                 // for get_softmod...
/#include "nfapi/oai_integration/vendor_ext.h"             // for NFAPI_MODE
/#include "nfapi_nr_interface_scf.h"                       // for nfapi_nr_co...
/#include "notified_fifo.h"                                // for initNotifie...
/#include "thread-pool.h"                                  // for abortTpool
/#include "time_meas.h"                                    // for print_meas_log
/#include "utils.h"                                        // for calloc_or_fail
2025-04-15 15:28:36 +02:00
Guido Casati
1893974d1d Set defint64val in long conf params 2025-04-15 15:28:36 +02:00
Guido Casati
7c0dc93087 Add function to set antenna ports in gNB config
* reduce redundant code
2025-04-15 15:28:36 +02:00
Guido Casati
2e7fa8e8b1 New function to set PLMN in gNB config
* reduce redundant code repeated in multiple places in the file
2025-04-15 15:28:36 +02:00
Guido Casati
1cdd684e24 Use plmn_id_t in RRC struct 2025-04-15 15:28:36 +02:00
Guido Casati
ac3f9f3e32 Introduce platform type plmn_id_t for consistency across the stack
* F1AP, NGAP can now use the same struct type
* this improves maintainability
2025-04-15 15:28:34 +02:00
Guido Casati
c1f225abc1 Add set_snssai_config to replace redundant code in gnb_config.c 2025-04-15 15:27:39 +02:00
Guido Casati
2ee056bf45 Add definition for maximum number of slices according to 3GPP specs 2025-04-15 15:27:39 +02:00
Guido Casati
34fc1bb254 Set num_nssai to uint16_t in NGAP for consistency with other definitions 2025-04-15 15:27:39 +02:00
Guido Casati
7731f5bd2d Introduce macros to get parameters in gnb_config.c
* this commit introduces macro to reduce redundant code in gNB configuration
2025-04-15 15:27:38 +02:00
Guido Casati
49b3e2ee69 Cleanup commented out code in gnb_config.c and other minor formatting 2025-04-15 15:25:53 +02:00
Robert Schmidt
f3eb713084 Merge branch 'integration_2025_w15' into 'develop'
Integration: `2025.w15`

Closes #901, #943, #944, #942, and #939

See merge request oai/openairinterface5g!3374

* !3358 RedCap InitialBWP
* !3364 NR UE: fix PRACH generation with frequency resource id not 0 when msg1-FDM > 1 in SIB1
* !3365 nr pdcp: 'count' is 32 bits, use explicit type instead of generic 'int'
* !3366 Fix typo in gNB_scheduler_uci.c
* !3370 Doc: add information on how to avoid a common asan bug
* !3275 NAS service reject
* !3312 NR UE: enable concurrent UL slot processing
* !3368 Encapsulate cmake asn1c call, suppress useless output
* !3336 Fix logging in nr_dlsim
* !3281 Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters
* !3355 NR UE: add support for continuous frequency offset compensation (in particular NTN LEO Doppler)
* !3375 CI CoreNetwork fixes
* !3184 NR SIB2
* !3348 CI: Replacing Devkit server with a Grace Hopper in Aerial pipeline
2025-04-15 05:54:26 +00:00
Robert Schmidt
b790fb235d Add SIB2 and SIB19 to NTN-LEO config 2025-04-14 21:29:34 +02:00
Robert Schmidt
e085fb5fee Merge remote-tracking branch 'origin/aerial_to_gh' into integration_2025_w15 (!3348)
CI: Replacing Devkit server with a Grace Hopper in Aerial pipeline

Switch servers on the Aerial pipeline from Gigabyte (AMD) to Grace
Hopper (ARM), and make the necessary changes:

- Update XML, YAML, and gnb.conf
- Change the argument passed to the L1 in aerial_l1_entrypoint.sh to be
  compatible with the GH
- Update the Aerial setup in TESTBench.md and Aerial_FAPI_Split_Tutorial.md docs
- Decrease the tested throughput due to an issue with the RU. Will open
  another MR to increase it once the problem is fixed.
2025-04-14 18:18:18 +02:00
Robert Schmidt
98d4dff509 Merge remote-tracking branch 'origin/NR_gNB_SIB2' into integration_2025_w15 (!3184)
NR SIB2

- Transmission of SIB2
- Fixes for transmission and reception of SIB19

Closes #901
2025-04-14 17:01:28 +02:00
Robert Schmidt
5c5dbdf2d3 Merge remote-tracking branch 'origin/ci-refactor-cn-fixes' into integration_2025_w15 (!3375)
CI CoreNetwork fixes

Some minor fixes after !3322
2025-04-14 17:00:59 +02:00
Robert Schmidt
07f8158378 Merge remote-tracking branch 'origin/ntn_leo_freq_comp' into integration_2025_w15 (!3355)
NR UE: add support for continuous frequency offset compensation (in particular NTN LEO Doppler)

- move function add_noise() to file
  openair1/SIMULATION/TOOLS/phase_noise.c
- refactor (co)sinus calculation out of phase_noise() into get_sin_cos()
  in nr_common.c
- NR UE: continuously estimate the frequency offset using PBCH DMRS
- NR UE: add command line parameter --initial-fo to specify known
  initial frequency offset
- NR UE: add support for continuous DL frequency offset compensation
  --cont-fo-comp
- NR UE: add support for continuous UL frequency offset
  pre-compensation. Depending on the main source of frequency offset,
  pre-compensate the UL frequency offset (FO) accordingly. Therefore
  modify the flag --cont-fo-comp to accept an integer value, where
  * 1 specifies, that the main FO contribution comes from the accuracy of the local oscillator (LO)
  * 2 specifies, that the main FO contribution comes from Doppler shift
- NR UE: add PI controller to continuous frequency offset compensation
- rfsimulator: enable and correct NTN LEO doppler simulation
- use SIMD to speed up nr_fo_compensation()
- Extend NTN LEO example in RUNMODEM.md to include continuous Doppler
  compensation
- NR UE: in nr_adjust_synch_ue() extend the peak search to +/- cyclic
  prefix size, esp. for LEO NTN scenarios the timing drifts during
  initial sync, which is mostly compensated with
  --ntn-initial-time-drift. But there might be a residual time offset,
  and by extending the peak search window we make this more tolerant.
- NR UE: remove unused nr_slot_tx_offset, it is unused since commit
  f3e60a14
- NR UE: remove now unnecessary local variable
  update_ntn_system_information, directly use
  UE->ntn_config_message->update instead
2025-04-14 16:59:27 +02:00
Reem Bahsoun
42a4292149 Modify ci_infra.yaml and XML to start CN from Grace Hopper 2025-04-14 11:39:13 +02:00
Reem Bahsoun
b3a1e3d2e8 Doc update
- Update the Aerial tutorial to include Grace Hopper server and add reference to Gigabyte server setup instructions.
- Update the Aerial setup in the TESTBench.md
2025-04-14 11:39:08 +02:00
francescomani
7c4eabdb6e fix for DLSCH DMRS reference point (regression at the OAI UE introduced when testing with OAI gNB for a missing implementation in OAI gNB) 2025-04-14 11:28:00 +02:00
Robert Schmidt
75b237fb90 Add 5G RFsim NTN LEO CI Test 2025-04-14 10:45:40 +02:00
Robert Schmidt
890a6c702e Remove unnecessary fields in NTN-LEO gNB config 2025-04-14 10:42:10 +02:00
francescomani
9185c29e33 change ss0 configuration to schedule multiple sibs in ntn config files with small bw 2025-04-14 10:15:50 +02:00
Robert Schmidt
f3724ec451 Add SIBs in configuration doc and feature set 2025-04-14 10:15:50 +02:00
Robert Schmidt
e73f1f6220 F1AP: Correctly encode DU configuration update acknowledge SI container
Fixes: b91e1b0a12 ("Add enc/dec lib for F1AP gNB-DU Configuration
Update Acknowledge (Interface Management)")
2025-04-14 10:15:50 +02:00
Robert Schmidt
463942d90e F1AP: correctly encode SI containers
- encode all SI containers the encoding function gets (it's not the
  encoding function's job to enforce semantics)
-

Fixes: 30628b820c ("Add encoding/decoding lib for F1AP Setup Response
(Interface Management)")
2025-04-14 10:15:50 +02:00
Robert Schmidt
7edf52ca5b Use cp_f1ap_() functions to properly copy F1 messages 2025-04-14 10:15:50 +02:00
francescomani
a9e9dfbd06 assertions for wrong node type SIB input 2025-04-14 10:15:50 +02:00
francescomani
3b22c4a566 Revert tentative fix for double sib1 decoding because it doesn't behave as expected. Instead a new pending_sib variable is used for the same goal.
This reverts commit 35e9d1e0c2.
2025-04-14 10:15:50 +02:00
francescomani
2228c3966f enabling configuration of transmitted SIBs in NTN config file 2025-04-14 10:15:50 +02:00
francescomani
08da0bd2cc improvements at UE to receive multiple instances of otherSIB
for example SIB2 and SIB19 which are scheduled in separate messages
2025-04-14 10:15:50 +02:00
francescomani
e4cb8be023 do not schedule reception of DLSCH associated with DCI for SIB1 if no SIB1 is scheduled for reception
in this scenario we proably were scheduling reception of otherSIB in the same slot as SIB1 was present
2025-04-14 10:15:50 +02:00
francescomani
97ca739be2 remove hardcoded window size for otherSI in UE 2025-04-14 10:15:50 +02:00
francescomani
5e8f649963 check multiple DCI candidates with same length if SIB RNTI 2025-04-14 10:15:50 +02:00
francescomani
c633fa5855 increase number of candidates for otherSIB 2025-04-14 10:15:50 +02:00
francescomani
6af70bd4b9 fix buggy TBS function for SIB and set additional candidate for common search space 2025-04-14 10:15:50 +02:00
francescomani
04213f2981 schedule SIBs other than 1 (including fixes for SIB19) 2025-04-14 10:15:50 +02:00
francescomani
535d8e7765 other SIBs scheduling configuration in SIB1 2025-04-14 10:15:45 +02:00
Robert Schmidt
556396e56e Ping: use cn name when checking for CN IP address 2025-04-12 11:17:22 +02:00
Robert Schmidt
135b522cf4 CoreNetwork: do not look up IP for CN name printing
In various places, e.g., during initialization (before deployment), we
use the name of the CN object, previously including the IP address.
However, the IP might not be available (because the CN is not deployed),
so we would get warnings at this stage. Avoid this by not looking up the
IP.

There is now one place where we have to look up the IP address
separately.

Also, the exception in initialization might be misleading if we used
{self}, because we complain about no node being present, but the {self}
would include a non-existing node name => do not use it.
2025-04-12 11:17:22 +02:00
Robert Schmidt
cb175569eb Merge remote-tracking branch 'origin/xl_min_mcs' into integration_2025_w15 (!3281)
Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters

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

In addition to use a min value for MCS, this MR also enables the testing
of a specific MCS value with COTS UE, by setting

    xl_min_mcs = xl_max_mcs

example:

    dl_min_mcs: 22
    dl_max_mcs: 22
    ul_min_mcs: 7
    ul_max_mcs: 7

In the example above, the scheduler will use always MCS 22 for downlink
and MCS 7 for uplink.
2025-04-12 11:03:56 +02:00
Robert Schmidt
ec65c7cbaa Merge remote-tracking branch 'origin/nr_dlsim_improve_logging' into integration_2025_w15 (!3336)
Fix logging in nr_dlsim

Added Python helper script to plot buffer data
2025-04-12 11:03:25 +02:00
Robert Schmidt
e7b46342d5 Merge remote-tracking branch 'origin/asn1c-default-no-output' into integration_2025_w15 (!3368)
Encapsulate the asn1c call from cmake in a cmake function run_asn1c().
As a notable change to the previous manual add_custom_command()
invocation, in suppresses the output of asn1c by default [1] and stores
it in a log file. In case of asn1c4 error, the output will output on
stdout.

Use the new run_asn1c() in all occasions for code generation.

[1] it is quite verbose, with many warnings that we cannot influence nor
suppress, and lists all generated files which is verified by the build
system automatically, anyway.
2025-04-11 16:29:27 +02:00
Robert Schmidt
26dcb876f5 Merge remote-tracking branch 'origin/nr-ue-slot-tx-cleanup' into integration_2025_w15 (!3312)
NR UE: enable concurrent UL slot processing

This commit introduces support for concurrent UL slot processing
Key changes:

- Increased number of UL actors from 1 to 2
- fix several issues related to writing to global variables inside processSlotTX
- Ensure in-order execution of if_module calls by utilizing the preexisting dynamic_barrier structure.

Note: for NTN, concurrent UL slot processing does not work. A flag
`--num-ul-actors X` has been introduced that allows to fix the number of
UL actors to `X` (default is 2).
2025-04-11 16:26:41 +02:00
Robert Schmidt
bc5f2ec99e Merge remote-tracking branch 'origin/nr-ue-nas-service-reject' into integration_2025_w15 (!3275)
Add 5GMM Service Reject enc/dec library and unit test

- introduce the library for the NAS Service Reject enc/dec
- add relevant unit test
- add handler
2025-04-11 16:25:52 +02:00
Sakthivel Velumani
d334a75c8a Fix memory leak and possible crash
nr_dlsim allocates memory on every SNR iteration without freeing it.
This can lead to memory exhaustion. Fix this by allocating only once
and reuse memory. Also, free it before exit.
2025-04-11 09:46:55 -04:00
Sakthivel Velumani
4adadedeb9 Fix logging to matlab/bin file
Add Python script to plot logged buffers. Modified write_file_matlab()
to add .bin extension if binary format is selected.
2025-04-11 09:46:50 -04:00
francescomani
4b23c7ea65 F1 transmission from CU to DU of SIB2 2025-04-11 15:37:08 +02:00
Chieh-Chun Chen
49d302960c Fix: modify block_length to Kprime 2025-04-11 14:40:52 +02:00
Robert Schmidt
2ab747eaa6 CI CoreNetwork: define function getName()
Some functionality (e.g., in cls_oaicitest.py) uses cn.getName(). Define
that function to avoid assertions.
2025-04-11 14:16:49 +02:00
Robert Schmidt
4296bfe34f Merge remote-tracking branch 'origin/info-asan-bug' into integration_2025_w15 (!3370)
Doc: add information on how to avoid a common asan bug

Closes #943
2025-04-11 07:38:55 +02:00
Robert Schmidt
b381d7ffae Merge remote-tracking branch 'origin/944-typo-in-gnb_scheduler_uci-c' into integration_2025_w15 (!3366)
Fix typo in gNB_scheduler_uci.c

Closes #944
2025-04-11 07:38:29 +02:00
Robert Schmidt
b9f5746df4 Merge remote-tracking branch 'origin/fix-count-nr-pdcp' into integration_2025_w15 (!3365)
nr pdcp: 'count' is 32 bits, use explicit type instead of generic 'int'

fix #942
2025-04-11 07:38:02 +02:00
Robert Schmidt
9e4aefda6b Merge remote-tracking branch 'origin/issue-939' into integration_2025_w15 (!3364)
NR UE: fix PRACH generation with frequency resource id not 0 when msg1-FDM > 1 in SIB1

When msg1-FDM > 1 (2, 4 or 8) in SIB1, the frequency resource id of
PRACH could be not 0, current PRACH generation only considers frequency
resource id = 0. This MR fixes it, verified with 3rd-party gNB.

Closes #939
2025-04-11 07:37:33 +02:00
Robert Schmidt
8d294d71b8 Merge remote-tracking branch 'origin/RedCap_InitialBWP' into integration_2025_w15 (!3358)
RedCap InitialBWP

Prevent RedCap UEs to move to DedicatedBWP

  This allows the coexistence of RedCap UEs and non-RedCap UEs in the
  same cell by having an InitialBWP with 20MHz and a larger
  DedicatedBWP.

Update example RedCap configuration file to have 20 MHz InitialBWP and
40 MHz DedicatedBWP
2025-04-11 07:36:51 +02:00
Thomas Schlichter
67482f5d85 CI: add NR UE conf file including NTN LEO channel model 2025-04-10 14:36:01 +00:00
Thomas Schlichter
6e06c817f4 NR UE: remove now unnecessary local variable update_ntn_system_information
directly use `UE->ntn_config_message->update` instead
2025-04-10 13:56:20 +00:00
Thomas Schlichter
997790f656 NR UE: remove unused nr_slot_tx_offset
`nr_slot_tx_offset` is unused since commit f3e60a1417
2025-04-10 13:56:20 +00:00
Thomas Schlichter
a9132a2f79 NR UE: in nr_adjust_synch_ue() extend the peak search to +/- cyclic prefix size
esp. for LEO NTN scenarios the timing drifts during initial sync, which is mostly compensated with --ntn-initial-time-drift.
But there might be a residual time offset, and by extending the peak search window we make this more tolerant.
2025-04-10 13:56:20 +00:00
Thomas Schlichter
4e3a7ad56e Extend NTN LEO example in RUNMODEM.md to include continuous Doppler compensation 2025-04-10 13:56:20 +00:00
Thomas Schlichter
29ed144764 use SIMD to speed up nr_fo_compensation() 2025-04-10 13:56:20 +00:00
Thomas Schlichter
d6585f3750 rfsimulator: enable and correct NTN LEO doppler simulation 2025-04-10 13:56:20 +00:00
Thomas Schlichter
18469302d8 NR UE: add PI controller to continuous frequency offset compensation 2025-04-10 13:56:20 +00:00
Thomas Schlichter
84712f5f92 NR UE: add support for continuous UL frequency offset pre-compensation
Depending on the main source of frequency offset, pre-compensate the UL frequency offset (FO) accordingly.
Therefore modify the flag `--cont-fo-comp` to accept an integer value, where
 - `1` specifies, that the main FO contribution comes from the accuracy of the local oscillator (LO)
 - `2` specifies, that the main FO contribution comes from Doppler shift
2025-04-10 13:56:13 +00:00
Thomas Schlichter
aac4642910 NR UE: add support for continuous DL frequency offset compensation (--cont-fo-comp) 2025-04-10 13:54:59 +00:00
Thomas Schlichter
616568a79d NR UE: add command line parameter --initial-fo to specify known initial frequency offset 2025-04-10 13:54:50 +00:00
Guido Casati
312f296b60 Add NAS handler for Service Reject message 2025-04-10 15:35:59 +02:00
Guido Casati
2b9782caa1 Add unit test for Service Reject 2025-04-10 15:35:59 +02:00
Guido Casati
5af4b89203 Add enc/dec function for NAS Service Reject library 2025-04-10 15:35:55 +02:00
Thomas Schlichter
d16507055f NR UE: continuously estimate the frequency offset using PBCH DMRS 2025-04-10 12:37:19 +00:00
Thomas Schlichter
dd827c7bd8 refactor (co)sinus calculation out of phase_noise() into openair1/PHY/TOOLS/get_sin_cos.c 2025-04-10 12:37:19 +00:00
Thomas Schlichter
9e4df97d84 move function add_noise() to file openair1/SIMULATION/TOOLS/phase_noise.c 2025-04-10 12:36:30 +00:00
luis_pereira87
f1811b5934 Move the initialization of bler_stats to 'add_new_nr_ue()' function 2025-04-10 13:18:29 +01:00
Bartosz Podrygajlo
afd49e703c Workaround for issues with NTN and NR UE concurrent UL processing
- Allow setting number of used UL actors in NR UE
 - Disable the second UL actor in NTN GEO testcase
2025-04-10 13:11:00 +02:00
Bartosz Podrygajlo
2d35fc90ac NR UE: enable concurrent UL slot processing
This commit introduces support for concurrent UL slot processing

Key changes:
 - Increased number of UL actors from 1 to 2
 - fix several issues related to writing to global variables inside
   processSlotTX
 - Ensure in-order execution of if_module calls by utilizing the
   preexisting dynamic_barrier structure.
2025-04-10 12:47:54 +02: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
Guido Casati
25bc1bd89a Adopt eq_gprs_timer in eq_service_accept 2025-04-10 11:13:42 +02:00
Guido Casati
ab3bb36357 Add eq_gprs_timer to common 5gmm_lib 2025-04-10 11:13:42 +02: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
Robert Schmidt
b9a6d93bfa Doc: add information on how to avoid a common asan bug 2025-04-10 09:06:57 +02:00
Robert Schmidt
05d393a399 Encapsulate cmake asn1c call, suppress useless output
Encapsulate the asn1c call from cmake in a cmake function run_asn1c().
As a notable change to the previous manual add_custom_command()
invocation, in suppresses the output of asn1c by default [1] and stores
it in a log file. In case of asn1c4 error, the output will output on
stdout.

Use the new run_asn1c() in all occasions for code generation.

[1] it is quite verbose, with many warnings that we cannot influence nor
suppress, and lists all generated files which is verified by the build
system automatically, anyway.
2025-04-09 14:35:29 +00:00
alexjiao
683670ed91 Fix PRACH generation with frequency resource id not 0 when msg1-FDM > 1 in SIB1 2025-04-09 20:06:41 +08:00
Reem Bahsoun
52f0bbc165 Modify files in ci-scripts/yaml_files/sa_gnb_aerial
- Update the L1 (cuBB) version in the docker-compose.yaml
- Change the argument for the L1 config file (cuphycontroller.yaml) in the aerial_l1_entrypoint.sh
2025-04-09 10:21:46 +02:00
Reem Bahsoun
8e253e3435 Modify XML and gnb.conf
- Update the N2 and N3 IP addresses to match the Grace Hopper's in the gnb.conf.
- Remove the test XML file for pulling images in the ARM image builder.
- Update the Aerial XML file to pull ARM images.
- Decrease tested throughput (temporarily) due to problems with Foxconn RU
2025-04-09 10:21:37 +02:00
francescomani
bc27d1e691 improvements in SIB2 message (info taken from commercial gNB) 2025-04-08 18:09:18 +02:00
Justin Garey
0f9220b5ef Fixed typo in gNB_schedyler_uci.c 2025-04-08 15:30:52 +00:00
Robert Schmidt
b5f7d22c02 Merge branch 'integration_2025_w14_p2' into 'develop'
Integration: `2025.w14` (part 2)

See merge request oai/openairinterface5g!3362

* !3255 Fixes for E1 and PDU session usage
* !3332 sched_ctrlCommon earlier
* !3356 Avoid accessing current_DL_BWP structure when scheduling DCI for other SIBs
* !3359 Fix inconsistent maxnoofPDUSessions definitions between NGAP and platform constants
* !3357 CI: update VVDN configuration file
* !3333 NR RLC improvements
* !3342 Fix bugs detected gcc
* !3347 feat(oran_fhlib_5g): O-RAN 7.2 FrontHaul Interface on Arm
* !3153 [E2 agent] RAN Control SM - support for REPORT Style 1 ("RRC Message" and "UE ID" RAN Parameter IDs)
* !3234 CI: minor tunings and improvements
* !3276 Optimization for unused symbols in NR UE
* !3317 Extend F1 Handover test
2025-04-08 12:20:05 +00:00
Robert Schmidt
469bf23666 Merge remote-tracking branch 'origin/extend-f1-ci-test' into integration_2025_w14_p2 (!3317)
Extend F1 Handover test

do 1 more handover in the same test to verify robustness

- This MR keeps a simple ping after the second handover since there are
  still issues due to scheduling starting too early, that is as soon as
  the UE context is added. This leads to retransmissions that could
  eventually lead to a test failure. The issue will be fixed in a future
  MR.

add check on connected DU to verify successful handover

- a new telnet function gets in input the UE ID and returns the ID of
  the connected DU

wait some time after deploying DU to mimic time for measurements
2025-04-08 10:06:06 +02:00
Robert Schmidt
b4f8c9c981 Merge remote-tracking branch 'origin/ifft-avoidance' into integration_2025_w14_p2 (!3276)
Optimization for unused symbols in NR UE

After processing TX frequency domain data skip IFFT call for symbols
that aren't used, the time domain buffer is memset instead.

Biggest benefit is when UE does not transmit PUSCH, or PUSCH is using <
14 symbols
2025-04-08 10:06:06 +02:00
Robert Schmidt
3bd2404eec Iperf_analyzeV2UDP(): variable is local 2025-04-08 10:06:06 +02:00
Robert Schmidt
d12e098736 Merge remote-tracking branch 'origin/ci-improvements' into integration_2025_w14_p2 (!3234)
CI: minor tunings and improvements
2025-04-08 10:06:06 +02:00
Robert Schmidt
748581293e Merge remote-tracking branch 'origin/RC_SM_RRC_Message_Copy' into integration_2025_w14_p2 (!3153)
[E2 agent] RAN Control SM - support for REPORT Style 1 ("RRC Message" and "UE ID" RAN Parameter IDs)

[Spring of Code 2024] contributions

Extended the RAN Control Service Model at E2 Agent to support all RC
REPORT Styles (1 - 5)
Implemented the following RAN Parameter IDs for REPORT Style 1:

1. "RRC Message": any DL-DCCH, and any UL-DCCH
2. "UE ID": as per spec, when the RRC Setup Complete or F1 UE Context
   Setup Request detected
2025-04-08 10:06:06 +02:00
Robert Schmidt
c3d80f8ac4 Merge remote-tracking branch 'origin/arm_fhi72' into integration_2025_w14_p2 (!3347)
feat(oran_fhlib_5g): O-RAN 7.2 FrontHaul Interface on Arm

This MR is enabling the 7.2 FHI on Arm systems.

Even though the performance are yet very bad (UE connection is very
difficult, 100Mbps DL, almost no UL), still I would like to merge this
now since the matter of making the FHI work is rather orthogonal to the
performance issues.

So merging this feature would provide a reliable settlement on top of
which we could then progressively enhance the porting of OAI to Arm.
Especially that would make our work easier by having less features to
rebase regularly on develop.

The main features this MR is made of are:

1. Make the xran patches dual

We provide patches for both E and F releases of xran that handles x86
targets as well as Arm targets. Both patches have been tested on both
types of machines (armix, broadbill).  Thanks to @brobert and @changy
for their work on xran.

2. Perform 9-bits BFP compression with ArmRAL

Since the BFP compression implementation provided with xran does rely
heavily on AVX512, we provide an alternative implementation that is
relying on Arm's RAN Acceleration Library (ArmRAL).

As of writing this commit description, only 9-bits compression is
supported. Other IQ width will be added.

This upcoming change does not prevent review to be performed since the
BFP compression functions of ArmRAL are identical except for the IQ
width. Adding further IQ width is therefore very straightforward.

3. Fixes in oran_fhlib_5g to support Arm

The library oran_fhlib_5g needed few changes to successfully compile and
run on Arm systems. Thanks to @brobert for his work on oran_fhlib_5g.
2025-04-08 10:06:06 +02:00
Robert Schmidt
83590bf1af Merge remote-tracking branch 'origin/fix-bugs-detected-gcc' into integration_2025_w14_p2 (!3342)
Fix bugs detected gcc
2025-04-08 10:06:06 +02:00
Robert Schmidt
8799adaca6 Merge remote-tracking branch 'origin/NR_RLC_rework' into integration_2025_w14_p2 (!3333)
NR RLC improvements

The goal of this MR is to reduce/eliminate the dependencies of NR RLC
from LTE RLC
2025-04-08 10:06:06 +02:00
Robert Schmidt
42a9dde691 Merge remote-tracking branch 'origin/ci-vvdn-update' into integration_2025_w14_p2 (!3357)
CI: update VVDN configuration file

- change frequency
- use MAC address of the new VVDN RU
2025-04-08 10:06:06 +02:00
Robert Schmidt
e4c9cb4125 Merge remote-tracking branch 'origin/fix-ngap-max-pdusession' into integration_2025_w14_p2 (!3359)
Fix inconsistent maxnoofPDUSessions definitions between NGAP and platform constants

There are 2 different definition of maxnoofPDUSessions (as per 3GPP TS
38.413), one in NGAP lib (set to 16) and one in platform_constants.h
(256 as per specs). The NGAP lib definition is removed in this commit
and replaced by the one compliant with the specs.

This is fixing the warning:

    In function 'fill_pdu_session_resource_failed_to_setup_item',
        inlined from 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP' at /openair2/RRC/NR/rrc_gNB_NGAP.c:588:7:
    /openair2/RRC/NR/rrc_gNB_NGAP.c:451:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
      451 |   f->cause = cause;
          |   ~~~~~~~~~^~~~~~~
    In file included from /common/utils/ocp_itti/intertask_interface.h:235,
                     from /openair2/RRC/NR/rrc_gNB_NGAP.h:39,
                     from /openair2/RRC/NR/rrc_gNB_NGAP.c:31:
    /openair2/COMMON/ngap_messages_types.h: In function 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP':
    /openair2/COMMON/ngap_messages_types.h:546:13: note: at offset [8724, 25769812488] into destination object 'gNB_ue_ngap_id' of size 4
      546 |   uint32_t  gNB_ue_ngap_id;
          |             ^~~~~~~~~~~~~~
2025-04-08 10:06:06 +02:00
Robert Schmidt
ec9b2bf7c9 Tune nFAPI 4x4 test case 2025-04-08 10:06:05 +02:00
Robert Schmidt
0cb22bd38f Merge remote-tracking branch 'origin/fix-null-ptr-access' into integration_2025_w14_p2 (!3356)
Avoid accessing current_DL_BWP structure when scheduling DCI for other SIBs

Avoid access to mac->current_DL_BWP structure when scheduling DCI for
SIBs other than 1. This is not needed and can cause NULL pointer access
which can happen if the UE has released MAC configuration or has not
started RA yet.
2025-04-08 10:06:05 +02:00
Robert Schmidt
ff50897905 Merge remote-tracking branch 'origin/sched_ctrlCommon-earlier' into integration_2025_w14_p2 (!3332)
sched_ctrlCommon earlier

This MR configures sched_ctrlCommon earlier, in RCconfig_nr_macrlc().

The objective of this MR is to solve the following Assert in the F1 test:

    19897952.126019 [NR_MAC] I Adding new UE context with RNTI 0x3269
    /oai-ran/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c:366:15: runtime error: member access within null pointer of type 'struct NR_UE_sched_ctrl_t'
    [INFO  tini (1)] Spawned child process '/opt/oai-gnb/bin/entrypoint.sh' with pid '7'
    [INFO  tini (1)] Main child exited normally (with status '1')
2025-04-08 10:06:05 +02:00
Cedric Roux
6504c038b2 nr pdcp: 'count' is 32 bits, use explicit type instead of generic 'int' 2025-04-08 09:41:36 +02:00
Guido Casati
67fd15b054 Add sleep after deploy of target DU in F1 handover CI test
Wait before triggering a handover. First, we send it very quickly after
deployment, which can make the DU crash (should be fixed in !3332). Second, a
UE would typically first measure neighbors. While we don't do this with OAI UE,
mimic this somewhat by giving more time.

See also !3332.
2025-04-07 18:51:14 +02:00
Guido Casati
9b3255f3cd Add check on UE connected to DU to verify successful handover in F1 CI test
* add CI function to fetch DU connected to input UE ID
* add to CI test
2025-04-07 18:51:13 +02:00
Guido Casati
a12e3a6e56 Extend F1 Handover test with 1 more handover
* the handover is followed by a sleep and an ping test

This MR keeps a simple ping after the second handover since there are still issues due to scheduling starting too early,
that is as soon as the UE context is added. This leads to retransmissions that could eventually lead to a test failure.
The issue will be fixed in a future MR.
2025-04-07 18:50:36 +02:00
Guido Casati
c12c5bb5b1 Add enc/dec library for E1 Bearer Context Modification Response 2025-04-07 12:34:52 +02:00
Guido Casati
489e2ba4a4 Use E1 Bearer Context Modification Request lib in stack 2025-04-07 12:29:47 +02:00
Guido Casati
248380b6a4 Refactor E1 Security Information decoding function
* adopt changes from 182b05bd
* add checks on optional IEs
* add checks on encoded buffer sizes
2025-04-07 12:29:23 +02:00
Guido Casati
673770d346 Bugfix in e1_decode_pdu_session_to_mod_item: missing check on allocation of optional pointer
The Bearer Context Modification Request test is adding 1 QoS Flow, therefore the encoding/decoding
is done and this bug does not show. The issue is there when no QoS Flow is mapped in the DRBnGRanModList,
therefore when no memory is allocated for the optional IE, and the member is accessed in the decoding
of the Flow Mapping Information.
2025-04-07 12:28:21 +02:00
Guido Casati
25a0934941 Fix missing deref on pointer types in Bearer Context Management lib
Note: the equality check macros are using a PRINT_ERROR function
that is enabled only when E1AP_LOG_ERRORS is defined.
2025-04-07 12:28:13 +02:00
Guido Casati
254e04357d Add function name to E1AP PRINT_ERROR macro 2025-04-07 12:28:13 +02:00
Guido Casati
e472bbdd1b Add missing stdint.h include in e1ap_bearer_context_management.c
The header was included via other headers, however since int types are
direcltly used in this file, the include is necessary.
2025-04-07 12:28:13 +02:00
ndomingues
f24a576d81 Update RedCap configuration file to have 20 MHz InitialBWP and 40 MHz DedicatedBWP 2025-04-04 21:43:19 +01:00
ndomingues
a59cfae18c Prevent RedCap UEs to move to dedicated BWP 2025-04-04 21:43:19 +01:00
Laurent THOMAS
54828f10d0 defined and not used variable 2025-04-04 16:05:46 +02:00
Laurent THOMAS
f9835e996a websrv useless if(), then string copy 2025-04-04 16:05:38 +02:00
Laurent THOMAS
990414572a error uint/int mixed in loops 2025-04-04 16:04:05 +02:00
Laurent THOMAS
5cabc74527 get_nr_prach_occasion_info_from_index() uses a uninitialzed value to make += operator 2025-04-04 16:02:56 +02:00
Miguel Fuentes
681da82228 Change FlexRIC submodule commit ID
Co-authored-by: Tano Bischoff <tano.bischoff@hhi.fraunhofer.de>
Co-authored-by: Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
Co-authored-by: Shrinish Donde <shrinish.donde@hhi.fraunhofer.de>
Co-authored-by: Theodoros Tsourdinis <theodoros.tsourdinis@sorbonne-universite.fr>
Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
2025-04-04 15:32:05 +02:00
Khanh Toan Pham
12dfdb866c Add "RRC Message" and "UE ID" support in E2AP README
Co-authored-by: Tano Bischoff <tano.bischoff@hhi.fraunhofer.de>
Co-authored-by: Shrinish Donde <shrinish.donde@hhi.fraunhofer.de>
Co-authored-by: Theodoros Tsourdinis <theodoros.tsourdinis@sorbonne-universite.fr>
Co-authored-by: Miguel Fuentes <miguel.fuentes@i2cat.net>
Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
2025-04-04 15:32:05 +02:00
Tano Bischoff
c612005d28 RAN Control REPORT Style 1: "UE ID" support
As per spec, UE ID shall be reported when the message event configured by
the Event Trigger Style 1 is set to “RRC Setup Complete" message (UE attach), or
“Xn/NG Handover Request” or “F1 UE Context Setup Request” (Intra gNB Handover).

In OAI RAN, Xn/NG Handover is not yet supported, and therefore not added as the trigger event
in this commit.

Additionally, as the Event Trigger Definition Format 1 is common for both "RRC Message" and "UE ID",
E2 node will report the “RRC Setup Complete" message which the xApp will decode and print.

Co-authored-by: Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
Co-authored-by: Shrinish Donde <shrinish.donde@hhi.fraunhofer.de>
Co-authored-by: Theodoros Tsourdinis <theodoros.tsourdinis@sorbonne-universite.fr>
Co-authored-by: Miguel Fuentes <miguel.fuentes@i2cat.net>
Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
2025-04-04 15:32:05 +02:00
Robert Schmidt
8477de3571 Make function static: only used in rrc_gNB.c 2025-04-04 15:26:56 +02:00
Romain Beurdouche
fb3678bea4 feat(oran_fhlib_5g): Arm support information in documentation
Inform in O-RAN 7.2 documentation that DU execution on Arm is yet not fully supported and that 7.2 on Arm is only intended to enable experiments.
2025-04-04 13:26:01 +00:00
Romain Beurdouche
96a47821de feat(CI): Add FHI 7.2 build on native Arm build pipeline 2025-04-04 13:26:01 +00:00
Romain Beurdouche
09aec7f1d8 feat(oran_fhlib_5g): Documentation for Arm targets 2025-04-04 13:26:01 +00:00
Romain Beurdouche
e12bcc964d feat(oran_fhlib_5g): Make F release patch dual
Update the xran F release patch to work for Arm targets in addition to x86 targets.
2025-04-04 13:26:01 +00:00
Romain Beurdouche
54fd8ed9df feat(oran_fhlib_5g): BFP compression and decompression for Arm targets
The fronthaul library ships with BFP compression for AVX512 enabled targets.
This commit adds BFP compression for Arm targets by using the ArmRAL library.
2025-04-04 13:25:53 +00:00
Shrinish Donde
dfaf9dd630 RAN Control REPORT Style 1: "RRC Message" support
Send the copy of the following RRC messages to a xApp, if subscribed beforehand:
  - DL-DCCH -> any
  - UL-DCCH -> any

Co-authored-by: Tano Bischoff <tano.bischoff@hhi.fraunhofer.de>
Co-authored-by: Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
Co-authored-by: Theodoros Tsourdinis <theodoros.tsourdinis@sorbonne-universite.fr>
Co-authored-by: Miguel Fuentes <miguel.fuentes@i2cat.net>
Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-04-04 15:23:17 +02:00
Jaroslava Fiedlerova
a88f540081 CI: ping after reestablishment in sabox-b200 2025-04-04 11:55:39 +02:00
Jaroslava Fiedlerova
1e9e0b6dc7 CI: temporarily disable DRB integrity protection in B200 pipeline
Temporarily deactivate DRB integrity protection in SABOX-B200 E1 testcase
to avoid CI failure due to low measured throughput. Our investigation
suggests that the low throughput is likely due to limitation of the UE
(Quectel RM500Q), which appears to restrict the maximum data rate when
integrity protection is enabled. This limitation is not observed with
Quectel RM520N.
2025-04-04 11:55:39 +02:00
Jaroslava Fiedlerova
7417687f50 CI: update TESTBenches doc
- Cleanup and update of "Machines" table:
  - remove asterix - not used in CI
  - remove nokiabox - not used in CI
  - remove orion - not used in CI
  - update of "Lockable Resource" for individual machines - synch with
    https://jenkins-oai.eurecom.fr/lockable-resources/
  - remove column of "IP Address"
- Update information about build pipelines
2025-04-04 11:55:39 +02:00
Jaroslava Fiedlerova
955cad5741 CI: add warning log to HTML when service is restarted 2025-04-04 11:55:39 +02:00
Jaroslava Fiedlerova
b3328e96a4 CI: increase healthcheck interval for VNF-PNF deployment
The healthcheck interval sets when the first health check occurs after the
container starts. Increasing the healthcheck interval helps avoid marking
the container as "healthy" during the initialization phase of PNF. In
particular, USRP initialization of PNF service may take longer, and deployment
failures can occur even after the 10 seconds interval. Extending the healtcheck
interval provides more time for the service before assessing container health.
2025-04-04 11:55:39 +02:00
Jaroslava Fiedlerova
a4f9a7a6d4 CI: tuning gNB parameters of SABOX-B200 2025-04-04 11:55:34 +02:00
Bartosz Podrygajlo
3b174f685e Remove unnecessary memset of UE TX time domain samples array
Remove memset of the UE TX time domain samples array after trx_write in
RU_write()

This memset is unnecessary and can break openair0 libraries. Some
functionalities, e.g. usrp_lib write_thread expect the samples to be
present in the array after trx_write returns.

The array is always set before being sent either in idft or using memset
so there is no risk of sending the same data twice.
2025-04-04 11:14:09 +02:00
Bartosz Podrygajlo
0161a1c4fd Optimization for unused symbols in NR UE
After processing TX frequency domain data skip IFFT call for symbols that aren't
used, the time domain buffer is memset instead.
2025-04-04 11:12:48 +02:00
Jaroslava Fiedlerova
9207c74cba CI: enable 4 DL layers in VVDN FHI72 test
- increase tested throughput
- modify gNB config file to enable 4 DL layers
2025-04-04 09:45:39 +02:00
Jaroslava Fiedlerova
85b50925a4 doc: Update VVDN sample configuration files 2025-04-04 09:45:39 +02:00
Jaroslava Fiedlerova
683e982137 CI: more modifications for FHI72 VVDN test
- use Ubuntu image, instead of RHEL image - gNB fails with "Illegal
  instruction" during RA, when running with RHEL image
- init DPDK in VA mode
- increase number of cores Tpool
2025-04-04 09:45:39 +02:00
Jaroslava Fiedlerova
8412b94b8c CI: update VVDN configuration file
- change frequency
- use MAC address of new VVDN RU
2025-04-04 09:45:34 +02:00
Robert Schmidt
d13a0c9626 Merge remote-tracking branch 'origin/fix-e1-pdu-handling' into integration_2025_w14_p2 (!3255)
Fixes for E1 and PDU session usage

Fix a number of problems in E1 and PDU session handling:

- For multiple PDU session setup reqs, we send a bearer context setup
  each time; fix an assert that was triggered on the second bearer
  context setup message
- Add a log for E1 bearer context setup, as already done for
  modification and release
- If we get a PDU session setup for an existing PDU session, reject it
  as required by the spec [actually, it says to reject individual PDU
  sessions; keep it simple for now and reject the entire message, which
  might not be correct if there is one new PDU session that does not
  exist]
- Add a workaround to handle multiple PDU session setup requests that
  come in quick succession for different PDU sessions
2025-04-04 07:16:41 +02:00
Guido Casati
0065c6023a Remove unconsistent check in rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND
Leading to clang error:
/oai-ran/openair2/RRC/NR/rrc_gNB_NGAP.c:1329:37: error: result of comparison of constant 256 with expression of type
'uint8_t' (aka 'unsigned char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]

The value comes from the decoding of: ie->value.choice.PDUSessionResourceToReleaseListRelCmd.list.count
2025-04-03 22:30:29 +02:00
Robert Schmidt
23c909e28e Merge branch 'integration_2025_w14_p1' into 'develop'
Integration: `2025.w14` (part 1)

Closes #931

See merge request oai/openairinterface5g!3353

* !3247 Add enc/dec lib and unit test for 5GS NAS Service Accept
* !3316 Fix: Correctly Read PDU Address IE
* !3322 Refactor core network handling in CI, harmonize code
* !3327 NR UE fix for disable HARQ
* !3350 Cleanup NR PHY common definitions
* !3352 Turn off any Nagle-like algorithm for SCTP
2025-04-03 16:35:12 +00:00
Robert Schmidt
e45f429c35 Dummy nr_rlc_data_req() into nr-cuup.c 2025-04-03 17:34:54 +02:00
Guido Casati
5969ecc212 Use platform_constants.h definition NGAP_MAX_PDU_SESSION and remove NGAP lib definition
There are 2 different definition of maxnoofPDUSessions (as per 3GPP TS 38.413),
one in NGAP lib (set to 16) and one in platform_constants.h (256 as per specs).
The NGAP lib definition is removed in this commit and replaced by the one
compliant with the specs.

This is fixing the warning:

In function 'fill_pdu_session_resource_failed_to_setup_item',
    inlined from 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP' at /openair2/RRC/NR/rrc_gNB_NGAP.c:588:7:
/openair2/RRC/NR/rrc_gNB_NGAP.c:451:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  451 |   f->cause = cause;
      |   ~~~~~~~~~^~~~~~~
In file included from /common/utils/ocp_itti/intertask_interface.h:235,
                 from /openair2/RRC/NR/rrc_gNB_NGAP.h:39,
                 from /openair2/RRC/NR/rrc_gNB_NGAP.c:31:
/openair2/COMMON/ngap_messages_types.h: In function 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP':
/openair2/COMMON/ngap_messages_types.h:546:13: note: at offset [8724, 25769812488] into destination object 'gNB_ue_ngap_id' of size 4
  546 |   uint32_t  gNB_ue_ngap_id;
      |             ^~~~~~~~~~~~~~
2025-04-03 15:40:14 +02:00
Bartosz Podrygajlo
d446543ffb Avoid accessing current_DL_BWP structure when scheduling DCI for other SIBs
Avoid access to mac->current_DL_BWP structure when scheduling DCI for
SIBs other than 1. This is not needed and can cause NULL pointer access
which can happen if the UE has released MAC configuration or has not
started RA yet.
2025-04-03 11:22:40 +02:00
Robert Schmidt
42111e0203 Merge remote-tracking branch 'origin/sctp_nodelay' into integration_2025_w14_p1 (!3352)
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-03 10:14:07 +02:00
Robert Schmidt
83c8a5ac0e Merge remote-tracking branch 'origin/PHY_defs_common' into integration_2025_w14_p1 (!3350)
Cleanup NR PHY common definitions
2025-04-03 10:13:42 +02:00
Robert Schmidt
e8247afd17 Merge remote-tracking branch 'origin/fix_UE_disableharq' into integration_2025_w14_p1 (!3327)
NR UE fix for disable HARQ

Asserting on feedback time only if feedback is enabled
2025-04-03 10:13:14 +02:00
Robert Schmidt
1449bdd410 Merge remote-tracking branch 'origin/ci-refactor-core-handling' into integration_2025_w14_p1 (!3322)
Refactor core network handling in CI, harmonize code

Prior to change set, there is a highly heterogeneous situation for core
network management in CI code: some log collection is done from groovy
files (when it could be done in python, which is easier for local
development), there are multiple commands to start a CN from XML files,
the code for starting a CN is always different (no one unified way to
start "any" CN), Ping/Iperf require some support in ci_infra.yaml, ...

To help with the above, refactor the handling of core networks in the CI
code as follows:

- define all CNs in ci_infra.yaml (basically how to deploy, undeploy,
  collect logs, and on which node)
- make one Python class that reads from ci_infra.yaml and that allows to
  start/stop previously defined CNs (and add unit tests...)
- make one XML command for start/stop of CNs, leveraging above class
- leverage the CNs defined in ci_infra.yaml consistently in
  Ping()/Iperf()
- delete old code

Furthermore, the following supporting changes/bugfixes are done:

- repair Iperf2_Unidir() and add unit test
- fix a number of invalid escape sequence errors (there are some
  remaining, which I will do soon)
- various bug fixes
- remove unused XML steps
2025-04-03 10:10:58 +02:00
Robert Schmidt
30c6c23dc8 Merge remote-tracking branch 'origin/931-pdu-session-type-is-incorrectly-used' into integration_2025_w14_p1 (!3316)
Fix: Correctly Read PDU Address IE

The QoS Rules loop correctly moves msg pointer allowing the PDU Address
IE to be read correctly. The PDU Address IE is only processed if it is
provided, otherwise there is a warning.

Closes #931
2025-04-03 10:10:35 +02:00
Robert Schmidt
9fdfbae91d Merge remote-tracking branch 'origin/nr-ue-nas-service-accept' into integration_2025_w14_p1 (!3247)
Add enc/dec lib and unit test for 5GS NAS Service Accept

- add new files for Service Accept fgmm_service_accept.c/.h containing
  the enc/dec functions (8.2.17 3GPP TS 24.501)
- enabled compiling
- add unit test
- add handler in stack
2025-04-03 10:09:53 +02:00
Robert Schmidt
277f8da010 Workaround to delay multiple concurrent PDU session
This is a hack. With some UEs/CN combinations, PDU session requests
might come in quick succession. Since 38.331 asks us to only have one
reconfiguration at once, we need to delay a second, third, ... PDU
session request until the first has passed, to make one reconfiguration
at a time.
2025-04-03 09:06:31 +02: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
Robert Schmidt
ee3601df5d Fix invalid escape sequence errors in cls_cluster.py
The following cases are covered
- we have a regex whose escape sequences are not to be evaluated in the
  string, but given verbatim to the regex engine. Hence, mark them as
  raw strings.
- some are parameters for the cmd.run() call, but the parameters are
  wrong, so remove that
- there is a `\|` that is also to be passed verbatim

    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:97: SyntaxWarning: invalid escape sequence '\-'
      if re.search('buildconfig.build.openshift.io/[a-zA-Z\-0-9]+ created', ret.stdout) is not None:
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:167: SyntaxWarning: invalid escape sequence '\-'
      result = re.search(f'pod/(?P<pod>[a-zA-Z0-9_\-]+) created', ret.stdout)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:325: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:385: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:398: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:413: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:429: SyntaxWarning: invalid escape sequence '\|'
      grep_exp = "\|".join(attemptedImages)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:431: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'for pod in $(oc get pods | tail -n +2 | awk \'{{print $1}}\'); do oc get pod $pod -o json &>> cmake_targets/log/build_pod_summary.log; done', '\$', 60)
2025-04-02 14:24:21 +02:00
Robert Schmidt
1fa0b501c6 Fix invalid escape sequence errors in args_parse.py
As parent. Fix these warnings:

    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:55: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-help$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:58: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-local$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:63: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:64: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:74: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:75: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:77: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBRepository=(.+)$|^\-\-ranRepository(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:78: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:79: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:81: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:89: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:90: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:91: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:93: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:103: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:104: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:105: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:107: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:115: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:116: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:117: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:119: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:127: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:128: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:129: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:131: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:139: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:140: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:141: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:147: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:148: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:151: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:152: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:155: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBUserName=(.+)$|^\-\-eNB[1-2]UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:156: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:157: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:163: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:164: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:167: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:168: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:171: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBPassword=(.+)$|^\-\-eNB[1-2]Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:172: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:173: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:179: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:180: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:183: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:184: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:187: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBSourceCodePath=(.+)$|^\-\-eNB[1-2]SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:188: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:189: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:195: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:196: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:199: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:200: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:203: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:205: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:207: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:209: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:211: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:213: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:215: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:216: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:220: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:221: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:223: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:224: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:226: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:227: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:229: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:230: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:232: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:233: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:237: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:238: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:241: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:242: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:245: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:246: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:249: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:250: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:252: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCRegistry=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:253: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCRegistry=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:255: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:256: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:258: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:259: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE)
2025-04-02 14:24:09 +02:00
Robert Schmidt
87f0f64fe7 Fix invalid escape sequence errors in cls_module.py
As parent. The second change has no escape sequence, but since it's also
a regex, mark it as raw for uniformity (it doesn't hurt either).

    ci-scripts/cls_module.py:165: SyntaxWarning: invalid escape sequence '\.'
      result = re.search('inet (?P<ip>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)', output.stdout)
2025-04-02 14:24:09 +02:00
Robert Schmidt
000ae3dfad Fix invalid escape sequence errors in cls_oaicitest.py
In all these cases, we have a regex whose escape sequences are not to be
evaluated in the string, but given verbatim to the regex engine. Hence,
mark them as raw strings.

    ci-scripts/cls_oaicitest.py:55: SyntaxWarning: invalid escape sequence '\s'
      result = re.search('-b\s*(?P<iperf_bandwidth>[0-9\.]+)(?P<unit>[KMG])', str(args))
    ci-scripts/cls_oaicitest.py:81: SyntaxWarning: invalid escape sequence '\s'
      result = re.search('-t\s*(?P<iperf_time>\d+)', str(args))
    ci-scripts/cls_oaicitest.py:373: SyntaxWarning: invalid escape sequence '\d'
      ping_time = re.findall("-c *(\d+)",str(self.ping_args))
    ci-scripts/cls_oaicitest.py:404: SyntaxWarning: invalid escape sequence '\.'
      result = re.search(', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms', ping_output)
    ci-scripts/cls_oaicitest.py:409: SyntaxWarning: invalid escape sequence '\/'
      result = re.search('rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms', ping_output)
    ci-scripts/cls_oaicitest.py:691: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("MIB Information => ([a-zA-Z]{1,10}), ([a-zA-Z]{1,10}), NidCell (?P<nidcell>\d{1,3}), N_RB_DL (?P<n_rb_dl>\d{1,3}), PHICH DURATION (?P<phich_duration>\d), PHICH RESOURCE (?P<phich_resource>.{1,4}), TX_ANT (?P<tx_ant>\d)", str(line))
    ci-scripts/cls_oaicitest.py:724: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("PLMN MCC (?P<mcc>\d{1,3}), MNC (?P<mnc>\d{1,3}), TAC", str(line))
    ci-scripts/cls_oaicitest.py:733: SyntaxWarning: invalid escape sequence '\w'
      result = re.search("Found (?P<operator>[\w,\s]{1,15}) \(name from internal table\)", str(line))
    ci-scripts/cls_oaicitest.py:749: SyntaxWarning: invalid escape sequence '\-'
      result = re.search("DL Carrier Frequency/ARFCN : \-*(?P<carrier_frequency>\d{1,15}/\d{1,4})", str(line))
    ci-scripts/cls_oaicitest.py:759: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("AllowedMeasBandwidth : (?P<allowed_bandwidth>\d{1,7})", str(line))
2025-04-02 14:24:09 +02:00
Robert Schmidt
1037f4ddd9 Remove epc.py and use from python files
All core networks have been migrated to a file-based configuration.
References to epc.py are not needed anymore. Remove all unused XML
steps.
2025-04-02 14:24:09 +02:00
Robert Schmidt
e37ffc63f1 Jenkinsfiles: clean up EPC options, not used anymore 2025-04-02 14:24:09 +02:00
Robert Schmidt
b8020204a9 Remove LogCollectIperf option: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt
ed3f02bb64 Remove LogCollectPing option: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt
96e20b1399 Remove LogCollectUE options: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt
6172550492 CI: Remove %cn_ip%/hardcoded IPs from ping test options
With the server object to be passed into ping test, it's not necessary
to either hardcode an IP address or provide a template. Instead, always
fill the IP address, which simplies the Ping() code.

Verify that we don't have an IP address/hardcoded by throwing an
assertion.
2025-04-02 14:23:32 +02:00
Robert Schmidt
59575b9cde Handle PDU session resource setup for existing PDU session
38.413 section 8.2.1.4 says that if PDU session resource setup req
contains an existing PDU session, that one should be reported as failed.
That is rather complicated for us to do; simply reject all PDU sessions
and let the core deal with that.
2025-04-02 08:03:17 +02:00
Robert Schmidt
5625bc63d1 Add PDU session add log in E1 handler
bearer context modification and release print a message, so do the same
here as well.
2025-04-02 08:03:17 +02:00
Robert Schmidt
7e1c3e4213 Fix double-E1 bearer context setup req in E1 handler
If two PDU sessions are to be setup, the CU-CP sends two bearer context
setup requests. When running only the CU-UP, we inconditionally tried to
set up the CU-UP UE ID identifiers upon reception of the bearer context
setup request, leading to an assert. Check if the IDs are not already
set up, to avoid assertions in that case.
2025-04-02 08:03:03 +02:00
Theodoros Tsourdinis
e6797a0b0e Prepare RAN Control to support multiple REPORT Styles
The REPORT service was hardcoded to only style 4, and therefore not easily extendable.
This commit moves the support for style 4 in a separate function.

Delete duplicated enum structs for RAN Parameter IDs for all the REPORT styles.
They are already defined in "openair2/E2AP/flexric/src/sm/rc_sm/ie/rc_data_ie.h".

Co-authored-by: Tano Bischoff <tano.bischoff@hhi.fraunhofer.de>
Co-authored-by: Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
Co-authored-by: Shrinish Donde <shrinish.donde@hhi.fraunhofer.de>
Co-authored-by: Miguel Fuentes <miguel.fuentes@i2cat.net>
Co-authored-by: Teodora Vladic <teodora.vladic@openairinterface.org>
2025-04-01 20:35:51 +02:00
Teodora
bf6012084c Fill Event Trigger Condition ID in the Indication Header
- it is optional, but xApp must somehow know for which trigger event
    an E2 node sent the Indication Message
2025-04-01 20:35:51 +02:00
Teodora
e9be8bc233 Use the enum struct for RRC State defined in FlexRIC 2025-04-01 20:35:51 +02:00
francescomani
3c571d0e7a license missing in common_sim.h 2025-04-01 19:15:08 +02:00
francescomani
331325b0f3 move init_delay_table to nr_phy_common 2025-04-01 19:15:08 +02:00
francescomani
c6ccda2998 remove unused definitions in defs_nr_common 2025-04-01 19:15:08 +02:00
francescomani
606048cb00 move simde functions from nr_common to nr_phy_common 2025-04-01 19:15:08 +02:00
francescomani
cea4412b3b do not include LTE defs_common into 5G code 2025-04-01 18:53:09 +02:00
francescomani
0a95bbcfd3 move NR_NUMBER_OF_SYMBOLS_PER_SLOT into an NR file 2025-04-01 18:47:04 +02:00
Romain Beurdouche
047e80f070 feat(oran_fhlib_5g): Make E release patch dual
Update the xran E release patch to work for Arm targets in addition to x86 targets.

Co-authored-by: Yi-Hung Chang <Yi-Hung.Chang@eurecom.fr>
Co-authored-by: brobert <brobert@valiha.com>
2025-04-01 12:23:03 +00:00
brobert
db27b09b7c enabling ARM and INTEL memory alignment 2025-04-01 12:23:03 +00:00
brobert
a0f16e7e83 fix(oran_fhlib_5g): Do not include immintrin.h for Arm targets
Remove include of immintrin.h in radio/fhi_72/oaioran.c when compiling for a Arm target.
2025-04-01 12:23:03 +00:00
robert
ebde2f3698 fix(oran_fhlib_5g): Build error due to SIMDE header for Neon
Remove include of SIMDE Neon header sse_intrinsic.h to compile on ARM. Otherwise the error below is issued.

```
/usr/include/simde/arm/neon/get_lane.h:279:5: error: incompatible type for argument 1 of ‘vget_lane_f16’
 279 |     SIMDE_CONSTIFY_8_(vget_lane_f16, r, (HEDLEY_UNREACHABLE(), SIMDE_FLOAT16_VALUE(0.0)), lane, v);
 removed the inclusion of neon.h
```
2025-04-01 12:23:03 +00:00
Thomas Schlichter
0d01efa00b NR UE: don't activate HARQ process for PUCCH transmission if feedback is disabled
Currently we still activated the DL HARQ process for PUCCH transmission,
and only at the time of the scheduled PUCCH transmission, we actually skip sending the ACK.
This is not only unnecessary, it is at least misleading and strange that
DL HARQ processes can be reused in the meantime, even though they are active...

Therefore simply don't activate the DL HARQ process by skipping the call to set_harq_status() if feedback for it is disabled.
2025-04-01 10:00:46 +00:00
francescomani
3ec3c88b9e compute assertion on feedback time only if feedback is enabled 2025-04-01 09:58:28 +00:00
rmagueta
4fef7e9cca Configure sched_ctrlCommon earlier, in nr_mac_config_scc 2025-04-01 10:52:03 +01:00
francescomani
c8e5fcc585 minor formatting 2025-04-01 11:46:58 +02:00
francescomani
83ab5831c5 NR specific rlc_module_init function 2025-04-01 11:46:58 +02:00
francescomani
87b8d112f7 remove NR PDCP dummy functions (LTE dependencies not there anymore) 2025-04-01 11:46:58 +02:00
francescomani
70fba0e73c NR specific enqueue_rlc_data_req function and some cleanup in NR PDCP 2025-04-01 11:46:58 +02:00
francescomani
d4631845ec remove other RLC functions not used in NR 2025-04-01 11:46:58 +02:00
francescomani
bdb3555825 NR specific mac_rlc_status_ind function 2025-04-01 11:46:58 +02:00
francescomani
5a1d7a75dc NR specific mac_rlc_data_req function 2025-04-01 11:46:58 +02:00
francescomani
4321a2710a NR specific mac_rlc_data_ind function 2025-04-01 11:46:58 +02:00
francescomani
f2d02398fb removing unnecessary dummy rrc_rlc_config_asn1_req 2025-04-01 11:46:58 +02:00
francescomani
66f044d2d8 rlc.h cleanup 2025-04-01 11:46:58 +02:00
Jaroslava Fiedlerova
fca1971a2d Merge branch 'integration_2025_w13' into 'develop'
Integration: `2025.w13`

Closes #923, #924, #928, and #925

See merge request oai/openairinterface5g!3345

* !3300 Allow RSRP report handling in phy-test mode
* !3318 Improve handling of some pointers causing potential segfault
* !3321 DLSCH scheduler LOGs assertion prevention in case of HARQ disabled
* !3335 Other compilation improvements
* !3338 prevent access to NULL pointer in RELEASE_IE_FROMLIST
* !3337 Fix for wrong NSA init at UE
* !3339 fix NTN regression by correctly setting cellBarredNTN_r17 for NTN band again
* !3340 NR UE: fix nr_pbch_channel_estimation()
* !3260 Shared memory realtime radio simulation
* !3341 rfsimulator: apply deadlock detection only if more than one client is connected
* !3343 K-offset updated with configured sub carrier spacing
* !3331 Add documentation for Foxconn RU
* !3216 FHI72: Management plane support
* !3295 Fix SRS report TLV unpack
2025-04-01 09:36:38 +00:00
Jaroslava Fiedlerova
90bdcaafb5 Merge remote-tracking branch 'origin/Aerial_srs_unpack_fix' into integration_2025_w13 (!3295)
Fix SRS report TLV unpack

Changes the SRS unpacking to not expect padding to be present in the buffer when
working with Aerial, with which the report TLVs are not padded to the nearest
32-bit boundary. This issue was found when using a UE with 1 SRS port, which
causes the TLV to not have a length divisible by 4. Also adds a function to pull
X amount of bytes into a uint32_t, which is used to process the last 4 byte
block of the TLV, only pulling the bytes which are not padding. Completed the
SRS.indication dumping procedure to print out the report TLV. Changed the
SRS.indication unitary test to fill the last 4 byte block of the report TLV
appropriately according to the length ( which ensures the padding bytes are set
to 0 )
2025-03-31 20:06:08 +02:00
Robert Schmidt
98ac540d57 CI: use svr_id for Ping in RFsim-based tests
This is not really used as of now, because most IPs are hardcoded. See
one of the next commits for the use of this.

To make sure that we have the correct IP, there is some code that
verifies that a hardcoded IP and the CN IP would be the same.

Note: need two separate ci_infra.yaml entries, because
- for FlexRIC, the container name is different (is the tutorial CN)
- for RFsim5G E1, we don't have ext-dn => ping UPF
2025-03-31 16:38:13 +02:00
Robert Schmidt
a51190a7c5 CI: deploy Magme-MME OAI EPC through CoreNetwork, use in Ping/Iperf
- call scripts for magma MME-based deployment of OAI 5GC in
  ci_infra.yaml
- implement the existing python code through scripts (which does the same)
- save the cql file in the repo, which was previously downloaded every
  time
- use for porcepix-cn4g and nano-cn4g (un)deployment, ping, perf, in XML
  files
2025-03-31 16:38:13 +02:00
Robert Schmidt
586e51227e CI: deploy docker-based OAI 5GC through CoreNetwork, use in Ping/Iperf
- issue OAI 5GC docker commands/scripts from ci_infra.yaml
- use for matix-cn5g (un)deployment, ping, iperf in all XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt
5db684fc52 CI: deploy ltebox EPC through CoreNetwork, use in Ping/Iperf
- issue ltebox commands from ci_infra.yaml
- use for ltebox-nano, ltebox-nepes (un)deployment, ping, iperf in all
  relevant XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt
8c4a55ab1c Remove unused/unsupported EPC types "OAI-Rel14-CUPS" and "OAI" 2025-03-31 16:38:13 +02:00
Robert Schmidt
bd2b833c58 CI: deploy OpenShift-based 5GC through CoreNetwork, use in Ping/Iperf
- Use scripts to deploy OpenShift-based 5GC in ci_infra.yaml
- Use for oc-cn5g, oc-cn5g-20897, and oc-cn5g-20897-aerial2
  for (un)deployment, ping, iperf in relevant XML files
- Convert hardcoded IP addresses to %cn_ip%
2025-03-31 16:38:13 +02:00
Robert Schmidt
5f3f837021 CI: deploy sabox 5GC through cls_core.py, use in Ping/Iperf
- issue sabox commands from ci_infra.yaml
- use for sabox-nepes (un)deployment, ping, iperf in all XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt
246ad2dda3 Add (Un)deployCoreNetwork in test framework 2025-03-31 16:38:13 +02:00
Robert Schmidt
6bd96f1b5f CI Ping, Iperf: remove UE/CN logging, is done automatically 2025-03-31 16:38:13 +02:00
Robert Schmidt
d1f58d1430 Use new core network class in Iperf()/Iperf2_Unidir()/Ping()
Use the core network class to configure one "end" of these tests. This
will make the tests more generic and predictable, as they are explicitly
configured through two ci_infra.yaml "entities", instead of some
implicit "EPC" IP address given in configuration.

As of this commit, no XML passes this info into the framework, so no XML
step will work. As it is many changes, the following commits will add
the necessary info one by one.
2025-03-31 16:38:12 +02:00
Robert Schmidt
dc694475d0 Add helper class for core network handling in CI
This adds a helper class to manage various core networks in the CI
testing framework. Specifically, it reads from a YAML file information
such as a node, (un-)deployment script (file), log collection
instructions, etc., in order to allow a common interface to be used to
deploy and undeploy various core network implementations.

This commit adds the class (in cls_corenetwork.py) as well as tests for
this class.
2025-03-31 16:38:12 +02:00
Jaroslava Fiedlerova
c2179d87bf Merge remote-tracking branch 'origin/fhi72-mplane' into integration_2025_w13 (!3216)
FHI72: Management plane support

At the moment, tested with Benetel 550 and 650 RUs FW v1.2.2
- support for multiple RUs
- RPCs implemented: <connect>, <subscribe>, <get>, <supervision-watchdog-reset>,
  <edit-config>, <validate>, <commit>, <disconnect>
- read PTP sync status from operational datastore xml
- get vendor name, and for xran store RU MAC, MTU and IQ bitwidth and PRACH
  offset, and transfer this info
- store interface name, low-level-tx/rx-endpoint names, tx/rx-carrier names,...,
  from operational datastore xml
- add reference gNB/DU config files with M-plane support
- update FHI readme
2025-03-31 15:29:58 +02:00
Jaroslava Fiedlerova
7a278e746f Merge remote-tracking branch 'origin/foxconn-doc' into integration_2025_w13 (!3331)
Add documentation for Foxconn RU

This MR adds documentation for using the Foxconn RU with OAI, as it piques the
interest of some in the community. Note that this RU is not continuously tested
with OAI L1. Additionally, we have observed throughput degradation in OAI
versions beyond tag 2024.w30, and the issue is under investigation. For now, we
are providing documentation based on what we have tested in our lab.
2025-03-31 15:28:12 +02:00
Jaroslava Fiedlerova
0c5e7b439c Merge remote-tracking branch 'origin/NTN_Koffset_updated' into integration_2025_w13 (!3343)
K-offset updated with configured sub carrier spacing

According to 38.331 , cell specific K-OFFSET provided in SIB19 is provided in
number of slots as per 15Khz SCS Koffset before being applied, needs to be
updated to the slots according to the configured subcarrier spacing.
2025-03-31 15:25:41 +02:00
Robert Schmidt
321b1c4ce1 Increase maximum logging line length for in-memory log
- Increase the maximum logging line for print done through
  log_output_memory().
  The reason is that we hit this line length when printing some machine
  generated configuration (XML) through the M-plane.  Increase to make
  more of it visible.
- To limit the impact, only increase this locally in function
  log_output_memory(), and statically assert that it will never be
  larger than 64 kB.
  In other places, we use the old limit.
- Move the definition MAX_LOG_TOTAL to log.c, because it's only used
  there.
2025-03-31 12:16:18 +02:00
Teodora
7beb88425f Use [HW] logging instead of [PHY] or [NR_PHY] 2025-03-31 12:16:18 +02:00
Teodora
a4479a2e65 Add M-plane tutorial 2025-03-31 12:16:18 +02:00
Teodora
bf0a0aa06b Clarification on delay profile 2025-03-31 12:16:18 +02:00
Teodora
75d5b31f4a Add Benetel650 8x8 reference DU config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora
c7dffd416a Add Benetel550 4x4 reference gNB config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora
d5fceb8e1f Parsing RU M-plane info to xran 2025-03-31 12:16:18 +02:00
Teodora
430026f1ec Wait until RUs are ready and add <disconnect> RPC for M-plane
- if RU(s) are not well configured, disconnect immediately and stop the DU
  - if all RUs are well configured, proceed with waiting until ready. The RU is
    ready when the carriers are activated. Either the RU already has preconfigured
    carriers (previous M-plane client configured), or the DU has to wait until receives
    the notifications.
2025-03-31 12:16:16 +02:00
Teodora
f22bc5acc7 Add <commit> RPC for M-plane 2025-03-31 12:15:20 +02:00
Teodora
b478930a04 Add <validate> RPC for M-plane 2025-03-31 12:15:20 +02:00
Teodora
e79c79b82e Add <edit-config> RPC for M-plane
- generate CU-planes RU configuration based on the loaded yang models
    and DU config file
  - not yet implemented for libyang and libnetconf2 v1
2025-03-31 12:15:18 +02:00
Teodora
dd8a6eaaf5 Load yang models
Ideally, we should load the yang models from the RU operational datastore, but the issues are following:
  1) the yang models order is not good - dependancy models have to be loaded first
  2) earlier O-RAN yang versions (e.g. v4) is not properly defined (i.e. optional parameters should not be included by default)

Added support in both cases, loading from RU with <get-schema> RPC, and loading statically from "radio/fhi_72/mplane/yang/models" folder.
2025-03-31 12:14:33 +02:00
Teodora
e0ffba49ae Store U-plane related info from xml
- interface name,
  - TX/RX carrier names, and
  - TX/RX endpoint names
2025-03-31 12:14:30 +02:00
Teodora
45d0eaf3c4 Get and store M-plane related params for xran 2025-03-31 12:13:44 +02:00
Teodora
2cd5c1faf7 Add <supervision-watchdog-reset> RPC for M-plane 2025-03-31 12:12:38 +02:00
Teodora
6266239c34 Add <subscribe> RPC for M-plane 2025-03-31 12:11:58 +02:00
Teodora
07bab2a707 Get the current sync status from operational datastore 2025-03-31 12:11:11 +02:00
Teodora
fb670db91e Get info from xml operational datastore
- obtain one or multiple node values
2025-03-31 12:10:10 +02:00
Teodora
064866459c Add <get> RPC for M-plane 2025-03-31 12:10:03 +02:00
Rúben Soares Silva
d9e3725a21 Unpack SRS report TLV not expecting padding to be present
Add a function pullx32 to pull x amount of bytes into uint32_t
Change the unpacking to pull only the needed bytes, and skip over the padding, when not Aerial
Change SRS.indication dumping function to also print the report TLV contents
Change SRS.indication unitary test to fill the last 4 byte block of the report TLV according to the length, with padding
2025-03-31 10:15:08 +01:00
Jaroslava Fiedlerova
b822dcda22 Merge remote-tracking branch 'origin/rfsim_small_improve_deadlock_detection' into integration_2025_w13 (!3341)
rfsimulator: apply deadlock detection only if more than one client is connected
2025-03-31 10:32:23 +02:00
Jaroslava Fiedlerova
11960896b7 Merge remote-tracking branch 'origin/shm-radio' into integration_2025_w13 (!3260)
Shared memory realtime radio simulation

Realtime and near-realtime RFSimulator alternative without channel modelling.
The purpose of this library is to allow realtime simulation of gNB and nrUE.

The library is loaded using --device.name vrtsim. The server side (gNB) should
also configure --vrtsim.role server and --vrtsim.timescale according to
requirements.

Limitations:
- Only 1UE-to-1gNB connection supported

Future work:
- Telnet API
2025-03-31 10:22:12 +02:00
Guido Casati
a092e7ff3f Handle NAS Service Accept in stack
* also, add function to process GPRS timer
2025-03-31 10:05:35 +02:00
Guido Casati
35fd18a090 Add test for NAS Service Accept enc/dec library 2025-03-31 10:05:35 +02:00
Guido Casati
052491adde Add enc/dec/eq/free functions for 5GS NAS Service Accept lib
* add new files for Service Accept enc/dec fgmm_service_accept.c/.h
* add to CMakeLists.txt
2025-03-31 10:05:31 +02:00
Teodora
93aaaef50e Add RPC send and receive functionalities 2025-03-29 12:51:07 +01:00
Teodora
3f98ec50ef Add ssh connect function for M-plane 2025-03-29 12:51:07 +01:00
Teodora
da63bf9f9f M-plane integration - initial commit 2025-03-29 12:51:07 +01:00
Teodora
0be72c1917 Install dependencies for M-plane support 2025-03-29 12:51:07 +01:00
Teodora
efcc9fc9d4 Properly include xran_common.h in ${xran_INCLUDE_DIRS}
- ${xran_LOCATION}/src/xran_common.h
  - delete unnecessary target_include_directories() from FHI72
2025-03-29 12:51:07 +01:00
Teodora
978fa2ed05 These commands are unnecessary
- the FHI72 CMakeLists.txt exists and POST_BUILD properly links oran_fhlib_5g library
2025-03-29 12:51:07 +01:00
Teodora
3219d0a5a1 Delete duplicated FindLibXml2.cmake file
- cmake version 3.12 defines libxml2 module; the default path is
    /usr/share/cmake-3.<sub-version>/Modules/FindLibXml2.cmake
  - OAI requires minimum cmake version 3.16
2025-03-29 12:51:07 +01:00
Teodora
3a095ac57e M-plane support - explanation on needed parameters
- RU IP address - to connect to RUs via netconf
  - DU MAC address - for setting up the CU-planes on RU; not used in xran
  - VLAN tag (*) - for setting up the CU-planes on RU; not used in xran
  - DU keypair - for authentication when connecting to RU(s)

The parameters that RU-controller shall retreive from RU list of
capabilities:
  - MTU
  - compression
  - RU MAC address
  - PRACH offset (**)

(*) VLAN tag is not used in xran but an option is given in fh_config struct.
In my opinion, it is not a very suitable place, as it is needed for VFs.
Therefore, I moved it in the initialization part for M-plane purposes.

(**) PRACH offset shall be >= max(Ntx,Nrx), as per O-RAN CUS specification:
"The O-DU may decide to use same eAxC ID value to address endpoints on different O-RUs,
but eAxC ID values assigned to one O-RU must be unique within the O-RU’s endpoints of same direction."
=> however, LITEON supports flexible assignment of PRACH eAxC IDs, so
we made a workaround in the xran library to support PRACH eAxC IDs same
as PUSCH eAxC IDs.
2025-03-29 12:51:07 +01:00
Raghavendra Dinavahi
b141faaf30 K-offset updated with configured sub carrier spacing
According to 38.331 , cell specific K-OFFSET provided in SIB19 is provided in number of slots as per 15Khz SCS
Koffset before being applied, needs to be updated to the slots according to the configured subcarrier spacing.
2025-03-28 16:44:51 +01:00
Bartosz Podrygajlo
cea02a16b1 Modify 5g_fdd_rfsimulator testcase to use shm_radio
Use timescale 0.5 to make sure the iperf UL test passes. Also, disable
asan as this adds computational complexity that makes the test fail.
2025-03-28 14:58:46 +01:00
Robert Schmidt
703bf07c81 Remove EPC from InitializeNB()/TerminateeNB()
These two functions use the EPC class to potentially fill in
EPC/5GC-related information, or start a packet tracer (tshark). The only
pipeline that uses these functions is RAN-gNB-N300-Timing-Phytest-LDPC,
which does not use a core network. This functionality is not used, and
can therefore be removed.
2025-03-28 14:34:03 +01:00
Robert Schmidt
f55c1a7a4f Correct UE interface for fembms test 2025-03-28 14:34:03 +01:00
Robert Schmidt
c8534a0b51 CI: Correct Iperf2_Unidir(): only status code required 2025-03-28 14:34:01 +01:00
Robert Schmidt
e5d8c25084 Add configurable infra for Iperf2_Unidir, test, fixes
Add a possibility to use an "infrastructure YAML file" to configure both
ends of the iperf2 call through a file.

Fix bugs in Iperf2: at least on my machine, iperf2 start time is logged
at 0.00 not 0.0, so update the regex to match both. Do not overwrite
results if the matched regex (otherwise, the result might be None at the
end) and suppress server output.

Add a unit test to test that this function actually works (on my
machine, with iperf v2.2.1), as well as a unit test for analysis.
2025-03-28 14:31:28 +01:00
Robert Schmidt
ac6b296616 Iperf: Redirect server output to NULL
It's not needed/used anywhere, and some CI pipelines have a lot of
useless output.

On this occasion, also remove the unused nohup.
2025-03-28 14:31:19 +01:00
Jaroslava Fiedlerova
0bf40318ff Merge remote-tracking branch 'origin/fix_nr_ue_pbch_chan_est' into integration_2025_w13 (!3340)
NR UE: fix nr_pbch_channel_estimation()
2025-03-28 14:08:14 +01:00
Jaroslava Fiedlerova
98fe1390ac Merge remote-tracking branch 'origin/fix_ntn_regression' into integration_2025_w13 (!3339)
fix NTN regression by correctly setting cellBarredNTN_r17 for NTN band again

fixes e73e0454
2025-03-28 14:07:36 +01:00
Jaroslava Fiedlerova
ea541e90ba Merge remote-tracking branch 'origin/fix_wrong_nsa_init' into integration_2025_w13 (!3337)
Fix for wrong NSA init at UE

This error is shown in the UE logs as following

[RLC]   Activated srb0 for UE 0
[RLC]   SRB0 already exists for UE 0, do nothing
2025-03-28 14:06:19 +01:00
Jaroslava Fiedlerova
f82af5421b Merge remote-tracking branch 'origin/issue_923' into integration_2025_w13 (!3338)
prevent access to NULL pointer in RELEASE_IE_FROMLIST

Closes #923
2025-03-28 10:01:22 +01:00
Jaroslava Fiedlerova
2670185eb1 Merge remote-tracking branch 'origin/more_compilation_improvements' into integration_2025_w13 (!3335)
Other compilation improvements

The goal of this MR was to avoid compiling gNB MAC when compiling uesoftmodem
2025-03-28 10:00:20 +01:00
Jaroslava Fiedlerova
e8901dd358 Merge remote-tracking branch 'origin/disable_harq_improv' into integration_2025_w13 (!3321)
DLSCH scheduler LOGs assertion prevention in case of HARQ disabled

NR_sched_pucch_t structure is NULL if HARQ is disabled
2025-03-28 09:58:15 +01:00
Jaroslava Fiedlerova
9687bde8fd Merge remote-tracking branch 'origin/issue924' into integration_2025_w13 (!3318)
Improve handling of some pointers causing potential segfault

This intends to close #924 #928 and #925
2025-03-28 09:56:05 +01:00
Jaroslava Fiedlerova
2929554859 Merge remote-tracking branch 'origin/allow_RSRP_in_phytest' into integration_2025_w13 (!3300)
Allow RSRP report handling in phy-test mode

All CSI measurement report handling is currently disabled in phytest mode gNB
2025-03-28 09:53:56 +01:00
Reem Bahsoun
1b8a6d001b Add documentation for Foxconn RU in ORAN_FHI7.2_Tutorial.md
- This addition is based on past tests, iperf3 UDP throughput was 520Mbps DL and 40Mbps UL.
- Throughput degrades when using OAI L1 with tags beyond `2024.w30`.
- This RU is being CI tested only in the Aerial pipeline, not with OAI L1.
- The document will be updated once the issue is identified and fixed.
2025-03-27 13:20:42 +01:00
Reem Bahsoun
01877f0c9d Add gNB configuration for Foxconn RU in targets.
- Tested with OAI tag `2024.w30`.
2025-03-27 13:20:33 +01:00
francescomani
a164623fa3 prevent access to NULL pointer in RELEASE_IE_FROMLIST 2025-03-27 10:55:03 +01:00
Thomas Schlichter
cfde90dc85 rfsimulator: apply deadlock detection only if more than one client is connected 2025-03-27 09:54:20 +00:00
Thomas Schlichter
981ecb5dde NR UE: fix nr_pbch_channel_estimation() 2025-03-27 09:50:17 +00:00
Thomas Schlichter
66485aeb1d correctly set cellBarredNTN_r17 for NTN band again
fixes e73e04543a
2025-03-27 09:46:29 +00:00
francescomani
c826a20583 prevent NSA init in SA for a wrong condition 2025-03-27 09:24:50 +01:00
francescomani
3919986677 replace L2_NR dependency in f1ap with GTPV1U
The above is necessary to not compile as many gNB dependencies into the
UE. RLC only uses GTP, which was satisfied by L2_NR, but that's not
necessary. However, only that change results in

    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/libe2_ran_func_cuup.a(ran_func_rc.c.o): in function `get_list_for_report_style':
    openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596:(.text+0xbe7): undefined reference to `cp_e2sm_rc_event_trigger'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596:(.text+0xc5b): undefined reference to `cp_e2sm_rc_event_trigger'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596:(.text+0xd3b): undefined reference to `cp_e2sm_rc_event_trigger'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596:(.text+0xd9d): undefined reference to `cp_e2sm_rc_event_trigger'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596:(.text+0xded): undefined reference to `cp_e2sm_rc_event_trigger'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/libe2_ran_func_cuup.a(ran_func_rc.c.o):openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc.c:596: more undefined references to `cp_e2sm_rc_event_trigger' follow
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/libe2_ran_func_cuup.a(ran_func_rc_subs.c.o): in function `remove_rc_subs_data':
    openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc_subs.c:60:(.text+0xbe): undefined reference to `find_if'
    /usr/bin/ld: openair2/E2AP/RAN_FUNCTION/O-RAN/ran_func_rc_subs.c:62:(.text+0xca): undefined reference to `free_e2sm_rc_event_trigger'

nr-cuup previously satisfied these dependencies by depending on L2_NR
which links in e2_ran_func_du_cucp_cuup. However, the nr-cuup E2 RAN
functions are in e2_ran_func_cuup. In the latter, the file rc_data_ie.c
was missing (for cp_e2sm_rc_event_trigger), which in turn needs
e2sm_rc_ir_obj. Finally, find_if comes through alg.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-03-26 17:51:35 +01:00
Bartosz Podrygajlo
347eb5a50d Add vrtsim to build_oai and some oai images 2025-03-26 16:54:25 +01:00
Bartosz Podrygajlo
c5c2e87810 Rename shm_radio to vrtsim 2025-03-26 16:54:22 +01:00
Bartosz Podrygajlo
5d3708ac3e Realtime channel emulation for shm_radio 2025-03-26 16:53:35 +01:00
francescomani
c1d02c13b7 remove f1ap from NR_L2_UE 2025-03-26 16:10:41 +01:00
Bartosz Podrygajlo
4b61f14064 shm_radio: Exchange information between peers
This allows to exchange the number of antennas between client
and server. This is necessary for channel modelling later.
2025-03-26 14:36:58 +01:00
Bartosz Podrygajlo
5512791190 Add histogram for time budget printed at the exit of shm_radio 2025-03-26 14:31:09 +01:00
Bartosz Podrygajlo
1a69a4efe1 Shared memory realtime radio simulation
Realtime and near-realtime RFSimulator alternative without channel modelling.
The purpose of this library is to allow realtime simulation of gNB and nrUE.

The library is loaded using --device.name shm_radio. The server side (gNB) should also
configure --shm_radio.role server and --shm_radio.timescale <timescale> according to requirements.

Limitations:
 - Only 1UE-to-1gNB connection supported

Future work:
 - Channel modelling
 - Telnet API
 - Histogram of the TX time budget
2025-03-26 14:29:08 +01:00
Bartosz Podrygajlo
1d1814f8b3 Shared memory time domain bidirectional IQ channel
This implements a server-client bidirectional time domain IQ channel via
shared memory.

The server creates the channel and should be aware of the client
receiver configuration (num rx/tx antennas).

Server shall be the time source and should call shm_iq_channel_produce_samples
at regular intervals
2025-03-26 14:24:47 +01:00
francescomani
7af5e9f59e prevent possible segfault in is_ss_monitor_occasion function 2025-03-26 13:27:11 +01:00
francescomani
ec4232814a prevent possible segfault in functions to compute csi report type bitlen
also improving formatting of the same functions
2025-03-26 13:27:07 +01:00
francescomani
c4ef8931d8 prevent possible segfault in compute_csi_bitlen 2025-03-26 13:00:43 +01:00
francescomani
45fffcff71 remove include mac_proto in f1ap file 2025-03-26 11:49:03 +01:00
francescomani
38fe30baab improvements for NFAPI compilation for the UE 2025-03-26 11:30:53 +01:00
francescomani
2269f1e493 remove unnecessary gNB include in nr_mac_common 2025-03-26 10:45:15 +01:00
francescomani
159f06cbf5 remove unnecessary gNB include in config_ue 2025-03-26 10:39:32 +01:00
Robert Schmidt
1d479b2aa9 Merge branch 'integration_2025_w12' into 'develop'
Integration: `2025.w12`

Closes #920 and #915

See merge request oai/openairinterface5g!3325

* !3301 Remove unused NR UE PHY unit tests
* !3319 Disable EPS NAS security algorithms in 5GMM UE capabilities
* !3315 SCTP: avoid assert on partial SCTP message
* !3323 Fix long RACH regression
* !3311 Harmonize and update Frequency Range computation to the current values specified by the standard
* !3320 Miscelaneous improvements in PHY simulators
* !3286 Add support for ARM build pipeline
* !3308 remove ul_ch_estimates_time to save memory
* !3310 remove globale llr_layers to save memory, improve CPU, simplify code
* !3274 Add initial support for RedCap
* !3328 Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures)
* !3329 NR build improvements
* !3285 Update FHI 7.2 documentation, minor code cleanup
2025-03-26 08:42:03 +00:00
Justin Garey
f18c6c9804 If the PDU Address IE is provided (checked through length), then the PDU Session Address is processed 2025-03-25 13:03:56 -04:00
Guido Casati
31f1402790 Add common definitions to new fgmm_lib.c/.h files
The 5GMM library in openair3/NAS/NR_UE/5GS/5GMM/ contains the
all the definitions necessary to do the enc/dec of 5GMM IEs.
5GMM messages can share the same IEs, therefore they can use
common definitions and enc/dec functions.

The goal of this commit is to add common definitions to new shared
5GMM library files. The consumers of fgmm_lib are the functions
defined in the openair3/NAS/NR_UE/5GS/5GMM/ library.
2025-03-25 16:29:25 +01:00
Guido Casati
e11a09b674 Add include for stdio.h in fgs_nas_utils.h (fprintf) 2025-03-25 16:29:25 +01:00
Robert Schmidt
9bbd252298 Merge remote-tracking branch 'origin/fhi-72-cleanup-doc' into integration_2025_w12 (!3285)
Update FHI 7.2 documentation, minor code cleanup

- remove some unused functions
- make one function static
- add callback function documentation
- provide some developer function
2025-03-25 12:49:20 +01:00
Robert Schmidt
a73989b722 Provide clarification on multi-RU operation in O-RAN 7.2 tutorial 2025-03-25 12:05:56 +01:00
Robert Schmidt
078c0845f8 Add developer documentation for fhi_72 driver 2025-03-25 12:05:56 +01:00
Robert Schmidt
6b4954f2b6 Provide some documentation for xran callbacks 2025-03-25 12:05:56 +01:00
Robert Schmidt
77cdb05754 Merge remote-tracking branch 'origin/CMakeLists_improv' into integration_2025_w12 (!3329)
NR build improvements

This MR is an attempt to improve compilation of NR softmodems by
removing some of NR-LTE cross-compilation (at the cost of a small dummy
file for nr-softmodem) and one small gNB-NRUE cross-compilation.
2025-03-25 10:32:16 +01:00
Robert Schmidt
88872f18c7 Merge remote-tracking branch 'origin/fix-int-type-ulsch-id' into integration_2025_w12 (!3328)
Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures)

The ULSCH_id variable is currently defined as uint8_t, which limits its
range to 0-255. However, gNB->max_nb_pusch can exceed this range
depending on the configuration (buffer_ul_slots and
MAX_MOBILES_PER_GNB).  This can lead to incorrect behavior or undefined
results when max_nb_pusch is larger than 255. This commit changes the
type of ULSCH_id from uint8_t to int to accommodate larger values of
max_nb_pusch.

The issue was observed when running the OAI gNB with MAX_MOBILES_PER_GNB
set to 64 UEs. The root cause was traced back to the changes to UL
processing introduced in !2952.
2025-03-25 10:31:24 +01:00
francescomani
0c34562db7 remove unnecessary L2_UE_LTE_NR 2025-03-25 08:27:16 +01:00
francescomani
6c6fa11fd8 do not compile full LTE L2 eNB in nr-softmodem (at the cost of a small dummy file) 2025-03-25 08:27:12 +01:00
Robert Schmidt
e23a4271c8 Make first_call_set bool, write log with logging system
Change to bool for clarity. The log message would sometimes only show up
at the end, which is misleading; use the logging module, which
harmonizes log statements and should make this appear immediately.
2025-03-24 16:02:13 +01:00
Robert Schmidt
64a346b4b8 Update warning that E release support will be removed
We still do not handle RUs with MTUs of 1500 properly in F release;
therefore, for the close future, we cannot remove support for E release.
Also, it "promises" this for January, which is in the past already.
Update to keep the warning logical.
2025-03-24 16:02:13 +01:00
Robert Schmidt
af2c6b76c7 Remove unused callbacks, function declaration, make function static 2025-03-24 16:01:41 +01:00
francescomani
d62e202a5b remove unnecessary MCE_APP_SRC from L2_LTE_NR 2025-03-24 15:43:43 +01:00
francescomani
7843003a1e remove unnecessary nr_rrc_config.c from NR_L2_SRC_UE 2025-03-24 15:41:14 +01:00
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
1be24d48cd Merge remote-tracking branch 'origin/remove-globale-ul_ch_estimates' into integration_2025_w12 (!3310)
remove globale llr_layers to save memory, improve CPU, simplify code
2025-03-24 15:03:20 +01:00
Robert Schmidt
e4cb39d4af Merge remote-tracking branch 'origin/remove-global-ul_ch_estimates_time' into integration_2025_w12 (!3308)
remove ul_ch_estimates_time to save memory

remove ul_ch_estimates_time that saves 50MB memory to access in RAM, and
make better quality scope data passing (no race)
2025-03-24 15:02:29 +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
Robert Schmidt
99ecbad530 Merge remote-tracking branch 'origin/add_sigint_handler_nr_physimulators' into integration_2025_w12 (!3320)
Miscelaneous improvements in PHY simulators

1: Add a SIGINT handler to NR PHY simulators

When using T2 virtual functions, it is important to properly stop DPDK
and free the device.  Otherwise the virtual functions may be blocked and
a restart of the admin application is necessary.

If not carefully done, such kind of operation can lead to losing cores
to DPDK processes that cannot be stopped.  This can lead to situations
where the machine is locked and can only be unlocked by a power cycle.
Always properly stopping DPDK and freeing the device reduces the risk of
such situation to happen.

Up to now, SIGINT was shutting down the PHY simulators without freeing
the device.  This commit adds a signal handler to handle SIGINT in a way
that allow to properly free the device.

This feature is added to all the NR PHY simulators whether they use T2
or not in case it is now or later of any use.

2: Make nr_ulschsim functional

There were two issues that were making nr_ulschsim non functional:

1. The channel output was not copied to decoder input (llr array)
2. The test on decoding successful outcome was wrong

The result was that nr_ulschsim was succesfull whatever were its
arguments.  This changeset fixes the two issues so that nr_ulschsim is
now functional.
2025-03-24 14:43:57 +01:00
Robert Schmidt
cd6e83e1fc Merge remote-tracking branch 'origin/Harmonize_frequency_range' into integration_2025_w12 (!3311)
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-24 14:43:15 +01:00
Robert Schmidt
3a30954e56 Merge remote-tracking branch 'origin/fix-longrach-reg' into integration_2025_w12 (!3323)
Fix long RACH regression

Add some missing functionality that was not merged in !3088.
2025-03-24 14:42:18 +01:00
Robert Schmidt
5b07283003 Add ARM build pipeline to RAN-Container-Parent and documentation 2025-03-24 11:43:44 +01:00
Romain Beurdouche
60b04f0c82 feat(nr_unitary_defs): Apply clang-format to openair1/SIMULATION/NR_PHY/nr_unitary_defs.h 2025-03-24 09:39:36 +00:00
Romain Beurdouche
a2d13f755c feat(nr_unitary_common): Add banner and apply clang-format to openair1/SIMULATION/NR_PHY/nr_unitary_common.c 2025-03-24 09:39:36 +00:00
Romain Beurdouche
e68123e06d fix(NR PHY simulators): Naming coherence & NR PHY simulators common functions object
1. Change the name of `openair1/SIMULATION/NR_PHY/nr_dummy_functions.c` into `openair1/SIMULATION/NR_PHY/nr_unitary_common.c` for naming coherence after adding the SIGINT handler which is not a dummy function.
2. Instead of being built once for every NR PHY simulators, the common functions source file is built once as an object and linked to each simulator.
2025-03-24 09:36:56 +00:00
Guido Casati
5a59793b2f Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures)
The ULSCH_id variable is currently defined as uint8_t, which limits its
range to 0-255. However, gNB->max_nb_pusch can exceed this range
depending on the configuration (buffer_ul_slots and MAX_MOBILES_PER_GNB).
This can lead to incorrect behavior or undefined results when max_nb_pusch
is larger than 255. This commit changes the type of ULSCH_id from uint8_t
to int to accommodate larger values of max_nb_pusch.

The issue was observed when running the OAI gNB with MAX_MOBILES_PER_GNB set
to 64 UEs. The root cause was traced back to the changes to UL processing
introduced in !3166 (!2952).
2025-03-24 09:30:30 +01:00
Robert Schmidt
4ff8cf6c80 Push ARM build images to registry for arm_ prefix 2025-03-24 09:19:43 +01:00
Robert Schmidt
01d48c1d82 Add pull image with tag prefix and XML
After the parent commit, the registry might contain prefixed images.
This commit adds the functionality to pull such prefixed image. Since we
rename the pulled image (to have a consistent name, from whichever
registry we might pull), remove the prefix as well so that it can be
used with other CI functionality (remove image, use in test, ...)

Examples for renaming:
- pull from internal_registry for x86
  internal_registry/oai-gnb:branchA => oai-ci/oai-gnb:branchA
- pull from internal registry for ARM with "arm_" prefix
  internal_registry/oai-gnb:arm_branchA => oai-ci/oai-gnb:branchA
- pull from x86 other registry (e.g., openshift)
  openshift/namespace/oai-gnb:branchA => oai-ci/oai-gnb:branchA
2025-03-24 09:19:30 +01:00
Robert Schmidt
d67d5793ce Add push image with tag prefix
The only currently viable way to push ARM images to our registry is to
use a custom tag prefix. Modify the python test code to specify such a
tag, and default to "" (no prefix).
2025-03-24 09:19:30 +01:00
Robert Schmidt
3e823b25c1 Add ARM-specific image-build and XML
After the preceding commits, it's now possible to build images on ARM.
Add a specific "native_arm" build kind to only build what we need as of
now (do not only call it "arm", as that would match the kind
"build_cross_arm64").

Add the corresponding XML. Pushing of images is disabled, as this does
not work as of now.
2025-03-24 09:19:30 +01:00
Robert Schmidt
3f5181d50d Match nvipc.zip through glob
The (existing) Aerial pipeline on devkit uses an older version of nvipc,
which is upgraded on gracehopper. Use a glob to match them equally,
which also aligns this code with the corresponding Dockerfile, which
already uses that glob.
2025-03-24 09:19:30 +01:00
Robert Schmidt
9d796fb31f getopt_long() returns int
Use the right type for variable, as getopt_long() returns an int. Using
char is not a problem on x86, but prevents the return of -1 in case of
parameter reading end. This led to infinite loops on ARM, which is fixed
through the variable type change. An additional counter measure (showing
the problem) would be to print and error out when reading an undefined
parameter, which is added here as well.

This has been forgotten when making the same change for getopt() in
cf9854601c ("getopt() returns int").
2025-03-24 09:19:30 +01:00
Robert Schmidt
677a904b6c Avoid x86-specific Dockerfiles/enable ARM
Dockerfiles hardcoded one copy operation to x86; generalize to capture
ARM as well. Since the target directory cannot have any globs, we need
to manually check the right directory, then move the file.

Note that this is only necessary since we are forced to switch the
compiler, as Ubuntu's default gcc-11 does not work with FlexRIC. When
upgrading to Ubuntu 24, these lines should disappear and asan be
installed as normal. See commit 94497435e7 ("Upgrade CI images to
Ubuntu 22").
2025-03-24 09:18:44 +01:00
Robert Schmidt
19932b10f6 Configurable infrastructure file for Ping and Iperf()
- Make configurable to override (to be used later in extended tests with
  new core class)
- Move ping-iperf test infra to tests/ directory
2025-03-21 16:51:56 +01:00
Robert Schmidt
4a9bb6dbe4 Ping from correct UE 2025-03-21 16:51:56 +01:00
Robert Schmidt
60094de81f Remove two unused/duplicate steps 2025-03-21 16:51:56 +01:00
Robert Schmidt
083765f7a7 Remove outdated/unused XML files 2025-03-21 16:51:56 +01:00
Raghavendra Dinavahi
2a2ebfe80f Initialising dl,ul freq in psbchsim 2025-03-21 16:05:30 +01:00
Robert Schmidt
f6e3ea48d0 Merge remote-tracking branch 'origin/issue-920-fix-crash-sctp' into integration_2025_w12 (!3315)
SCTP: avoid assert on partial SCTP message

The receive buffer for SCTP, before this branch, is 8192. If a message
is larger, we receive only a partial message, which makes the gNB abort.
Remove the abort to not be susceptible to a message intended to crash
the gNB.

also, increase the receive buffer to be more forgiving for large messages

Closes: #920
2025-03-21 12:27:25 +01:00
Robert Schmidt
9c0eaefb93 Merge remote-tracking branch 'origin/issue-915' into integration_2025_w12 (!3319)
Disable EPS NAS security algorithms in 5GMM UE capabilities

OAI nrUE is not supporting multiple RATs, therefore the EPS NAS security
algorithms bit in 5GMM UE capabilities is not relevant.

This bit is only relevant if N26 interface is supported by the AMF and
the UE is supporting S1 mode, meaning that the UE is connected to a 4G
LTE network,  via the S1 interface (eNB - MME/SGW). When the UE performs
an inter-system change from N1 mode to S1 mode, it transitions from 5GC
to the EPC: at network level this happens over the N26 interface (which
connects the 5G AMF to the 4G MME).

In this transition is where the EPS security context becomes relevant:
the UE does not know about the N26 interface, however is the AMF that
can tell the UE, e.g. during the registration procedure, if the UE sets
the S1 mode bit to "S1 mode supported" in the 5GMM capability IE, and
the AMF supports the N26 interface, the AMF will include the Selected
EPS NAS security algorithms IE in the SECURITY MODE COMMAND message,
which is what happened in #915.

Closes: #915
2025-03-21 12:26:14 +01:00
Romain Beurdouche
4971b1e62c feat(NR PHY simulators): Add a SIGINT handler to other NR PHY simulators
Even though the remaining NR PHY simulators do not use the T2, we may still feature them with a SIGINT handler for proper termination on SIGINT and for a matter of completeness.
The remaining NR PHY simulators are:
* nr_pbchsim
* nr_prachsim
* nr_psbchsim
* nr_pucchsim
2025-03-21 10:04:45 +00:00
Romain Beurdouche
0033da5611 fix(nr_ulschsim): make nr_ulschsim functional
There was two issues that were making nr_ulschsim non functional:
1. The channel output was not copied to decoder input (llr array)
2. The test on decoding successful outcome was wrong

The result was that nr_ulschsim was succesfull whatever were its arguments.
This commit fixes the two issues so that nr_ulschsim is now functional.
2025-03-21 10:04:45 +00:00
Romain Beurdouche
1fdbf2906f feat(NR PHY simulators): add a SIGINT handler to some PHY simulators
When using T2 virtual functions, it is important to properly stop DPDK and free the device.
Otherwise the virtual functions may be blocked and a restart of the admin application is necessary.

Up to now, SIGINT was shutting down the PHY simulators without freeing the device.
This commit adds a signal handler to handle SIGINT in a way that allow to properly free the device.
This feature is first added to the PHY simulators that use the T2 which are `nr_ulsim`, `nr_dlsim`, `nr_ulschsim` and `nr_dlschsim`.
2025-03-21 10:04:45 +00: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
Robert Schmidt
39d1e3ff4b Merge remote-tracking branch 'origin/clear_ue_unit_tests' into integration_2025_w12 (!3301)
Remove unused NR UE PHY unit tests

Old dead code that won't even compile and that is not testing anything
relevant to current state of code
2025-03-20 18:19:23 +01:00
ndomingues
432e741365 Update FEATURE_SET.md file with initial RedCap support 2025-03-20 18:13:12 +01:00
ndomingues
7235e484a0 Add support for RedCap Msg3 LCID 2025-03-20 18:13:12 +01:00
ndomingues
e73e04543a Add initial support for RedCap
RedCap SIB1-v17-IEs parameters implemented in SIB1
Create an configuration file for RedCap devices
2025-03-20 18:13:12 +01:00
ndomingues
b92af6b6be Implementation of TYPE_INT8 in config_yaml.cpp file 2025-03-20 18:13:12 +01:00
Robert Schmidt
b138b143e4 Increase SCTP receive buffer to capture large messages 2025-03-20 17:20:54 +01:00
Sakthivel Velumani
e775b9ce9a Fix RA-RNTI for long prach formats 2025-03-20 11:12:00 -04:00
Sakthivel Velumani
bab16b7e15 Fix long PRACH slot selection 2025-03-20 10:52:21 -04:00
Laurent THOMAS
78b44a8e17 remove globale llr_layers, that seems to save 700MB, improve CPU and make the code simpler 2025-03-20 14:28:46 +01:00
Robert Schmidt
b29b60cdf8 Remove unused functions in epc.py 2025-03-20 10:30:31 +01:00
Robert Schmidt
32cd3a03e6 Remove porcepix-cn5g, there is no 5GC on that machine 2025-03-20 10:30:13 +01:00
Robert Schmidt
67ffa02416 Improve logging in cls_module.Module_UE: prints the same 2025-03-20 08:55:41 +01:00
Robert Schmidt
c3e9e62f71 cls_cmd: printed commands are debug 2025-03-19 14:57:14 +01:00
Robert Schmidt
7f55a11045 Fix: when calling unknown test case class, fail pipeline 2025-03-19 14:49:22 +01:00
Guido Casati
ba22130116 Disable EPS NAS security algorithms in 5GMM UE capabilities
* this is only relevant if N26 interface is supported by the AMF
  and the UE is supporting S1

closes #915
2025-03-19 13:23:16 +01:00
francescomani
9502e7537c avoiding segfault in LOGs in case of harq disabled 2025-03-19 10:00:38 +01:00
Robert Schmidt
ec60cc9548 SCTP: avoid assert on partial SCTP message
The receive buffer for SCTP, as of this commit, is 8192. If a message is
larger, we receive only a partial message, which makes the gNB abort.
Remove the abort to not be susceptible to a message intended to crash
the gNB.

Closes: #920
2025-03-18 17:29:53 +01:00
Jaroslava Fiedlerova
82fb9fcc7c Merge branch 'integration_2025_w11' into 'develop'
Integration: `2025.w11`

Closes #848

See merge request oai/openairinterface5g!3309

* !3306 Add a new CI label: nrUE
* !3303 remove wrong assertion for B4 PRACH format
* !3296 fix(nrLDPC_decoder): fix numIter increment
* !3150 Rework of NR UE RA procedures
* !3305 CI: Fix timeout for OC Deployments
* !3307 Add CI UE test for RA with C-RNTI
* !3271 Handle changing N_TA_offset correctly
* !3313 Small fix for jenkins message formatting
2025-03-18 15:21:56 +00:00
Justin Garey
9edf06f5ce PDU session establishment uses required IE for session type and QoS Rules loop correctly moves msg pointer 2025-03-18 15:19:10 +00:00
Jaroslava Fiedlerova
c4551fecba Merge remote-tracking branch 'origin/fix-jenkins-message-formatting' into integration_2025_w11 (!3313)
Small fix for jenkins message formatting
2025-03-18 11:03:28 +01:00
Bartosz Podrygajlo
f0c926306b Small fix for jenkins message formatting 2025-03-18 10:32:55 +01:00
Robert Schmidt
11d83dd461 Merge branch 'nr-ue-ci' into 'develop'
Add a new CI label: nrUE

Added handling of the nrUE label which limits the amount of CI tests to run. Only tests that use nr-uesoftmodem or phy simulators are triggered.

See merge request oai/openairinterface5g!3306
2025-03-18 09:05:32 +00:00
Robert Schmidt
8cbfa7b797 Use absolute path for copy
Local_Cmd forces use to use absolute paths for copy operations (because
that makes more clear where files are being copied). Use the absolute
path to avoid the corresponding exception.
2025-03-18 09:21:25 +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
Robert Schmidt
f70149933c Use getConnection() to allow build on localhost
Depending on the passed IP addr/host name, getConnection() will select
the right LocalCmd/RemoteCmd, which is better than hardcoded.
2025-03-18 09:21:24 +01:00
Bartosz Podrygajlo
2f09727811 Add a new CI label: nrUE
Added handling of the nrUE label which limits the amount of CI tests to run.
Only tests that use nr-uesoftmodem or phy simulators are triggered.
2025-03-17 17:09:05 +01:00
francescomani
10da6aa418 Merge remote-tracking branch 'origin/add-ci-test-msg3-c-rnti-ra' into integration_2025_w11 2025-03-17 16:55:07 +01:00
Guido Casati
7ba0613ae8 Add test for C-RNTI RA trigger to 24 PRB RFSIM CI pipeline 2025-03-17 16:54:18 +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
dcf7e4ddcd Merge remote-tracking branch 'origin/issue_907' into integration_2025_w11 2025-03-17 16:50:56 +01:00
Jaroslava Fiedlerova
da8d00d6fa Merge remote-tracking branch 'origin/increase-build-timeouts' into integration_2025_w11 (!3305)
This merge request is for two issues:

1. Core Network Deployment/Undeployment

If the Helm release oai5gcn does not exist (e.g., it was already deleted,
failed during installation), helm uninstall will fail with a "release not
found" error. The --timeout 60s makes Helm wait up to 60 seconds for all
resources to be deleted. If cleanup takes longer (e.g., due to resources
or dependencies), the command fails with a timeout error, potentially
leaving resources in an incomplete state.

2. Increase the timeout value for OpenShift RHEL Builds

The timeout parameter is set as the maximum wait time for the jobs to complete.
If the jobs do not complete within that time, the function logs an error. The
jobs may take longer to complete, the function exits early with an error, even
if the jobs are still progressing.

So, to address both the issues:

We first list all installed Helm releases in the given namespace, returning only
their names. We then pass the release names to helm uninstall, uninstalling all
releases in the namespace. The default value for timeout is 5 minutes.

Increased the timeout value for the RHEL Builds.
2025-03-17 14:08:52 +01:00
Jaroslava Fiedlerova
fe52ef2858 Merge remote-tracking branch 'origin/NR_UE_rework_RA' into integration_2025_w11 (!3150)
Rework of NR UE RA procedures

Closes #848
2025-03-14 18:22:18 +01:00
Jaroslava Fiedlerova
830ceac0ab Merge remote-tracking branch 'origin/fix_numIter' into integration_2025_w11 (!3296)
fix(nrLDPC_decoder): fix numIter increment

The logs of ./nr_ulsim -n100 -m19 -s12 -S12 -z2 -L4 were showing that sometimes
the decoding of one segment was failing while the CRC check succeeded. This was
happening because the iteration counter numIter was not properly managed so that
when the last iteration was successful to decode the segment still numIter at
the exit was equal to numMaxIter plus 1 so that decoding was considered to have
failed. In other words the last iteration if it occured was always wasted.

This commit offers to solve this problem by simply moving the iteration counter
increment at the end of the iteration loop while remaining careful at fixing the
tests relying on this counter.

Post-Scriptum:
After a first review, we decided to make the counter more standard from a C code
perspective. The counter now counts from 0 to numMaxIter minus 1. If it reaches
numMaxIter, it means that decoding was unsuccessful.
2025-03-14 15:50:12 +01:00
Jaroslava Fiedlerova
950ee0a47f Merge remote-tracking branch 'origin/remove_b4_assertion' into integration_2025_w11 !3303
remove wrong assertion for B4 PRACH format

Introduced in !3088 (merged)
2025-03-14 15:47:46 +01:00
Laurent THOMAS
a0721cac16 remove ul_ch_estimates_time that saves 50MB memory to access in RAM, and make better quality scope data passing (no race) 2025-03-14 11:27:01 +01:00
francescomani
44692187b8 use sleep to delay UE to allow the convergence of the IIR filter on PRACH noise measurements at gNB side instead of counting frames 2025-03-13 11:53:58 +01:00
francescomani
7ecedfced0 UE fix when completing RA with C-RNTI in MSG3 2025-03-13 11:53:58 +01:00
francescomani
39920eb337 L2 indication to prepare MSG3 payload in advance
This is required to comply with the standard to flush MSG3 buffer in some occasions and to keep preparing MSG3 payload in advance
2025-03-13 11:53:55 +01:00
Jaroslava Fiedlerova
b9a4ebd11f CI: increase timeout for OC RHEL builds 2025-03-13 10:01:32 +01:00
Jaroslava Fiedlerova
4f9a152f6b CI: remove timeout for OC CN deployments/undeployments
Default value of timeout is 5 minutes.
2025-03-13 10:01:25 +01:00
francescomani
4b191b7d07 error for ra-responsewindow exceeding 10ms instead of assertion (CI test with FAPI would fail otherwise) 2025-03-12 10:30:18 +01:00
francescomani
fc0d762407 move MSG3-C-RNTI flag from RA to MAC structure otherwise it would be reset by RA initialization 2025-03-12 10:30:18 +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
3f35d462e9 separate DL and UL timers at UE 2025-03-12 10:30:17 +01:00
francescomani
65bc749ee6 start the rar reception window in PRACH slots but take into account the additional slots difference wrt when we actually would need to start it (in first DCI occasion) 2025-03-12 10:30:17 +01:00
francescomani
5df6153024 remove unnecessary nr_ue_manage_ra_procedure function 2025-03-12 10:30:17 +01:00
francescomani
dcc17a9d70 signaling RRC RA problems (leading to possible radio link failure) 2025-03-12 10:30:17 +01:00
francescomani
e958822a73 Procedures for Contention Resolution 2025-03-12 10:21:27 +01:00
francescomani
cc154da549 Procedures for Random Access Response reception 2025-03-12 10:21:27 +01:00
francescomani
108fdae159 removing unnecessary nr_Msg1_transmitted function 2025-03-12 10:15:49 +01:00
francescomani
878bbc65ad assertion for handling of RO mask 2025-03-12 10:15:49 +01:00
francescomani
9f3f7b041c clearing old structures and functions for rach occasions 2025-03-12 10:15:49 +01:00
francescomani
24fed617b5 reworking prach scheduler to use new rach occasion information 2025-03-12 10:15:49 +01:00
francescomani
8f1661c66c PRACH occasion configuration 2025-03-12 10:11:38 +01:00
francescomani
220af3f669 move function to build ssb list after common configuration (reception of SSB information)
also removed unnecessary BWP dependence
2025-03-12 10:11:38 +01:00
francescomani
a7e3e8a312 harmonization of functions to get info from PRACH config tables 2025-03-12 10:11:38 +01:00
francescomani
95971514a0 Random Access Resource selection for 4- and 2-step RA 2025-03-12 09:49:54 +01:00
francescomani
60920ed161 avoid unnecessary call to nr_write_ce_msg3_pdu
this is for do-ra mostly and it was just called to compute MSG3 size which is fixed and known
2025-03-12 09:49:54 +01:00
francescomani
c17881e8d5 implmenent RA trigger for PDCCH order (DCI initiated RA) 2025-03-12 09:49:54 +01:00
francescomani
796c2a61a3 improvements in RA init procedures according to 5.1.1 in 38.321 2025-03-12 09:49:54 +01:00
francescomani
939ce850a5 improved management of RA functions at UE 2025-03-12 09:49:54 +01:00
Jaroslava Fiedlerova
60b0c1827d Merge branch 'integration_2025_w10' into 'develop'
Integration: `2025.w10`

See merge request oai/openairinterface5g!3299

* !3265 Remove some unnecessary extern files
* !3288 FeedbackDisabled removed from RA
* !3294 Fix OAI UE uplink_frequency in FDD mode
* !3282 Use common function to prepare DL PDUs in gNB RA
* !3290 Fix get_nr_prach_info_from_index() for FDD and long format
* !3244 Add F1 handover CI test
* !3292 Ensure clean exit of NR UE
* !3298 Preventing segmentation fault in print_rrc_meas (if reviewed and CI is OK)
* !3297 Reset timing_advance on sync/re-sync
* !3289 use slot type for slots in NR
2025-03-12 07:41:54 +00:00
francescomani
c7b561ef82 remove wrong assertion for B4 PRACH format 2025-03-11 12:09:45 +01:00
francescomani
20accaaceb Merge remote-tracking branch 'origin/use_slot_type' into integration_2025_w10 2025-03-10 18:02:28 +01:00
francescomani
f27ab2d85a Merge remote-tracking branch 'origin/Reset_timing_advance' into integration_2025_w10 2025-03-10 18:01:54 +01:00
francescomani
e9338e566b Merge remote-tracking branch 'origin/issue921' into integration_2025_w10 2025-03-10 17:46:20 +01:00
francescomani
73e96220fb remove unused frame config ue phy unit test and all nr ue phy test folder 2025-03-10 17:31:04 +01:00
francescomani
272344df48 remove unused SSB ue phy unit tests 2025-03-10 17:01:41 +01:00
francescomani
a936c88fb5 remove unused srs ue phy unit test 2025-03-10 16:26:33 +01:00
Romain Beurdouche
6b660e4091 fix(nrLDPC_decoder): Cleaning LDPC iteration accounting in NR
The idea is to make LDPC iteration accounting more standard from a C coding perspective by making two changes:
1. Now the iteration counter starts at 0 for the first iteration and goes up to max_ldpc_iterations - 1 for the last iteration.
   If it is equal to max_ldpc_iterations, it means that decoding failed.
2. A chain of useless returns in the UE DLSCH decoding call chain was removed.
2025-03-10 15:11:19 +00:00
Bartosz Podrygajlo
75f04874d1 Handle changing N_TA_offset on the UE correctly in higher layers
Send new N_TA_offset in config_request to PHY. Remove N_TA_offset update
from ta_command.
2025-03-10 16:00:54 +01:00
francescomani
ee22097354 remove unused harq ue phy unit test 2025-03-10 15:51:00 +01:00
francescomani
003a2ad669 remove unused pucch ue phy unit test 2025-03-10 15:50:18 +01:00
Bartosz Podrygajlo
5acb37c3e2 Handle changing N_TA_offset correctly
Handle N_TA_offset update the same way timing advance changes are handled:
modify writeBlockSize to ensure continuous transmission. Also address possible
data races by making sure the new timing_advance/N_TA_offset is only read
once from global memory.
2025-03-10 15:18:31 +01:00
francescomani
f184293ec0 all CSI measurement report handling is disabled in phytest mode gNB, this commit allows RSRP measurements handling 2025-03-10 09:53:48 +01:00
francescomani
e387747af0 Merge remote-tracking branch 'origin/clean-ue-exit' into integration_2025_w10 2025-03-10 09:30:39 +01:00
francescomani
7506d6343e Merge remote-tracking branch 'origin/f1-handover-minor-fixes' into integration_2025_w10 2025-03-10 09:17:05 +01:00
Guido Casati
501ac2c7d2 Add handover to rfsim F1 CI test
Added 3 way F1 handover test with data exchange in the F1 pipeline.
The major change is that the UE is acting as a server in the handover
scenarion, so it needs to comply with the changes in !3280.
2025-03-07 15:46:54 +01:00
francescomani
46031d5f1e Merge remote-tracking branch 'origin/RA_common_dl_pdus' into integration_2025_w10 2025-03-07 15:12:24 +01:00
francescomani
14ab06c641 Merge remote-tracking branch 'origin/long_prach_fdd_fix' into integration_2025_w10 2025-03-07 15:06:48 +01:00
francescomani
0a8ffacda3 prevent segfault in print_rrc_meas 2025-03-07 14:19:14 +01:00
francescomani
aaa9bcd11e Merge remote-tracking branch 'origin/Fix_FDD_uplink_frequency' into integration_2025_w10 2025-03-07 08:38:04 +01:00
francescomani
fecea84ced Merge remote-tracking branch 'origin/feedback_disabled_ra' into integration_2025_w10 2025-03-07 08:36:41 +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
Bartosz Podrygajlo
99e67dc599 Ensure clean exit of NR UE
- Shutdown DL/UL actors
 - Join the main/stat UE threads
2025-03-07 06:19:15 +01: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
Romain Beurdouche
b6bedf1216 fix(nrLDPC_decoder): fix numIter increment
The logs of `./nr_ulsim -n100 -m19 -s12 -S12 -z2 -L4` were showing that sometimes the decoding of one segment was failing while the CRC check succeeded.
This was happening because the iteration counter `numIter` was not properly managed so that when the last iteration was successful to decode the segment
still `numIter` at the exit was equal to `numMaxIter` plus 1 so that decoding was considered to have failed.
In other words the last iteration if it occured was always wasted.

This commit offers to solve this problem by simply moving the iteration counter increment at the end of the iteration loop
while remaining careful at fixing the tests relying on this counter.
2025-03-06 13:03:14 +00:00
Sakthivel Velumani
520c8aed38 Fix get_nr_prach_info_from_index() for FDD and long format 2025-03-05 12:02:43 -05:00
francescomani
d8911ff19d use slot type for slots in NR 2025-03-04 18:04:12 +01:00
francescomani
026b42aa1a FeedbackDisabled is sent in RRCSetup, the UE doesn't have it during MSG4 reception, it can't be used
the standard in 213 8.4 says: "In response to the PDSCH reception with the UE contention resolution identity, the UE transmits HARQ-ACK information in a PUCCH."
2025-03-04 15:33:18 +01:00
francescomani
263ed618cb adding static to tables and renaming the file 2025-03-03 17:20:36 +01:00
francescomani
3852320af5 improvements in ul_port_config function 2025-03-03 17:00:26 +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
c898a9f269 function to get RV replacing extern vector 2025-03-03 17:00:26 +01:00
francescomani
59d2809450 remove nr_rrc_extern.h 2025-03-03 17:00:26 +01:00
francescomani
67cf66c65c remove mac_extern at UE 2025-03-03 17:00:26 +01:00
francescomani
f265729e68 functions for 7-3-1-1-2 tables 2025-03-03 17:00:26 +01:00
francescomani
9aafec3e57 include header for mac_rlc_data_ind 2025-03-03 17:00:26 +01:00
francescomani
ab11e1a58c function for precoding information parameters 2025-03-03 17:00:26 +01:00
francescomani
0565b99900 function for backoff indicator table 2025-03-03 17:00:26 +01:00
francescomani
9c16a323fe function to handle antenna port tables 2025-03-03 17:00:26 +01:00
francescomani
cf9b19a855 remove unused tables from UE mac_extern.h 2025-03-03 17:00:26 +01:00
francescomani
38734ee31c remove nr_mac_extern file 2025-03-03 17:00:26 +01:00
francescomani
00ac4f0b46 functions to read BSR tables 2025-03-03 17:00:26 +01:00
francescomani
26c94a34c4 make precoding tables local and remove them from common files 2025-03-03 17:00:26 +01:00
francescomani
2f6b80b444 remove unnecessary Type0-PDCCH externs 2025-03-03 17:00:26 +01:00
Guido Casati
d16de2aae4 Remove magic numbers and use MAX_DRBS_PER_UE in nr_initiate_handover 2025-02-28 14:29:00 +01:00
Guido Casati
e2369656a7 Remove unused param in gnb-cu.sa.f1.conf 2025-02-28 14:29:00 +01:00
Guido Casati
89547f8a0c Handle null pointers and improve logs in process_Event_Based_Measurement_Report 2025-02-28 14:28:59 +01:00
Guido Casati
f5d8debdcb Cleanup outdated comments 2025-02-28 14:28:59 +01:00
Guido Casati
6370ad25fa Use calloc_or_fail whenever possible 2025-02-28 14:28:59 +01:00
francescomani
f50f3a34cd use common prepare_dl_pdus function also for MSG2 2025-02-27 16:56:27 +01:00
francescomani
d31f6ef09b just moving prepare_dl_pdus before MSG2 function 2025-02-27 16:34:25 +01:00
francescomani
bd3e2e7b62 making prepare_dl_pdus function more general 2025-02-27 16:33:17 +01:00
francescomani
40788580ea remove unnecessary tbs function 2025-02-27 16:02:37 +01:00
844 changed files with 59780 additions and 36972 deletions

View File

@@ -108,6 +108,7 @@ add_list_string_option(CMAKE_BUILD_TYPE "RelWithDebInfo" "Choose the type of bui
# -so to avoid AVX512 instructions generation by gcc
if(EXISTS "/proc/cpuinfo" AND NOT CROSS_COMPILE)
file(STRINGS "/proc/cpuinfo" CPUFLAGS REGEX flags LIMIT_COUNT 1)
file(STRINGS "/proc/cpuinfo" CPUPART REGEX "CPU part" LIMIT_COUNT 1)
else()
message(WARNING "did not find /proc/cpuinfo -- not setting any x86-specific compilation variables")
endif()
@@ -146,9 +147,20 @@ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_SSSE3_NATIVE")
endif()
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mfloat-abi=hard -mfpu=neon -lgcc -lrt")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mfloat-abi=hard -mfpu=neon -lgcc -lrt")
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -lgcc -lrt")
# Neoverse CPU part codes available at https://github.com/util-linux/util-linux/blob/master/sys-utils/lscpu-arm.c
if (CPUPART MATCHES "0xd40") # Neoverse-V1
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mcpu=neoverse-v1 -lgcc -lrt")
elseif (CPUPART MATCHES "0xd4f") # Neoverse-V2
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mcpu=neoverse-v2 -ftree-vectorize -lgcc -lrt")
elseif (CPUPART MATCHES "0xd0c") # Neoverse-N1
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mcpu=neoverse-n1 -lgcc -lrt")
elseif (CPUPART MATCHES "0xd49") # Neoverse-N2
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mcpu=neoverse-n2 -ftree-vectorize -lgcc -lrt")
else ()
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -gdwarf-2 -mcpu=native -lgcc -lrt")
endif()
else()
message(FATAL_ERROR "compile for CPU architecture ${CPUARCH}, CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}")
endif()
@@ -450,9 +462,12 @@ add_library(f1ap
${F1AP_DIR}/f1ap_handlers.c
${F1AP_DIR}/f1ap_itti_messaging.c)
target_include_directories(f1ap PUBLIC F1AP_DIR)
target_link_libraries(f1ap PUBLIC asn1_f1ap L2_NR)
target_link_libraries(f1ap PUBLIC asn1_f1ap GTPV1U)
target_link_libraries(f1ap PRIVATE ngap nr_rrc HASHTABLE f1ap_lib)
target_include_directories(f1ap PRIVATE ${F1AP_DIR}/lib)
if(E2_AGENT)
target_compile_definitions(f1ap PRIVATE E2_AGENT)
endif()
# LPP
##############
@@ -682,7 +697,6 @@ set(SCHED_SRC_NR_UE
${OPENAIR1_DIR}/SCHED_NR_UE/phy_procedures_nr_ue.c
${OPENAIR1_DIR}/SCHED_NR_UE/phy_procedures_nr_ue_sl.c
${OPENAIR1_DIR}/SCHED_NR_UE/fapi_nr_ue_l1.c
${OPENAIR1_DIR}/SCHED_NR_UE/phy_frame_config_nr_ue.c
${OPENAIR1_DIR}/SCHED_NR_UE/harq_nr.c
${OPENAIR1_DIR}/SCHED_NR_UE/pucch_uci_ue_nr.c
)
@@ -810,17 +824,14 @@ set(PHY_SRC_COMMON
${OPENAIR1_DIR}/PHY/CODING/viterbi_lte.c
${OPENAIR1_DIR}/PHY/INIT/init_top.c
${OPENAIR1_DIR}/PHY/INIT/lte_parms.c
${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/dfts_load.c
${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
${OPENAIR1_DIR}/PHY/TOOLS/lut.c
${OPENAIR1_DIR}/PHY/TOOLS/simde_operations.c
${OPENAIR1_DIR}/PHY/TOOLS/get_sin_cos.c
${OPENAIR1_DIR}/PHY/TOOLS/oai_arith_operations.c
)
set(PHY_SRC
@@ -940,21 +951,16 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_gen_mod_table.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/dmrs_nr.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/ptrs_nr.c
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_csi_rs.c
${OPENAIR1_DIR}/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
${OPENAIR1_DIR}/PHY/NR_ESTIMATION/nr_freq_equalization.c
${OPENAIR1_DIR}/PHY/NR_ESTIMATION/nr_measurements_gNB.c
${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
${OPENAIR1_DIR}/PHY/TOOLS/lut.c
${OPENAIR1_DIR}/PHY/TOOLS/simde_operations.c
${OPENAIR1_DIR}/PHY/TOOLS/oai_arith_operations.c
${PHY_POLARSRC}
${PHY_SMALLBLOCKSRC}
${PHY_NRLDPC_CODINGIF}
@@ -998,16 +1004,12 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
${OPENAIR1_DIR}/PHY/NR_UE_ESTIMATION/nr_adjust_gain.c
${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
${OPENAIR1_DIR}/PHY/TOOLS/lut.c
${OPENAIR1_DIR}/PHY/TOOLS/simde_operations.c
${OPENAIR1_DIR}/PHY/TOOLS/oai_arith_operations.c
${OPENAIR1_DIR}/PHY/INIT/nr_init_ue.c
${PHY_POLARSRC}
${PHY_SMALLBLOCKSRC}
@@ -1147,8 +1149,6 @@ set(L2_NR_SRC
${NR_RRC_DIR}/mac_rrc_dl_f1ap.c
${NR_RRC_DIR}/nr_rrc_config.c
${NR_RRC_DIR}/rrc_gNB_nsa.c
${NR_RRC_DIR}/rrc_gNB_internode.c
${NR_RRC_DIR}/rrc_gNB_reconfig.c
${NR_RRC_DIR}/rrc_gNB_UE_context.c
${NR_RRC_DIR}/rrc_gNB_NGAP.c
${NR_RRC_DIR}/rrc_gNB_radio_bearers.c
@@ -1182,7 +1182,6 @@ set(NR_L2_SRC_UE
${NR_SDAP_SRC}
${NR_UE_RRC_DIR}/L2_interface_ue.c
${NR_UE_RRC_DIR}/main_ue.c
${NR_RRC_DIR}/nr_rrc_config.c
${NR_UE_RRC_DIR}/rrc_UE.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NR_UE_RRC_DIR}/rrc_timers_and_constants.c
@@ -1250,7 +1249,7 @@ set (MAC_NR_SRC_UE
${NR_UE_PHY_INTERFACE_DIR}/NR_Packet_Drop.c
${NR_UE_MAC_DIR}/config_ue.c
${NR_UE_MAC_DIR}/config_ue_sl.c
${NR_UE_MAC_DIR}/mac_vars.c
${NR_UE_MAC_DIR}/mac_tables.c
${NR_UE_MAC_DIR}/main_ue_nr.c
${NR_UE_MAC_DIR}/nr_ue_procedures.c
${NR_UE_MAC_DIR}/nr_ue_procedures_sl.c
@@ -1336,10 +1335,9 @@ if(E2_AGENT)
endif()
add_library(L2_LTE_NR
${L2_RRC_SRC}
${MAC_SRC}
# temporary solution until 4G/5G code completely untangled (as evidenced by deletion of the following file)
${MAC_DIR}/dummy_functions.c
${ENB_APP_SRC}
${MCE_APP_SRC}
)
target_link_libraries(L2_LTE_NR PRIVATE f1ap s1ap nr_rrc)
@@ -1351,16 +1349,10 @@ add_library(L2_UE
target_link_libraries(L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
target_link_libraries(L2_UE PRIVATE GTPV1U)
add_library(L2_UE_LTE_NR
${L2_RRC_SRC_UE}
${MAC_SRC_UE}
)
target_link_libraries(L2_UE_LTE_NR PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
target_link_libraries(L2_UE PRIVATE asn1_lte_rrc_hdrs)
add_library( NR_L2_UE ${NR_L2_SRC_UE} ${MAC_NR_SRC_UE} )
target_link_libraries(NR_L2_UE PRIVATE f1ap nr_rlc)
target_link_libraries(NR_L2_UE PRIVATE nr_rlc)
target_link_libraries(NR_L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs nr_common nr_ue_power_procedures nr_ue_ra_procedures)
target_link_libraries(NR_L2_UE PRIVATE nr_nas)
@@ -1383,7 +1375,6 @@ include_directories("${OPENAIR1_DIR}/SCHED_NR_UE")
##########################
add_library (GTPV1U
${NR_RRC_DIR}/rrc_gNB_GTPV1U.c
${RRC_DIR}/rrc_eNB_GTPV1U.c
${OPENAIR3_DIR}/ocp-gtpu/gtp_itf.cpp
)
@@ -1840,6 +1831,7 @@ target_link_libraries(nr-softmodem PRIVATE
ITTI ${NAS_UE_LIB} lte_rrc nr_rrc
ngap s1ap L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB SIMU
x2ap f1ap m2ap m3ap e1ap shlib_loader
time_management
-Wl,--end-group z dl)
target_link_libraries(nr-softmodem PRIVATE pthread m CONFIG_LIB rt sctp)
@@ -1872,6 +1864,7 @@ add_executable(nr-cuup
target_link_libraries(nr-cuup PRIVATE
CONFIG_LIB ITTI SCTP_CLIENT
GTPV1U e1ap f1ap
time_management
z sctp dl pthread shlib_loader ${T_LIB})
target_link_libraries(nr-cuup PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
if(E2_AGENT)
@@ -1894,14 +1887,16 @@ add_executable(nr-uesoftmodem
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common.c
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common_tdd.c
${OPENAIR1_DIR}/PHY/TOOLS/phy_scope_interface.c
${NFAPI_USER_DIR}/nfapi.c
${PHY_INTERFACE_DIR}/queue_t.c
)
target_link_libraries(nr-uesoftmodem PRIVATE
-Wl,--start-group
nr_rrc SECURITY UTIL HASHTABLE SCHED_RU_LIB SCHED_NR_UE_LIB
PHY_COMMON PHY_NR_COMMON PHY_NR_UE NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON NFAPI_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB MISC_NFAPI_NR_LIB
PHY_COMMON PHY_NR_COMMON PHY_NR_UE NR_L2_UE MAC_NR_COMMON NFAPI_LIB
ITTI SIMU shlib_loader
time_management
-Wl,--end-group z dl)
target_link_libraries(nr-uesoftmodem PRIVATE pthread m CONFIG_LIB rt nr_ue_phy_meas)
@@ -1971,29 +1966,25 @@ target_link_libraries(ldpctest PRIVATE
-Wl,--whole-archive crc_byte -Wl,--no-whole-archive
)
add_executable(nr_dlschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
)
add_library(physim_common OBJECT ${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_unitary_common.c)
target_link_libraries(physim_common PRIVATE UTIL)
add_executable(nr_dlschsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c)
target_link_libraries(nr_dlschsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader
m pthread ${T_LIB} ITTI dl shlib_loader physim_common
)
target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc_hdrs)
add_executable(nr_pbchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pbchsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
)
add_executable(nr_pbchsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/pbchsim.c)
target_link_libraries(nr_pbchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader
m pthread ${T_LIB} ITTI dl shlib_loader physim_common
)
target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_psbchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/psbchsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/executables/softmodem-common.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
@@ -2002,24 +1993,19 @@ add_executable(nr_psbchsim
)
target_link_libraries(nr_psbchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_UE_NR MAC_NR_COMMON CONFIG_LIB L2_NR -lz -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader
m pthread ${T_LIB} ITTI dl shlib_loader physim_common
)
target_link_libraries(nr_psbchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
#PUCCH ---> Prashanth
add_executable(nr_pucchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pucchsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
)
add_executable(nr_pucchsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/pucchsim.c)
target_link_libraries(nr_pucchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader
m pthread ${T_LIB} ITTI dl shlib_loader physim_common
)
target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_dlsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/executables/softmodem-common.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
@@ -2028,33 +2014,28 @@ add_executable(nr_dlsim
)
target_link_libraries(nr_dlsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_UE_NR MAC_NR_COMMON nr_rrc CONFIG_LIB L2_NR HASHTABLE x2ap SECURITY ngap -lz -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader nr_ue_phy_meas
m pthread ${T_LIB} ITTI dl shlib_loader nr_ue_phy_meas physim_common
)
target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_prachsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/prachsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
)
add_executable(nr_prachsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/prachsim.c)
target_link_libraries(nr_prachsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB CONFIG_LIB -lz -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader)
m pthread ${T_LIB} ITTI dl shlib_loader physim_common)
target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_ulschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulschsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${PHY_INTERFACE_DIR}/queue_t.c
)
target_link_libraries(nr_ulschsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader
m pthread ${T_LIB} ITTI dl shlib_loader physim_common
)
target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_ulsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/executables/softmodem-common.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
@@ -2064,7 +2045,7 @@ add_executable(nr_ulsim
target_link_libraries(nr_ulsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_UE_NR MAC_NR_COMMON nr_rrc CONFIG_LIB L2_NR HASHTABLE x2ap SECURITY ngap -lz -Wl,--end-group
m pthread ${T_LIB} ITTI dl shlib_loader nr_ue_phy_meas
m pthread ${T_LIB} ITTI dl shlib_loader nr_ue_phy_meas physim_common
)
target_link_libraries(nr_ulsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
@@ -2082,6 +2063,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
pthread m rt CONFIG_LIB ${T_LIB} dl shlib_loader
)
target_link_libraries(${myExe} PRIVATE asn1_lte_rrc_hdrs)
add_dependencies(${myExe} coding)
endforeach(myExe)
@@ -2121,7 +2103,7 @@ if (${T_TRACER})
NFAPI_LIB NFAPI_PNF_LIB NFAPI_VNF_LIB NFAPI_USER_LIB
MISC_NFAPI_LTE_LIB MISC_NFAPI_NR_LIB
PHY_COMMON PHY PHY_UE PHY_NR PHY_NR_COMMON PHY_NR_UE PHY_RU
L2 L2_LTE L2_NR L2_LTE_NR L2_UE NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON MAC_UE_NR ngap
L2 L2_LTE L2_NR L2_LTE_NR L2_UE NR_L2_UE MAC_NR_COMMON MAC_UE_NR ngap
CN_UTILS GTPV1U SCTP_CLIENT MME_APP LIB_NAS_UE NB_IoT SIMU OPENAIR0_LIB
dfts config_internals nr_common crc_byte)
if (TARGET ${i})
@@ -2134,12 +2116,18 @@ include(${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt)
set(ENABLE_TESTS OFF CACHE STRING "Activate build of tests")
set_property(CACHE ENABLE_TESTS PROPERTY TYPE BOOL)
if(ENABLE_TESTS)
# activates globally adding tests such that they can be run using ctest
enable_testing()
set(ENABLE_PHYSIM_TESTS OFF CACHE STRING "Activate build of physim tests")
set_property(CACHE ENABLE_PHYSIM_TESTS PROPERTY TYPE BOOL)
if(ENABLE_TESTS OR ENABLE_PHYSIM_TESTS)
# meta-target: each test is supposed to add_dependencies(tests ${NEWTEST})
# then, it is possible to build and execute all tests using "ninja tests && ctest"
add_custom_target(tests)
# activates globally adding tests such that they can be run using ctest
enable_testing()
endif()
if(ENABLE_TESTS)
find_package(GTest)
if (NOT GTest_FOUND)
message(STATUS "GTest package not found, will download googletest automatically. To prevent that install google test on your system (libgtest-dev)")

View File

@@ -4,10 +4,9 @@
<p align="center">
<a href="https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-OAI--Public--V1.1-blue" alt="License"></a>
<a href="https://releases.ubuntu.com/20.04/"><img src="https://img.shields.io/badge/OS-Ubuntu20-Green" alt="Supported OS Ubuntu 20"></a>
<a href="https://releases.ubuntu.com/22.04/"><img src="https://img.shields.io/badge/OS-Ubuntu22-Green" alt="Supported OS Ubuntu 22"></a>
<a href="https://releases.ubuntu.com/24.04/"><img src="https://img.shields.io/badge/OS-Ubuntu24-Green" alt="Supported OS Ubuntu 24"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL9-Green" alt="Supported OS RELH9"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL9-Green" alt="Supported OS RHEL9"></a>
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore41-Green" alt="Supported OS Fedora 41"></a>
</p>
@@ -16,7 +15,9 @@
</p>
<p align="center">
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Container-Parent/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Container-Parent%2F&label=build%20Images"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Ubuntu18-Image-Builder%2F&label=build-Ubuntu-x86%20Images"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-RHEL8-Cluster-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-RHEL8-Cluster-Image-Builder%2F&label=build-UBI-x86%20Images"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-ARM-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Ubuntu-ARM-Image-Builder%2F&label=build-Ubuntu-ARM%20Images"></a>
</p>
<p align="center">

View File

@@ -1,6 +1,6 @@
apiVersion: v1
name: oai-ulsim
description: A Helm subchart for ulsim network function
name: oai-physims-4g
description: A Helm subchart for 4G physims network function
# A chart can be either an 'application' or a 'library' chart.
#
@@ -24,7 +24,6 @@ appVersion: v1
keywords:
- Physical Simulator
- ulsim
- RAN
- 4G

View File

@@ -2,7 +2,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-polartest.name" -}}
{{- define "oai-physims-4g.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
@@ -11,7 +11,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-polartest.fullname" -}}
{{- define "oai-physims-4g.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
@@ -27,16 +27,16 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-polartest.chart" -}}
{{- define "oai-physims-4g.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-polartest.labels" -}}
helm.sh/chart: {{ include "oai-polartest.chart" . }}
{{ include "oai-polartest.selectorLabels" . }}
{{- define "oai-physims-4g.labels" -}}
helm.sh/chart: {{ include "oai-physims-4g.chart" . }}
{{ include "oai-physims-4g.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
@@ -46,17 +46,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "oai-polartest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-polartest.name" . }}
{{- define "oai-physims-4g.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-physims-4g.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-polartest.serviceAccountName" -}}
{{- define "oai-physims-4g.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-polartest.fullname" .) .Values.serviceAccount.name }}
{{ default (include "oai-physims-4g.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}

View File

@@ -31,8 +31,9 @@ spec:
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_dlsim.basic" -d bin/ &&
echo "FINISHED" && sleep infinity
ctest -R 4g --show-only=json-v1 >> physims-4g-tests.json &&
ctest -R 4g -j$(nproc) --output-junit physims-4g-run.xml --test-output-size-passed 100000 --test-output-size-failed 100000 ;
echo "FINISHED" && sleep 15
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
@@ -43,5 +44,5 @@ spec:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrdlsimbasic }}
nodeName: {{ .Values.global.nodeName.physims5g }}
{{- end }}

View File

@@ -1,4 +1,4 @@
# Default values for oai-ulsim.
# Default values for oai-physims-4g
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
@@ -20,7 +20,7 @@ serviceAccount:
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-ulsim-sa"
name: "oai-physims-4g"
podSecurityContext:
runAsUser: 0

View File

@@ -6,7 +6,7 @@ global:
namespace: "OAICICD_PROJECT"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran/oai-physim
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-core-for-ci-ran/oai-physim
version: TAG
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always

View File

@@ -1,6 +1,6 @@
apiVersion: v1
name: oai-polartest
description: A Helm subchart for polartest network function
name: oai-physim
description: A Helm chart for physical simulators network function
# A chart can be either an 'application' or a 'library' chart.
#
@@ -16,17 +16,17 @@ icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_fin
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
version: 1.0.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- polartest
- Physical Simulators
- RAN
- 4G
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g

View File

@@ -1,6 +1,6 @@
apiVersion: v1
name: oai-ldpctest
description: A Helm subchart for ldpctest network function
name: oai-physims-5g
description: A Helm subchart for 5G physims network function
# A chart can be either an 'application' or a 'library' chart.
#
@@ -24,7 +24,6 @@ appVersion: v1
keywords:
- Physical Simulator
- ldpctest
- RAN
- 5G

View File

@@ -2,7 +2,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-ulsim.name" -}}
{{- define "oai-physims-5g.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
@@ -11,7 +11,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-ulsim.fullname" -}}
{{- define "oai-physims-5g.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
@@ -27,16 +27,16 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-ulsim.chart" -}}
{{- define "oai-physims-5g.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-ulsim.labels" -}}
helm.sh/chart: {{ include "oai-ulsim.chart" . }}
{{ include "oai-ulsim.selectorLabels" . }}
{{- define "oai-physims-5g.labels" -}}
helm.sh/chart: {{ include "oai-physims-5g.chart" . }}
{{ include "oai-physims-5g.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
@@ -46,17 +46,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "oai-ulsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-ulsim.name" . }}
{{- define "oai-physims-5g.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-physims-5g.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-ulsim.serviceAccountName" -}}
{{- define "oai-physims-5g.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-ulsim.fullname" .) .Values.serviceAccount.name }}
{{ default (include "oai-physims-5g.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}

View File

@@ -31,8 +31,9 @@ spec:
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "ldpctest" -d bin/ &&
echo "FINISHED" && sleep infinity
ctest -R 5g --show-only=json-v1 >> physims-5g-tests.json &&
ctest -R 5g -j$(nproc) --output-junit physims-5g-run.xml --test-output-size-passed 100000 --test-output-size-failed 100000 ;
echo "FINISHED" && sleep 20
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
@@ -43,5 +44,5 @@ spec:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.ldpctest }}
nodeName: {{ .Values.global.nodeName.physims5g }}
{{- end }}

View File

@@ -1,4 +1,4 @@
# Default values for oai-ldpctest.
# Default values for oai-physims-5g
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
@@ -20,7 +20,7 @@ serviceAccount:
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-ldpctest-sa"
name: "oai-physims-5g"
podSecurityContext:
runAsUser: 0

View File

@@ -0,0 +1,26 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- anyuid
resources:
- securitycontextconstraints
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-binding
subjects:
- kind: ServiceAccount
name: {{ .Values.global.serviceAccountName }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
apiGroup: rbac.authorization.k8s.io

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: oai-physim-sa #{{ .Values.global.serviceAccountName }}

View File

@@ -0,0 +1,21 @@
# Default values for oai-physim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
serviceAccountName: oai-physim-sa
namespace: "OAICICD_PROJECT"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-core-for-ci-ran/oai-physim
version: TAG
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
# removing the node selector
# will place on two nodes intel 3rd gen and 5th gen with RT kernel
nodeSelector:
type: ran
nodeName: ''
resources:
define: false
requests:
cpu: 1.5

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-dlsim-100rb-tm2
description: A Helm subchart for dlsim network function ("100rb+tm2" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- dlsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-dlsim-100rb-tm2.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-dlsim-100rb-tm2.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-dlsim-100rb-tm2.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-dlsim-100rb-tm2.labels" -}}
helm.sh/chart: {{ include "oai-dlsim-100rb-tm2.chart" . }}
{{ include "oai-dlsim-100rb-tm2.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-dlsim-100rb-tm2.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-dlsim-100rb-tm2.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-dlsim-100rb-tm2.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-dlsim-100rb-tm2.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "dlsim.100rb+tm2" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.dlsim100rbtm2 }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-dlsim-100rb+tm2
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-dlsim-100rb-tm2"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-dlsim-basic
description: A Helm subchart for dlsim network function ("basic" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- dlsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-dlsim-basic.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-dlsim-basic.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-dlsim-basic.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-dlsim-basic.labels" -}}
helm.sh/chart: {{ include "oai-dlsim-basic.chart" . }}
{{ include "oai-dlsim-basic.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-dlsim-basic.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-dlsim-basic.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-dlsim-basic.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-dlsim-basic.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "dlsim.basic" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.dlsimbasic }}
{{- end }}

View File

@@ -1,44 +0,0 @@
# Default values for oai-dlsim-basic
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-dlsim-basic"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-ldpctest.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-ldpctest.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-ldpctest.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-ldpctest.labels" -}}
helm.sh/chart: {{ include "oai-ldpctest.chart" . }}
{{ include "oai-ldpctest.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-ldpctest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-ldpctest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-ldpctest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-ldpctest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-dlschsim
description: A Helm subchart for nr-dlschsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlschsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlschsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlschsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlschsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlschsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlschsim.chart" . }}
{{ include "oai-nr-dlschsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlschsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlschsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlschsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlschsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_dlschsim" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrdlschsim }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-dlschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlschsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-dlsim-basic
description: A Helm subchart for nr-dlsim network function ("basic" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim-basic.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlsim-basic.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlsim-basic.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim-basic.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim-basic.chart" . }}
{{ include "oai-nr-dlsim-basic.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlsim-basic.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim-basic.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim-basic.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim-basic.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-dlsim-basic
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlsim-basic"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-dlsim-dmrs-ptrs
description: A Helm subchart for nr-dlsim network function ("dmrs+ptrs" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim-dmrs-ptrs.chart" . }}
{{ include "oai-nr-dlsim-dmrs-ptrs.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim-dmrs-ptrs.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim-dmrs-ptrs.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim-dmrs-ptrs.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_dlsim.dmrs+ptrs" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrdlsimdmrsptrs }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-dlsim-dmrs+ptrs
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlsim-dmrs-ptrs"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-dlsim-mcs-mimo
description: A Helm subchart for nr-dlsim network function ("mcs+mimo" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim-mcs-mimo.chart" . }}
{{ include "oai-nr-dlsim-mcs-mimo.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim-mcs-mimo.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim-mcs-mimo.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim-mcs-mimo.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_dlsim.mcs+mimo" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrdlsimmcsmimo }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-dlsim-mcs-mimo
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlsim-mcs-mimo"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-dlsim-offset
description: A Helm subchart for nr-dlsim network function ("offset" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim-offset.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlsim-offset.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlsim-offset.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim-offset.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim-offset.chart" . }}
{{ include "oai-nr-dlsim-offset.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlsim-offset.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim-offset.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim-offset.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim-offset.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_dlsim.offset" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrdlsimoffset }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-dlsim-offset
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlsim-offset"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-pbchsim-106rb
description: A Helm subchart for nr-pbchsim network function ("106rb" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim-106rb.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pbchsim-106rb.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pbchsim-106rb.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim-106rb.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim-106rb.chart" . }}
{{ include "oai-nr-pbchsim-106rb.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pbchsim-106rb.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim-106rb.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim-106rb.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim-106rb.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_pbchsim.106rb" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpbschsim106rb }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-pbchsim-106rb
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pbchsim-106rb"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-pbchsim-217rb
description: A Helm subchart for nr-pbchsim network function ("217rb" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim-217rb.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pbchsim-217rb.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pbchsim-217rb.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim-217rb.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim-217rb.chart" . }}
{{ include "oai-nr-pbchsim-217rb.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pbchsim-217rb.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim-217rb.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim-217rb.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim-217rb.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_pbchsim.217rb" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpbchsim217rb }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-pbchsim-217rb
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pbchsim-217rb"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-pbchsim-273rb
description: A Helm subchart for nr-pbchsim network function ("273rb" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim-273rb.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pbchsim-273rb.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pbchsim-273rb.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim-273rb.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim-273rb.chart" . }}
{{ include "oai-nr-pbchsim-273rb.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pbchsim-273rb.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim-273rb.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim-273rb.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim-273rb.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_pbchsim.273rb" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpbchsim273rb }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-pbchsim-273rb
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pbchsim-273rb"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-pbchsim-scs
description: A Helm subchart for nr-pbchsim network function ("Other SCS" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim-scs.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pbchsim-scs.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pbchsim-scs.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim-scs.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim-scs.chart" . }}
{{ include "oai-nr-pbchsim-scs.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pbchsim-scs.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim-scs.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim-scs.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim-scs.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_pbchsim.otherSCS" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpbchsim273rb }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-pbchsim-scs
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pbchsim-scs"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-prachsim
description: A Helm subchart for nr-prachsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-prachsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-prachsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-prachsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-prachsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-prachsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-prachsim.chart" . }}
{{ include "oai-nr-prachsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-prachsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-prachsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-prachsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-prachsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_prachsim" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrprachsim }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-prachsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-prachsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-psbchsim
description: A Helm subchart for nr-psbchsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-psbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-psbchsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-psbchsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-psbchsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-psbchsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-psbchsim.chart" . }}
{{ include "oai-nr-psbchsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-psbchsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-psbchsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-psbchsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-psbchsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_psbchsim" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpsbchsim }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-psbchsim
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-psbchsim"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-pucchsim
description: A Helm subchart for nr-pucchsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pucchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pucchsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pucchsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pucchsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pucchsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-pucchsim.chart" . }}
{{ include "oai-nr-pucchsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pucchsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pucchsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pucchsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pucchsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_pucchsim" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrpucchsim }}
{{- end }}

View File

@@ -1,52 +0,0 @@
# Default values for oai-nr-pucchsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pucchsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-ulschsim
description: A Helm subchart for nr-ulschsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulschsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulschsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulschsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulschsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulschsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulschsim.chart" . }}
{{ include "oai-nr-ulschsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulschsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulschsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulschsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulschsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_ulschsim" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrulschsim }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-ulschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulschsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-ulsim-3gpp
description: A Helm subchart for nr-ulsim network function ("3gpp" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim-3gpp.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulsim-3gpp.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulsim-3gpp.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim-3gpp.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim-3gpp.chart" . }}
{{ include "oai-nr-ulsim-3gpp.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulsim-3gpp.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim-3gpp.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim-3gpp.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_ulsim.3gpp" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrulsim3gpp }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-ulsim-3gpp
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulsim-3gpp"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-ulsim-mimo
description: A Helm subchart for nr-ulsim network function ("mimo" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim-mimo.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulsim-mimo.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulsim-mimo.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim-mimo.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim-mimo.chart" . }}
{{ include "oai-nr-ulsim-mimo.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulsim-mimo.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim-mimo.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim-mimo.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_ulsim.mimo" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrulsimmimo }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-ulsim-mimo
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulsim-mimo"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-ulsim-misc
description: A Helm subchart for nr-ulsim network function ("misc" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim-misc.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulsim-misc.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulsim-misc.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim-misc.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim-misc.chart" . }}
{{ include "oai-nr-ulsim-misc.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulsim-misc.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim-misc.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim-misc.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_ulsim.misc" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrulsimmisc }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-ulsim-misc
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulsim-misc"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-nr-ulsim-sc-fdma
description: A Helm subchart for nr-ulsim network function ("sc-fdma" tests)
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim-sc-fdma.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulsim-sc-fdma.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulsim-sc-fdma.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim-sc-fdma.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim-sc-fdma.chart" . }}
{{ include "oai-nr-ulsim-sc-fdma.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulsim-sc-fdma.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim-sc-fdma.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim-sc-fdma.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,49 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "nr_ulsim.sc-fdma" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.nrulsimscfdma }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-nr-ulsim-sc-fdma
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulsim-sc-fdma"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "polartest" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.polartest }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-polartest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-polartest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-smallblocktest
description: A Helm subchart for smallblocktest network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- smallblocktest
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-smallblocktest.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-smallblocktest.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-smallblocktest.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-smallblocktest.labels" -}}
helm.sh/chart: {{ include "oai-smallblocktest.chart" . }}
{{ include "oai-smallblocktest.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-smallblocktest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-smallblocktest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-smallblocktest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-smallblocktest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,47 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
cmake_targets/autotests/run_exec_autotests.bash -g "smallblocktest" -d bin/ &&
echo "FINISHED" && sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.smallblocktest }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-smallblocktest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-smallblocktest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

Some files were not shown because too many files have changed in this diff Show More