Compare commits

...

1385 Commits

Author SHA1 Message Date
sfn
6a02803a78 Add codebook type I precoding matrices generation function 2021-08-03 12:39:33 +02:00
Raphael Defosseux
96997d1eca Merge branch 'integration_2021_wk31' into 'develop'
integration_2021_wk31

See merge request oai/openairinterface5g!1219
2021-08-02 15:07:36 +00:00
Raphael Defosseux
6b6215e628 fix(ci): adding detection of timed-out run on the physims on cluster
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-08-02 10:00:36 +02:00
Raphael Defosseux
a9ffbc6b07 Merge remote-tracking branch 'origin/hack-bch-no-sched-sf-0' into develop 2021-08-02 10:00:14 +02:00
Raphael Defosseux
599287b632 Merge remote-tracking branch 'origin/fix-retransmission-rbg' into develop 2021-08-02 09:59:46 +02:00
Raphael Defosseux
5adf940b99 Merge remote-tracking branch 'origin/ci_nsa_2x2_implem' into develop 2021-08-02 09:58:35 +02:00
hardy
58825cd92a fix USRP address detection in xml 2021-07-29 09:42:58 +02:00
Raphael Defosseux
3cfb169b37 fix(build): protobuf location has changed
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-29 08:29:27 +02:00
hardy
7c12ec6b30 Merge remote-tracking branch 'origin/ci_update_build_nasmesh' into ci_nsa_2x2_implem 2021-07-29 08:04:19 +02:00
hardy
087a2da298 SA test pipeline udpate 2021-07-28 21:41:15 +02:00
Remi Hardy
32e5e46490 [CI] support for 5G Core (sabox only for the moment) 2021-07-28 09:35:05 +00:00
hardy
dabf5c8b55 fix ping target address for module, depending on EPC type 2021-07-27 17:53:22 +02:00
hardy
de6d928d1f fix remote access for LogRotation method 2021-07-27 17:37:09 +02:00
hardy
65aa130547 sa xml testcase (basic) 2021-07-27 16:47:43 +02:00
hardy
017b362359 added reboot control of Eth USRP 2021-07-27 15:50:25 +02:00
hardy
bd5ac98793 add ping to testcase 2021-07-26 17:35:22 +02:00
hardy
515a30a636 fix avg file size computation when folder is empty 2021-07-26 17:32:28 +02:00
Raphael Defosseux
22e1f0c220 fix(ci): fix build HTML report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-26 08:48:28 +02:00
Remi Hardy
4bfbb6f128 integration_2021_wk30
MR !1206 : nr_ue_remove_high_speed_flag
This flag is always set to 1, 
With multiple DMRS symbols configuration, very recent DMRS containing symbol shall be for channel estimation.

MR !1205 : fix-lte-ue-modem-in-docker-container
We bind the socket to any_addr (instead of localhost), so the commands to the UE can come also from a remote machine

MR !1178 : NR_CSIRS_tomerge
Implementation of CSI RS transmission at gNB

MR !1211 : develop-NSA_SA_fixes
Small fixes for NSA and SA
2021-07-25 07:32:44 +00:00
hardy
c93a9497db Merge remote-tracking branch 'origin/develop-NSA_SA_fixes' into integration_2021_wk30_b 2021-07-24 17:56:38 +02:00
hardy
e241fb5034 fix ssh remote access to UE module 2021-07-23 16:31:43 +02:00
rmagueta
165b406839 Avoid segmentation fault for LTE 2021-07-23 13:12:35 +01:00
hardy
03edcdeceb make module log storage configurable 2021-07-23 11:55:26 +02:00
Raphael Defosseux
1c907e922f fix(ci): removed the 2 log expected by nasmesh and rbtool builds
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-23 10:29:41 +02:00
hardy
94ba6157ef Merge remote-tracking branch 'origin/fix-lte-ue-modem-in-docker-container' into integration_2021_wk30 2021-07-23 09:19:15 +02:00
hardy
0b472dd9f9 Merge remote-tracking branch 'origin/nr_ue_remove_high_speed_flag' into integration_2021_wk30 2021-07-23 09:18:52 +02:00
hardy
fad5fbda34 Merge remote-tracking branch 'origin/NR_CSIRS_tomerge' into integration_2021_wk30 2021-07-23 09:18:33 +02:00
luis_pereira87
1beffd1ecc Remove the MAC and RRC context after UL failure when gNB is not connected to CN5G 2021-07-22 14:05:10 +01:00
luis_pereira87
67bccd8c80 Fix handling failure of CFRA procedure for OAI UE 2021-07-22 11:36:52 +01:00
Raphael Defosseux
244a7a9a3d feat(ci): adding support for 5G Core (sabox only for the moment)
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-22 12:17:57 +02:00
luis_pereira87
7c61f6d969 Fix pusch_TargetSNRx10 and pucch_TargetSNRx10 in configuration files 2021-07-22 11:13:14 +01:00
luis_pereira87
a038df0459 Discard Random Access when max number of users is achieved 2021-07-22 10:55:46 +01:00
luis_pereira87
95372bd2da Fix RNTI selection for CFRA 2021-07-22 10:51:49 +01:00
luis_pereira87
17f466a9bf Fix define MACRLC idx that overlaps 2021-07-22 10:50:44 +01:00
hardy
7ce90b8dc4 Merge remote-tracking branch 'origin/ci_update_build_nasmesh' into ci_nsa_2x2_implem 2021-07-22 11:41:28 +02:00
hardy
c72ac04f63 remove nasmesh compile ; nokrnmod =1 by default 2021-07-22 11:34:41 +02:00
Remi Hardy
d7839d8a60 integration_2021_wk29
MR !1193 : Update for 5G SA implementation
2021-07-22 09:14:34 +00:00
francescomani
618e33aca0 adding check for ul failure in nr_csi_meas_reporting 2021-07-22 09:16:10 +02:00
Cedric Roux
4a2c0b1eff bugfix: fix allocation of RBGs for retransmission
When there is a retransmission, we want to use the same number of RBs.

The RBs are allocated by groups (RBGs).

In some cases (like a cell with 25 PRBs), the last RBG contains less RBs.
So in case of a retransmission, if this last RBG was used before we need
to reuse it to have the same number of RBs. If not, we will use more RBs
for the retransmission than the previous transmission.

In an experiment with two UEs (quectel modules) it was seen that when a
retransmission happens with a different number of RBs then the UE is not
happy at all, leading to way more NACKs in the harq processes than should
happen (actually the first NACK was not a NACK at all, but the eNB did
interpret it as a NACK; so the next transmission should simply be discarded
by the UE that successfully received the first transmission; instead the UE
fails to decode the data and sends a NACK, a real one this time).

Maybe it's not the correct solution, but it improve things, there are
much less NACKs.
2021-07-21 23:22:48 +02:00
Cedric Roux
f6e0321860 hack: do not use BCH RBs for DL scheduling in subframe 0
The problem is that when using those RBs with MCS 28 we may exceed the
code rate 0.93 and according to 36.213 7.1.7 the UE may skip decoding
PDSCH entirely in this case.

This is a hack. The real solution is to check that the code rate is below
0.93 for each scheduling decision and, I don't know, reduce the MCS if the
code rate is above, so that in the end it is below. That means that we need
a proper resource grid for the configuration of the eNB and this is not an
easy thing (at least from my point of view) given all the possible
configurations for the eNB, so I prefer not to do it rather than do something
incorrect, thus this hack.

The problem of this hack is that we won't use all the available RBs for
scheduling, potentially reducing the maximum throughput achievable.

To be fixed properly at some time, by someone who understands fully the
resource grid and all the possible combinations (fdd/tdd, number of
antennas, whatever else).
2021-07-21 23:22:02 +02:00
hardy
59f4cfd92a [CI] for gNB Phy test : update of the execution timings ref values, according to the latest developments 2021-07-21 08:19:46 +02:00
hardy
a052e1b719 update conf files for CI 2021-07-20 17:27:59 +02:00
hardy
71e8ed8086 changed path of cql as it is copied locally in the same folder as yaml 2021-07-20 15:36:49 +02:00
hardy
756ec666e8 epc docker compose fix for testing 2021-07-20 09:32:34 +02:00
francescomani
bff2251242 Merge remote-tracking branch 'origin/develop' into NR_CSIRS_tomerge 2021-07-20 07:03:24 +02:00
rmagueta
6b028522bd Fix warning after merge 2021-07-19 14:22:00 +01:00
rmagueta
3ea6d6f878 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS-abs
# Conflicts:
#	openair1/PHY/INIT/nr_init_ru.c
2021-07-19 13:51:38 +01:00
hardy
a6d53823a3 nsa 2x2 test implem 2021-07-19 14:42:39 +02:00
Raphael Defosseux
f89d367ad4 CI: adding bsd exception
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-19 14:08:17 +02:00
Raphael Defosseux
1ec50d4d2c fix(oai-lte-ue): unrestrict socket in nas init. Fix running with a docker Ubuntu container
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-07-19 12:19:27 +02:00
Remi Hardy
218aec0080 integration_2021_wk28
MR !1197 : dongzhanyi-zte-develop1
function nr_generate_dci_top and nr_generate_dci has the frame_parms parameter, whose type is the structure NR_DL_FRAME_PARMS.
The better way is to pass the parameter as a pointer. 

MR !1176 : NR_phytest_bugfixes
This fixes a bug for configurations with less than 50 PRBs in phy-test mode.

MR !1142 : nr-dl-mimo-2layer
2021-07-18 19:53:43 +00:00
hardy
042e45efa7 Merge remote-tracking branch 'origin/nr-dl-mimo-2layer' into integration_2021_wk28_b 2021-07-18 10:37:36 +02:00
hardy
3c64c73dd1 Merge remote-tracking branch 'origin/NR_phytest_bugfixes' into integration_2021_wk28_b 2021-07-18 10:37:08 +02:00
hardy
0133678cc4 Merge remote-tracking branch 'origin/dongzhanyi-zte-develop1' into integration_2021_wk28_b 2021-07-18 10:36:39 +02:00
luis_pereira87
9c010e3056 Apply patch for gNB ulsch retransmission scheduler 2021-07-17 22:25:07 +01:00
luis_pereira87
cbbce10f3f Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS-abs 2021-07-17 21:39:10 +01:00
hardy
c97bb97235 [CI] : comment out the nsa tests that are disabled, so that the remaining test runs all MR 2021-07-17 08:30:43 +02:00
rmagueta
64c28bf9ac Normalization of energy over ifft and receive antennas 2021-07-16 16:50:51 +01:00
Roberto Louro Magueta
abef7f0b08 Revert "Temporary fix for prach_thres"
This reverts commit af0d7dabba
2021-07-16 15:34:53 +00:00
rmagueta
1c17196f73 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS-abs 2021-07-16 11:38:04 +01:00
Parminder Singh
bb9c3ca173 ue->high_speed_flag is removed from UE channel estimation
- This flag is always set to 1, furthermore with multiple DMRS symbols
  configuration very recent DMRS containing symbol shall be for channel
  estimation.
2021-07-16 09:36:36 +02:00
Francesco Mani
fd9e0b64ef Update FEATURE_SET.md 2021-07-16 07:33:14 +00:00
Remi Hardy
33a2f1df42 [CI] improve/fix iperf for module
-fixes UL iperf log collection/analysis for UE module
-fixes iperf processes mgt for UE module
2021-07-16 07:17:44 +00:00
luis_pereira87
a30b86cb45 Update NSA config file 2021-07-15 18:55:51 +01:00
luis_pereira87
1c0d045396 Merge remote-tracking branch 'origin/develop-NR_SA_F1AP_5GRECORDS-abs' into develop-NR_SA_F1AP_5GRECORDS-abs 2021-07-15 12:59:58 +01:00
luis_pereira87
ff7cc7ec1b Add ulsch_max_slots_inactivity to SA config files 2021-07-15 12:59:15 +01:00
francescomani
88b8b4212b fix gnb compilation 2021-07-15 12:01:22 +02:00
rmagueta
f2b52ba3da Revert some xer_fprints 2021-07-15 10:35:54 +01:00
Luis Pereira
78b3292c9c Revert "Add noS1 flag in gnb_phytest_usrp_run"
This reverts commit a8a5146029
2021-07-15 09:02:18 +00:00
hardy
2bfc418e68 improve/fix iperf for module 2021-07-15 10:18:19 +02:00
rmagueta
a2450bb4b7 Protect some xer_fprints by an if 2021-07-14 15:30:07 +01:00
francescomani
88cec72b02 avoid segmentation fault in scheduling csirs for sa 2021-07-14 16:15:47 +02:00
francescomani
b72f2a6a8e Merge remote-tracking branch 'origin/develop' into NR_CSIRS_tomerge 2021-07-14 13:54:02 +02:00
Thomas Schlichter
9f070b74ae NR_UE: use correct HARQ PID when setting the HARQ status to ACTIVE in nr_ue_scheduled_response() 2021-07-13 20:47:05 +02:00
Thomas Schlichter
bf50c61e8a NR_UE: fix nr_ue_dlsch_procedures() for sa mode
But that part should be moved to the MAC anyways
2021-07-13 20:45:19 +02:00
Thomas Schlichter
44d57829cc NR_UE: revert changes in nr_ue_procedures.c
I have to revert this to be consistent with the OAI gNB.
But I think it is wrong to take the BWPSize from scc or scc_SIB, and the BWPStart from DLbwp[0].
2021-07-13 20:44:39 +02:00
rmagueta
7758e8acfc Revert min_rb to 5 and avoid mixed slots for initialUplinkBWP 2021-07-13 18:48:38 +01:00
rmagueta
a8a5146029 Add noS1 flag in gnb_phytest_usrp_run 2021-07-13 18:08:57 +01:00
rmagueta
b98836940a Change log levels 2021-07-13 12:00:25 +01:00
rmagueta
2dd3051916 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS-abs 2021-07-12 15:51:16 +01:00
rmagueta
4f873e9a26 Fix IP packet received at gNB, to be sent to TUN interface 2021-07-12 15:44:16 +01:00
hardy
f3ea310429 quick fix for CI NR phy test 2021-07-12 14:56:48 +02:00
Laurent THOMAS
bc528d0c73 fix wireshark interface headers 2021-07-12 13:22:38 +02:00
rmagueta
389a8e58be Revert security_mode for phy-test 2021-07-10 02:17:36 +01:00
rmagueta
af0d7dabba Temporary fix for prach_thres 2021-07-09 20:32:54 +01:00
rmagueta
02e20e9021 Fix frequencyDomainResources for coreset0 2021-07-09 20:18:49 +01:00
rmagueta
ba122c9cb4 Fix max_association_period for FDD 2021-07-09 15:59:19 +01:00
rmagueta
3c9ca36651 Fix fill slot bitmap for FR2 2021-07-09 13:22:30 +01:00
Roberto Louro Magueta
b19d396828 Revert "Fix is_xlsch_in_slot"
This reverts commit 7821a12998
2021-07-09 11:34:01 +00:00
rmagueta
7821a12998 Fix is_xlsch_in_slot 2021-07-08 19:57:03 +01:00
rmagueta
9c571bd933 Fix segmentation fault in nr-ru 2021-07-08 18:38:49 +01:00
rmagueta
39670007be Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS-abs 2021-07-08 17:43:43 +01:00
Remi Hardy
ca8106ea13 integration_2021_wk27
MR !1188 : NR_gNB_initial_MIB_fix  
This MR fixes a bug for which the gNB would send an empty MIB in the first frames of execution. This is because MIB is generated every 8 frames but the first MIB wouldn't be generated before frame 8 at the beginning of each run.

MR !1184 : x2_handle_sctp_shutdown
Avoid eNB exiting after gNB tries to reconnect over X2 for NSA
2021-07-08 08:18:47 +00:00
luispereira87
38e3517029 Fix build warning 2021-07-07 19:11:33 +01:00
luispereira87
8743f58d23 Improve schedule msg3 and fix tda for mixed slots 2021-07-07 18:25:31 +01:00
luispereira87
65bf29eecc Fix uplink retransmission information 2021-07-07 16:34:29 +01:00
Luis Pereira
214b44885d Revert "Temporary fix: avoid mixed slots in initialUplinkBWP"
This reverts commit 06a8ec9893
2021-07-07 15:27:38 +00:00
dongzhanyi
8814c2c3dc replace the NR_DL_FRAME_PARMS structure into the NR_DL_FRAME_PARMS structure pointer 2021-07-07 21:16:59 +08:00
luispereira87
06a8ec9893 Temporary fix: avoid mixed slots in initialUplinkBWP 2021-07-06 20:33:18 +01:00
luis_pereira87
2cea4c4c87 Compute TBS and rbSize considering always MAC long header 2021-07-06 10:57:32 +01:00
Luis Pereira
6cc98eba85 Revert "Fix gNB downlink MAC short/long header accordingly with RLC buffer size"
This reverts commit 081a287929
2021-07-06 09:44:37 +00:00
Luis Pereira
5da8195d23 Revert "Improved fix gNB downlink MAC short/long header accordingly with RLC buffer size"
This reverts commit 88d7ad11a2
2021-07-06 09:44:03 +00:00
hardy
cc89d3606b Merge remote-tracking branch 'origin/x2_handle_sctp_shutdown' into integration_2021_wk27 2021-07-06 10:49:30 +02:00
Thomas Schlichter
c3482e376d Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-07-05 16:25:26 +02:00
Thomas Schlichter
ea72bde160 fix DL channel estimation around DC for DMRS type 1 and muliple antenna ports
bug found and fix proposed by: Francesco Mani
2021-07-05 14:49:39 +02:00
luis_pereira87
88d7ad11a2 Improved fix gNB downlink MAC short/long header accordingly with RLC buffer size 2021-07-03 08:54:16 +01:00
luis_pereira87
081a287929 Fix gNB downlink MAC short/long header accordingly with RLC buffer size 2021-07-02 21:36:02 +01:00
Laurent THOMAS
ee0e7c97a3 merge develop 2021-07-02 12:22:42 +02:00
Laurent THOMAS
670352d548 add array size fix 2021-07-02 12:15:59 +02:00
Laurent THOMAS
1f80f4f4dd merge develop
Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into x2_handle_sctp_shutdown
2021-07-02 11:43:52 +02:00
francescomani
c9c416cb01 Merge remote-tracking branch 'origin/develop' into NR_gNB_initial_MIB_fix 2021-07-02 11:43:37 +02:00
luispereira87
dcfec657df Fix BWPstart and BWPsize for bwp_Dedicated 2021-07-01 15:02:59 +01:00
francescomani
38ad4bbfbc Merge remote-tracking branch 'origin/develop' into NR_CSIRS_tomerge 2021-07-01 15:23:28 +02:00
Remi Hardy
2d4e8cc323 2021_wk26 Merge develop-NR_SA_F1AP_5GRECORDS
Initial implementation of NR5G Standalone Access Registration procedures with CN5G.
2021-07-01 11:55:26 +00:00
rmagueta
282fe1063e Fix build 2021-06-30 18:48:45 +01:00
rmagueta
160cb0b930 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS-lts2
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	cmake_targets/build_oai
#	cmake_targets/tools/build_helper
#	executables/nr-gnb.c
#	openair1/PHY/INIT/nr_init_ru.c
#	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
#	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
#	openair2/F1AP/f1ap_du_rrc_message_transfer.c
#	openair2/F1AP/f1ap_du_rrc_message_transfer.h
#	openair2/F1AP/f1ap_du_task.c
#	openair2/GNB_APP/gnb_app.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
#	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
#	openair2/RRC/LTE/rrc_eNB_GTPV1U.c
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR/rrc_gNB_NGAP.c
#	openair2/RRC/NR_UE/rrc_UE.c
#	openair3/NAS/NR_UE/nr_nas_msg_sim.c
#	openair3/ocp-gtpu/gtp_itf.cpp
#	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2021-06-30 17:00:30 +01:00
rmagueta
18fae95fc7 Fix UL TDA in config file for NSA 2021-06-29 18:54:52 +01:00
rmagueta
a65fb113c1 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-06-28 14:22:57 +01:00
Remi Hardy
635dabae31 Merge branch 'integration_2021_wk25' into 'develop'
Integration 2021 wk25

MR !1187 : improve UE module control
* improve UE module control
* make Qlog generation optional
* add nsa tests
* update jenkins pipeline
2021-06-28 12:24:08 +00:00
hardy
9fa3e1a758 fix the module CM process start/check 2021-06-27 22:12:16 +02:00
matzakos
408d05c682 Configure PDCP entity for UE DRB with no integrity and ciphering to comply with configuration at gNB
-To be revisited if we want to enable integrity and ciphering for DRBs
2021-06-27 10:34:37 +02:00
rmagueta
c3c925bd4d Remove obsolete code from rrc_gNB_reconfig 2021-06-24 15:20:55 +01:00
rmagueta
4e449a0c40 Fix build warnings 2021-06-24 14:51:16 +01:00
luis_pereira87
e0769db455 Remove SRB2 from fill_initial_cellGroupConfig 2021-06-24 12:55:01 +01:00
francescomani
c249ca0bd8 fix for empty mib at beginning of execution 2021-06-24 12:22:03 +02:00
sfn
ae3e3c5f39 Fix PDSCH precoding bug 2021-06-24 11:08:33 +02:00
sfn
3a7dc238e0 Fix PUCCH bugs 2021-06-24 11:08:33 +02:00
sfn
3ac1f62bbb Enable DMRS Config Type 2 for MIMO transmission 2021-06-24 11:08:33 +02:00
sfn
3613927bc8 Extend rfsimulator to support 2 layers for DL transmission from cm line with option --l 1 or 2 2021-06-24 11:08:05 +02:00
luis_pereira87
7017306cfb RRCSetup should only configure SRB1 2021-06-23 21:13:26 +01:00
Laurent THOMAS
64e58a4300 dirty fixes that fix the UL malformed packets (detected in wireshark), and also internally memory corrpution 2021-06-23 21:41:56 +02:00
Thomas Schlichter
6f89a63d2c Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-06-23 14:00:07 +02:00
luis_pereira87
4015724213 Fix a regression in UE (LCID loop) 2021-06-23 11:29:37 +01:00
Laurent THOMAS
aa9837395e force UE DRB no integrity 2021-06-23 09:46:53 +02:00
Remi Hardy
195a87fdc7 fixing missing (new) arguments in TerminateUE call 2021-06-23 08:41:43 +02:00
luis_pereira87
8cef72ef9b Fix xer_printf buffer address 2021-06-23 05:01:51 +01:00
rmagueta
a675de4c8b Initialization of ssb_mask and ssb_period at UE for SA 2021-06-22 18:48:46 +01:00
Remi Hardy
014c09fddd fix nsa job trigger 2021-06-22 18:36:04 +02:00
Laurent THOMAS
17775c7ecc fix DRB bug in DL 2021-06-22 15:58:28 +02:00
Remi Hardy
49088aed1d fix AutoTerminate 2021-06-22 15:09:09 +02:00
Laurent THOMAS
75e999572f add DLinformationTransfer in nrUE, process SRB!=1 in UE (instead of discard), change struct member pdusession into pduSession to increase code readability (another struct contains also pdusession in lower case) 2021-06-22 14:26:25 +02:00
rmagueta
99ec7f0958 Fix ul_failure option for phy_test mode 2021-06-22 13:05:52 +01:00
Roberto Louro Magueta
0649737aa7 Revert "Revert ul_failure option"
This reverts commit 0cd356864a
2021-06-22 13:50:04 +02:00
rmagueta
0cd356864a Revert ul_failure option 2021-06-22 12:34:20 +01:00
Remi Hardy
86225c3b8f implement optional Qlog trace 2021-06-22 09:25:02 +02:00
Laurent THOMAS
24a84716df Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS-USIM 2021-06-21 21:06:31 +02:00
Laurent THOMAS
aef67d0310 fix merge NR_SA_F1AP_5GRECORDS and fix warnings, a regression in UE (LCID lopp) 2021-06-21 21:01:59 +02:00
rmagueta
ac79ceb3f4 Fix build of phy-simulators 2021-06-21 19:10:56 +01:00
rmagueta
6cefe15467 Fix issues after cherry-pick 2021-06-21 17:48:47 +01:00
Raymond Knopp
df21836f1d removed stats file generation for RRC temporarily 2021-06-21 18:46:58 +02:00
rmagueta
6bcc976c95 Merge remote-tracking branch 'origin/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-06-21 17:17:09 +01:00
Panos Matzakos
c9f72efc94 Update TESTING_5GSA_setup.md for setup with OAI UE 2021-06-21 16:13:48 +00:00
Laurent THOMAS
5d11b7444e fix array overflow and wrong LCID 2021-06-21 16:48:44 +01:00
Laurent THOMAS
83950e6c57 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS-USIM 2021-06-21 13:00:35 +02:00
Laurent THOMAS
a88c33b148 fix array overflow and wrong LCID 2021-06-21 12:56:57 +02:00
Raymond Knopp
6293f61087 small changes for multiple lcid handling in gNB scheduler. PUSCH DTX handling and suspension of scheduling when UL failure is detected 2021-06-21 11:34:17 +01:00
Masayuki Harada
3a662d95f5 Move memory for USIM information to UICC. 2021-06-21 18:52:05 +09:00
rmagueta
5293e9bbe0 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	common/utils/system.c
2021-06-18 14:41:01 +01:00
hardy
0d3b42465a support of module attach detach + new nsa tests 2021-06-18 14:53:06 +02:00
Remi Hardy
fcecd0dfdb Integration 2021 wk24
MR !1179 : Fix Incorrect Array Size computation  
MR !1182 : CI NSA test fixes and enhancements  
MR !1169 : Dataplane bug in L2NFAPI_NOS1
2021-06-18 10:52:58 +00:00
Florian Kaltenberger
867d789476 Update TESTING_GNB_W_COTS_UE.md 2021-06-18 09:15:40 +00:00
hardy
03f7deccda Merge remote-tracking branch 'origin/512-dataplane-bug-in-l2nfapi_nos1' into integration_2021_wk24 2021-06-18 07:10:05 +02:00
hardy
b1df028c5b Merge remote-tracking branch 'origin/fix-check' into integration_2021_wk24 2021-06-18 07:09:05 +02:00
rmagueta
0108d75ecd Reset variables in rrc_gNB_generate_RRCRelease 2021-06-17 17:01:06 +01:00
Laurent THOMAS
b9268222a3 revert wrong commit on targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp 2021-06-17 16:59:20 +02:00
Laurent THOMAS
6fb9f92b84 replace itti message GTPV1U_DELETE_TUNNEL_REQ by direct call to gtpv1u_delete_s1u_tunnel() 2021-06-17 16:40:34 +02:00
Panos Matzakos
7076ac9afc Initiate tutorial for 5G SA setups (work in progress) 2021-06-17 13:30:48 +00:00
hardy
569dfb1420 change storage location of zipped qlog 2021-06-17 15:25:09 +02:00
Remi Hardy
8371109a93 adding new class for log mgt/rotation on remote servers 2021-06-17 09:58:15 +02:00
Thomas Schlichter
1c244de782 gNB: add nrOfLayers to sched_pdsch 2021-06-17 08:59:48 +02:00
matzakos
5bce383cc9 Remove X2 data RB tree entry at eNB after receiving sctp shutdown event from gNB
-If the gNB crashes when the X2 connection is established with the eNB, an sctp shutdown event is received from the eNB. However the x2 data related with
the connection were not removed from the RB tree. Then if the gNB tried to reconnect, it made the eNB exit because the eNB had kept the previous data.
Now we remove the x2 data as soon as the sctp shutdown event is received so that the eNB does not exit anymore at the next connection attempts.
2021-06-16 22:44:02 +02:00
hardy
5ef64f467a update att_tx in config to improve 5g attach in our setup 2021-06-16 13:40:08 +02:00
Laurent THOMAS
ec7958ed81 merge parent branch 2021-06-16 10:45:04 +02:00
Laurent THOMAS
c224ca8f6c fix srb error 2021-06-16 10:43:57 +02:00
Laurent THOMAS
763f034149 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-06-16 10:41:49 +02:00
Laurent THOMAS
015ba5f076 fix arry size bug 2021-06-16 10:41:45 +02:00
hardy
534a58c558 fix iperf + tune max_rxgain for our setup 2021-06-15 17:06:35 +02:00
Raymond Knopp
66ab8e12a5 Avoid double call of gtpu task and call it only for the NSA and SA scenarios 2021-06-15 16:36:54 +02:00
Raymond Knopp
1198ef18dc Add missing function calls for proper gtp-u initialization in NSA scenario 2021-06-15 15:35:53 +02:00
Roberto Louro Magueta
5b5b48d32b Revert "Temporary assigment of incoming_rb_id in newGtpuCreateTunnel"
This reverts commit 7011c0d97e
2021-06-14 20:52:37 +02:00
rmagueta
7011c0d97e Temporary assigment of incoming_rb_id in newGtpuCreateTunnel 2021-06-14 19:03:40 +01:00
rmagueta
f0ff8b7cbe Remove call nr_DRB_preconfiguration after rrc_gNB_generate_RRCSetup 2021-06-14 17:57:48 +01:00
rmagueta
ebede5c932 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
2021-06-14 16:53:10 +01:00
Laurent THOMAS
1b62c91532 add configurable USIM 2021-06-14 16:32:29 +02:00
Raphael Defosseux
2a6ebaaaae Fixes on the array size computation.
This work is based on feedback from Thomas Schlichter.
His comments and suggestions were made just after the original MR was merged.

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-06-14 14:56:01 +02:00
Remi Hardy
df645ef750 Integration 2021 wk23
MR !1180: \[CI\] nsa traces 
-NSA test and pipeline update for UE-module
-improve traces and log collection (pcap, QLog, stats)
 
MR !1126: bugfix-nr-t-reordering 
-deal with "infinity" case for t-reordering
-some small fixes (one bug i pdcp, one log set to LOG_E in rlc)
 
MR !1168: nr-pdcp-small-bugfixes
-better nettle version detection
-bad HFN computation at PDU reception
2021-06-14 10:53:47 +00:00
luis_pereira87
630b8b5806 Differentiate NSA and SA in some pieces of code 2021-06-11 16:22:16 +01:00
luis_pereira87
1c0640a21b Remove SRB configuration from gNB in NSA 2021-06-11 12:12:14 +01:00
hardy
c923a9ea30 Merge remote-tracking branch 'origin/nr-pdcp-small-bugfixes' into integration_2021_wk23 2021-06-11 11:04:18 +02:00
hardy
0494d38459 Merge remote-tracking branch 'origin/bugfix-nr-t-reordering' into integration_2021_wk23 2021-06-11 11:03:50 +02:00
hardy
2bf4571d70 Merge remote-tracking branch 'origin/ci_nsa_traces' into integration_2021_wk23 2021-06-11 11:03:21 +02:00
hardy
328664b4d6 remove benetel from nsa trigger (temporarily) 2021-06-10 22:17:15 +02:00
Raphael Defosseux
dafa448790 CI: fix command2, killing record process and building w/ ninja
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-06-10 16:37:56 +02:00
hardy
cd25915cd0 new html log to detect errors (removing ue) 2021-06-10 14:40:15 +02:00
Laurent THOMAS
6749c5f762 Make more accurate sctp socket failure messages 2021-06-10 13:11:56 +02:00
hardy
2f84dc6bd0 making enb pcap generation optional in xml 2021-06-09 21:45:50 +02:00
hardy
2c2d8bbf62 fixing tshark termination ; zip of QLog file 2021-06-09 15:51:07 +02:00
hardy
688cb7ae4e Qlog archive mgt 2021-06-09 14:18:36 +02:00
rmagueta
09a6d825b7 Avoid read null pointer file 2021-06-09 12:37:16 +01:00
hardy
19f5c7baa2 nsa test for usrp update 2021-06-09 12:46:04 +02:00
rmagueta
12f7f82391 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
2021-06-09 11:10:07 +01:00
hardy
4e238b8700 fixing copy of pcap artifacts 2021-06-09 10:25:29 +02:00
hardy
19aadc07bb no longer need 3 resources reservation 2021-06-09 09:04:59 +02:00
Remi Hardy
97d0973476 update module mgt and log collect for nsa test 2021-06-08 17:38:40 +02:00
Remi Hardy
530b74dde9 Integration 2021 wk22
MR !1171 : \[RHEL8\]\[CONTAINER\] Runtime check when creating pThreads  
MR !1172 : \[Docker\] adding OAI LTE RU target build in a container image  
MR !1174 : flexran-rtc repository is now public  
MR !1167 : fixing bugs in pucch ue functions
2021-06-08 07:00:45 +00:00
Masayuki Harada
1b69c2a00d Remove pdcp_layer_init_for_CU function and merge to pdcp_layer_init. 2021-06-08 15:32:12 +09:00
Remi Hardy
773f2a58e4 add QLog traces and fix autoterminate for module 2021-06-07 23:05:36 +02:00
Luis Pereira
54666a932c Revert "Skip PDCP integrity verification"
This reverts commit cc71b3f88a
2021-06-07 10:24:33 +02:00
rmagueta
c7f0a287b0 Update dummy_enb.c 2021-06-06 18:59:28 +01:00
luis_pereira87
e8655d680a Update SA documentation in RUNMODEM.md 2021-06-06 13:19:33 +01:00
rmagueta
e72a6798c1 Change some LOG levels 2021-06-05 14:20:39 +01:00
Roberto Louro Magueta
98caeb10e1 Revert "Temporary assigment of incoming_rb_id in newGtpuCreateTunnel"
This reverts commit 3585d7da7b
2021-06-05 09:34:22 +02:00
rmagueta
98e9ee81c5 Fix build 2021-06-05 02:22:38 +01:00
luis_pereira87
37cf95c40a Fix indentation 2021-06-04 21:48:50 +01:00
luis_pereira87
126db8c96a Revert rlc_data_req instead of du_rlc_data_req for LTE 2021-06-04 21:37:46 +01:00
rmagueta
3585d7da7b Temporary assigment of incoming_rb_id in newGtpuCreateTunnel 2021-06-04 19:45:32 +01:00
rmagueta
72654d70b2 Revert build for ITTI_SIM OR RFSIM_NAS in CMakeLists 2021-06-04 18:24:12 +01:00
Luis Pereira
cf3e74082a Revert "Temporary hardcoded UhdVersion for CI (to be reverted)"
This reverts commit 5724498b1f
2021-06-04 07:10:01 +02:00
luis_pereira87
cc71b3f88a Skip PDCP integrity verification 2021-06-03 19:09:48 +01:00
rmagueta
5724498b1f Temporary hardcoded UhdVersion for CI (to be reverted) 2021-06-03 16:10:04 +01:00
rmagueta
af8d115dae Revert more pieces of code for LTE 2021-06-03 16:01:51 +01:00
rmagueta
c9a9c619c7 Add some LOGs 2021-06-03 13:47:38 +01:00
matzakos
0f98a57162 Remove redundant hack to send RRCSetupRequest through DCCH in F1 (CU/DU) mode
-Instead RRCSetupRequest is sent from DU to CU through nr_mac_rrc_data_ind()->DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER() and then through F1AP to CU.
2021-06-02 20:57:45 +02:00
rmagueta
b98cf717e5 Fix worker_config 2021-06-02 19:11:04 +01:00
luis_pereira87
5406a4534d Release RNTI of LTE PHY when RA does not succeed 2021-06-02 16:29:45 +01:00
hardy
53fe49227b Merge remote-tracking branch 'origin/NR_UE_PUCCH_bugfixes' into integration_2021_wk22 2021-06-02 14:23:50 +02:00
luis_pereira87
9068db43e0 Update CMakeLists.txt to choose NEW_GTPU for NR binaries, and keep legacy GTPU for LTE 2021-06-01 19:00:07 +01:00
luis_pereira87
22ef918b11 Fix removed declaration of "message_p" 2021-06-01 18:10:49 +01:00
hardy
003b1303d6 Merge remote-tracking branch 'origin/flexran-rtc-repo-is-public' into integration_2021_wk22 2021-06-01 17:03:22 +02:00
hardy
eed7ac0c56 Merge remote-tracking branch 'origin/add-ru-docker-image' into integration_2021_wk22 2021-06-01 17:02:48 +02:00
luis_pereira87
ff531831be Avoid decoding UL-CCCH with all zeros 2021-06-01 14:54:42 +01:00
Eurecom
d249c1ef80 testing with 2x2 and 4x4 with N310, small modifications in nr_ru_procedures and usrp_lib.cpp for multiple antennas 2021-06-01 09:48:20 +02:00
rmagueta
ac1d0dd09c Merge remote-tracking branch 'origin/ci_sa_rfsim_test' into develop-NR_SA_F1AP_5GRECORDS 2021-05-31 15:15:07 +01:00
rmagueta
42365c9a0f Set NEW_GTPU to false 2021-05-31 13:55:40 +01:00
Roberto Louro Magueta
2e518d95fa Revert "Merge remote-tracking branch 'remotes/oai/develop-NR_SA_F1AP_5GRECORDS' into..."
This reverts commit 4100dc3338
2021-05-31 14:13:46 +02:00
Masayuki Harada
4100dc3338 Merge remote-tracking branch 'remotes/oai/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-05-31 20:30:21 +09:00
rmagueta
a205dcbf44 Fix GTP for LTE 2021-05-31 12:10:24 +01:00
Masayuki Harada
46183f895f Merge remote-tracking branch 'remotes/oai/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-05-31 18:45:37 +09:00
Xue Song
7379717ddf Remove duplicate code
In the UE executable, delete the initialization of NR.nrrrc and check the NULL of NR.nrrrc
2021-05-31 17:36:18 +09:00
Roberto Louro Magueta
1145a5516c Revert "Change hardcoded task id to TASK_VARIABLE"
This reverts commit 64aa42d646
2021-05-31 02:05:38 +02:00
Eurecom
ac4670990c handling for UL failure. added do_precoding flag to nr-ru procedures. testing with 2x2 N310. 2021-05-30 23:14:12 +02:00
rmagueta
64aa42d646 Change hardcoded task id to TASK_VARIABLE 2021-05-30 20:16:55 +01:00
rmagueta
769da284fb Change some hardcode values 2021-05-30 12:33:21 +01:00
rmagueta
024808e6fa Revert more pieces of code to LTE 2021-05-29 20:35:53 +01:00
Roberto Louro Magueta
8c80b83478 Revert "Temporary revert of GTPU"
This reverts commit 372982d502
2021-05-29 17:50:50 +02:00
rmagueta
9a2ba4ece7 Merge remote-tracking branch 'origin/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-05-29 00:14:55 +01:00
rmagueta
372982d502 Temporary revert of GTPU 2021-05-29 00:13:55 +01:00
francescomani
9460c27589 current implementation does not allow 2 csi report in a frame, moving second one in the following frame 2021-05-28 18:58:51 +02:00
luis_pereira87
ef509a9810 Uncomment fields in F1 gNB-CU CONFIGURATION UPDATE 2021-05-28 14:07:22 +01:00
luis_pereira87
9ae4d8639a Fix fiveGS_TAC byte order for LTE 2021-05-28 12:38:44 +01:00
francescomani
a3b5b905b2 bugfixes for phy-test mode and BWP less than 50 PRBs 2021-05-28 12:08:34 +02:00
Raphael Defosseux
2632d81d36 CI: adding setting the routes for L2 Simulator in noS1 mode
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-28 10:36:52 +02:00
Luis Pereira
fa33b048b0 Revert "Add logs for cellId in F1"
This reverts commit ffb6fa7cc6
2021-05-28 07:02:42 +02:00
luis_pereira87
ffb6fa7cc6 Add logs for cellId in F1 2021-05-28 00:38:46 +01:00
luis_pereira87
6c494737f0 Revert LTE related code in DU_handle_UE_CONTEXT_SETUP_REQUEST 2021-05-28 00:20:33 +01:00
luis_pereira87
e78e296eb0 Avoid assertion in F1 for LTE 2021-05-27 16:52:00 +01:00
francescomani
dd92d7b651 rrc configuration for SSB and CSI RSRP measurements 2021-05-27 17:36:54 +02:00
luis_pereira87
55936d24bf Refactor some logs 2021-05-27 16:14:19 +01:00
Luis Pereira
ed0d8ee0be Revert "Add logs for debug segmentation fault (to be reverted)"
This reverts commit a9527371e7
2021-05-27 17:07:20 +02:00
Luis Pereira
5040d32964 Revert "Temporary commit (to be reverted)"
This reverts commit 28ca9cfc38
2021-05-27 17:06:44 +02:00
Luis Pereira
4473ac7c00 Revert "Temporary commit #2 (to be reverted)"
This reverts commit b17b688c58
2021-05-27 17:05:44 +02:00
Raymond Knopp
8456908ef8 F1Setup procedure working for both LTE and NR 2021-05-27 15:49:30 +02:00
hardy
8fbf444598 add/update sa conf file 2021-05-27 15:30:30 +02:00
hardy
a5bab48bf8 fix syntax error 2021-05-27 15:30:13 +02:00
Raphael Defosseux
6e981f6b65 CI: removing all credentials
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-27 14:59:22 +02:00
luis_pereira87
fb0b99af3e Fix another SI_container index for LTE 2021-05-27 11:56:17 +01:00
francescomani
a1e3b5476b Merge remote-tracking branch 'origin/develop' into NR_CSIRS_tomerge 2021-05-27 11:52:12 +02:00
luis_pereira87
b17b688c58 Temporary commit #2 (to be reverted) 2021-05-27 07:53:05 +01:00
Eurecom
5530f0ce8b Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-05-27 08:15:32 +02:00
Eurecom
51d93911f0 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2021-05-27 08:15:22 +02:00
luis_pereira87
28ca9cfc38 Temporary commit (to be reverted) 2021-05-27 06:24:48 +01:00
luis_pereira87
a9527371e7 Add logs for debug segmentation fault (to be reverted) 2021-05-26 22:33:55 +01:00
luis_pereira87
892dcfa295 Fix another SI_container index for LTE 2021-05-26 22:29:16 +01:00
luis_pereira87
8d096b22fd Remove unused variable 2021-05-26 22:24:03 +01:00
luis_pereira87
2be74a6452 Revert dci format indicator assignment for NR_UL_DCI_FORMAT_0_0 2021-05-26 17:53:06 +01:00
matzakos
f60e599730 Enable IP TUN interface configuration upon reception of PDU Session Establishment Accept NAS message
-User plane traffic validation with OAI UE and OAI CN:

-Downlink ping initiated from the CN is received at the IP interface of the UE. However it seems that there is some packet corruption preventing the generaration of ping reply.

-Uplink ping initiated from the UE reaches the OAI CN machine. However no ping reply is seen yet either.
2021-05-26 17:56:02 +02:00
matzakos
01635a40f8 Enable DRB configuration for PDCP, RLC at OAI UE 2021-05-26 17:47:53 +02:00
hardy
39e3196ec9 fix typo 2021-05-26 17:42:17 +02:00
hardy
44f7766a3d adding SA rfsim test 2021-05-26 17:39:19 +02:00
rmagueta
56c5a0b3c3 Fix SI_container index for LTE 2021-05-26 16:19:07 +01:00
Roberto Louro Magueta
a257024cf1 Revert "Add condition in CU_handle_F1_SETUP_REQUEST to LTE version"
This reverts commit 65d24ae205
2021-05-26 17:16:00 +02:00
Raphael Defosseux
c7bad3db4a [Docker] adding IF4.5 template conf files for eNB target image
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-26 17:14:00 +02:00
Raphael Defosseux
f4e7c2ae0a [Docker] adding OAI LTE RU target build in a container image
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-26 16:15:42 +02:00
rmagueta
65d24ae205 Add condition in CU_handle_F1_SETUP_REQUEST to LTE version 2021-05-26 11:37:21 +01:00
rmagueta
9bbfd60d2f Revert if in CU_send_UE_CONTEXT_SETUP_REQUEST to LTE version 2021-05-26 11:35:10 +01:00
Roberto Louro Magueta
35d6cb706f Revert "Temporary commit (will be reverted)"
This reverts commit f207446117
2021-05-26 12:14:39 +02:00
Raphael Defosseux
1b4faa8ddd fix added cppcheck errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-26 10:00:45 +02:00
rmagueta
f207446117 Temporary commit (will be reverted) 2021-05-26 02:50:06 +01:00
luis_pereira87
13990e614c Fix nRNRB for LTE 2021-05-25 15:08:51 +01:00
Raphael Defosseux
aa6b36a60f [RHEL8][CONTAINER] Runtime check when creating pThreads
It looks like :
  - when running on a Fedora-host
  - with generic kernel
  - in a container
  - even in privileged mode

That is not enough and priority/schedule settings is not allowed.

So at runtime, we check and in case, we don't set up priorities.

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-25 14:41:30 +02:00
Francesco Mani
1e4d4b1e04 Apply 1 suggestion(s) to 1 file(s) 2021-05-25 12:32:42 +01:00
francescomani
fb413c8bde fixing bugs in pucch ue functions 2021-05-25 12:32:37 +01:00
luis_pereira87
145dd0c9bf Update condition to preconfigure DRB in phy-test mode 2021-05-25 12:32:03 +01:00
Xenofon Foukas
db4769bc35 Fixes to L2NFAPI_NOS1 dataplane traffic forwarding
This commit fixes a bug that makes the dataplane traffic of all the
emulated UEs to go through the interface of the first UE (oaitun_ue1).

The fix uses the last octet of the IP assigned to each UE to map it to its
UE_id, which is then used to get its RNTI and the correct PDCP queue.
For the emulator to work properly, the routing tables of the emulated UEs
must also be set. This patch introduces a script (setup_routes.sh) in
cmake_targets/tools that configures the routing tables. This script
must be run at the UE host machine once the UEs have successfully attached,
passing the number of emulated UEs as the argument. For example, in the
case of 16 emulated UEs, one must run "./setup_routes.sh 16".
2021-05-24 16:33:12 +01:00
luis_pereira87
2a0510e29d Fix num_dmrs_cdm_grps_no_data in allocate_dl_retransmission 2021-05-24 16:17:11 +01:00
luis_pereira87
6d311e9e63 Avoid segmentation fault when RC.nrrrc is not present 2021-05-24 15:52:02 +01:00
luis_pereira87
08832facaa Fix setup parameters for F1U 2021-05-24 14:51:42 +01:00
luis_pereira87
824faeb163 Avoid a segmentation fault in LTE when first_uci_stats is NULL 2021-05-22 17:11:19 +01:00
Cedric Roux
02cedc0ca1 nr pdcp: bugfix: better nettle version detection
This fix may fail to work.

we should stop supporting old versions of nettle at some point.
2021-05-22 12:56:52 +02:00
Cedric Roux
e26c1f6f6d nr pdcp: bugfix: bad HFN computation at PDU reception 2021-05-22 12:56:43 +02:00
Francesco Mani
fe09b529b3 Apply 1 suggestion(s) to 1 file(s) 2021-05-22 06:22:42 +00:00
rmagueta
363c2bc74a Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-05-21 18:39:48 +01:00
Thomas Schlichter
1c440be48e NR_UE: in nr_ue_dlsch_procedures() use TimeDomainAllocationList from bwp_Common if there is none in bwp_Dedicated 2021-05-21 18:00:33 +02:00
francescomani
56def3a18e fixing bugs in pucch ue functions 2021-05-21 17:11:09 +02:00
hardy
c19ba39eaa reverted from MR1153 to make Benetel UL traffic run ok 2021-05-21 16:15:44 +02:00
matzakos
c7ce307d70 Fix removing of gtp-u extension header 2021-05-21 11:57:26 +02:00
luis_pereira87
a7cb146dce Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	ci-scripts/cls_oaicitest.py
2021-05-21 10:41:34 +01:00
hardy
f2c564444a fix nsa benetel testcase (not correctly merged) 2021-05-21 09:59:19 +02:00
Eurecom
cf1b125705 minor change in logging 2021-05-21 08:52:12 +02:00
Thomas Schlichter
97c199dd84 Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-05-21 08:38:14 +02:00
Remi Hardy
ccd6a0ee12 Integration 2021 wk20
MR !1161 : Improvements on CCE-to-REG mapping and interleaver
- Improvements on CCE-to-REG mapping and interleaver to support coresets with more than 1 symbol duration

MR !1153 : Nr cleanup pucch resources
- Removing unused PUCCH resources and accordingly increasing the PUCCH symbol allocation by 1 unit (now 13 symbols in regular slot)

MR !1162 : [CI] nsa and benetel pipelines with quectel
-adapt iperf routines for quectel 
-change quectel NIC name 
-new NSA test markers for eNB and gNB 
-several bugfixes (CI python)

MR !1164 : fix compile
- Fix several compilation issues nr-ittisim, uescope, telnetsrv, 
- fixed also the F1AP asn1c recompilation 
- some compilation warnings struct members "Status" is a problem as long as we use a Xwindow include

MR !1154 : implementation of handling csi and harq in the same pucch2
- Implementation of multiplexing CSI report and ACKs in the same PUCCH (format 2)

MR !1158 : Fix nr_ulsim
- fix call nr_ue_pusch_common_procedures() in nr_ulsim. This means there was no actual PUSCH transmission and all LLR were 0

MR !1159 : physim-deploy-handle-error-cases
-When failing, physim test on openshift cluster is not properly creating HTML report 
-Removing trailing / in xxx.git/ 
-Increased timeout of git checkout -f calls

MR !1165 : [CI] fixing test retry for module UE
- CI hotfix for module UE ip addresses mgt

MR !1166 : [CI] NSA uplink + benetel longrun
-fix moduleUE UL iperf implem
-add UL test for benetel
-xml file cleaning
-new benetel long run test
2021-05-20 20:38:16 +00:00
Thomas Schlichter
581c0f062a update FEATURE_SET.md 2021-05-20 19:03:14 +02:00
francescomani
bccd61a262 adding non-PMI-portindication to config 2021-05-20 19:02:39 +02:00
francescomani
0ce2f47725 add assertions in compute_csi_bitlen to avoid segmentation fault 2021-05-20 18:47:28 +02:00
Thomas Schlichter
d62f92c6a7 NR_UE: remove several unused structures from PHY layer 2021-05-20 18:32:51 +02:00
luis_pereira87
c1a8c3fd15 Fix all RRC status to StatusRrc 2021-05-20 15:27:31 +01:00
Thomas Schlichter
71a5ae2454 NR_UE: further cleanup of DMRS configuration 2021-05-20 16:24:11 +02:00
Thomas Schlichter
20f8895316 fix nr_dlsim: make dmrs_config_type optional again 2021-05-20 16:11:38 +02:00
matzakos
5c33daa803 Trigger DRB mac configuration (Fujitsu patch) 2021-05-20 14:37:58 +02:00
Laurent THOMAS
449bab30c7 fix nr UE bug: random freeze (mutex not init) 2021-05-20 14:20:00 +02:00
Laurent THOMAS
83688c964d rf calibration tool improvement 2021-05-20 09:53:52 +02:00
hardy
aef47088b1 Merge remote-tracking branch 'origin/ci_nsa_uplink' into integration_2021_wk20_a 2021-05-19 23:52:06 +02:00
hardy
c3f429b022 update for benetel long run 2021-05-19 23:48:26 +02:00
rmagueta
49ea1197bb Fix CI UE status "oaitun_ue1 interface is either NOT mounted or NOT configured" 2021-05-19 16:04:54 +01:00
rmagueta
cb0a80d25a Merge remote-tracking branch 'origin/ci_nsa_uplink' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	ci-scripts/cls_oaicitest.py
2021-05-19 15:46:20 +01:00
hardy
9f64696d3b adding nsa benetel long run 2x20min test 2021-05-19 15:43:02 +01:00
hardy
56ec847b47 update nsa benetel with UL test step 2021-05-19 15:42:58 +01:00
hardy
921f624b68 solve iperf UL implementation for module UE 2021-05-19 15:42:50 +01:00
Laurent THOMAS
96e3d00ac7 fix again RU compilation case 2021-05-19 15:25:42 +01:00
Laurent THOMAS
3b560229c4 fix constant in weird case 'NO_RRC', linked to 'RU' compilation case 2021-05-19 15:25:32 +01:00
Raphael Defosseux
7a71c6c64a CI: increased timeouts on uhd_find_devices commands
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-19 15:24:41 +01:00
rmagueta
a7a3bf5d90 Merge remote-tracking branch 'origin/NR_multiplexing_HARQ_CSI_PUCCH' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
2021-05-19 15:00:52 +01:00
rmagueta
be3d187727 Merge remote-tracking branch 'origin/ci_test_nsa_fix_quectel_nic' into develop-NR_SA_F1AP_5GRECORDS 2021-05-19 14:36:22 +01:00
hardy
a06e5041b2 Merge remote-tracking branch 'origin/ci_nsa_uplink' into integration_2021_wk20_a 2021-05-19 15:26:45 +02:00
hardy
5af1e3fc97 adding nsa benetel long run 2x20min test 2021-05-19 15:15:15 +02:00
hardy
dc0260697d update nsa benetel with UL test step 2021-05-19 15:12:05 +02:00
rmagueta
cae536525e Merge remote-tracking branch 'origin/develop-CCE' into develop-NR_SA_F1AP_5GRECORDS 2021-05-19 14:07:26 +01:00
rmagueta
e96a4b04d8 Fix issue after merge 2021-05-19 14:05:10 +01:00
hardy
c8acf1baa7 solve iperf UL implementation for module UE 2021-05-19 14:53:01 +02:00
Thomas Schlichter
ff5eb3e657 Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-05-19 11:42:04 +00:00
rmagueta
2c47d15fc0 Merge remote-tracking branch 'origin/fix_nr_ulsim' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
2021-05-19 12:40:49 +01:00
rmagueta
997b198bb1 Fix issues after merge 2021-05-19 12:28:40 +01:00
rmagueta
8c5725ed46 Merge remote-tracking branch 'origin/fix-compile' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	openair2/RRC/NR_UE/rrc_UE.c
#	openair2/SIMULATION/NR_RRC/itti_sim.c
2021-05-19 12:09:27 +01:00
rmagueta
a11ff65350 Merge remote-tracking branch 'origin/ci_hotfix_module_ue_ip_address' into develop-NR_SA_F1AP_5GRECORDS 2021-05-19 11:50:57 +01:00
rmagueta
e7f2bb73f9 Merge remote-tracking branch 'origin/physim-deploy-handle-error-cases' into develop-NR_SA_F1AP_5GRECORDS 2021-05-19 11:45:15 +01:00
Laurent THOMAS
d40486b100 fix again RU compilation case 2021-05-19 12:08:51 +02:00
Laurent THOMAS
d42e44ec28 revert thread configuration specific to test 2021-05-19 12:02:29 +02:00
Laurent THOMAS
9130197657 add wireshark header files 2021-05-19 10:26:26 +02:00
Laurent THOMAS
16d9d33d04 Fix minor bugs and wrong reported trace 2021-05-19 09:58:48 +02:00
Laurent THOMAS
b719f5712e fix constant in weird case 'NO_RRC', linked to 'RU' compilation case 2021-05-19 09:52:09 +02:00
rmagueta
081fbd3593 Make all compile in same tree 2021-05-18 18:45:11 +01:00
Raphael Defosseux
a8691d5d22 CI: increased timeouts on uhd_find_devices commands
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-18 13:37:05 +02:00
luis_pereira87
7743c84e30 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-05-18 09:41:58 +01:00
Cedric Roux
e257f76dd0 nr: rlc: minor: set log level to error for max retx reached
Just in case there is a problem, better to see it.

max retx reached means "radio link failure". We should do
something about it at some point. For the moment, let's
inform the user that there is a problem.

We can set back to LOG_D later in time when we deal with it
properly.
2021-05-18 10:30:26 +02:00
Cedric Roux
913f402280 nr: pdcp: accept "infinity" for t-reordering
"infinity" is -1 in the code.
2021-05-18 10:30:26 +02:00
Cedric Roux
8393744c3f nr: bugfix: bad check
38.323 5.2.2.1 says:

    "if t-Reordering is running, and if RX_DELIV >= RX_REORD"

Let's do as is said.
2021-05-18 10:30:26 +02:00
hardy
2067d79a2d Merge remote-tracking branch 'origin/ci_hotfix_module_ue_ip_address' into integration_2021_wk20_a 2021-05-17 18:39:24 +02:00
hardy
ff31beac07 fixing test retry with different IP adresses assigned to module UE 2021-05-17 18:35:32 +02:00
hardy
ab125e0320 Merge remote-tracking branch 'origin/physim-deploy-handle-error-cases' into integration_2021_wk20_a 2021-05-17 15:44:29 +02:00
rmagueta
6dab5f4a8d Fix segmentations fault after merge 2021-05-17 14:40:41 +01:00
hardy
ed814c0fef Merge remote-tracking branch 'origin/fix_nr_ulsim' into integration_2021_wk20_a 2021-05-17 15:24:27 +02:00
Raphael Defosseux
bee7e57b4b RHEL8-UHD support: revert back to 4.0.0.0 version
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-17 14:55:20 +02:00
rmagueta
fd3a45de82 Fix build issues 2021-05-17 12:01:32 +01:00
Thomas Schlichter
61de3bf995 Merge remote-tracking branch 'origin/develop' into fix_nr_ulsim 2021-05-17 11:52:07 +02:00
hardy
ca60a69fc6 Merge remote-tracking branch 'origin/NR_multiplexing_HARQ_CSI_PUCCH' into integration_2021_wk20_a 2021-05-17 10:13:39 +02:00
hardy
568af88807 Merge remote-tracking branch 'origin/fix-compile' into integration_2021_wk20_a 2021-05-17 10:12:27 +02:00
rmagueta
cf605f4c77 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	cmake_targets/build_oai
#	openair1/PHY/INIT/nr_init_ru.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/COMMON/platform_constants.h
#	openair2/ENB_APP/enb_config.c
#	openair2/F1AP/f1ap_cu_interface_management.c
#	openair2/F1AP/f1ap_cu_rrc_message_transfer.c
#	openair2/F1AP/f1ap_cu_ue_context_management.c
#	openair2/F1AP/f1ap_du_interface_management.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/RRC/LTE/rrc_eNB.c
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR_UE/rrc_UE.c
2021-05-17 01:36:39 +01:00
Laurent THOMAS
b5bbfdade3 after merge, remain compile errors 2021-05-16 23:57:35 +02:00
hardy
a07e39593c Merge remote-tracking branch 'origin/ci_test_nsa_fix_quectel_nic' into integration_2021_wk20_a 2021-05-16 21:25:26 +02:00
hardy
a362493cce Merge remote-tracking branch 'origin/NR_cleanup_PUCCH_resources' into integration_2021_wk20_a 2021-05-16 21:24:38 +02:00
hardy
6c23cb6591 Merge remote-tracking branch 'origin/develop-CCE' into integration_2021_wk20_a 2021-05-16 21:24:19 +02:00
Remi Hardy
df6b6a723f Integration 2021 wk19
MR !1028 : oairu
-standalone RRU executable for quick building on simple platforms (no building of L1/L2 procedures) 
-small changes for improving eNB in outdoor deployment scenarios - power control loop, bugfixes, gathering of statistics (L1,MAC,PDCP,RRC), UL measurement procedures, 2/4 antenna reception testing for LTE eNB 
-x300/n300 eNB testing and minor improvements 
-level shifting for x300/n300 
-minimizing L1 variables in MAC 
-removal of RC in RU code sections, minimizing use of RC in L1 code sections

MR !1141 : nr-dmrs-fixes
-NR fixes, identified by UXM tests
2021-05-15 06:51:03 +00:00
Raymond Knopp
1a8c9a562f small changes for multiple lcid handling in gNB scheduler. PUSCH DTX handling and suspension of scheduling when UL failure is detected 2021-05-14 15:53:58 +02:00
Francesco Mani
e15231264a Update description of function nr_acknack_scheduling 2021-05-14 07:10:40 +00:00
luis_pereira87
b62e8d9c1f Change LOG level 2021-05-13 16:31:42 +01:00
luis_pereira87
a6069f7481 Fix dl_carrier assignment 2021-05-13 16:30:21 +01:00
Roberto Louro Magueta
1bad80c692 Revert "Update gnb.band78.tm1.106PRB.usrpn300.conf to a valid pair..."
This reverts commit ee6b77023f
2021-05-13 16:46:19 +02:00
Raymond Knopp
d81a5da4c7 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_prach.c
2021-05-13 09:12:39 +02:00
Raymond Knopp
4c3b718825 commit before merge 2021-05-13 09:11:34 +02:00
Eurecom
d2ec72b09c Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-05-13 09:10:03 +02:00
Eurecom
586fc52f8d 50 MHz formats, prach RX scaling 2021-05-13 09:09:09 +02:00
Eurecom
6e49488f74 Merge branch 'gnb-n300-fixes' into NR_SA_F1AP_5GRECORDS 2021-05-13 09:06:46 +02:00
rmagueta
0ef6ef2b28 Code format improvements in differences for develop 2021-05-12 19:29:10 +01:00
rmagueta
ee6b77023f Update gnb.band78.tm1.106PRB.usrpn300.conf to a valid pair absoluteFrequencySSB/dl_absoluteFrequencyPointA for 106 RBs 2021-05-12 14:20:35 +01:00
Remi Hardy
985d02f8e1 align nsa-usrp and nsa-benetel tests 2021-05-12 13:36:15 +02:00
Remi Hardy
59bbef3b2f change NSA test trigger (tag) 2021-05-12 10:57:40 +02:00
Remi Hardy
318d4c08c9 several bugfixes + make pipelines work for DL, iperf UL KO 2021-05-12 10:40:00 +02:00
hardy
3d908be3a1 new nsa markers for enb and gnb when terminating 2021-05-12 10:40:00 +02:00
hardy
9769fb6231 fix a bug in IperfNoS1, from moduleUE related work 2021-05-12 10:39:59 +02:00
francescomani
052f254306 fix in a condition for pucch2 2021-05-12 10:23:58 +02:00
Laurent THOMAS
e7a43fb394 fix 4G DL rb id 2021-05-11 22:26:50 +02:00
matzakos
64cb9407ba Add support for Initial context setup request carrying PDU Session resource setup list
-Apply patch from Fujitsu
-Trigger dedicated RRC Reconfiguration with DRB and SRB2 configuration once the PDU session is established
-Validation of control plane sequence with OAI CN and Nokia SA Box
2021-05-11 22:19:55 +02:00
rmagueta
bfd7954fb7 Fix srb cppcheck errors/warnings 2021-05-11 15:43:40 +01:00
rmagueta
9c417e1a14 Fix uplink data in phy-test 2021-05-11 15:38:49 +01:00
Laurent THOMAS
f04008a423 add file 2021-05-11 16:14:39 +02:00
rmagueta
0792bf767a Merge remote-tracking branch 'origin/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-05-11 15:01:08 +01:00
rmagueta
5919b891bb Fix new cppcheck errors/warnings 2021-05-11 15:00:39 +01:00
Laurent THOMAS
a51d0d37bf Merge branch 'develop-NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-NR_SA_F1AP_5GRECORDS 2021-05-11 14:35:05 +02:00
Laurent THOMAS
7d3c60ed37 small fixes, make all compile is same tree 2021-05-11 14:34:27 +02:00
rmagueta
f1da217dc3 Do not call nr_ue_prach_scheduler in phy_test mode 2021-05-11 12:17:58 +01:00
hardy
a2574a9397 fix a bug in IperfNoS1, from moduleUE related work 2021-05-11 10:21:04 +02:00
hardy
681beefd76 Merge remote-tracking branch 'origin/nr-dmrs-fixes' into integration_2021_wk19 2021-05-10 21:41:44 +02:00
rmagueta
657bcd8f46 CCE-to-REG mapping extended for 2 or more DCI symbols at UE 2021-05-10 20:11:26 +01:00
Raphael Defosseux
df084c5825 CI: some cosmetics changes and better handling physim cluster deployment errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-10 14:04:51 +02:00
Laurent THOMAS
2508a020ec fix random crash (uninitialized memory) 2021-05-10 11:31:54 +01:00
Laurent THOMAS
c631c96975 bug fixes 2021-05-10 11:29:44 +01:00
rmagueta
47ae1b4b65 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-05-10 11:14:12 +01:00
rmagueta
2c52a71587 Merge remote-tracking branch 'origin/develop' into develop-CCE 2021-05-10 11:09:47 +01:00
Laurent THOMAS
98e3afe7db fix random crash (uninitialized memory) 2021-05-10 11:52:43 +02:00
Laurent THOMAS
7ee6b61f4b bug fixes 2021-05-10 11:29:49 +02:00
hardy
71b0818327 added cleaning of module ue iperf artifacts 2021-05-10 09:58:05 +02:00
Raymond Knopp
83ccc50f18 Merge remote-tracking branch 'origin/develop' into oairu 2021-05-10 00:39:55 +02:00
Remi Hardy
0aff278472 CI fix quectel nic name 2021-05-09 17:51:02 +02:00
Raymond Knopp
e2b68a99a9 CU/DU support for most recent changes. UE continues as far as in monolithic mode. Still to apply masterCellGroupConfig in DU from RRCReconfiguration. This has to be detected in DU and applied after decoding the RRC message intended for UE. 2021-05-09 12:44:55 +02:00
francescomani
74e2ea96cf Merge remote-tracking branch 'origin/develop' into NR_multiplexing_HARQ_CSI_PUCCH 2021-05-08 11:39:04 +02:00
Remi Hardy
6d1bc204f0 Integration 2021 wk18 b
MR !1156 : bugfix_gnb_rt_stats_html
-bugfix for 5G NR phy test: the rt report in html shall be displayed only for gNB

MR !1155 : fix-physim-deploy
-The pexpect method has echo issues and is not reliable when we do the polling.
-added a few wait states when pushing the image to the cluster.
-first step also for giving up on remote hosts credentials as the used method implies SSH key authentication.

MR !1146: ci_quectel_support
-Support for quectel module as UE for NSA and Benetel tests
-First step for UE infra / testbench infra as code
2021-05-08 06:51:00 +00:00
rmagueta
eed0c89feb CCE-to-REG mapping extended for 2 or more DCI symbols 2021-05-07 20:13:17 +01:00
matzakos
31d73a7bf2 Remove artificial triggering of RRC Setup Request from nrUE 2021-05-07 15:06:52 +02:00
matzakos
0ea7946da8 Remove redundant call to init_pdcp for noS1 2021-05-07 15:05:05 +02:00
Parminder Singh
8c023d7c66 Added uplink processing check to avoid false detection in ULSIM.
- In case no signal is received then energy of ULSCH is zero,
  the phy_procedures_gNB_uespec_RX will return 1 as an error.
2021-05-07 11:23:38 +02:00
francescomani
e7fb3c11ce Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-05-07 11:11:18 +02:00
hardy
c374cda62d Merge remote-tracking branch 'origin/ci_quectel_support' into integration_2021_wk18_b 2021-05-07 11:04:04 +02:00
hardy
4881275269 Merge remote-tracking branch 'origin/fix-physim-deploy' into integration_2021_wk18_b 2021-05-07 11:03:39 +02:00
Luis Pereira
31b12e2e0c Revert "Temporary fix for skip DL slots with invalid dl_DataToUL_ACK timing with OAI UE"
This reverts commit 9512e914fa
2021-05-07 10:16:21 +02:00
hardy
f5a76d7983 fix test retry due to N310 init issue 2021-05-06 23:41:15 +02:00
hardy
405bbac936 CI hotfix for rt stats table in HTML 2021-05-06 23:01:54 +02:00
Thomas Schlichter
4db9c78450 fix PDSCH DMRS configuration type 2 2021-05-06 20:27:56 +02:00
rmagueta
d2ddfa1fbd Update SA config files 2021-05-06 18:41:26 +01:00
rmagueta
9512e914fa Temporary fix for skip DL slots with invalid dl_DataToUL_ACK timing with OAI UE 2021-05-06 17:46:12 +01:00
francescomani
5bacfb4015 another attempt at fixing FR2 RA 2021-05-06 15:32:23 +02:00
rmagueta
9b903ea20c Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-05-06 11:07:24 +01:00
Parminder Singh
9f16383331 Call common pusch procedure in ulsim
- The TX signal is prepared but not sent which leads to all 0's TX signal.
2021-05-06 11:31:30 +02:00
Raphael Defosseux
f75d0126d2 CI: fix renaming artifact
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-06 11:18:01 +02:00
hardy
3dc9e3d19c [CI] hotfix, gNB N310 conf file update 2021-05-06 10:49:30 +02:00
Thomas Schlichter
985338756a Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-05-06 09:36:43 +02:00
francescomani
6222463fd8 Merge branch 'develop-NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-NR_SA_F1AP_5GRECORDS 2021-05-06 09:34:44 +02:00
francescomani
a8308db7bc fixes for FR2 RA 2021-05-06 09:34:25 +02:00
rmagueta
055f147d13 Fix build in phy-simulators 2021-05-05 19:59:24 +01:00
rmagueta
bd1283e40a Fix phy-simulators 2021-05-05 17:39:57 +01:00
Raphael Defosseux
e5498d21a2 CI: fixing the detection for the end of execution on pods
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-05 16:46:15 +02:00
rmagueta
f59dcb9b1a Change LOG levels 2021-05-05 14:25:46 +01:00
rmagueta
8e5ccb00fd Replace AssertFatal by LOG_E when UDP bind socket fails 2021-05-05 14:18:37 +01:00
Roberto Louro Magueta
0816940fb5 Revert "Revert "Call the right function for the initiation of gtp-u task at gNB""
This reverts commit 278bfa8d6a
2021-05-05 15:13:52 +02:00
Raphael Defosseux
668bb056df CI: hotfix on the target creation detection
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-05 10:59:02 +02:00
francescomani
ffca5124b5 Revert "fix warning"
This reverts commit 1c2c00f260.
2021-05-05 10:06:42 +02:00
rmagueta
5916450327 Fix SRB2 warning for NSA 2021-05-04 18:45:05 +01:00
rmagueta
33ba50fd66 Fix SRB2 warning for SA 2021-05-04 16:19:42 +01:00
hardy
4f64703d5a adding review form column to dashb 2021-05-04 16:01:23 +02:00
francescomani
638f1b8203 Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-05-04 14:11:29 +02:00
francescomani
1c2c00f260 fix warning 2021-05-04 13:46:17 +02:00
rmagueta
662cda8a87 Fix build warnings after merge 2021-05-04 12:30:16 +01:00
Thomas Schlichter
e04e09e5d4 fix warnings about missing const in polar_encoder_fast() parameter list
make t_nrPolar_params a constant input to all nr polar encoders and nr polar decoders
2021-05-04 13:24:00 +02:00
rmagueta
8fab3da97e Fix segmentation fault after merge 2021-05-04 12:07:02 +01:00
rmagueta
102a76fd56 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
#	openair2/GNB_APP/MACRLC_nr_paramdef.h
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/NR_PHY_INTERFACE/NR_IF_Module.c
2021-05-04 11:23:21 +01:00
francescomani
13acbd1d82 Merge remote-tracking branch 'origin/develop' into NR_cleanup_PUCCH_resources 2021-05-04 12:00:19 +02:00
francescomani
64e42cacf2 implementation of handling csi and harq in the same pucch2 2021-05-04 11:47:48 +02:00
Thomas Schlichter
0ac5fcbfad Merge remote-tracking branch 'origin/develop' into nr-dmrs-fixes 2021-05-04 11:32:07 +02:00
hardy
e0960c35d3 removed in code comments 2021-05-04 08:37:30 +02:00
Remi Hardy
cf1822be64 Integration 2021 wk18 a
MR !1145 NR_FR2_initsync_fixes
-bug fixes that caused failure in PBCH detection after initial sync in FR2

MR !1100 NR_scheduling_request
-per-UE PUCCH F0 resource, CSI, Preamble 
-Scheduling Request 
-MAC scheduler fixes

MR !1150  rh_ci_phy_test_improve
-beautified HTML report for 5G NR phy test

MR !1113 hack-exit-gnb-when-no-enb-nsa
-Exit gNB if connection to eNB failed - to be modified if needed. We may want to try to connect over and over again until we succeed but the modifications to the code to get this behavior are complex
2021-05-04 06:28:37 +00:00
rmagueta
ad0be5b161 Fix build errors after merge 2021-05-03 20:15:20 +01:00
rmagueta
948df0e034 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	executables/softmodem-common.h
#	openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
#	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/prachsim.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
2021-05-03 19:50:30 +01:00
rmagueta
48305fd14d Fix warning after merge 2021-05-03 19:13:32 +01:00
rmagueta
4b5cef595a Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch.c
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2021-05-03 18:44:54 +01:00
rmagueta
6079b1a829 Put back AssertFatal 2021-05-03 18:22:20 +01:00
rmagueta
c0f3394048 Fix LTE build error 2021-05-03 18:07:07 +01:00
francescomani
ad10ef0dfe to remove unused PUCCH resources and extend PUSCH tda allocation to 13 symbols 2021-05-03 17:59:08 +02:00
Thomas Schlichter
221cd2a3a2 gNB: fix memory allocation for multiple layers in new_gNB_dlsch() 2021-05-03 17:44:52 +02:00
sfn
c2bf3aabf6 Support high cqi with 2 layers for mimo precoding PDSCH 2021-05-03 17:44:52 +02:00
Raphael Defosseux
158c0639d6 CI: fix pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-05-03 17:36:02 +02:00
Remi Hardy
4489aa0894 Merge branch 'integration_2021_wk17_b' into 'develop'
MR #1148 : Fix coreset dmrs idx
 -- Fix coreset dmrs idx for coresets with more than 1 symbol duration

MR #1139 : bugfix for sib1 in case of ssb different from 0
 -- solving a small bug in handling sib1 relative to ssb other than 0

MR #1136 : CI: Migration of the physical-simulators to OpenShift
 -- switch to a parallel pod deployment on the OpenShift Cluster
 -- Huge gain in time : 1h30m down to 25 minutes

MR #1134 : Docker improvements 2021 april
 -- updated the LTE-UE image generation.
    * Proper configuration file in nfapi case
    * Proper entrypoint

MR #1131 : Removing deprecated dl and ul_bwp_dedicated in config request at UE

MR #1091 : Ue pdsch pusch parallel
 -- The UE code for now is unfit to process more than 1 slot in parallel.
    This is why the PUCCH signal is not transmitted most of the time.
    Hence, the following changes are made:

    * Process only one slot at a time. Previously it was 2 slots in parallel.
    * Now we do parallelization with the slot i.e., PUSCH and PDSCH are processed in parallel.
    * Option for the UE to go back to sync mode instead of stopping if it loses sync with gNB. Command line parameter --non-stop enables it.
    * New feature: Included a mechanism to detect false DCIs.

MR #1147 : benetel conf files fix
2021-05-03 17:35:34 +02:00
hardy
ba3bea88e7 Merge remote-tracking branch 'origin/develop' into ci_quectel_support 2021-05-03 15:55:21 +02:00
hardy
c2acb9e9e5 Merge remote-tracking branch 'origin/NR_FR2_initsync_fixes' into integration_2021_wk18_a 2021-05-03 15:45:39 +02:00
hardy
010d39c9ab Merge remote-tracking branch 'origin/NR_scheduling_request' into integration_2021_wk18_a 2021-05-03 15:44:31 +02:00
hardy
4525e10257 Merge remote-tracking branch 'origin/hack-exit-gnb-when-no-enb-nsa' into integration_2021_wk18_a 2021-05-03 15:44:05 +02:00
hardy
b370494cf7 Merge remote-tracking branch 'origin/rh_ci_phy_test_improve' into integration_2021_wk18_a 2021-05-03 15:43:16 +02:00
Remi Hardy
d81b0ce9ae Merge branch 'integration_2021_wk17_b' into 'develop'
WIP : Integration 2021 wk17 b

See merge request oai/openairinterface5g!1149
2021-05-03 13:30:21 +00:00
hardy
4ae5ac690c missing parameter in InitializeUE 2021-05-03 13:47:08 +02:00
Remi Hardy
1d07f25595 update ssPBCH_BlockPower in conf file for N310 2021-05-03 11:42:51 +02:00
Laurent THOMAS
5036540281 add create tunnel trace 2021-05-03 11:32:47 +02:00
Raymond Knopp
366118ddb3 reverted Msg2 slot back to DL portion of mixed slot 2021-05-03 10:43:39 +02:00
hardy
d18a7e219c Merge remote-tracking branch 'origin/benetel_config_file_fix' into integration_2021_wk17_b 2021-05-03 09:18:31 +02:00
Raymond Knopp
3fa878101e handling of SDAP header, move RAR to slot last DL slot in TDD period (need change in configuration file) 2021-05-02 22:32:58 +02:00
Laurent THOMAS
6882ea7a7b functional new gtpu, to be tested 2021-05-02 16:06:45 +02:00
Eurecom
35236c818f Merge branch 'NR_SA_F1AP_5GRECORDS' into gnb-n300-fixes
Conflicts:
	executables/nr-ru.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
2021-05-02 10:04:37 +02:00
Raymond Knopp
85aab6e826 changes in gtpu interface for testing, small changes in L1 for PUSCH signal/noise measurements. SRB2 interfaces. 2021-05-02 09:50:40 +02:00
rmagueta
ed0fedc1b6 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/pucch_rx.c
2021-05-01 18:42:28 +01:00
rmagueta
e924caa677 Fix phy-simulators 2021-05-01 18:39:30 +01:00
rmagueta
64ce543b3a Fix DRB warning for phy-test 2021-05-01 14:45:31 +01:00
rmagueta
079932e007 Change some default values 2021-05-01 14:12:20 +01:00
Raymond Knopp
ab0e14ce8d logging for debugging DRB/SRB2 establishment at gNodeB 2021-05-01 09:55:00 +02:00
rmagueta
513c07e7a3 Remove some hardcode 2021-05-01 02:23:13 +01:00
rmagueta
00b0c558f5 Fix allocate_ul_retransmission after merge 2021-05-01 02:06:49 +01:00
Raymond Knopp
fd2ea253be masterCellGroup in RRCReconfiguration 2021-04-30 22:30:46 +02:00
Raymond Knopp
202dd9727a Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-30 21:18:01 +02:00
rmagueta
e0833b74d8 Fix warning after merge 2021-04-30 18:25:19 +01:00
rmagueta
655c5481e3 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	executables/nr-uesoftmodem.h
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
#	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
#	openair2/RRC/NR_UE/L2_interface_ue.c
2021-04-30 18:00:27 +01:00
rmagueta
916daed3a9 Fix DL after CFRA 2021-04-30 17:03:21 +01:00
Laurent THOMAS
04b28b4518 fixes from testing 2021-04-30 16:47:40 +02:00
Robert Schmidt
2319b4e76f Introduce configuration for maximum UE ULSCH inactivity 2021-04-30 16:40:59 +02:00
Remi Hardy
4b23e6a7bf adding HTML row for detach 2021-04-30 15:45:39 +02:00
Remi Hardy
7d03c14ece logging fix -> pass 2021-04-30 15:04:11 +02:00
rmagueta
fece683445 Fix issues after merge 2021-04-30 12:14:37 +01:00
rmagueta
cb0bb5f8b9 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-04-30 11:12:15 +01:00
hardy
7050044fcd improve understanding of results 2021-04-30 10:24:44 +02:00
rmagueta
0bd675b364 Merge remote-tracking branch 'origin/develop-NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-04-29 22:59:36 +01:00
rmagueta
3c0aadfd23 Fix warnings 2021-04-29 22:58:14 +01:00
hardy
7ca8872216 fix test status fail/pass + test update + cleaning 2021-04-29 23:31:13 +02:00
Raymond Knopp
c66f7da278 missing declarations in main_ru.c 2021-04-29 22:45:23 +02:00
hardy
37cc4d6033 fixing html columns 2021-04-29 22:02:04 +02:00
rmagueta
770b864fb3 Fix segmentation fault after CFRA 2021-04-29 20:07:17 +01:00
Laurent THOMAS
8383843e9b Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-29 19:06:47 +02:00
Laurent THOMAS
9643a5fb9b memory mgmt error 2021-04-29 19:06:10 +02:00
Raymond Knopp
66650cd597 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-29 18:28:43 +02:00
rmagueta
8a5319fc61 Fix tda and nr_schedule_ue_spec after merge 2021-04-29 16:25:05 +01:00
Raymond Knopp
a9603c8a48 Include second RRC Reconfiguration message to carry DRB, SRB2 configuration and NAS PDU Session Establishment Accept message
-Remove DRB and SRB configuration from the first RRC Reconfiguration message. Missing radio configuration to be filled in first RRC Reconfiguration message.
2021-04-29 16:44:10 +02:00
Cedric Roux
d2c9b7cb5a nr pdcp: bugfix: reset integrity context
CMAC_Init has to be called between each usage of the cmac context.
2021-04-29 15:15:18 +02:00
Raymond Knopp
3caa78ea9a adding band info to UE capabilty enquiry 2021-04-29 15:06:47 +02:00
francescomani
6188e9e37f fixing also the comment 2021-04-29 14:58:59 +02:00
francescomani
d74181aa19 fix after merge with develop 2021-04-29 14:57:48 +02:00
francescomani
e39e2dbafd Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-04-29 14:46:19 +02:00
Remi Hardy
9581b5cce2 adding conf file for n310 2021-04-29 14:01:53 +02:00
Remi Hardy
9d50c5ea02 update of ci nsa and benetel jenkins pipelines 2021-04-29 13:25:20 +02:00
Eurecom
518edc742c n300 fixes 50 MHz configuration 2021-04-29 13:07:20 +02:00
francescomani
d2f1e41bcb using n_frames to compute init_sync_frame 2021-04-29 12:02:51 +02:00
hardy
273c6ff39f Merge remote-tracking branch 'origin/ue-pdsch-pusch-parallel' into integration_2021_wk17_b 2021-04-29 11:55:17 +02:00
hardy
af1735059e Merge remote-tracking branch 'origin/NR_UE_CONFIG_REQ_FIXES' into integration_2021_wk17_b 2021-04-29 11:54:37 +02:00
hardy
44672c4c4c Merge remote-tracking branch 'origin/docker-improvements-2021-april' into integration_2021_wk17_b 2021-04-29 11:53:12 +02:00
hardy
13113e5049 Merge remote-tracking branch 'origin/physim-build-deploy' into integration_2021_wk17_b 2021-04-29 11:52:33 +02:00
hardy
47fee08a0c Merge remote-tracking branch 'origin/multiple_ssb_sib1_bugfix' into integration_2021_wk17_b 2021-04-29 11:49:29 +02:00
hardy
6b45eb8210 update of the AT-based module control for automation 2021-04-29 11:41:53 +02:00
hardy
bad3e98301 need to update dummy UE for CI 2021-04-29 11:41:53 +02:00
hardy
a8bbd77087 fixing auto termination 2021-04-29 11:41:53 +02:00
Raymond Knopp
6d1a92275f usrp_tx_thread redefinition in nr_ulsim::wq 2021-04-29 11:38:48 +02:00
Raymond Knopp
439ceafa62 applied extra MAC config IE to RRCSetup 2021-04-29 10:39:18 +02:00
hardy
ccf6624f79 changing col name in html report 2021-04-29 10:26:10 +02:00
Raymond Knopp
970ccd55f0 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-29 07:37:28 +02:00
Raymond Knopp
048f98f7a0 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2021-04-29 07:37:09 +02:00
Raymond Knopp
e203120477 usrp_tx_thread flag in nr_dlsim 2021-04-28 21:29:58 +02:00
rmagueta
7a07d57ac9 Fix segmentation fault after merge 2021-04-28 20:02:12 +01:00
rmagueta
537d81058f Fix uplink for NR_UL_DCI_FORMAT_0_0 after merge 2021-04-28 19:51:06 +01:00
Thomas Schlichter
5f6be27f5d fix 2 layer MIMO in nr_dlsim after last merge with develop 2021-04-28 18:06:14 +02:00
hardy
67b9e92a5c improving stats appearance 2021-04-28 17:50:39 +02:00
francescomani
cc15ac25b9 simplification of previous fix 2021-04-28 17:49:27 +02:00
luis_pereira87
401151bff4 Fix dmrs_idx for coreset with duration > 1 symbol 2021-04-28 16:39:10 +01:00
luis_pereira87
bc725e116c Fix dmrs_idx for coreset with duration > 1 symbol 2021-04-28 16:18:03 +01:00
Raymond Knopp
fdc91e791f removed discard in pdcp upon integrity failure for testing 2021-04-28 15:58:00 +02:00
rmagueta
d5a7e6ad7e Fix segmentations fault after merge 2021-04-28 14:22:23 +01:00
Raphael Defosseux
285650d354 CI: Adding missing reason for image build failure
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-28 10:54:02 +02:00
Raphael Defosseux
1041a6d807 CI: better silent and resync optional arguments
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-28 09:39:27 +02:00
rmagueta
43b7c16e83 Fix RA after merge 2021-04-28 00:17:25 +01:00
Raymond Knopp
146f38af16 build for nr_pbchsim after merge with develop 2021-04-27 20:41:28 +02:00
Florian Kaltenberger
8d0b9e4cdb yet some more fixes to the benetel config files 2021-04-27 20:34:00 +02:00
rmagueta
72b5fccce3 Fix build issues after merge 2021-04-27 18:44:39 +01:00
hardy
b6daabc2b5 tentative to improve Module control encapsulation 2021-04-27 17:49:45 +02:00
rmagueta
0a3f128e27 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
#	openair2/RRC/LTE/rrc_eNB_GTPV1U.c
2021-04-27 15:46:18 +01:00
francescomani
b08037d6d1 Merge remote-tracking branch 'origin/develop' into multiple_ssb_sib1_bugfix 2021-04-27 16:14:43 +02:00
francescomani
ff9846993f Merge remote-tracking branch 'origin/develop' into NR_FR2_initsync_fixes 2021-04-27 15:48:52 +02:00
francescomani
31aade2002 tentative fix for wrong frame caused by rx offset 2021-04-27 15:48:23 +02:00
Raphael Defosseux
42a217228b CI: fixes for OpenShift deployment of physical-simulators
-- Missing finished tag in one deployment
  -- Deep copy of the array of pod names
  -- Hack for the out-of-sync on pexpect for `oc logs` and `oc get pods` commands

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-27 15:19:49 +02:00
Cedric Roux
3633bcd367 nr pdcp: bugfixes
- use bearer-1 in compute_t of integrity NIA2
- compare integrity at the right place in nr_pdcp_entity_recv_pdu
- proper handling of security parameters settings (algos, keys)
2021-04-27 14:46:42 +02:00
rmagueta
278bfa8d6a Revert "Call the right function for the initiation of gtp-u task at gNB"
This reverts commit 19ba8dd7
2021-04-27 13:05:35 +01:00
rmagueta
edb790ab04 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-04-27 12:36:31 +01:00
rmagueta
987455b9e6 Fix warnings after merge 2021-04-27 12:35:35 +01:00
matzakos
19ba8dd7a9 Call the right function for the initiation of gtp-u task at gNB 2021-04-27 13:31:41 +02:00
matzakos
52f8506b5c Include PDU session type field in PDU Session Establishment Request NAS message 2021-04-27 13:30:02 +02:00
matzakos
9f0c10617a Include rlc bearer configuration list for the configuration of RLC and PDCP RBs 2021-04-27 13:28:59 +02:00
matzakos
ee3b913864 Small correction in NGAP UERadioCapabilityInfoIndication message 2021-04-27 13:28:03 +02:00
matzakos
20653cd31b Modify configuration of NGAP and NAS messages to comply with OAI CN configuration according to Fujitsu patch
-Hardcodings to be removed later when the NAS extensions will be integrated for OAI UE
2021-04-27 13:26:06 +02:00
rmagueta
9372be0466 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-04-27 12:12:59 +01:00
rmagueta
e8d48e5cc1 Minor improvements for RA at gNB 2021-04-27 12:10:27 +01:00
Raymond Knopp
d88ce5b9bf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-27 11:58:31 +02:00
Raymond Knopp
fe737d4c29 minor changes 2021-04-27 11:50:30 +02:00
Thomas Schlichter
2ec2486ae4 shave off some run-time from nr_ulsim test cases 2021-04-27 11:27:14 +02:00
Thomas Schlichter
247637f5ed Merge remote-tracking branch 'origin/develop' into nr-dl-mimo-2layer 2021-04-27 11:26:11 +02:00
Raymond Knopp
6e91e56b50 lowmem option for nr_pbchsim for CI tests 2021-04-27 10:55:40 +02:00
Thomas Schlichter
0da9ec9cfb Merge remote-tracking branch 'origin/develop' into nr-dmrs-fixes 2021-04-27 10:27:31 +02:00
Cedric Roux
a8adcf862c sa: nr pdcp: we don't use the hash table anymore 2021-04-27 10:00:24 +02:00
Robert Schmidt
6c162e3808 Remove unused variables 2021-04-27 08:36:43 +02:00
Robert Schmidt
821a5e5dfe Correct T310 & N310 to avoid RA 2021-04-27 08:30:33 +02:00
Robert Schmidt
74fa01463c Do PUCCH TPC only if Acknack or positive SR
otherwise, if we only have a (negative) SR, the UE did not send
anything, and the PUCCH CQI is invalid
2021-04-27 08:30:33 +02:00
Robert Schmidt
8187361615 Schedule UE periodically every 10 frames in UL 2021-04-27 08:30:33 +02:00
imad
800330e41c Call nr_sr_reporting 2021-04-27 08:30:33 +02:00
Robert Schmidt
cba2d9e413 Schedule UEs on SR or BSR 2021-04-27 08:30:33 +02:00
imad
a8149b5e0e Add functions for SR scheduling 2021-04-27 08:30:33 +02:00
imad
27bfe23c9b Add schedulingRequestResourceConfig 2021-04-27 08:30:33 +02:00
imad
50ac9ef252 Add schedulingRequestConfig 2021-04-27 08:30:33 +02:00
Robert Schmidt
51e844e19f Bugfix ul preproc: check correct slot for UL 2021-04-27 08:30:33 +02:00
Robert Schmidt
f73e8e0459 Bugfixes in nr_acknack_scheduling()
1: there can be 2bits AckNack + SR in PUCCH F0
2: when allocating csi_pucch, zero out struct
3: Make unfree resources a warning
4: When asserting, explain the issue
2021-04-27 08:30:33 +02:00
Robert Schmidt
4f4e25852f Reduce sched_pucch array length, we only need two entries 2021-04-27 08:30:33 +02:00
Robert Schmidt
b005f9594b Statically allocate PUCCH F0 resource index 0 for AckNack 2021-04-27 08:30:33 +02:00
Robert Schmidt
c2d16eb8d5 Configure secondaryCellGroup: dedicated PUCCH, CSI, Preamble
- Configure PUCCH Format 0 to be in separate RBs (each UE has dedicated
  resources)
- Configure RA preamble to be different per UE
- Configure CSI offset such that no two UEs have their report in the
  same frame
2021-04-27 08:30:31 +02:00
Robert Schmidt
f39b97a9e8 Execute nr_schedule_pucch() only in UL slots 2021-04-27 08:29:55 +02:00
Robert Schmidt
84e57113c8 initial_csi_index depends on local_uid
Nb_ue is not unique among UEs: consider 2 UEs present. The last UE has
CSI idx "2". Now the first UE disconnects, and a new UE connects. It
will also get CSI idx "2", and I assume this is not what we want.
2021-04-27 08:29:55 +02:00
Remi Hardy
d953b25353 Integration 2021 wk17 a
MR !1079 / MR !1108:
1. Read slots from config file and schedules all slots *except* for slots 0 and 10. This is not a problem, since currently we cannot allocate more than six HARQ feedbacks in a slot, but we might have up to 7 with current configuration

2. phytest mode is configurable. From `nr-softmodem -h`:

   -m: Set the downlink MCS for PHYTEST mode
   -t: Set the uplink MCS for PHYTEST mode
   -M: Set the downlink banwdwidth (in PRBs) for PHYTEST mode
   -T: Set the uplink banwdwidth (in PRBs) for PHYTEST mode
   -D: Bitmap for DLSCH slots (slot 0 starts at LSB)
   -U: Bitmap for ULSCH slots (slot 0 starts at LSB)

3. Scheduler prints more information: UE PHR, PUCCH SNR, PUSCH SNR, RSSI
4. The scheduler learned to scheduler DLSCH/ULSCH in mixed slots (if the time domain allocation matches the mixed slot)
5. The scheduler expects
   * PDSCH Time Domain allocation index 0 to be the DL slot allocation
   * PDSCH TDA index 1 for Mixed DL slot
   * PUSCH TDA index 0 for UL slot
   * PUSCH TDA index 1 for Mixed UL slot
   * PUSCH TDA index 2 for Msg.3
6. Some more cleanup, e.g., separate PDSCH/PUSCH data structures into "semi-static" data (e.g., TDA allocation to use, since it changes seldomly) and "dynamic" data (e.g., RB allocation per slot, which changes every slot)


MR !1137 : Benetel config files fix
2021-04-27 06:16:06 +00:00
francescomani
bd06094338 another bug fixed 2021-04-26 17:56:51 +02:00
rmagueta
5aa999337a Minor corrections after merge 2021-04-26 15:44:50 +01:00
francescomani
ff87164011 bugfixes in FR2 scheduling of ssbs 2021-04-26 16:31:20 +02:00
rmagueta
e1ef4e2d3b Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair2/GNB_APP/L1_nr_paramdef.h
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/SIMULATION/NR_RRC/itti_sim.c
2021-04-26 15:11:00 +01:00
Mohammed Ismail
7acc966b94 CI: logs delay fix
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-26 16:07:40 +02:00
Raymond Knopp
458f199dce Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-26 12:06:43 +02:00
Raymond Knopp
a304c87659 resolved a missing conflict after merge with develop 2021-04-26 12:06:03 +02:00
Cedric Roux
9135d4200f sa: nr pdcp: improve security
This commit implements integrity and security settings for nr pdcp. It will
only work for SRBs.

This commit has not been tested. It may fail to work completely. To be checked.
2021-04-26 11:43:44 +02:00
Raymond Knopp
2be602e938 Merge remote-tracking branch 'origin/develop' into NR_SA_F1AP_5GRECORDS 2021-04-26 10:51:18 +02:00
hardy
e2ab8bc54b Merge remote-tracking branch 'origin/benetel_config_file_fix' into integration_2021_wk17_a 2021-04-26 10:21:05 +02:00
Raymond Knopp
f916590e58 put NIA2 as default integrity algorithm 2021-04-26 10:15:43 +02:00
francescomani
844170d72b fix for multibyte multi report payload 2021-04-26 10:05:46 +02:00
Thomas Schlichter
b6a564369f Merge remote-tracking branch 'origin/develop' into nr-dmrs-fixes 2021-04-26 09:42:10 +02:00
Raymond Knopp
10ea3b674e reduced logging, added PUSCH DTX threshold and counter. Improved n1L1_stats.log. 2021-04-25 22:36:14 +02:00
Mohammed Ismail
92b19e2d45 CI: fix on true negative result
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-25 22:07:53 +02:00
rmagueta
63663ac4b2 Fix warning after merge 2021-04-25 19:39:59 +01:00
rmagueta
146369015f Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
2021-04-25 18:44:17 +01:00
Robert Schmidt
26b6d87fa3 Merge branch 'develop' into integration_2021_wk13_b 2021-04-25 16:34:30 +02:00
Robert Schmidt
089246c693 Fix Msg.2 TDA to be 1, revert DL TDA configs to two entries 2021-04-25 14:44:46 +02:00
rmagueta
cc727b4a89 Add SRB 2021-04-25 04:31:15 +01:00
rmagueta
23c272dac4 Add SRB 2021-04-25 04:30:53 +01:00
rmagueta
e2863d5841 Fix DRB null pointer after CFRA 2021-04-25 02:55:32 +01:00
Raymond Knopp
c89b5f2fd2 changed DCI candidates to 4 for initialDownlinkBWP ue-specific searchSpace. ulsch/pusch stats added to nrL1stats.log 2021-04-25 00:21:23 +02:00
rmagueta
0c6762f148 Remove duplicated itti msg for NRRRC_CONFIGURATION_REQ 2021-04-24 19:17:15 +01:00
rmagueta
b1ae636d75 Remove hardcoded rnti for CFRA 2021-04-24 14:42:44 +01:00
rmagueta
45de9e7b25 Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-04-24 13:27:11 +01:00
Remi Hardy
5d83447384 Integration 2021 wk16
MR !1129 : gnb-realtime-hotfix
-Hotfix for realtime performance issue
-Enabled L1 and scheduler timing statistics
-Changed order of UL Indication. L1 Rx -> UL Ind -> L1 Tx

MR !1123 : [CI] ci_phytest
-new 5G NR phy test -q -U 787200 -T 106 -t 28 -D 130175 -m 28 -M 106

MR !1128 : [CI] ci_add_runtime_stats
-adding L1 processing stats

MR !1132 : [CI] ci_add_uldlharq_stats
-additonal ulsch/dlsch stat

no MR : hotfix branch fixgtpu 
-revert default values for 5GS
-fix T_IDs.h build
2021-04-24 07:47:37 +00:00
rmagueta
b34d8a1ce4 Fix assertion after CFRA at gNB 2021-04-24 04:22:07 +01:00
rmagueta
7cd4b11101 Fix selection of Msg3 for CFRA at UE 2021-04-23 23:36:19 +01:00
rmagueta
b468c0b3f6 Fix BWP for CFRA-Msg2 at UE 2021-04-23 20:08:12 +01:00
rmagueta
f528703f51 Fix first CBRA failure 2021-04-23 18:19:19 +01:00
rmagueta
100a012327 Fix DCI extract for CFRA-Msg2 at UE 2021-04-23 17:56:23 +01:00
rmagueta
b6f0597b0d Fix segmentation fault for CFRA-Msg2 at gNB 2021-04-23 16:48:00 +01:00
Thomas Schlichter
bee0721126 Add 4x4 MIMO test cases for nr_dlsim 2021-04-23 17:32:28 +02:00
rmagueta
d4d1871999 Fix numerology for CFRA at UE 2021-04-23 16:21:46 +01:00
francescomani
48b847cbd3 reworking extraction of csi meas report (first version) 2021-04-23 15:41:47 +02:00
rmagueta
ffdffb1b83 Fix warnings 2021-04-23 12:57:49 +01:00
Thomas Schlichter
1c61be68e6 Add more test cases for nr_dlsim and nr_ulsim 2021-04-23 13:25:41 +02:00
rmagueta
16870b6263 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
2021-04-23 12:11:24 +01:00
Raghavendra Dinavahi
efb43528bc Channel estimation of all PUSCH dmrs symbols before compensation 2021-04-23 12:22:31 +02:00
Remi Hardy
0c3280b554 fix nsa n310 conf file for CI 2021-04-23 10:41:15 +02:00
Raghavendra Dinavahi
5edee9b546 Mapping type A enabled in PUSCH dmrs mask calculation
- Procedure get_l_prime is modified
	- Single and double symbol DMRS are handled in Type A and Type B
2021-04-23 10:33:56 +02:00
Raghavendra Dinavahi
e658023ff5 Fix for the 16byte alignment issue observed during DMRS modulation.
Segmentation fault observed in case the address for mod_dmrs[dmrssymbol] is not 16byte aligned.
2021-04-23 10:33:56 +02:00
Raghavendra Dinavahi
f3be3daa32 pusch_proc_threads=8 added to configuration files 2021-04-23 10:33:56 +02:00
Raghavendra Dinavahi
fc1a7f7b8c Adjusting LocationBandwidth of initial BWP1 in configuration files.
LocationandBandwidth adjusted according to the location of SSB and Controlresourceset 0
For example for 106RBs configuration files -
	- AbsoluteFrequencySSB = 641032 = RB43 (1032/24) - points to Subcarrier 0 of RB10 of SSB block
	- Hence SSB is located from RB33-RB53
	- Coresetzero sent in MIB is 0 which means offset 0, RBsize 24 from Start of SSB according to table 13.4 in Spec 38.213
	- InitialBWP should start from RB 33 (offset is 0 from SSB) and should be a size of minimum 24 RBs.
	- SLIV = 275 * (24-1) + 33 = 6358
Controlresourceset value wrongly configured to 12 , changed to 0 as sent in MIB.
2021-04-23 10:33:56 +02:00
Raghavendra Dinavahi
5934e8e4ee Changes to Downlink DMRS MASK calculation
Procedure fill_dmrs_mask is modified.
	- PDSCH Mapping Type B is supported
	- Modified according to sections 5.1.6.2 of Spec 38.214
	- Single and double symbol DMRS are handled in Type A and Type B

Mapping type according to the time domain allocation from DCI should be used to get the values of DMRS config
For sending sib1 - DCI FORMAT 1_0 will be used with SI_RNTI, UE should perform these actions
according to sections 5.1.6.2 of Spec 38.214

Additional DMRS set to pos2 in case of msg2 reception, msg3 transmission.

Mapping type B is added to RRC reconfig.
	- nr_dlsim updated to test typeA and typeB. Verified the changes.
	- RFSIM Validation of PDSCH Mapping TypeB  by changing timedomainallocation in configuration files.
2021-04-23 10:33:56 +02:00
Raymond Knopp
5f0e2e748d minor changes in SNR/noise computation for ulsch 2021-04-23 09:18:40 +02:00
hardy
80a9aaf5dd adding new conf file to use n310 on mozart 2021-04-22 21:56:37 +02:00
rmagueta
a7d4ecb343 Fix initialization of CFRA procedure at UE 2021-04-22 20:10:43 +01:00
Raymond Knopp
dc2182cf50 modifications in get_searchspace => handle case for ue-specific on initialDownlinkBWP 2021-04-22 20:59:16 +02:00
hardy
0ca618a68a Merge remote-tracking branch 'origin/fixgtpu' into integration_2021_wk16 2021-04-22 19:45:31 +02:00
sfn
aacc37613b Fix zero-forcing for 2 layers 2021-04-22 19:07:07 +02:00
sfn
8530989d41 Extend dlsim to support 2 layers for MIMO in AWGN channel 2021-04-22 19:07:07 +02:00
sfn
f1e88d1f8d fix multipath_tv_channel to support MIMO 2021-04-22 19:07:07 +02:00
rmagueta
bb646da064 Put back cell_group_config when do-ra 2021-04-22 17:13:34 +01:00
Mohammed Ismail
d236045704 CI: format correction on testid
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-22 17:01:41 +02:00
sfn
81cfccf6e1 remove printf 2021-04-22 16:52:53 +02:00
sfn
9897ae64c8 Add a new nr_dlsim test case -x 1 or 2 to run 1 and 2 layers 2021-04-22 16:52:53 +02:00
sfn
08ff33a0ec Fix llr calculation to support multiple layers 2021-04-22 16:52:53 +02:00
sfn
77a450d0b6 Add R to -g to model mimo channel 2021-04-22 16:52:53 +02:00
sfn
388b73ec4d Extend nr_dlsim to test dmrs_config_type 2 2021-04-22 16:52:53 +02:00
Mohammed Ismail
b54fbaecb0 CI: correction and update
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-22 16:48:57 +02:00
francescomani
773ebbb63b Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-04-22 14:36:32 +02:00
Sakthivel Velumani
e956c372df Fixed physim build issues 2021-04-22 13:42:59 +02:00
rmagueta
e80880917c Fix PUCCH BWP parameters 2021-04-22 11:50:19 +01:00
rmagueta
46db55b131 Fix warnings 2021-04-22 11:31:38 +01:00
rmagueta
39e506e30f Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-04-22 10:43:33 +01:00
luis_pereira87
0f00ac116b Change a few logs level 2021-04-22 10:23:50 +01:00
luis_pereira87
5d66008003 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS 2021-04-22 10:23:06 +01:00
luis_pereira87
db1d423a49 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/pucch_rx.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair2/GNB_APP/L1_nr_paramdef.h
2021-04-22 09:41:53 +01:00
Cedric Roux
cca4ce9bf1 minor: indentation 2021-04-22 10:39:27 +02:00
francescomani
f4cbc50f59 bugfix for sib1 in case of ssb different from 0 2021-04-22 10:32:23 +02:00
Raphael Defosseux
977226c815 Merge remote-tracking branch 'origin/develop' into physim-build-deploy 2021-04-22 10:07:33 +02:00
Raymond Knopp
7ed637a954 added n1L1_stats.log. improvements to noise level (PUCCH/PUSCH) and signal level (PUCCH) computations. added DTX detection parameters for PUCCH/PUSCH/PRACH in L1 section of configuration file. hotfix from C. Roux for SRB PDCP integrity. extra logging to debug missing PUSCH/DCI at UE. 2021-04-22 09:32:06 +02:00
hardy
d7913bb0e5 Merge remote-tracking branch 'origin/git-dashboard' into develop 2021-04-22 08:53:51 +02:00
hardy
e3692f0905 [CI] add hyperlinks to git MR + reduce API calls (quotas) 2021-04-21 22:09:20 +02:00
rmagueta
d8f8583c9c Fix PUCCH BWP parameters 2021-04-21 20:01:55 +01:00
Luis Pereira
0bf7f22a33 Revert "Fix for harq round when pucch fails"
This reverts commit e708b63bf7
2021-04-21 20:40:38 +02:00
Luis Pereira
58ecfde647 Revert "Fix for harq round when pucch fails"
This reverts commit e50335b93c
2021-04-21 20:40:06 +02:00
luis_pereira87
e50335b93c Fix for harq round when pucch fails 2021-04-21 18:54:12 +01:00
rmagueta
e708b63bf7 Fix for harq round when pucch fails 2021-04-21 17:03:36 +01:00
Raphael Defosseux
5033ec6dc3 CI: transition from VM-based phy-simulator testing
to Cluster-based testing

- In old VM pipeline, disabled phy-sim VM creation, build and testing
- In new Container pipeline, added new stage

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-21 16:38:27 +02:00
Laurent THOMAS
df56f5d345 fix4 T_IDs.h 2021-04-21 15:28:48 +02:00
Laurent THOMAS
2a1025165c fix, third trial T_IDs.h 2021-04-21 14:49:44 +02:00
Florian Kaltenberger
1b9901953f reverting some changes in benetel-5g config files that were introduced in anticipation of MR 1079, but which has not been merged yet. 2021-04-21 12:55:01 +02:00
Laurent THOMAS
d0e091294e more on T_IDs.h 2021-04-21 12:44:40 +02:00
Laurent THOMAS
b8480de3c5 try fix T_IDs.h 2021-04-21 12:15:17 +02:00
Laurent THOMAS
2784cd484e revert default values for 5GS 2021-04-21 10:37:55 +02:00
hardy
c6ae2f554b Merge remote-tracking branch 'origin/rh_ci_add_uldlharq_stats' into integration_2021_wk16 2021-04-21 10:23:03 +02:00
hardy
cace7e0e12 Merge remote-tracking branch 'origin/rh_ci_add_runtime_stats' into integration_2021_wk16 2021-04-21 10:22:33 +02:00
hardy
fc4be199ee Merge remote-tracking branch 'origin/ci_phytest' into integration_2021_wk16 2021-04-21 10:22:03 +02:00
hardy
5c137e1590 Merge remote-tracking branch 'origin/gnb-realtime-hotfix' into integration_2021_wk16 2021-04-21 10:21:21 +02:00
Raymond Knopp
c0ae143264 extra logging for PUCCH power control, DL NAS debugging. Fixed issue with power control configuration parameterss (pucchSNRx10,puschSNRx10) which were not read in properly. Consequence of moving them from the RRC setion to MAC section. 2021-04-21 08:22:57 +02:00
rmagueta
a5d6b2f41d Uncomment nr_DRB_preconfiguration 2021-04-20 18:02:29 +01:00
Florian Kaltenberger
13d5ef51ca OAI EPC 2021-04-20 18:45:22 +02:00
luis_pereira87
8b113b002b Remove/refactor LOGs 2021-04-20 17:37:32 +01:00
rmagueta
ef8aaa8c9b Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
2021-04-20 11:37:33 +01:00
Raymond Knopp
03f00ee7ba fixed dynamic range in PUCCH RX for 2 symbol/frequency-hopping 2021-04-20 12:02:06 +02:00
Mohammed Ismail
f6b8351e29 CI: fix on the tag
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-20 11:52:09 +02:00
hardy
e2ef05e5f5 added 2 detections in the ul dl harq stats for HTML 2021-04-20 11:09:11 +02:00
Mohammed Ismail
ea88b0585c CI: added resource lock
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-20 11:08:22 +02:00
Mohammed Ismail
74d7bcb442 CI: fix on the image tag
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-20 10:25:08 +02:00
Raymond Knopp
564311525e applied patch for UE PUCCH TX from Albesmart. changed p-NR-FR1 to 0 (from 20) to reduce SNR on UL. PUCCH is now functional after inserting physicalCellGroupConfig (before and after applying MasterCellGroupConfig) 2021-04-19 23:53:28 +02:00
francescomani
33101b27f2 getting rid of dl and ul_bwp_dedicated in config request 2021-04-19 17:28:35 +02:00
rmagueta
d4a6fffc95 Fix nasmesh warning 2021-04-19 15:36:21 +01:00
Roberto Louro Magueta
9a79ef0e10 Revert "Fix nasmesh warning"
This reverts commit b99f81f701
2021-04-19 16:35:08 +02:00
rmagueta
b99f81f701 Fix nasmesh warning 2021-04-19 14:29:18 +01:00
rmagueta
2e3fc53304 Fix warnings 2021-04-19 13:37:46 +01:00
luis_pereira87
bab03e24f9 fix warning: assignment makes integer from pointer without a cast 2021-04-19 13:05:12 +01:00
luis_pereira87
955ef9042f Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS 2021-04-19 12:13:13 +01:00
luis_pereira87
2fb267145e Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-04-19 12:12:44 +01:00
Raymond Knopp
a22a2b5745 fixed bug in physicalCellGroupConfig initialization 2021-04-19 13:01:08 +02:00
Raymond Knopp
2556b087f9 added physicalCellGroupConfig to RRCSetup message 2021-04-19 12:41:21 +02:00
hardy
ad135dd1e2 adding the case where no rt stat found in log 2021-04-19 10:05:13 +02:00
Remi Hardy
f207b20238 [CI] Pipeline to automate RAN Merge Requests Status Dashboard 2021-04-19 07:47:56 +00:00
Remi Hardy
0399077141 Merge branch 'Fix_SA_SIB1' into 'develop'
Fix SA SIB1 segmentation fault
2021-04-19 07:29:12 +00:00
Raymond Knopp
7d100407ee added ue-specific searchspace on initialBWP to RRCSetup message. 2021-04-19 00:02:48 +02:00
Raymond Knopp
3e0e0635a8 reduce logging 2021-04-18 19:22:10 +02:00
rmagueta
8613aeb9e6 Fixes after merge
- No warning in RRC
- Ethernet lib fix: correct include
- fixes Msg.4
- fixes conf: the UE cannot handle mixed slots
2021-04-18 12:42:34 +02:00
Raymond Knopp
e452f3bbc4 corrections in PUCCH handling for dedicated configuration on initialBWP. first transmission handling for DL harq processes at UE. 2021-04-17 23:15:46 +02:00
hardy
2995662fd7 fixed incorrect indentation + removed L1 ready msg (no longer used) 2021-04-17 22:12:06 +02:00
Raymond Knopp
2b2285747d OK up to RRCSetupComplete received in RRC and decoded correctly 2021-04-17 00:09:43 +02:00
Sakthivel Velumani
6f7a3fdcd2 Laurent's change: bugfix in usrp lib 2021-04-16 18:54:35 +02:00
Sakthivel Velumani
3e411abb7c Fixed compiler warning 2021-04-16 18:37:57 +02:00
Sakthivel Velumani
cf87873f21 Calling ul indication after L1 RX 2021-04-16 17:48:47 +02:00
Sakthivel Velumani
bf8b621995 Adding timing stats for ul indication and scheduler 2021-04-16 17:36:48 +02:00
Mohammed Ismail
382ab05a3d CI: fix on commands delay
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-16 17:11:18 +02:00
Sakthivel Velumani
b56bfa7dbe fixed max print 2021-04-16 17:07:56 +02:00
Sakthivel Velumani
8185060b09 printing max 2021-04-16 17:07:56 +02:00
Sakthivel Velumani
8656b12210 Added L1 stats to softmodem 2021-04-16 17:07:56 +02:00
Sakthivel Velumani
dc65173b69 Fixed RX proc perf stat 2021-04-16 17:07:56 +02:00
Sakthivel Velumani
992e8323e1 Reducing the size of bf structs
quickfix for realtime problem caused by memset
2021-04-16 17:05:26 +02:00
Robert Schmidt
b548f9a3d2 Correctly check for used symbols in UL phytest scheduler 2021-04-16 16:46:46 +02:00
Robert Schmidt
052739f01d Update phytest cmdline parameter description after review 2021-04-16 16:46:17 +02:00
Sakthivel Velumani
21948e89c0 Always do PUSCH decoding in phy_test mode 2021-04-16 16:45:54 +02:00
Sakthivel Velumani
b7ad0ec21d Add cmd line options for DL&UL phytest scheduling
Add parameters: MCS, Bandwidth (in PRBs), slot scheduling bitmap

Conflicts:
	executables/nr-softmodem.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
2021-04-16 16:45:15 +02:00
Mohammed Ismail
72d5cec7ad CI: log fix
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-16 16:38:44 +02:00
luis_pereira87
1d7a8a2da2 Fix SA SIB1 segmentation fault [reapplied after merge] 2021-04-16 16:00:32 +02:00
Mohammed Ismail
c55e253f11 CI: physim image stream added
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-16 15:56:30 +02:00
Raymond Knopp
7818958da0 Validated up to reception of first PUSCH after Msg4 (contains RRCSetupComplete) 2021-04-16 15:30:50 +02:00
Raphael Defosseux
7b0877054e [DOCKER] adding new parameter on eNB side, fixing the LTE-UE entrypoint
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-16 13:59:14 +02:00
Raymond Knopp
80cc9b445c Add script file for (re)starting gNB automatically 2021-04-16 12:36:44 +02:00
Cedric Roux
c63abcd0f2 nsa: x2ap: hack: exit gNB if connection to eNB failed
Exit gNB if connection to eNB failed - to be modified if needed.

We may want to try to connect over and over again until we succeed
but the modifications to the code to get this behavior are complex.

Exit on error is a simple solution.
2021-04-16 12:36:44 +02:00
Raphael Defosseux
599f56272c [DOCKER] adding entrypoint to LTE-UE image
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-16 10:42:39 +02:00
Robert Schmidt
e0780320fa Fix to make nrUE compile 2021-04-16 07:27:11 +02:00
Robert Schmidt
c3796c044f Merge branch 'develop' into integration_2021_wk13_b 2021-04-16 07:23:46 +02:00
rmagueta
50bd0f0f33 Remove bwp_dedicated from fill_default_initialDownlinkBWP 2021-04-15 23:46:39 +01:00
rmagueta
131cef2b6b Fix build warnings 2021-04-15 22:59:35 +01:00
hardy
e9df88885e adding real time stats from log to HTML 2021-04-15 23:36:23 +02:00
rmagueta
31a753b38f Fix build error 2021-04-15 18:02:53 +01:00
Mohammed Ismail
bd580dac20 CI: update
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-15 17:55:19 +02:00
luis_pereira87
d3719fece9 Fix SA SIB1 segmentation fault 2021-04-15 16:09:13 +01:00
rmagueta
4301582f88 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/SIMULATION/NR_RRC/itti_sim.c
2021-04-15 15:29:03 +01:00
rmagueta
2c907fb6e5 Fix minor issues of develop 2021-04-15 15:09:22 +01:00
Mohammed Ismail
e67a50719a CI: fix on phySim
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-15 15:32:50 +02:00
Remi Hardy
875e2906e5 Integration 2020 wk15
MR !1114 : sanitize v1
-bugs or dirty code fixed 
-add first version of a rf board calibration tool, not finished

MR !1094 : sim channels
Channel simulation: 
-command mode: to change noise, path loss, model (AWGN, RICE, ...) parameters channel simulation 
-channels separation: each channel can have a different model (for HO test for example) 
-a new build option --sanitize to compile all OAI with gcc --sanitize=address

MR !1034 : new gtpu
-New GTPU implementation

MR !1101 : develop-SA-CBRA
-Implementation of Contention Based Random Access procedures for 5G-NR Initial Access in SA mode (including contributions from BUPT and Fujitsu)
2021-04-15 09:22:21 +00:00
hardy
5a4d29e864 adding check if milestone is empty 2021-04-14 16:45:00 +02:00
hardy
3fee93c79a from poc to python class 2021-04-14 16:45:00 +02:00
hardy
b5ffe11bd8 Merge remote-tracking branch 'origin/develop-SA-CBRA' into integration_2020_wk15
Conflicts:
	openair1/PHY/TOOLS/nr_phy_scope.c
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2021-04-14 15:14:03 +02:00
hardy
c4745c3e46 Merge remote-tracking branch 'origin/new-gtpu' into integration_2020_wk15
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/TOOLS/time_meas.h
	openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	openair2/LAYER2/RLC/rlc.h
2021-04-14 14:56:04 +02:00
hardy
246afc7ccb Merge remote-tracking branch 'origin/sim-channels' into integration_2020_wk15 2021-04-14 14:37:09 +02:00
Raymond Knopp
26fc7b3dbf Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2021-04-14 12:25:44 +02:00
Robert Schmidt
71ecec6744 Fix: mark delayed HARQ feedback as free 2021-04-14 12:19:12 +02:00
Robert Schmidt
b10ba9f88c Fix: don't go beyond 3rd retx 2021-04-14 12:19:12 +02:00
Robert Schmidt
8edacdede4 UL Scheduler: Check vrb_map_UL against symb map 2021-04-14 12:19:04 +02:00
Raymond Knopp
cfe8224590 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-14 12:19:02 +02:00
Raymond Knopp
cee0f9451d intermediate commit. up to Msg4 ACK and DCI_0_0 reception verified with COTS UE (Quectel).
- first PUSCH containing RRCSetupComplete not programmed for reception in PHY for some reason. DCI_0_0 received by UE.
- if RA fails, on the second attempt there is usually a crash (sometimes in L2_interface.c when getting UE context (added AssertFatal on this now).
2021-04-14 12:15:59 +02:00
Raphael Defosseux
80b52a8eaf [CI] : when running gNB in RA-test mode, noS1 SHALL be enable. Otherwise it's trying to connect to core network
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-14 11:50:50 +02:00
matzakos
ea65e1899e Add calls to initialization and configuration functions for RLC and PDCP at nrUE for SA mode
-RRCSetupComplete successfully transferred to RLC of the UE now through SRB1, but not at the MAC yet.
-Needed to enable some additional elements for RLC config. at the gNB side (asn1_msg.c) so that the addition of the SRB does not fail at the UE.
 To verify if these are really required.
2021-04-14 10:20:33 +02:00
rmagueta
a8a34df01f Fix compilation warning in oai_usrpdevif 2021-04-14 00:28:41 +01:00
Laurent THOMAS
86881b1463 merge again develop 2021-04-13 22:45:41 +02:00
Laurent THOMAS
86f1c69f26 Fix code review remarks, merge develop, revert some merge errors 2021-04-13 22:28:02 +02:00
rmagueta
3c59974b23 Fix phy-test DL traffic 2021-04-13 15:26:44 +01:00
hardy
357866b3e6 adding phy test to 5G NR testsuite 2021-04-13 15:42:22 +02:00
Robert Schmidt
e04affbc7c UL scheduler: use correct TDA 2021-04-13 13:15:59 +02:00
Robert Schmidt
aca57eb969 DL scheduler: correctly calculate mixed slot TDA, check TDA before scheduling 2021-04-13 13:15:59 +02:00
Sakthivel Velumani
4189af6c7c Removed common txFifo for multiple threads 2021-04-13 08:28:29 +02:00
Raymond Knopp
22059801fe reduced logging, UE MIB processing 2021-04-12 23:10:02 +02:00
hardy
dbb0bca580 new ci files to build gir MR dashboard 2021-04-12 22:57:40 +02:00
rmagueta
2c9b67431a Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-04-12 19:21:23 +01:00
rmagueta
e8f8297892 Fix search space and coreset for Msg2 and Msg4 at gNB 2021-04-12 19:20:23 +01:00
Raymond Knopp
42d4c6c195 reduced logging 2021-04-12 18:56:50 +02:00
Robert Schmidt
7f774d5fbc Merge branch 'develop' into integration_2021_wk13_b 2021-04-12 17:23:21 +02:00
Raymond Knopp
4b712adc76 removed reading reconfig.raw with --sa. Also a segfault upon reception of RRCSetup-CellGroupConfig when this is not in the RRC context. 2021-04-12 16:36:11 +02:00
Raymond Knopp
1236f4c389 Merge remote-tracking branch 'origin/develop-SA-CBRA' into NR_SA_F1AP_5GRECORDS
Conflicts:
	cmake_targets/build_oai
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2021-04-12 16:03:09 +02:00
rmagueta
a8ca37a782 Add support for InitialBWP in nr_configure_pdcch 2021-04-12 13:48:47 +01:00
Mohammed Ismail
1450bc598e CI: helm charts for physim
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 14:35:52 +02:00
Mohammed Ismail
367d23c726 CI: error correction
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 14:26:56 +02:00
Mohammed Ismail
8af044e35b CI: parameters changes
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 14:23:20 +02:00
Mohammed Ismail
5013180a29 CI: error fix
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 13:54:39 +02:00
Mohammed Ismail
075ebd9eb4 CI: print oc login output
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 13:41:45 +02:00
Mohammed Ismail
3a3a3efcd9 CI: missing parameters added
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 13:30:10 +02:00
Mohammed Ismail
52442573a2 CI: syntax fix
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 12:41:29 +02:00
Mohammed Ismail
20cd80c1a0 CI: physim ci initial draft
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-12 12:18:26 +02:00
Raymond Knopp
743c19e560 Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-04-12 10:21:33 +02:00
Raymond Knopp
1e60fbd49f Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2021-04-12 10:21:25 +02:00
hardy
8def752818 adding module UE detach, to be tested 2021-04-12 10:18:10 +02:00
hardy
756ab7ab42 solving merge conflicts (import) 2021-04-12 09:52:37 +02:00
Laurent THOMAS
ceb96a36e7 astyle 2021-04-11 20:07:26 +02:00
Raymond Knopp
f7f8935ce3 minor wqupdates after merge with develop 2021-04-10 23:28:34 +02:00
Raymond Knopp
48b5b5d7c7 Merge remote-tracking branch 'origin/develop' into oairu 2021-04-10 23:27:56 +02:00
Roberto Louro Magueta
cd14ba9667 Revert "Revert "Revert RA preamble shift at gNB""
This reverts commit e06c727604
2021-04-10 13:51:51 +02:00
rmagueta
ddfc737c65 Fix search space for Msg2 and Msg4 at gNB 2021-04-09 19:46:35 +01:00
matzakos
e7e4cb5869 Fix nrUE build error due to depndency of nas_nrue_task from RFSIM_NAS macro 2021-04-09 18:03:37 +02:00
matzakos
45b2b61d1f Trigger gNB registration with AMF for monolithic mode 2021-04-09 18:01:51 +02:00
Laurent Thomas
ab3ac5b29e Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into sim-channels 2021-04-09 14:49:48 +02:00
Laurent Thomas
657b525efc merge develop 2021-04-09 14:31:02 +02:00
Laurent Thomas
7c6ece0f51 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into new-gtpu 2021-04-09 12:39:36 +02:00
Laurent Thomas
307098da4a merge develop 2021-04-09 12:39:33 +02:00
Raphael Defosseux
f21ac1a84c [CI] increase time out for waits
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-09 10:15:53 +02:00
rmagueta
b2b3f38344 Skip invalid MAC CCCH messages for being processed at both gNB and UE 2021-04-08 16:04:19 +01:00
rmagueta
7c37794513 Revert code indentation in usrp_lib 2021-04-08 14:56:05 +01:00
Raymond Knopp
979a5d9389 pucch_ResourceCommon added to configuration file 2021-04-08 15:52:51 +02:00
rmagueta
2efe75130d Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-04-08 14:10:14 +01:00
Raphael Defosseux
f91ce72868 Merge branch 'integration_2021_w14' into 'develop'
Integration Branch : 2021 week 14

See merge request oai/openairinterface5g!1121
2021-04-08 12:52:00 +00:00
francescomani
0818e4b986 ssb start subcarrier in ssb indication for reception of sib1 2021-04-08 14:31:16 +02:00
Raymond Knopp
e3d13131b4 fix for last commit (removal on one line in asn1_msg.c) 2021-04-08 11:00:03 +02:00
Raphael Defosseux
5c2a5fd74d [CI]: removing the cppcheck stages from the old pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-08 10:30:03 +02:00
Raphael Defosseux
1019a56bea Merge remote-tracking branch 'origin/nr_ue_pdcp_fix' into integration_2021_w14 2021-04-08 10:27:50 +02:00
Raphael Defosseux
c38dfae7e3 Merge remote-tracking branch 'origin/bugfix-free-ra-process' into integration_2021_w14 2021-04-08 10:27:31 +02:00
Raphael Defosseux
8754cc1f96 Merge remote-tracking branch 'origin/physim-build-deploy' into integration_2021_w14 2021-04-08 10:27:10 +02:00
Raphael Defosseux
ad17204eac Merge remote-tracking branch 'origin/docker-no-cache-option' into integration_2021_w14 2021-04-08 10:26:55 +02:00
Raymond Knopp
60e0048c29 added call to NAS for RRCSetupComplete message in UE. other minor modification in gNB/UE scheduling for SA 2021-04-08 08:40:40 +02:00
hardy
d727eebaf5 fix incorrect indentation that makes the CI fail for multiple UEs 2021-04-07 20:30:42 +02:00
francescomani
25756a40c7 reworking function for csi meas report bitlen (still not complete) 2021-04-07 17:56:26 +02:00
luis_pereira87
04b28e5f2a Fix Msg4 mac pdu with padding 2021-04-07 16:31:06 +01:00
luis_pereira87
2ec6ee5f5b Fix Msg4 mac pdu with padding 2021-04-07 16:03:26 +01:00
Thomas Schlichter
650645f883 NR_UE: send tick to RLC and PDCP every ms 2021-04-07 14:21:00 +00:00
Raymond Knopp
0b59ce4faf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-07 15:50:46 +02:00
Mohammed Ismail
25d7eb6c88 CI: adding physim imgae build
Signed-off-by: Mohammed Ismail <mohammed.ismail@openairinterface.org>
2021-04-07 14:05:54 +02:00
hardy
87a5e40eda fix CI issue (removing code that should have been deleted) 2021-04-07 14:03:45 +02:00
Raphael Defosseux
3b187925e8 [CI] fix cppcheck reporting
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-07 13:55:01 +02:00
Raphael Defosseux
45f6266b5f [CI] fix
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-07 12:20:55 +02:00
Raphael Defosseux
a4b836ac21 [CI] disabling cppcheck on the old pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-07 11:39:59 +02:00
Raphael Defosseux
6b6df21d35 [CI] triggering child pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-07 11:35:04 +02:00
Raphael Defosseux
d0578d77c8 [CI] cppcheck analysis in the python framework
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-07 11:13:17 +02:00
Raymond Knopp
470d0ac121 full configuration including Msg4/RRCSetup. InitialBWP handling at gNodeB 2021-04-07 10:57:00 +02:00
Laurent Thomas
04f2ec2352 merge develop, documentation fix 2021-04-06 21:33:13 +02:00
Laurent Thomas
873e42612a merge develop, documentation fix 2021-04-06 21:32:19 +02:00
Raphael Defosseux
2cfc1a6cdb [CI] adding new cppcheck docker for container CI operations
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-06 17:08:03 +02:00
Raymond Knopp
2473a25ca1 Merge remote-tracking branch 'origin/develop-SA-CBRA' into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
2021-04-06 16:38:37 +02:00
Raphael Defosseux
b263ff15ec [CI] fix the email generation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-06 13:57:17 +02:00
rmagueta
79864d001b Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-04-06 11:38:33 +01:00
Laurent Thomas
89598e3bad Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into sanitize-v1 2021-04-06 12:11:29 +02:00
Cedric Roux
1a5f10be90 bugfix: nr: free RA process when UE is removed
The bug was:
connect a phone, disconnect, repeat five times. The fifth time the phone
does not reconnect because there is no free RA process.

When an UE is removed, we have to free associated RA processes.
2021-04-06 10:40:37 +02:00
Remi Hardy
f0a1d0c23f Integration 2021 wk14 a
MR !1111 : fix x2 without gnb  
-fix x2 without gnb (that is: the eNB is running without gNB, then we must not switch the UE to NR)
-exit gNB if eNB crashes (and exit eNB if gNB crashes)

MR !1102 : nr rlc: bugfix: fix NACK with range 
We do some sanity checks for incoming rlc control packets. One of them is to check that so_start is not > so_end when present.
But when 'range' is present and bigger than 1 it means that so_start refers to one PDU and so_end to another one. So we may well have so_start > so_end.
This MR fixes that and reorganizes a bit the code to do the check before processing and rejecting the PDU if the values are not correct. (Before this commit we were NACKing the whole PDUs if so_start > so_end.)
 
MR !1096 : build_oai: Add --sanitize-address option
-pass the -fsanitize=address option to the compiler which enables run-time checks for some kinds of memory mismanagement
2021-04-06 08:10:52 +00:00
Remi Hardy
7878f8af6e adding some inline doc/comments to ci_ctl_qtel.py 2021-04-05 20:14:38 +02:00
Remi Hardy
31726d685f fixing qtel control 2021-04-05 19:58:54 +02:00
Laurent OpenCells
4511e70fac fix from ci results 2021-04-05 12:56:52 +02:00
hardy
53e624e4c2 improving module control scripts, to be tested 2021-04-05 12:25:50 +02:00
hardy
c1be8be1bc new nsa testcase for quectel 2021-04-05 11:14:53 +02:00
hardy
5a3dc09fdb fixes for other CI pipelines 2021-04-04 21:27:28 +02:00
Remi Hardy
69451ed33f fix UE name in html for ping 2021-04-04 15:54:57 +02:00
Remi Hardy
41cb06546f fix UE name in html for iperf 2021-04-04 15:36:34 +02:00
Remi Hardy
ea89cfa1a1 iperf UL and DL working ok 2021-04-04 15:29:45 +02:00
hardy
31bc110de0 a bit of re factoring 2021-04-04 15:29:45 +02:00
Raymond Knopp
0f98cad8db UE Configuration after SIB1 ok, RAR configuraiton/reception ok, Msg3 transmission / reception ok, CU fails when needing to at SRB1 2021-04-04 13:20:38 +02:00
hardy
cffdac0445 adding module support, primary test/debug 2021-04-04 12:06:20 +02:00
hardy
77a3dd7e41 Merge remote-tracking branch 'origin/sanitize-address' into integration_2021_wk14_a 2021-04-04 08:18:50 +02:00
hardy
dac2388ed1 Merge remote-tracking branch 'origin/fix-nr-rlc-range-nack' into integration_2021_wk14_a 2021-04-04 08:18:25 +02:00
hardy
02504ef747 Merge remote-tracking branch 'origin/fix-x2-without-gnb' into integration_2021_wk14_a 2021-04-04 08:18:04 +02:00
Laurent OpenCells
c0ef3e6f88 fix gcc reported issues 2021-04-03 23:37:58 +02:00
rmagueta
713e3e713a Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-04-03 04:00:37 +01:00
Laurent OpenCells
fed90543bc Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sanitize-v1 2021-04-02 18:43:28 +02:00
Florian Kaltenberger
7ed03d5021 Update TESTING_GNB_W_COTS_UE.md 2021-04-02 12:42:06 +00:00
Raphael Defosseux
3d5170f6a0 [CI][Docker] adding no-cache options to make to take executables from Merge Requests
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-04-02 11:35:02 +02:00
Laurent THOMAS
0317d6725b sanitize, calibration tool kickoff 2021-04-02 10:12:13 +02:00
Laurent THOMAS
55315b8fae revert removal of a dirty workaround 2021-04-01 21:43:47 +02:00
rmagueta
d964cf60b8 Fix for RA when Msg3 fails 2021-04-01 18:45:29 +01:00
Sakthivel Velumani
f011b7981c fixed typo 2021-04-01 16:14:25 +02:00
rmagueta
4a807dd083 Minor improvements and LOG updates 2021-04-01 14:11:14 +01:00
Sakthivel Velumani
ca9ebcc959 Merge branch 'develop' into ue-pdsch-pusch-parallel 2021-04-01 12:44:59 +02:00
rmagueta
1aab76a48d Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
2021-04-01 11:19:28 +01:00
francescomani
db25430922 csirep configuration for cri_RI_CQI 2021-04-01 10:40:52 +02:00
Remi Hardy
91909a4ba6 Integration 2021 wk13 d
MR !1085 : Nr mac ssb
-MAC scheduling of multiple SSBs
-Symbol level occupation of VRB map for SSBs
-Multi SSB SIB1 scheduling

MR !1097 : NR_PRACH: nr_du\[\] buffer not filled in High Speed case for both gNB and nrUE
Issue: TC nr_prachsim failed with High Speed(-H) enabled.
While generating NR PRACH for High Speed case : Array nr_du\[\] was not filled for both gNB and nrUE. Added function nr_fill_du() to resolve the issue. 

MR !1107 : Small bugfixes for 5G NR
2021-04-01 08:16:03 +00:00
francescomani
5498e2b84a Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-04-01 09:18:23 +02:00
hardy
0fe69eafda pusch_proc_threads = 6 vs 8 2021-03-31 17:08:23 +02:00
rmagueta
d86566d366 gNB: update ssPBCH_BlockPower to -25 dBm/RE in all USRP conf files 2021-03-31 15:52:51 +01:00
Cedric Roux
6c6b46985b x2: exit if connection between eNB and gNB breaks
Before this commit, when the gNB crashes, the eNB keeps running.
Same, if the eNB crashes, the gNB keeps running.

In a far past when this happened, the other program (the one not
crashing) was forced to exit.

Then this behavior was changed, for some reason.
But the code was not finished, so now we have a system in an inconsistent
state.

So either we accept that the connection between eNB and gNB can break,
that is one of the programs crashes, and we clean the state of the
program that keeps running. But this is a complex work and it will
surely not survive very long, because someone will change something
in the code later that will break this complex behavior.

Or, simpler, we go back to initial behavior, which is: the program that
did not crash does actually exit when the other crashes.

This commit provides the second solution.

It can easily be reverted whenever someone wants to implement the complex
solution.
2021-03-31 16:39:30 +02:00
Cedric Roux
46c1aff489 fix: do NR only if at least one gNB is connected to the eNB
We used to set 'does_nr' of an UE if we detect ENDC supported in the
UE capabilities.

Then we activate NR measurements if 'does_nr' is true.

The problem is that if the eNB is not connected to a gNB but the UE
reports some NR measurements (because a gNB is running somewhere near)
then the eNB will crash when starting the switch to NR.

A (quick) solution is to set 'does_nr' only if there is a gNB connected to
the eNB.

Maybe not the best solution. To be changed if needed.
2021-03-31 16:39:30 +02:00
rmagueta
1175463c7e Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-03-31 15:33:48 +01:00
rmagueta
8c9ed555d9 Remove runtime callocs for dmrs_AdditionalPosition 2021-03-31 15:32:45 +01:00
Sakthivel Velumani
0c7008dd7a Changed gNB rxgain on CI conf 2021-03-31 15:44:38 +02:00
Raymond Knopp
f851af22f2 fixing previous commit 2021-03-31 14:39:55 +01:00
rmagueta
53f77219d4 Rework default PDSCH time domain resource allocation tables 2021-03-31 14:31:19 +01:00
hardy
5af77e8fb3 Merge remote-tracking branch 'origin/small_nr_bugfixes' into integration_2021_wk13_d 2021-03-31 13:49:24 +02:00
hardy
d5f8a6161f Merge remote-tracking branch 'origin/NRPRACH_highSpeed_saankhya' into integration_2021_wk13_d 2021-03-31 13:48:45 +02:00
hardy
4896e80e2c Merge remote-tracking branch 'origin/NR_MAC_SSB' into integration_2021_wk13_d 2021-03-31 13:47:58 +02:00
Raymond Knopp
9be7c35f68 changing config file for SA to connect to AMF
also enabling connection to AMF only when --sa option is used.
2021-03-31 11:44:56 +02:00
Raymond Knopp
ce4e699874 fixing previous commit 2021-03-31 11:44:56 +02:00
Laurent THOMAS
de5e64c722 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sanitize-v1 2021-03-31 10:13:50 +02:00
Raymond Knopp
13a9e49d65 additional DMRS for CoreSet0 back in gNB/UE resource allocations 2021-03-31 10:05:27 +02:00
Laurent THOMAS
58d372d3a2 one cppcheck, merge develop 2021-03-31 10:01:11 +02:00
Laurent THOMAS
e1c73a0632 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-31 09:45:53 +02:00
Remi Hardy
1f3513b1e7 Integration 2021 wk13 c
MR !1092: Nr pdcp nia2 integrity
This code has not been tested with a COTS UE. We need SRB1/2 (so we need SA) to test.
The activation of security and integrity for SRB1 will need more code (new functions) because it happens after some time, not at creation time of the PDCP entity and there is no way to do this with current code.
 
MR !1075: Fft bench hotfix 
Simple fix to make the FFT testbench compile and run on current develop.

MR !1083: NR power measurement fixes
2021-03-31 05:15:29 +00:00
Raymond Knopp
2913757461 Merge remote-tracking branch 'origin/develop-SA-CBRA' into NR_SA_F1AP_5GRECORDS
Conflicts:
	executables/nr-softmodem.c
	executables/nr-ue.c
	openair2/GNB_APP/gnb_app.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2021-03-31 03:14:48 +02:00
Sakthivel Velumani
cbaa901b81 Merge branch 'develop' into ue-pdsch-pusch-parallel 2021-03-31 01:42:16 +02:00
Raymond Knopp
cbe2da1c46 OAI UE and eNB SA configuration up to reception of SIB1 and configuration of UE L1/L2 stack 2021-03-31 00:43:52 +02:00
Laurent THOMAS
c2257d8687 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sanitize-v1 2021-03-30 19:46:45 +02:00
Laurent THOMAS
29dd729a93 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-30 19:45:10 +02:00
hardy
f76ec27726 Merge remote-tracking branch 'origin/fft_bench_hotfix' into integration_2021_wk13_c 2021-03-30 16:41:24 +02:00
hardy
1214836e75 Merge remote-tracking branch 'origin/nr_power_measurement_fixes' into integration_2021_wk13_c 2021-03-30 16:40:41 +02:00
Sakthivel Velumani
fa55cafda4 fixed warning 2021-03-30 16:11:39 +02:00
Sakthivel Velumani
a0422a607d Changed threshold after testing 2021-03-30 16:07:40 +02:00
Cedric Roux
fe4a9b005a nr: add some comments to pdcp nia2 integrity 2021-03-30 16:01:57 +02:00
Sakthivel Velumani
1e8c7dca82 Merge branch 'ue-dci-false-detection' into ue-pdsch-pusch-parallel 2021-03-30 15:38:51 +02:00
francescomani
579f0290f6 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB 2021-03-30 15:10:28 +02:00
Sakthivel Velumani
4c3d0dddaa Added threashold estimation
Estimate the threshold by simple averaging of mismatched bits of all detected DCI.
2021-03-30 14:36:05 +02:00
Thomas Schlichter
ca963e68ff gNB: fix allocation of RC.gNB[] array
If the array of pointers is allocated using malloc(), it is not guaranteed that the pointers are NULL, so the actual PHY_VARS_gNB might nit be allocated correctly!
Also replace a malloc() + memset() combination by just a calloc().
2021-03-30 14:05:40 +02:00
Sakthivel Velumani
76273a2aa0 Merge branch 'ue-dci-false-detection' into ue-pdsch-pusch-parallel 2021-03-30 13:43:28 +02:00
rmagueta
feb2651ea7 Fix issues due to merge 2021-03-30 12:38:31 +01:00
rmagueta
b55b11b125 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2021-03-30 11:51:56 +01:00
Sakthivel Velumani
e1e459d27c Check for DCI false positive
by comparing the received bits with re-encoded payload bits
2021-03-30 12:07:15 +02:00
Cedric Roux
63b7ff981e bugfix: fix compilation of simulators 2021-03-30 11:57:51 +02:00
Cedric Roux
18cb68ecc2 nr pdcp: first draft of NIA2 integrity
This code has not been tested with a COTS UE. We need SRB1/2 (so we need SA)
to test.

The activation of security and integrity for SRB1 will need more code
(new functions) because it happens after some time, not at creation time
of the PDCP entity and there is no way to do this with current code.
2021-03-30 11:57:51 +02:00
Cedric Roux
14c823037f nr pdcp: bugfix: D/C bit set only for DRBs 2021-03-30 11:57:51 +02:00
Robert Schmidt
f5a1d356db Refactor after merge
With the merge of fix_NR_DLUL_PF, gNB_dlsch_ulsch_scheduler() has no
nb_periods_per_frame variable. There are two changes here:

1) calculate this locally for initializing tdd_beam_association

2) do not pass it into schedule_nr_mib(). Further, use the following:
   nb_periods_per_frame = slots_per_frame / slots_per_period
   slots_per_frame / nb_periods_per_frame =
     = slots_per_frame / (slots_per_frame / slots_per_period)
     = slots_per_period
2021-03-30 10:49:00 +02:00
Robert Schmidt
576df55450 Merge remote-tracking branch 'origin/fix_NR_DLUL_PF' into integration_2021_wk12 2021-03-30 10:48:57 +02:00
Thomas Schlichter
9916076fbd gNB: fix pucch indexing in fill_ul_rb_mask() 2021-03-30 10:45:03 +02:00
Thomas Schlichter
7848e2575c add missing pusch_AntennaPorts to conf files 2021-03-30 10:44:15 +02:00
Remi Hardy
77c36950d4 Integration 2021 wk13 a
-MR !1052 : Nr fapi beamindex ssb ro
This branch completes RA procedure for FR2 and includes improvements for beam index communication through FAPI interface.

-fix_rb_corruption:
A memcpy() introduced to optimize for the case of no precoding corrupted RBs which are not allocated to PDSCH in the common txdataF array.
So instead, fall back to memcpy() for each PDSCH RB.

-benetel configuration files update
2021-03-30 08:27:48 +00:00
francescomani
d65af6d8ca Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB 2021-03-30 09:35:18 +02:00
Raymond Knopp
df05672a4c Merge remote-tracking branch 'origin/develop-SA-CBRA' into NR_SA_F1AP_5GRECORDS
Conflicts:
	openair2/GNB_APP/gnb_config.c
	openair2/GNB_APP/gnb_paramdef.h
	openair2/LAYER2/NR_MAC_UE/config_ue.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_nsa.c
2021-03-30 04:48:51 +02:00
Raymond Knopp
707c20dd74 changes in UE to start configuration from Initial/MIB/SIB1/RRCSetup 2021-03-30 03:44:58 +02:00
Sakthivel Velumani
2738f7669a Fixed warnings 2021-03-29 23:48:00 +02:00
Sakthivel Velumani
e63212bdf3 Bugfix in PUSCH schedule
Fixes one of the assertions when there is false DCI detecteted
2021-03-29 23:35:17 +02:00
Laurent THOMAS
f5022585d9 format astyle only 2021-03-29 21:50:06 +02:00
Sakthivel Velumani
2686ffb39b Bugfix in last commit 2021-03-29 21:36:52 +02:00
rmagueta
56673386dc Skip invalid MAC CCCH messages for being processed at UE 2021-03-29 16:56:25 +01:00
rmagueta
80941b0c31 Minor LOG improvements 2021-03-29 16:43:55 +01:00
rmagueta
b43c054f02 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2021-03-29 15:51:37 +01:00
Sakthivel Velumani
cefa6918fa Enabled a error log on PUCCH 2021-03-29 16:43:50 +02:00
rmagueta
1b427efaa1 Revert LOG to pass CI tests for RA 2021-03-29 15:42:03 +01:00
Sakthivel Velumani
4c76c4fb1e Fixed sending ack for false retrans 2021-03-29 16:30:55 +02:00
Sakthivel Velumani
cbd000e02d Improved the 'non-stop' feature 2021-03-29 16:30:19 +02:00
Laurent THOMAS
738728142f merge develop 2021-03-29 15:33:45 +02:00
Thomas Schlichter
104aa7eed5 gNB: fix precoding matrix related compile error 2021-03-29 14:59:58 +02:00
rohan
7a65decae4 Added High Speed flag Test case for nr_prachsim 2021-03-29 12:03:32 +00:00
Laurent THOMAS
68a81f65b2 merge develop 2021-03-29 11:24:34 +02:00
Florian Kaltenberger
d08bb68b15 updating config file for benetel in CI folder 2021-03-29 10:35:35 +02:00
Florian Kaltenberger
5e9248938a applying new TDA to benetel config file 2021-03-29 10:35:17 +02:00
Florian Kaltenberger
2e9ac3672d removing annoying printf 2021-03-29 10:35:00 +02:00
hardy
74d2a6bbab Merge remote-tracking branch 'origin/fix_rb_corruption' into integration_2021_wk13_a 2021-03-29 10:31:15 +02:00
hardy
ddf3f9e88c Merge remote-tracking branch 'origin/NR_FAPI_beamindex_SSB_RO' into integration_2021_wk13_a 2021-03-29 10:02:51 +02:00
luis_pereira87
86d252ef92 Revert LOG to pass CI tests for RA 2021-03-28 11:35:15 +01:00
rmagueta
8e89ab0022 Fix Msg4 Ack at gNB and pdsch_to_harq_feedback_time_ind at UE 2021-03-27 23:46:37 +00:00
Raymond Knopp
4d0d4fcb29 Merge remote-tracking branch 'origin/develop-SA-CBRA' into NR_SA_F1AP_5GRECORDS
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.h
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity_drb_am.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_sdu.h
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR_UE/rrc_UE.c
2021-03-27 15:31:22 +01:00
rmagueta
774b8d9a9f Fix TA in CFRA 2021-03-26 16:54:34 +00:00
Laurent THOMAS
fbf39eecc1 cppcheck fixes 2021-03-26 16:32:20 +01:00
Cedric Roux
9d1c24d461 nr rlc: bugfix: fix NACK with range
We do some sanity checks for incoming rlc control packets. One of them
is to check that so_start is not > so_end when present.

But when 'range' is present and bigger than 1 it means that so_start refers
to one PDU and so_end to another one. So we may well have so_start > so_end.

This commit fixes that and reorganizes a bit the code to do the check before
processing and rejecting the PDU if the values are not correct. (Before this
commit we were NACKing the whole PDUs if so_start > so_end.)
2021-03-26 15:36:43 +01:00
Laurent THOMAS
fc967bab3c Merge branch 'sim-channels' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-26 14:07:28 +01:00
Laurent THOMAS
364ea7685f fix warings 2021-03-26 14:07:10 +01:00
frtabu
1a93c759c8 fix cppcheck error 2021-03-26 12:14:32 +01:00
luis_pereira87
1af7e716e6 Fix mac sdu len calculation for CCCH and skip invalid CCCH1 messages for being processed 2021-03-26 09:46:30 +00:00
Laurent THOMAS
b35155274c Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-26 09:47:03 +01:00
Laurent THOMAS
818c9b2c88 first pass 2021-03-25 20:13:50 +01:00
rmagueta
7c90e58d39 Fix BWP selection for NSA mode 2021-03-25 17:37:03 +00:00
rmagueta
8800789b0a Fix preamble detection for NSA 2021-03-25 15:15:03 +00:00
Raymond Knopp
a6b24211ac configuration of SRB1 for monolithic and CU/DU, move some parameters from RRC to MACRLC section in configuration file. 2021-03-25 14:26:28 +01:00
Thomas Schlichter
f9410f7a69 gNB: update ssPBCH_BlockPower to -25 dBm/RE in all USRP conf files 2021-03-25 09:20:08 +01:00
Thomas Schlichter
7b76f3f2e1 Merge remote-tracking branch 'origin/develop' into nr_power_measurement_fixes 2021-03-25 09:10:55 +01:00
Raymond Knopp
e6ead93ad1 removed 3 warnings in lte-softmodem 2021-03-25 07:32:58 +01:00
Raymond Knopp
08b781ebfe Merge remote-tracking branch 'origin/develop' into oairu 2021-03-25 06:44:11 +01:00
rmagueta
114508c120 Minor fix in nr_prachsim 2021-03-24 16:17:48 +00:00
Raymond Knopp
39868c400a adding format_indicator to dci_payload of msg3 2021-03-24 16:09:48 +01:00
Raymond Knopp
e84d1fe678 adding UL LCID 52 for CCCH with 48 bits 2021-03-24 16:09:48 +01:00
Raymond Knopp
4840b895dd adding PRACH signal to T tracer 2021-03-24 16:09:48 +01:00
Florian Kaltenberger
feb2b9c8bb adding rxdataF signal to debug output 2021-03-24 10:24:24 +01:00
Raymond Knopp
f6d53094c4 added DUtoCURRCContainer IE in UL INITIAL RRC MESSAGE TRANSFER
added generation of initial Master Cell Group Configuration for both CU/DU and monolithic gNB.

Tested until transmission of RRCSetupComplete from UE
2021-03-23 21:52:57 +01:00
rmagueta
86f70e2777 Add RA support for up to NUMBER_OF_NR_ULSCH_MAX UEs 2021-03-23 20:13:23 +00:00
rmagueta
ee047b88e9 Remove TC-RNTI at PHY when RA procedure does not succeeded 2021-03-23 17:59:31 +00:00
rmagueta
4bd9972f3b Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-03-23 15:23:13 +00:00
rmagueta
8c13604d61 Fix PRACH with k1 = msg1-FrequencyStart + initialUplinkBWPStart 2021-03-23 15:22:36 +00:00
Roberto Louro Magueta
7c2591f318 Revert "Fix PRACH msg1-FrequencyStart/k1"
This reverts commit b6513faa82
2021-03-23 16:04:01 +01:00
rmagueta
b6513faa82 Fix PRACH msg1-FrequencyStart/k1 2021-03-22 20:07:14 +00:00
Luis Pereira
e82915c4b1 Revert "Fix msg1-FrequencyStart in config files for SA"
This reverts commit b067406097
2021-03-22 15:28:15 +01:00
Francesco Mani
763b3c675d change in set_tdd_config_nr description 2021-03-22 15:01:32 +01:00
rohan
ee4938b9f0 Update nr_prach.c: NR_PRACH_DEBUG flag disabled. 2021-03-22 14:49:24 +01:00
Rohan Patil
ad0f5ba26f nr_du[] not filled in High Speed case for both gNB and nrUE 2021-03-22 09:38:12 -04:00
francescomani
6b391b3274 activating a log to print rsrp 2021-03-22 10:26:02 +01:00
Laurent THOMAS
1cb33aa7de code review fixes, merge latest develop 2021-03-22 09:46:24 +01:00
Laurent THOMAS
5a12698583 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FAPI_beamindex_SSB_RO 2021-03-22 08:55:34 +01:00
Laurent THOMAS
230af8db6f fix a old issue about T_IDs.h that killed my CI run 2021-03-22 07:59:24 +01:00
Laurent THOMAS
3bd3f452c2 :( remove sanitize=address option, fix some cppchecks 2021-03-21 23:48:46 +01:00
Laurent THOMAS
8c61e9ff83 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into sim-channels 2021-03-21 12:47:39 +01:00
Michael Cook
2f4767a7d4 build_oai: Add --sanitize-address option
To enable -fsanitize=address option to the compiler
which enables run-time checks for some kinds of memory
mismanagement.
2021-03-20 10:53:34 -04:00
francescomani
70a1556c51 Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-03-19 18:50:59 +01:00
rmagueta
d37552db4c Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2021-03-19 15:07:08 +00:00
Laurent THOMAS
fcda7b97fe add sanitize option, merge develop 2021-03-19 12:21:04 +01:00
francescomani
d76c50e34a Merge remote-tracking branch 'origin/develop' into nr_power_measurement_fixes 2021-03-19 11:22:18 +01:00
Laurent THOMAS
0009fefce2 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-19 11:19:58 +01:00
francescomani
f659a76f43 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-03-19 10:06:20 +01:00
francescomani
9d37feecb8 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-03-19 09:55:30 +01:00
francescomani
f0d6298475 new attempt at improving call to RC L1 config 2021-03-19 09:55:18 +01:00
Sakthivel Velumani
7b9815b316 Fixed do-ra bug 2021-03-19 01:49:55 +01:00
Sakthivel Velumani
80c261c9ae Fixed lte-dlsim segflt 2021-03-19 00:56:44 +01:00
Sakthivel Velumani
58d10d592f Fix nr_dlsim segflt 2021-03-19 00:06:30 +01:00
Raymond Knopp
91168581a5 small fix for basic simulator in TDD 2021-03-18 20:35:17 +01:00
Sakthivel Velumani
874cefb924 Fixed build errors
Also added warning messages for gNB number of threads required
2021-03-18 20:17:41 +01:00
luis_pereira87
b067406097 Fix msg1-FrequencyStart in config files for SA 2021-03-18 18:49:16 +00:00
rmagueta
1ee7d7e551 Remove some hard code values 2021-03-18 17:39:01 +00:00
Roberto Louro Magueta
642c639406 Revert "Fix preamble sequence"
This reverts commit 9efe4187e7
2021-03-18 17:14:31 +01:00
francescomani
0274e09690 internal clock in testing conf files 2021-03-18 13:54:55 +01:00
francescomani
a1f1d53cb5 another tentative fix for gnb initialization crashes 2021-03-18 13:09:36 +01:00
Raymond Knopp
9dd6e3bb82 Merge remote-tracking branch 'origin/develop-SA-CBRA-CUDU' into NR_SA_F1AP_5GRECORDS
Conflicts:
	executables/nr-uesoftmodem.c
	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
	openair2/RRC/NR/L2_nr_interface.c
2021-03-18 07:50:08 +01:00
rmagueta
9efe4187e7 Fix preamble sequence 2021-03-18 01:20:59 +00:00
frtabu
5c025c321e set libconfig AUTOCONVERT option to true 2021-03-18 00:22:11 +01:00
Laurent THOMAS
0827488303 noise power 2021-03-17 19:34:27 +01:00
francescomani
d30b8c69ae fix dlsim crashes (wrong detection of dci for ul) 2021-03-17 18:45:56 +01:00
Laurent THOMAS
7e1f6fc203 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-17 17:08:28 +01:00
Sakthivel Velumani
a702fd55b3 Fixed blocking bug 2021-03-17 14:58:06 +01:00
Sakthivel Velumani
cdda2a4a6f Merge branch 'develop' into ue-pdsch-pusch-parallel 2021-03-17 12:59:26 +01:00
Sakthivel Velumani
85b0aa0497 More fixes
1.Changes to support multi slot parallel processing
2.Changes to run rfsimulator without multi-threading
2021-03-17 12:39:06 +01:00
rmagueta
27f0414e60 Fill pusch_proc_threads in config files 2021-03-16 16:49:30 +00:00
rmagueta
9456542678 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
2021-03-16 16:04:23 +00:00
rmagueta
986a9fac1d Fixed issues to allow coexistence of CFRA and CBRA implementations 2021-03-16 16:00:37 +00:00
Raymond Knopp
9f8d702727 fix after merge with develop 2021-03-16 16:26:25 +01:00
rmagueta
8646dd0bcb DRB configuration for a new crnti 2021-03-16 12:51:04 +00:00
Sakthivel Velumani
33afbc9eee Revert "Multiple RXTX sequential threads"
This reverts commit 85e1c34c65.
2021-03-16 13:17:10 +01:00
Sakthivel Velumani
0bbaa0db2b Revert "Threadsafe FIFOs"
This reverts commit 0280c08391.
2021-03-16 13:16:54 +01:00
Sakthivel Velumani
0280c08391 Threadsafe FIFOs
1. Changed FIFO types to threadsafe to ensure order of execution
2. Changed RB_NB_TH to 1 because PUCCH have some issues when running 2 slots in parallel (race). Dont know exactly where it happens.
2021-03-16 12:44:26 +01:00
hardy
ee398c7610 solved merge conflicts related to CI scripts 2021-03-16 11:55:23 +01:00
luis_pereira87
bdc97f7a56 Send MAC NR-BCCH-SL-SCH to RRC through ITTI at UE 2021-03-16 10:08:54 +00:00
Raymond Knopp
94085a41cd Merge remote-tracking branch 'origin/develop' into oairu 2021-03-16 08:07:16 +01:00
Sakthivel Velumani
85e1c34c65 Multiple RXTX sequential threads
Created separate job for PDSCH processing so that its exectued in the right order in rfsimulator mode.
2021-03-16 00:39:54 +01:00
frtabu
98c354fedd Set path for libconfig include directive, so that all config files could be located in the same directory. minor fixes in softmodem-common 2021-03-15 23:26:09 +01:00
Raymond Knopp
a3f6fe4260 L2 emulator seems ok now 2021-03-15 22:45:54 +01:00
luis_pereira87
fd9f2b8fe7 Build errors resolved 2021-03-15 17:44:23 +00:00
francescomani
9e0938f59b fix pbchsim compilation error 2021-03-15 17:33:38 +01:00
francescomani
c6df134b5d another bugfix in csirs scheduling 2021-03-15 17:23:36 +01:00
luis_pereira87
5ab73a228f Merge remote-tracking branch 'origin/NR_SA_F1AP_RFSIMULATOR_w5GCN' into develop-SA-CBRA-CUDU
# Conflicts:
#	executables/nr-softmodem.c
#	executables/nr-uesoftmodem.c
#	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/NR_MAC_gNB/main.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
#	openair2/RRC/NR_UE/rrc_UE.c
2021-03-15 12:44:16 +00:00
frtabu
d118e7e60b Merge branch 'sim-channels' of https://gitlab.eurecom.fr/oai/openairinterface5g into sim-channels 2021-03-15 12:53:36 +01:00
frtabu
8ad4895f55 Add common option telnetclt 2021-03-15 12:51:49 +01:00
Laurent THOMAS
a97bf1da6e fix phy simulators, merge develop 2021-03-15 12:40:15 +01:00
francescomani
75b3097f8a bugfix in csirs scheduling 2021-03-15 11:53:18 +01:00
francescomani
13a561104b Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB 2021-03-15 10:23:06 +01:00
Laurent THOMAS
d659ceb849 merge develop
Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels
2021-03-15 09:44:33 +01:00
Raymond Knopp
4c8fb83e82 lowmem option for allocating transport channel buffers in NR_DLSCH/NR_ULSCH. Used for unitary simulation in CI. 2021-03-14 22:47:43 +01:00
Raymond Knopp
0043063d40 fixed bandwidth scaling for 6 PRBs in eNB and UE. 2021-03-14 22:17:48 +01:00
Raymond Knopp
f5fcd5687d small changes in main-ocp to reflect initialization differences int phy_init_lte_eNB(). 2021-03-14 09:28:06 +01:00
Raymond Knopp
7f5dc92265 testing with multi-RU 2021-03-13 21:43:00 +01:00
Raymond Knopp
74a44d686d minor changes 2021-03-13 21:27:39 +01:00
Raymond Knopp
e5226adcb0 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2021-03-13 21:26:47 +01:00
magounak
28f65fb297 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2021-03-13 21:26:14 +01:00
magounak
a4666ba7e5 OTA synch changes for slave RRU 2021-03-13 21:25:54 +01:00
Raymond Knopp
092eb544b6 slave RRU testing with OTA synch. 2021-03-13 21:24:42 +01:00
rmagueta
bad2a56b06 Implementation of the RA-Msg4 Ack 2021-03-13 20:12:57 +00:00
rmagueta
7ef6611d7d Remove hard code in nr_pdsch_channel_estimation 2021-03-13 17:56:23 +00:00
rmagueta
dff9c29b1d Fix regarding ra_PreambleIndex in new RA attempts after fail 2021-03-12 20:39:48 +00:00
rmagueta
8f28685cf3 Fix in new RA attempts after fail 2021-03-12 20:15:48 +00:00
Sakthivel Velumani
cef0567aa9 Process PDSCH and PUSCH in parallel
1. RX PBCH slot n
2. RX PDCCH slot n
3. Start TX PUSCH in parallel for slot n+6
4. RX PDSCH slot n
5. Join PUSCH
6. TX PUCCH slot n+6
2021-03-12 20:49:13 +01:00
rmagueta
8b5d5bbb47 Set crnti with t_crnti value when RA succeeded 2021-03-12 18:48:00 +00:00
rmagueta
732617f5ae Fix RNTI type for Msg3 at UE 2021-03-12 18:31:34 +00:00
rmagueta
1821c8c9d6 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-03-12 16:02:57 +00:00
rmagueta
53d0fc05ca Add more RA_state_t to accommodate all the output values from nr_ue_get_rach 2021-03-12 16:02:28 +00:00
francescomani
08d2c9fb74 Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-03-12 15:54:13 +01:00
rmagueta
e2627f8025 Improve UE mode 2021-03-12 13:47:59 +00:00
francescomani
dd1b8b64cf tentative fix for RC.gNB[inst] allocation 2021-03-12 13:15:48 +01:00
Sakthivel Velumani
616477a5af Option to run UE without stopping
when signal quality drops. when cmd line option used ue goes back to sync mode
2021-03-11 17:29:22 +01:00
rmagueta
acb9a6e0dc Update band 41 config file 2021-03-11 14:11:08 +00:00
rmagueta
e06c727604 Revert "Revert RA preamble shift at gNB"
This reverts commit fa79cdb5
2021-03-11 13:57:29 +00:00
He Shanyun
44288d7553 fix issue about ittiSIM and CplaneNG of withS1 2021-03-11 16:54:38 +09:00
He Shanyun
8965dd782b Merge remote-tracking branch 'remotes/origin/develop_SA_CUDU_rfsim_with_5gc' into integration_w5GC
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
2021-03-11 14:39:36 +09:00
Sakthivel Velumani
2473ed0a90 Added PUCCH signal level 2021-03-11 00:00:56 +01:00
frtabu
de87c02ea9 start doc 2021-03-10 21:39:20 +01:00
Sakthivel Velumani
787cc6e90d Pipeline process
thread1: RX
thread2: TX
2021-03-10 21:28:50 +01:00
rmagueta
fa79cdb5ba Revert RA preamble shift at gNB 2021-03-10 19:21:06 +00:00
rmagueta
f6a1c1883f Add support for PUSCH scheduled by RAR when BWPStart>0 2021-03-10 19:13:29 +00:00
francescomani
bc1942f99a fixing a segfault in dlschsim 2021-03-10 14:07:11 +01:00
Thomas Schlichter
f032830465 gNB: don't use gNB->RU_list in nr_measurements_gNB.c
this list is not initialized in phy-simulators
2021-03-10 13:15:03 +01:00
luis_pereira87
982a054631 Add support for PUSCH DMRS sequence generation when BWPStart>0 2021-03-10 10:42:11 +00:00
Thomas Schlichter
367241ef47 fix compile warnings 2021-03-10 11:34:00 +01:00
francescomani
35bbbe635f fixing a compilation error 2021-03-10 09:12:18 +01:00
frtabu
9c94e72fa8 Merge branch 'sim-channels' of https://gitlab.eurecom.fr/oai/openairinterface5g into sim-channels 2021-03-10 02:56:03 +01:00
frtabu
1f0e82664f enhance channel model configuration 2021-03-10 02:33:31 +01:00
Raymond Knopp
35fe7569a2 removed some debugging assertions in DU, added sending and handling of GNB-CU-Configuration-Update-Acknowledge. Note: Still need to do GNB-CU-Configuration-Update-Failure. 2021-03-09 23:32:24 +01:00
matzakos
3aec9a43ea Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-03-09 17:47:39 +01:00
rmagueta
7be1952c82 Add back-off indicator subheader to Msg2 2021-03-09 16:29:04 +00:00
Raymond Knopp
b192ce7ca0 removed assertions on non-presense of extensions for Cells_to_be_Activated_List_Item in both F1-Setup-Response and GNB-CU-Confiruation-Update 2021-03-09 16:01:41 +01:00
rmagueta
e5ee51964b Add temporary LOGs for Msg2 2021-03-09 15:00:06 +00:00
matzakos
3801c55f0f Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS 2021-03-09 15:25:23 +01:00
matzakos
906fd2b68f Merge branch NR_SA_F1AP_RFSIMULATOR3 into NR_SA_F1AP_5GRECORDS 2021-03-09 15:24:11 +01:00
Raymond Knopp
aaa7a3411b removed assertion on nRPCI being null, it is not mandatory. 2021-03-09 14:50:34 +01:00
Thomas Schlichter
5d50553c29 Merge remote-tracking branch 'develop' into nr_power_measurement_fixes 2021-03-09 14:09:53 +01:00
Raymond Knopp
3700759aa2 fixed byte-endian of fiveGS-TAC IE in F1AP. 2021-03-09 12:32:22 +01:00
Laurent THOMAS
c9d2754087 Merge branch 'sim-channels' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-09 11:12:28 +01:00
Laurent THOMAS
05dedf568a Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into sim-channels 2021-03-09 11:12:17 +01:00
yoshio.inoue
81c92d226f Define variables according to coding conventions. 2021-03-09 18:14:39 +09:00
francescomani
a4da922053 bugfix in switch 2021-03-09 09:02:50 +01:00
Raymond Knopp
1c8618efb9 fixed bug with fiveGS_TAC IE and added RRC_Version IE in F1-Setup-Req 2021-03-09 08:34:51 +01:00
Wang He
264af1860f fix build error and core dump error. 2021-03-09 15:43:18 +09:00
frtabu
782053f03f enhance channel model configuration 2021-03-09 01:21:38 +01:00
luis_pereira87
45b86847b7 Fix DMRS sequence generation for BWPStart>0 (Msg2 and Msg4) 2021-03-08 19:35:49 +00:00
cig
77c1ccdf56 Update ssPBCH_BlockPower value in the conf file to match actual outpur power
- currently, -25 dBm/RE is the maximum measured power from USRP
  corresponding to att_tx = 0 dB, therefore ssPBCH_BlockPower has been
  updated accordingly
- this param is used at UE side for the pathloss computation, which now
  seems to match measurements observed during lab testing
2021-03-08 15:25:45 +01:00
cig
5d8d478ffb NR gNB UL power measurements
- new function has been introduced for the computation of UL SNR
- minor bugfix to noise power computation
- FAPI data type for referenceSignalPower has been updated to reflect the
  range of values for the SSB power
2021-03-08 15:25:45 +01:00
cig
76ef9b4285 Fixes to NR UE power measurements
- pathloss, RSSI, RSRP and Noise measurements have been reviewed and wrong
  implementation has been fixed
- referenceSignalPower type in the FAPI struct has been changed to int
  has its range include negative values
2021-03-08 15:25:43 +01:00
hardy
7d2b45d8e2 Merge remote-tracking branch 'origin/ci_test_ra_fr2' into NR_FAPI_beamindex_SSB_RO 2021-03-08 14:35:25 +01:00
francescomani
c758736885 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB 2021-03-08 14:13:39 +01:00
rmagueta
f88dff1bca Uniformization of coreset start subcarrier at gNB for coreset0 2021-03-08 14:02:56 +01:00
Raymond Knopp
d72b9c4e71 Merge remote-tracking branch 'origin/develop' into oairu 2021-03-08 13:41:14 +01:00
rmagueta
6ecf50bc2f Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA 2021-03-08 12:05:59 +00:00
rmagueta
dc9425ee91 Uniformization of coreset start subcarrier at gNB for coreset0 2021-03-08 12:05:25 +00:00
francescomani
de0492b26e adding a log at mac 2021-03-08 11:02:09 +01:00
Raymond Knopp
666aee7fc2 addition of GNB-CU-Configuration-Update/Update-Acknowledge/Update-Failure 2021-03-08 10:57:00 +01:00
francescomani
118eb3f798 fix compilation of phy simulators 2021-03-08 10:17:10 +01:00
francescomani
a9ed3baafd reworking PHY functions for scheduling SSBs 2021-03-08 08:53:56 +01:00
masayuki.harada
c9906d1a70 Merge remote-tracking branch 'remotes/oai/NR_SA_F1AP_RFSIMULATOR3' into NR_SA_F1AP_RFSIMULATOR3_Lo
# Conflicts:
#	openair2/LAYER2/nr_pdcp/nr_pdcp_entity_drb_am.c
#	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
2021-03-08 13:43:39 +09:00
rmagueta
99711020bd Update generate_nr_prach after receiving RA-Msg2 at UE 2021-03-06 20:13:14 +00:00
Florian Kaltenberger
deb19f19fa Revert "temporarily enabling beamforming also for FR1 + some logs (revert this commit before MR)"
This reverts commit 87a8a94ae9.
2021-03-05 21:09:38 +01:00
francescomani
287e6078e2 ssb slot computation from starting symbol in sib1 function 2021-03-05 15:36:43 +01:00
Raymond Knopp
347dec4fff Merge branch 'fft_bench_hotfix' of https://gitlab.eurecom.fr/oai/openairinterface5g into fft_bench_hotfix 2021-03-05 15:33:55 +01:00
Xue Song
c273a9d356 fix problem about CU/DU c-plane failed 2021-03-05 19:43:42 +09:00
Xue Song
834d6f1055 Merge branch 'master' into NR_SA_F1AP_RFSIMULATOR3_Lo
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-softmodem.c
	executables/nr-uesoftmodem.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity_drb_am.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
	openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
2021-03-05 19:07:43 +09:00
rmagueta
ba8c14debc Update RA succeeded procedures 2021-03-04 19:58:11 +00:00
Raymond Knopp
40fd1296a3 FFT unitary simulator compilation fix 2021-03-04 19:21:54 +01:00
francescomani
8756a56121 tentative fix for scheduling multiple sib1 instances 2021-03-04 17:48:10 +01:00
rmagueta
cfd5adcc84 Segmentation fault prevention in RA-Msg2 2021-03-04 16:11:44 +00:00
hardy
1ac13d90e4 typo fix 2021-03-04 16:44:32 +01:00
francescomani
18b1218779 reworking of MAC functions to schedule SSBs, including VRB map occupation and get_type0_PDCCH_CSS_config_parameters 2021-03-04 14:32:41 +01:00
Laurent THOMAS
3b1b74cfd2 starting 2021-03-04 13:22:14 +01:00
wf
d6763661be du-cu tested ok 2021-03-04 19:30:49 +08:00
knopp
055d582403 Update oai_dfts.c 2021-03-04 11:49:07 +01:00
wf
44d40219f2 modify fro comments, no warning now 2021-03-04 16:42:20 +08:00
Francesco Mani
1eb4438742 bugfix in csirs vrb map occupation 2021-03-04 09:02:09 +01:00
rmagueta
245f1e066f Improvements in RA-Msg4 2021-03-04 01:23:56 +00:00
rmagueta
ab3794e62c Improvements in RA-Msg2 2021-03-03 20:16:14 +00:00
luis_pereira87
bb0507a846 Revert code from commit fc9b781c 2021-03-03 16:03:18 +00:00
hardy
c25da4b3aa update of HTML report 2021-03-03 15:33:58 +01:00
luis_pereira87
efd1f46f1f Fix Msg4 mcsIndex assignment 2021-03-03 12:12:39 +00:00
hardy
c8d26ad5b2 Merge remote-tracking branch 'origin/rh_ci_ra_fr2' into ci_test_ra_fr2 2021-03-03 11:05:24 +01:00
luis_pereira87
c457cf6455 Msg2 temporary fix for PDSCH time domain resource allocation (use the same as SIB1 from TS 38.214 Table 5.1.2.1.1-2) 2021-03-03 10:01:35 +00:00
luis_pereira87
d0b9146cd0 Msg4 transmitted from MAC to RRC through ITTI (TASK_RRC_NRUE created) 2021-03-03 01:27:50 +00:00
luis_pereira87
d1c56742d3 Msg4 transmitted with UE Contention Resolution Identity and with RRCSetup 2021-03-03 00:11:07 +00:00
rmagueta
abb894be6b Draft RA-Msg4 at gNB 2021-03-02 20:20:11 +00:00
matzakos
4d685a0036 Proper separation of handling DCCH SRB1 and DTCH LCIDs at MAC gNB
-Remove redundant calls to mac_rlc_data_ind for DTCH case
2021-03-02 20:15:46 +01:00
rmagueta
ce5b59c938 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-03-02 12:58:32 +00:00
Sakthivel Velumani
76acfbf993 Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-03-01 23:50:57 +01:00
Sakthivel Velumani
1a7a086480 Passing symbolStart to fill_dmrs_mask
Adding missed changes in previous commit
2021-03-01 23:50:16 +01:00
luis_pereira87
ca5eb17f28 Fix SIB1 with offsetToPointA = 86 2021-03-01 22:18:51 +00:00
Sakthivel Velumani
75cad822c5 Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-03-01 20:47:54 +01:00
Sakthivel Velumani
240f411fed Passing symbolStart to fill_dmrs_mask
It is sufficient to pass l_d directly to the function but considering future extension to mapping type B, this way makes more sense.
2021-03-01 20:41:02 +01:00
rmagueta
e5aba9eda1 Fix RA-Msg3 to logical channel CCCH 2021-03-01 19:23:43 +00:00
rmagueta
deef82d70b Fix RA-Msg3 to logical channel CCCH 2021-03-01 19:23:23 +00:00
luis_pereira87
ee9210c69b Correction proposal for HARQ when ULSCH is not received 2021-03-01 11:22:39 +00:00
luis_pereira87
f18db2bad8 Update SIB1 with q_RxLevMin to -65 and MCC and MNC to match SIM card values 2021-03-01 10:32:12 +00:00
francescomani
4e6fb20fe9 adding symbol based vrb map for csirs 2021-03-01 09:15:23 +01:00
Laurent Thomas
9ce7f94518 record/replay for 5G, nrscope bug fix 2021-02-28 21:39:53 +01:00
Laurent Thomas
f5a22a7426 Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-02-28 11:06:02 +01:00
rmagueta
fc9b781c2a Avoid multiple transmissions in the RA-Msg4 slot 2021-02-26 20:15:06 +00:00
matzakos
1e8a23f519 Resolve remaining conflict from merge in CMakelists 2021-02-26 20:31:19 +01:00
matzakos
09652d2910 Add sample configuration files for preliminary NR SA monolithic and CU/DU split deployment options 2021-02-26 13:06:26 +01:00
matzakos
20805c1314 Remove confusing mixed SRB/DRB functions for SRB addition in RLC
- SRB addition is now done through add_srb, add_srb_am functions
2021-02-26 13:01:17 +01:00
matzakos
e186134061 Preliminary work for separation of SRB from DRB handling in RLC
-For the moment SRBs are preconfigured (as was done for DRBs in noS1 mode)
but this should be removed
2021-02-26 12:11:01 +01:00
rmagueta
eb17629d34 nr_generate_Msg4 support for multiple RA procedures 2021-02-26 00:51:03 +00:00
Raymond Knopp
14379074a7 added TDD configuration information to F1-Setup-Request based on the configuration file contents.. Corrected some bugs in F1AP encoding for TDD. 2021-02-25 23:44:29 +01:00
francescomani
1541a6b808 fix for ssb preamble index association in rrc configuration 2021-02-25 16:24:28 +01:00
rmagueta
6a16fe9e3f Fix issues caused by merge of branch develop 2021-02-25 14:57:53 +00:00
rmagueta
cf70265ba6 Merge remote-tracking branch 'origin/develop' into develop-SA-CBRA
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
2021-02-25 13:03:06 +00:00
rmagueta
c8fbcdf7b9 Minor fix 2021-02-25 12:47:23 +00:00
francescomani
9afb19858a Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-02-25 12:04:24 +01:00
luis_pereira87
adaf5a721c Define Initial BWP with the same locationAndBandwidth as Coreset0 defined by PDCCHConfigSIB1 in MIB 2021-02-25 10:56:08 +00:00
Raymond Knopp
6b5a47081f filling in some missing information in F1-Setup-Request 2021-02-25 11:54:38 +01:00
Laurent Thomas
77806538a7 Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-02-25 10:55:59 +01:00
Xue Song
b6febe214f add GTPV1U_GNB_TUNNEL_DATA_REQ and UDP_DATA_IND
if the UE is running with noS1, u-plane for rfsim with Free5GC + CU/DU is OK
2021-02-25 14:00:14 +09:00
Raymond Knopp
32b74d2f38 nr-softmodem compilation after merge with develop 2021-02-25 01:00:34 +01:00
Raymond Knopp
4d9ebf0ac0 Merge remote-tracking branch 'origin/develop' into NR_SA_F1AP_RFSIMULATOR2
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-softmodem.c
	executables/nr-uesoftmodem.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_entity_drb_am.c
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair3/NGAP/ngap_gNB.c
	openair3/NGAP/ngap_gNB_nas_procedures.c
2021-02-24 23:00:04 +01:00
Raymond Knopp
11c3a26414 Merge remote-tracking branch 'origin/develop' into oairu
Conflicts:
	openair2/RRC/LTE/rrc_eNB.c
2021-02-24 21:52:14 +01:00
rmagueta
d1ba40cc56 Fix RA-Msg2 to Initial BWP 2021-02-24 19:34:53 +00:00
rmagueta
2060cf45bb Fix RA-Msg4 to Initial BWP 2021-02-24 18:49:00 +00:00
rmagueta
aacf75b298 Transmission and reception of a fake RA-Msg4 2021-02-24 02:54:53 +00:00
Laurent Thomas
8e5ee096e1 Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-02-23 16:25:26 +01:00
rmagueta
48811d0f34 Merge branch 'develop' into develop-SA-CBRA
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
2021-02-23 13:29:53 +00:00
Raymond Knopp
d5cff2c3c3 nfapi_setmode dummy for oairu exectuable 2021-02-23 14:07:12 +01:00
Laurent Thomas
92e90c2c4f Merge branch 'develop-SA-CBRA' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-SA-CBRA 2021-02-23 13:58:18 +01:00
Laurent Thomas
9d72f65e9c small fix 2021-02-23 13:58:14 +01:00
Raymond Knopp
a6e16e7c8a Merge remote-tracking branch 'origin/develop' into oairu 2021-02-23 11:51:29 +01:00
Raymond Knopp
9f35010ea3 changes for multi-RRU OTA synch 2021-02-23 10:19:05 +01:00
rmagueta
31cf9ab847 Fix ra->rnti 2021-02-23 02:22:27 +00:00
Raymond Knopp
596b54bcbe synchronization for oairu 2021-02-22 21:47:12 +01:00
rmagueta
495ba8920d Merge branch 'develop-SA-RA' into develop-SA-CBRA 2021-02-22 16:35:06 +00:00
francescomani
465529ce45 adapting scheduling csirs for multi UE (to be verified) 2021-02-22 17:04:40 +01:00
francescomani
ba02f61f28 Merge remote-tracking branch 'origin/develop' into NR_scheduling_CSIRS 2021-02-22 16:30:49 +01:00
rmagueta
23695a52d7 Fix stored node 2021-02-22 14:30:04 +00:00
rmagueta
a613617737 Fix preamble shift at gNB for RA works with all preambles 2021-02-21 04:05:29 +00:00
Robert Schmidt
305902da42 Correctly allocate memory for NR measurement array 2021-02-20 15:43:02 +01:00
Raymond Knopp
f8e6e1fd85 bugfix in PHR, addition of configuration parameters for MAC scheduler 2021-02-19 21:57:54 +01:00
luis_pereira87
22fa28e7fe Merge remote-tracking branch 'origin/enhance-rfsim' into develop-SA-CBRA 2021-02-19 16:18:22 +00:00
rmagueta
edccb98691 First draft implementation of CBRA 2021-02-17 20:16:03 +00:00
Raymond Knopp
7fa5d4188f added include to suppress warning 2021-02-17 18:41:23 +01:00
Raymond Knopp
b193771387 12-bit frequency-domain equalizer LUT. fix for log2_maxh in ULSCH receiver 2021-02-17 15:34:49 +01:00
Xue Song
bd765c7505 C-plane for rfsim with Free5GC + CU/DU separation is OK 2021-02-16 14:14:55 +09:00
Xue Song
5918c03cd4 add nrue nas task 2021-02-16 14:14:46 +09:00
Laurent Thomas
abfa103247 fix re-reading and end marker code 2021-02-15 10:54:35 +01:00
Raymond Knopp
d77f9ad096 build oairu ok 2021-02-15 08:13:15 +01:00
Raymond Knopp
a135f261b2 adjust includes for oairu target. Now test X-Ysoftmodem on another machine 2021-02-14 17:59:28 +01:00
Raymond Knopp
7b4c1eae33 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2021-02-14 14:06:18 +01:00
Raymond Knopp
b67a3502b8 commit before merge 2021-02-14 14:06:05 +01:00
Raymond Knopp
5b865df202 fixed for oairu target after merge with develop 2021-02-14 14:05:16 +01:00
Raymond Knopp
5ed79a27de Merge remote-tracking branch 'origin/develop' into oairu 2021-02-14 07:18:13 +01:00
francescomani
63f264a3d7 quickfix for fr2 xlsch bitmap 2021-02-12 11:20:57 +01:00
francescomani
cb296fa050 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-02-11 18:15:12 +01:00
Raymond Knopp
a30eabbe21 OTA testing 4G, configuration parameters for fairRR scheduler and common parameters for both fairRR and default 2021-02-11 13:43:25 +01:00
Raymond Knopp
37ef411c2e traces for fairRR scheduler 2021-02-10 14:14:29 +01:00
Xue Song
e1a92eadba Merge branch 'master' into develop_SA_rfsim_for_F1
Conflicts:
	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair3/NGAP/ngap_gNB.c
	openair3/NGAP/ngap_gNB_nas_procedures.c
2021-02-10 15:56:50 +09:00
He Shanyun
01999cfcc7 fix build error of enb and ittisim 2021-02-10 01:07:02 +00:00
yincong
c416e545e2 fix problems about rfsim noS1 2021-02-09 19:01:34 +09:00
Raymond Knopp
199ce8ac55 fixed segfault in ulsim when trials > 1000 2021-02-08 20:58:48 +01:00
Raymond Knopp
4d47e3da96 IF4p5 testing. seems to work again with fixes after merge with develop 2021-02-08 15:27:37 +01:00
francescomani
58ad2bf06f Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-02-08 12:05:06 +01:00
Laurent Thomas
fa63d9a4e6 merge develop 2021-02-08 11:56:42 +01:00
Raymond Knopp
1bf9ea6d23 fixed NR build issues after merge with develop 2021-02-07 22:01:41 +01:00
Raymond Knopp
846c67b9bd Merge remote-tracking branch 'origin/develop' into oairu
Conflicts:
	openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
2021-02-07 18:23:46 +01:00
Raymond Knopp
d06018d1e3 Merge branch 'four_antenna_eNB' into oairu 2021-02-07 17:46:23 +01:00
Raymond Knopp
7a169947da Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2021-02-07 17:41:57 +01:00
Raymond Knopp
008f9060a1 unitary simulators tested 2021-02-07 14:14:28 +01:00
Raymond Knopp
edff477050 reduced 5G memory limits for CI 2021-02-07 09:40:22 +01:00
Raymond Knopp
addd891a2f testing on outdoor network 2021-02-06 14:55:13 +01:00
hardy
23134fba77 adding test update + conf file for RA FR2 2021-02-05 15:39:20 +01:00
Xue Song
4cc81b0025 fix the problem that DL failed after merge 'master' branch 2021-02-05 11:59:54 +09:00
Raphael Defosseux
b3341ed1ca CI: fix false negative in HTML report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-02-04 15:19:02 +01:00
Raphael Defosseux
b81b6181e0 CI: migrating to oairu target on RRU machines
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-02-04 14:59:08 +01:00
Xue Song
52edf0c123 Merge branch 'master' into develop_SA_rfsim_for_F1
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
	openair2/F1AP/f1ap_cu_interface_management.c
	openair2/F1AP/f1ap_cu_rrc_message_transfer.c
	openair2/F1AP/f1ap_cu_task.c
	openair2/F1AP/f1ap_du_interface_management.c
	openair2/F1AP/f1ap_du_task.c
	openair2/GNB_APP/gnb_app.c
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
	openair2/RRC/NR/L2_nr_interface.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/L2_interface_ue.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair3/NGAP/ngap_gNB.c
2021-02-04 18:16:37 +09:00
francescomani
4d2c80e418 fix dlsim compilation 2021-02-04 09:59:09 +01:00
francescomani
28cb2c6c77 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-02-04 08:26:32 +01:00
Xue Song
1dd6b3b2a0 fix some warnings 2021-02-04 11:30:44 +09:00
Raymond Knopp
2e59e05b66 set eNB->use_DTX=1, TM2 now works again. Need to fix this option when multiple TX antenna ports are used 2021-02-02 23:20:20 +01:00
Raymond Knopp
4a4636d202 more minor changes 2021-02-02 20:58:29 +01:00
Raymond Knopp
6ae26ee6dc minor changes after merge 2021-02-02 20:45:46 +01:00
Raymond Knopp
4e9afb30b0 Merge remote-tracking branch 'origin/develop' into oairu 2021-02-02 12:09:56 +01:00
Raymond Knopp
3cb6892987 CU/DU tested with phoenix + B38 RRU (CU and DU via lo) 2021-02-02 11:15:13 +01:00
Laurent Thomas
7eda2b7409 remainign bug after merge develop 2021-02-01 15:35:17 +01:00
Laurent Thomas
6b37681854 merge develop, minor code addition 2021-02-01 09:02:57 +01:00
Xue Song
1721e82ed0 add F1AP Rel16 asn file 2021-02-01 14:12:18 +09:00
Raymond Knopp
849c5e0c86 F1_SETUP tested 2021-01-31 21:46:58 +01:00
Raymond Knopp
9a71d5550e build of eNB/gNB/UE/nrUE 2021-01-30 23:27:25 +01:00
Raymond Knopp
579a573b90 unitary simulations build 2021-01-30 22:34:16 +01:00
Raymond Knopp
78f14bc9a4 fixed build for oairu executable. tested with sirius/phoenix 2021-01-28 21:53:24 +01:00
Xue Song
cf3694be28 modify the f1 establishment process 2021-01-28 16:35:10 +09:00
Raymond Knopp
616eb6700f NR RSRP/RSRQ conversion routines 2021-01-27 23:40:34 +01:00
Raymond Knopp
89657f20e6 testing with N310 4x4 eNB 20 MHz 2021-01-27 21:03:47 +01:00
Robert Schmidt
28cd23887e Update NR Measurements periodically, remove rsrq typo 2021-01-27 15:43:48 +01:00
laurent
4b345f1589 tested with one UE, better intergration with legacy gtpu 2021-01-27 15:09:00 +01:00
Raymond Knopp
184f095384 bugfix in EN-DC measurement reporting trace collection 2021-01-27 11:56:11 +01:00
Raphael Defosseux
e16f769174 CI: try to optimize the file system usage when building in the CI VM env. Increased the VM memory of one to allow linking
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-01-26 15:33:22 +01:00
Raymond Knopp
f04846cf4f 2 and 4 antenna testing with ulsim functional. >=3 dB gains from 2 to 4 antennas on SCM channels 2021-01-26 13:25:07 +01:00
Xue Song
874246b3f9 fix the problem of f1ap setup response message encoding error 2021-01-26 18:07:13 +09:00
francescomani
a05cf8c8e8 Merge branch 'NR_FAPI_beamindex_SSB_RO' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FAPI_beamindex_SSB_RO 2021-01-25 18:14:27 +01:00
francescomani
30b41ba107 fix in TA update at gNB 2021-01-25 18:13:58 +01:00
Francesco Mani
0c61ee543e Update gnb.band257.tm1.32PRB.usrpn300.conf 2021-01-25 14:37:47 +01:00
Laurent Thomas
954b0f559d new gtp before tests 2021-01-25 12:59:38 +01:00
francescomani
bf028e8867 fix in a config file for RA 2021-01-25 12:33:37 +01:00
Raymond Knopp
bbe6db03dd removed some cppcheck errors 2021-01-25 10:36:54 +01:00
francescomani
0451854429 bugfix 2021-01-25 10:30:45 +01:00
Raymond Knopp
9f52fd4ae7 removed warnings on lte-softmodem compilation 2021-01-25 10:02:15 +01:00
Xue Song
d9934436c3 fix some cppcheck errors 2021-01-25 14:26:39 +09:00
Raymond Knopp
86cab23b74 fixed build with --mu 2021-01-24 22:23:33 +01:00
Raymond Knopp
e82ef88e72 builds are succesful (eNB,UE,gNB,nrUE,physim) 2021-01-24 13:27:10 +01:00
Raymond Knopp
5294bc4fe3 warnings and unitary simulation bulding 2021-01-23 15:04:11 +01:00
Raymond Knopp
ef1fb827b5 Merge remote-tracking branch 'origin/develop' into oairu 2021-01-23 09:17:37 +01:00
Sakthivel Velumani
fd3333a27b Flaging that HARQ feedback has been sent
so that in the next frame when the same harq is not used the UE won't send feedback (this was a bug)
2021-01-23 09:00:05 +01:00
Xue Song
84d3cfb12f fix some warnings 2021-01-22 18:24:28 +09:00
Xue Song
76cb132f2d u-plane is ok 2021-01-22 15:44:18 +09:00
Raymond Knopp
c15f67c7f2 mutex unlock after cond_signal 2021-01-22 07:26:13 +01:00
Sakthivel Velumani
51e77fd00f Added pucch stats along with ulsch one 2021-01-21 16:33:10 +01:00
Laurent Thomas
06366787ae Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into new-gtpu 2021-01-21 15:51:34 +01:00
Laurent Thomas
75ad3da9d9 start new gtpu 2021-01-21 15:51:30 +01:00
Sakthivel Velumani
6b5f8ff2fa Diabled more logs in UE 2021-01-21 15:36:51 +01:00
Raymond Knopp
ed10f077cf bug in uci stats handling 2021-01-21 13:45:33 +01:00
Raymond Knopp
f8aa85644f bugfix in UCI statistics 2021-01-21 11:51:40 +01:00
Raymond Knopp
1ed284add5 bugfix in UECapability parsin 2021-01-21 10:03:48 +01:00
Raymond Knopp
ea59a774fe gtwave traces 2021-01-21 09:31:20 +01:00
francescomani
a4243b6e90 Merge branch 'NR_FAPI_beamindex_SSB_RO' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FAPI_beamindex_SSB_RO 2021-01-21 08:52:58 +01:00
francescomani
b42b884d77 fix in do SIB1 for FR2 2021-01-21 08:52:54 +01:00
Xue Song
4c1e47405f update F1AP to R16.3.1 2021-01-21 14:56:22 +09:00
Sakthivel Velumani
a406f320f2 Disabled some log messages 2021-01-20 15:24:45 +01:00
Sakthivel Velumani
69373e22d5 Reverted last commit and fixed merge
Reverted commit e0b1f61235
removed a merge conflict error
2021-01-20 12:35:58 +01:00
Xue Song
73ff5dec81 modify INITIAL_UL_RRC_MESSAGE_TRANSFER
fix build errors about nrUE
c-plane is ok
2021-01-20 15:13:49 +09:00
Sakthivel Velumani
b8795d3824 Merge branch 'develop' into NR_FAPI_beamindex_SSB_RO
Fixed merge conflicts.
2021-01-19 20:58:10 +01:00
Sakthivel Velumani
af4242b508 UE writes to USRP only on tx slots
Removed the hardcoding of fixed tdd and replaced with tdd config from mac configuration
2021-01-19 16:20:50 +01:00
Sakthivel Velumani
e0b1f61235 Removing RX_NB_TH from odd places
I removed this from places where I felt it shouldn't be. Not sure why was it there in the first place.
To be reviewed.
2021-01-19 14:28:37 +01:00
Raymond Knopp
241726e343 minor changes for logging 2021-01-19 14:14:57 +01:00
Xue Song
4ea8b38d37 c-plane is ok 2021-01-19 18:19:59 +09:00
Raymond Knopp
1b23148ea2 bugfix in RRC stats file creation 2021-01-18 12:08:24 +01:00
Raymond Knopp
ce71c40903 added RRC stats 2021-01-18 09:56:26 +01:00
Xue Song
133ecd52fa msg1/2/3/4/5 is ok 2021-01-16 18:00:03 +09:00
Xue Song
02e8add383 Merge branch 'develop_SA_rfsim_for_F1' of http://10.37.193.133:8000/gitlab/vran/OAI-5GNR into develop_SA_rfsim_for_F1 2021-01-15 19:58:31 +09:00
Xue Song
01a87a1fba split gNB into CU and DU 2021-01-15 19:57:26 +09:00
Raymond Knopp
a7ac979a57 stats adjustment 2021-01-14 23:32:52 +01:00
Raymond Knopp
db90feea53 PDCP throughput statistics in log 2021-01-14 23:16:14 +01:00
Raymond Knopp
c3a9d018a8 PDCP statistics logs, ulsim updates after recent changes 2021-01-14 14:19:25 +01:00
shono.takafumi
45305763b1 split gNB into CU and DU 2021-01-14 16:46:06 +09:00
Wang
5e8a48fcc7 Update nr_gold_ue.c 2021-01-13 11:06:16 +01:00
francescomani
dcc1a46286 pdusize type to accomodate new beamforming and precoding structures 2021-01-13 11:03:55 +01:00
Raymond Knopp
cef18a8f1c :Merge remote-tracking branch 'origin/develop' into oairu 2021-01-12 22:45:28 +01:00
Raymond Knopp
50c70bc316 writing L1/L2 stats to files rather than screen 2021-01-12 13:51:04 +01:00
Xue Song
28168f1369 fix build errors 2021-01-12 07:14:19 +00:00
Xue Song
d923011ec8 change NR_RRC_DCCH_DATA_REQ in nr_rrc_data_req to RRC_DCCH_DATA_REQ 2021-01-12 05:59:01 +00:00
Xue Song
e0419baeb3 Merge branch 'ngap-wf-1120-srb' into develop_SA_rfsim_for_F1
Conflicts:
        cmake_targets/CMakeLists.txt
        openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
        openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
        openair1/SCHED_NR/phy_procedures_nr_gNB.c
        openair2/RRC/NR/rrc_gNB.c
        openair2/RRC/NR_UE/rrc_UE.c
        openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
        openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
        openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
        openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
        openair2/LAYER2/NR_MAC_gNB/main.c
        openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
        openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
        openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
        openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
        openair2/LAYER2/nr_pdcp/nr_pdcp_entity_drb_am.c
2021-01-12 05:37:09 +00:00
Raymond Knopp
672ae1e3a2 added nr/eutra-nr request to first UECapabilityEnquiry message 2021-01-10 11:40:22 +01:00
Raymond Knopp
630b609db9 level shifting on RX for X300/N300, reduced to give ~25 dB noise level in eNB RX
2 ANT TX/RX for USRP, updates
2021-01-09 10:32:02 +01:00
Raymond Knopp
2368633642 testing of LTE with 2x2 20 MHz TDD on N310. Modifications in pipelined threading 2021-01-09 07:13:13 +01:00
Xue Song
bc2b462ea4 fix eNB compile error 2021-01-07 18:48:53 +09:00
Wu.Jing
e2d26d2a44 Merge branch 'master' into develop_SA_F1 2021-01-07 13:56:32 +09:00
Raymond Knopp
6b5e4e924d added usrp-tx-thread to lte modem 2021-01-06 11:07:54 +01:00
Raymond Knopp
09a63cb998 logging and unitary compilations 2021-01-05 22:46:41 +01:00
Florian Kaltenberger
a597412edd Merge remote-tracking branch 'origin/NR_FR2_RA' into NR_FAPI_beamindex_SSB_RO 2021-01-04 14:05:07 +01:00
Raymond Knopp
7cbf24d36c updates for tracing 2021-01-03 12:28:24 +01:00
Raymond Knopp
1b95baaf4c update F1AP to R16.3.1. testing with OTA eNB 2021-01-01 21:45:23 +01:00
Raymond Knopp
d00b966d14 finishing mere with constant_power branch. Testing OTA. 2020-12-29 08:15:36 +01:00
Raymond Knopp
49efcebeec Merge remote-tracking branch 'origin/constant_power' into oairu 2020-12-26 13:11:20 +01:00
Raymond Knopp
b596e2abd2 added definition of usrp_tx_thread in oairu exectuable 2020-12-25 16:55:29 +01:00
Raymond Knopp
8d3e20cab7 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2020-12-25 16:19:57 +01:00
Raymond Knopp
7620fe9b2d minor changes for oairu executabl 2020-12-25 16:19:41 +01:00
Raymond Knopp
881ac5491c merge with develop 2020-12-25 16:18:24 +01:00
Raymond Knopp
79d0f7774f added missing files 2020-12-24 16:14:56 +01:00
Raymond Knopp
7185b95591 debugging with AW2S RRU. Added statistics for ULSCH/UCI in PHY and MAC. 2020-12-24 16:10:03 +01:00
Raymond Knopp
9edd67b216 Merge remote-tracking branch 'origin/develop' into oairu 2020-12-24 14:53:58 +01:00
Xue Song
b0a76fd662 add du handle f1ap setup response 2020-12-24 02:58:29 +00:00
Xue Song
1fcd879f97 modify F1 Setup Response
add rrc_gNB_process_f1_setup_req
2020-12-23 10:03:04 +00:00
Xue Song
1cc09da83f Merge branch 'develop_SA_L3' into develop_SA_F1
Conflicts:
	openair2/GNB_APP/gnb_config.c
	openair2/RRC/NR/rrc_gNB.c
2020-12-23 15:11:17 +09:00
Xue Song
cb0d7c3dd5 modify F1 Setup Request 2020-12-23 01:58:17 +00:00
Xue Song
f09c6fbd0d Add RCconfig_NR_DU_F1
Initialize F1AP
2020-12-22 01:29:23 +00:00
Xue Song
8d5f99d088 fix the problem of ittiSIM compilation error 2020-12-21 16:12:58 +09:00
Xue Song
d0be64cbd0 add DU_handle_F1_SETUP_FAILURE 2020-12-21 01:50:28 +00:00
Xue Song
08511b8207 fix some warnings
modify some issues
add f1ap ue context procedure
2020-12-20 08:59:50 +00:00
Florian Kaltenberger
568885ec4f harmonizing config files 2020-12-18 16:51:13 +01:00
Florian Kaltenberger
2f30ed68ba UE only calls trx_write in UL slots when used with USRP. This improves real-time performance and is necessary for controlling the external switch. However, we still need to take the proper TDD config into account (tbd). 2020-12-18 13:31:23 +01:00
Xue Song
ec29831e16 modify F1AP_DL_RRC_MESSAGE in RRC
add DU_handle_DL_NR_RRC_MESSAGE_TRANSFER
2020-12-18 11:17:12 +00:00
Xue Song
7b859b7238 add F1AP_DL_RRC_MESSAGE in NR RRC 2020-12-18 03:06:08 +00:00
Francesco Mani
70e87bfd13 moving initialization of gold for pdcch to nr_init_ue 2020-12-17 14:18:19 +01:00
Francesco Mani
b1e2c99b93 moving initialization of gold for pdsch to nr_init_ue 2020-12-17 13:09:32 +01:00
Xue Song
5936c80b0b RRCSetup docking with F1AP 2020-12-17 08:35:24 +00:00
Xue Song
45ec62f963 read config about f1 2020-12-17 05:50:57 +00:00
Francesco Mani
53140df8d3 rnti in pucch 0 indication 2020-12-16 15:05:03 +01:00
Francesco Mani
55ef82cc9a another workaround to make the UE transmit MSG3 2020-12-15 16:51:04 +01:00
Francesco Mani
f67dd8eb04 controlling availability of beam for msg3 2020-12-15 16:02:42 +01:00
Francesco Mani
627f4f88d7 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2020-12-15 12:11:51 +01:00
Francesco Mani
4b021014da scheduling msg2 in fr2 according to beam 2020-12-15 11:31:04 +01:00
Francesco Mani
48ad90bc33 correction in ssb beam association at mac 2020-12-15 11:30:13 +01:00
Francesco Mani
9b6c7ba46d correction in ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR 2020-12-15 08:43:26 +01:00
Francesco Mani
78c5cd5a62 beam tdd association for ssb 2020-12-14 15:39:41 +01:00
Francesco Mani
10a98de7ef fix for ssb vrb map in fr2 2020-12-14 13:13:38 +01:00
Francesco Mani
f87c979465 new mac array for tdd-beam association in FR2 2020-12-11 17:48:33 +01:00
Florian Kaltenberger
908c8999ec Merge remote-tracking branch 'origin/NR_FR2_RA' into NR_FAPI_beamindex_SSB_RO 2020-12-10 14:51:43 +01:00
Florian Kaltenberger
373cd5fc1d Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2020-12-10 14:50:23 +01:00
Raymond Knopp
f659694eab Merge remote-tracking branch 'origin/develop-oriecpriupdates' into constant_power 2020-12-03 16:22:36 +01:00
Raymond Knopp
0571020666 minor modifications in T_defs.h and for constant power (i.e. no DTX in TX subframes for TDD) 2020-12-03 10:44:12 +01:00
Raymond Knopp
895f54a938 added no_DTX function to eNB. This fills the TX subframes which have no PDSCH with a fake pdsch. It avoids switching between TX/RX in TDD systems during the DL periods. 2020-12-02 20:15:38 +01:00
Francesco Mani
45da2fd17e fix printf k in csirs 2020-11-27 17:23:32 +01:00
Florian Kaltenberger
d1809c05d7 changing SSB bitmap to not transmit SSB in slot 1 where it conflicts with PDSCH 2020-11-20 16:52:44 +01:00
Florian Kaltenberger
18e6a4a8fc changing PUCCH RB allocation 2020-11-20 16:52:06 +01:00
Florian Kaltenberger
0816a98dfd fixing a small bug 2020-11-20 16:51:48 +01:00
Francesco Mani
1ebc9a64e0 uci mac functions in a new file 2020-11-20 15:29:37 +01:00
Florian Kaltenberger
53d5189073 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2020-11-19 16:26:42 +01:00
Francesco Mani
b05bfa04db fix segmentation fault in csi-rs 2020-11-16 14:18:43 +01:00
Florian Kaltenberger
87a8a94ae9 temporarily enabling beamforming also for FR1 + some logs (revert this commit before MR) 2020-11-11 22:07:06 +01:00
Florian Kaltenberger
4c6a9fa82e some fixes 2020-11-11 22:06:45 +01:00
Florian Kaltenberger
174372ede0 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2020-11-10 21:46:52 +01:00
Francesco Mani
f7827a1d2b fix for dword length in csi rs 2020-11-10 16:39:41 +01:00
Francesco Mani
ef4adce1e5 using cell id as scrambling id for csi-rs 2020-11-10 14:14:44 +01:00
Francesco Mani
e7a3cb295e uint in corr for pucch rx 2020-11-09 18:13:35 +01:00
Francesco Mani
74f8337fe1 cherry-picking changes for cri-rsrp bitlen from TCI_UCI branch 2020-11-03 10:33:18 +01:00
Francesco Mani
e8d4d6a138 change in RRC for csi rsrp 2020-11-02 19:10:17 +01:00
Francesco Mani
23164bd8ae bugfixes in handling csirs in fapi functions 2020-10-27 10:58:22 +01:00
Francesco Mani
a83dc45c68 changes in logging for CSI RS and cleaning some other logging 2020-10-27 10:48:22 +01:00
Francesco Mani
cea71b473c fixes for csi-rs amplitude 2020-10-22 10:46:04 +02:00
Francesco Mani
dde3e87938 handling csirs and calling the phy function 2020-10-21 17:28:12 +02:00
Francesco Mani
1894cf1ea4 including vrb map in csi function 2020-10-21 11:44:52 +02:00
Francesco Mani
40d637938d MAC function to schedule CSI-RS 2020-10-21 10:19:36 +02:00
Francesco Mani
0768dda232 first rrc config of CSI_RS resource 2020-10-20 10:53:35 +02:00
Florian Kaltenberger
6103c758d1 handling beamforming also for PDSCH 2020-10-20 07:22:55 +02:00
Florian Kaltenberger
8e6e814d35 adapting msg2&3 scheduling to FR2 beamforming constraints 2020-10-19 13:57:56 +02:00
Florian Kaltenberger
60062cecfb adding beamforming support to FAPI: MAC fills ssb_beam_id_list in ssb config. PHY uses this info to fill new beam_id field. This is further copied to RU and applied there. Nothing is tested so far. 2020-10-19 13:36:00 +02:00
Florian Kaltenberger
d4c1e25079 fixing beamforming in FAPI. Adding beam_id to FAPI in SSB and msg2 scheduling. 2020-10-18 21:22:33 +02:00
magounak
1698f9e20f isolation of RU (no use of RC.xxx) 2020-07-13 08:00:59 +02:00
Raymond Knopp
26da5a6286 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2020-06-30 08:11:11 +02:00
Raymond Knopp
c21df3b6f3 small fix for threadPool initialization when we use the full pipelining mode (RU_L1_TRX_SPLIT) 2020-06-30 08:08:33 +02:00
Raymond Knopp
72e57baa09 worker acivation 2020-06-18 23:53:48 +02:00
Raymond Knopp
b675c0c7b1 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2020-06-18 19:31:17 +02:00
Raymond Knopp
b3489a7e0a testing oairu (RCC side) 2020-06-18 19:30:36 +02:00
magounak
ec11548526 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2020-06-18 19:29:46 +02:00
magounak
a93deb3813 testing of standlone oairu 2020-06-18 19:26:06 +02:00
Raphael Defosseux
196ba803aa fix typos and compilation errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-18 10:17:06 +02:00
Raymond Knopp
f33278ac52 activated ru_threads 2020-06-17 20:52:39 +02:00
Raymond Knopp
e109f83bb9 Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu 2020-06-17 20:39:44 +02:00
Raymond Knopp
187561a1c2 commit before merge 2020-06-17 20:39:29 +02:00
magounak
d1a4911428 bug fixes in main 2020-06-17 20:36:16 +02:00
Raymond Knopp
695cb5f0cd configuration fix 2020-06-17 19:03:28 +02:00
Raymond Knopp
e97122f5ea added configuration file parsing to oairu 2020-06-17 17:52:46 +02:00
Raymond Knopp
e99ad54b66 added missing file 2020-06-17 12:49:56 +02:00
Raymond Knopp
103168a047 standalone RRU executable initial testing version 2020-06-17 09:55:26 +02:00
776 changed files with 71172 additions and 26480 deletions

0
CHANGELOG.md Normal file → Executable file
View File

0
LICENSE Normal file → Executable file
View File

36
charts/physims/Chart.yaml Normal file
View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-physim
description: A Helm chart for physical simulators 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 Simulators
- RAN
- 4G
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-dlsim
description: A Helm subchart for dlsim 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
- dlsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-dlsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-dlsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-dlsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-dlsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-dlsim.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.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.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-dlsim.labels" -}}
helm.sh/chart: {{ include "oai-dlsim.chart" . }}
{{ include "oai-dlsim.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.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-dlsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-dlsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-dlsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-dlsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-dlsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-dlsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-dlsim
# volumeMounts:
# - mountPath: /opt/oai-dlsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015100" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-dlsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-dlsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-dlsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-dlsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-ldpctest
description: A Helm subchart for ldpctest 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
- ldpctest
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-ldpctest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-ldpctest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-ldpctest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-ldpctest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ldpctest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-ldpctest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-ldpctest.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-ldpctest
# volumeMounts:
# - mountPath: /opt/oai-ldpctest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015102" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ldpctest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-ldpctest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-ldpctest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-ldpctest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-ldpctest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-dlschsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-dlschsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-dlschsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-dlschsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlschsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-dlschsim
# volumeMounts:
# - mountPath: /opt/oai-nr-dlschsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015106" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlschsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-dlschsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-dlschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-dlsim
description: A Helm subchart for nr-dlsim 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-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-dlsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-dlsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-dlsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-dlsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim.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.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.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim.chart" . }}
{{ include "oai-nr-dlsim.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.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-dlsim
# volumeMounts:
# - mountPath: /opt/oai-nr-dlsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015105" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-dlsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-dlsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-pbchsim
description: A Helm subchart for nr-pbchsim 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-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-pbchsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-pbchsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-pbchsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-pbchsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim.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.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.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim.chart" . }}
{{ include "oai-nr-pbchsim.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.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pbchsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-pbchsim
# volumeMounts:
# - mountPath: /opt/oai-nr-pbchsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015104" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pbchsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-pbchsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-pbchsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-prachsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-prachsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-prachsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-prachsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-prachsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-prachsim
# volumeMounts:
# - mountPath: /opt/oai-nr-prachsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015112" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-prachsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-prachsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-prachsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-pucchsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-pucchsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-pucchsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-pucchsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pucchsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-pucchsim
# volumeMounts:
# - mountPath: /opt/oai-nr-pucchsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015109" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pucchsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-pucchsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-pucchsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-ulschsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-ulschsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-ulschsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-ulschsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulschsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-ulschsim
# volumeMounts:
# - mountPath: /opt/oai-nr-ulschsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015108" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulschsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-ulschsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-ulschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-ulsim
description: A Helm subchart for nr-ulsim 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-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-ulsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-ulsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-ulsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-ulsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim.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.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.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim.chart" . }}
{{ include "oai-nr-ulsim.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.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-ulsim
# volumeMounts:
# - mountPath: /opt/oai-nr-ulsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015111" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-ulsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-ulsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-polartest
description: A Helm subchart for polartest 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
- polartest
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-polartest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-polartest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-polartest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-polartest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-polartest.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-polartest.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-polartest.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" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-polartest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-polartest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-polartest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-polartest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-polartest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-polartest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-polartest.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-polartest
# volumeMounts:
# - mountPath: /opt/oai-polartest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015103" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-polartest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-polartest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-polartest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-polartest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-smallblocktest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-smallblocktest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-smallblocktest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-smallblocktest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* 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

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-smallblocktest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-smallblock
# volumeMounts:
# - mountPath: /opt/oai-smallblocktest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015107" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-smallblocktest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-smallblocktest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-smallblocktest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-ulsim
description: A Helm subchart for ulsim 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
- ulsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-ulsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-ulsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-ulsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-ulsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-ulsim.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-ulsim.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-ulsim.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" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-ulsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-ulsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-ulsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ulsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-ulsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-ulsim.selectorLabels" . | nindent 8 }}
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 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-ulsim
# volumeMounts:
# - mountPath: /opt/oai-ulsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015101" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ulsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-ulsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-ulsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-ulsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# 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-ulsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
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

@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: {{ .Chart.Name }}-{{ .Values.global.namespace }}-rbac
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: {{ .Values.global.serviceAccountName }}
namespace: {{ .Values.global.namespace }}

View File

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

View File

@@ -0,0 +1,84 @@
# 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-ran-tmp"
image:
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: TAG
## Declaring values specific to coressponding physim to overwrite
dlsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
ulsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
ldpctest:
replicaCount: 1
service:
type: ClusterIP
port: 80
polartest:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-pbchsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-dlsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-dlschsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
smallblocktest:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-ulschsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-pucchsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-ulsim:
replicaCount: 1
service:
type: ClusterIP
port: 80
nr-prachsim:
replicaCount: 1
service:
type: ClusterIP
port: 80

View File

@@ -27,6 +27,9 @@ def nodeExecutor = params.nodeExecutor
def doMandatoryTests = false
def doFullTestsuite = false
//
def gitCommitAuthorEmailAddr
pipeline {
agent {
label nodeExecutor
@@ -152,21 +155,64 @@ pipeline {
}
}
}
stage ("CppCheck Analysis") {
steps {
script {
triggerSlaveJob ('RAN-cppcheck', 'CppCheck Analysis')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-cppcheck')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
}
}
stage ("Image Test Processes") {
parallel {
stage ("Physical Simulators") {
when { expression {doMandatoryTests} }
steps {
script {
triggerSlaveJob ('RAN-PhySim-Cluster', 'Test-Physim-Cluster')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-PhySim-Cluster')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
}
}
}
post {
always {
script {
def eSubject = JOB_NAME + ' - Build # ' + BUILD_ID + ' - ' + currentBuild.result + '!'
def eBody = "Hi,\n\n"
eBody += "Here are attached HTML report files for " + JOB_NAME + " - Build # " + BUILD_ID + " - " + currentBuild.result + "!\n\n"
eBody += "Regards,\n"
eBody += "OAI CI Team"
emailext attachmentsPattern: '*results*.html',
body: '''Hi,
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Regards,
OAI CI Team''',
body: eBody,
replyTo: 'no-reply@openairinterface.org',
subject: '$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!',
subject: eSubject,
to: gitCommitAuthorEmailAddr
if (fileExists('.git/CI_COMMIT_MSG')) {

View File

@@ -0,0 +1,45 @@
#!/bin/groovy
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
// Location of the python executor node shall be in the same subnet as the others servers
def pythonExecutor = params.pythonExecutor
pipeline {
agent {
label pythonExecutor
}
stages {
stage ("gDashboard") {
steps {
script {
//retrieve MR data from gitlab and export to gSheet
sh returnStdout: true, script: 'python3 ci-scripts/ran_dashboard.py'
}
}
}
}
}

View File

@@ -30,8 +30,6 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def doFlexranCtrlTest = false
// Location of the executor node
def nodeExecutor = params.nodeExecutor
@@ -66,9 +64,6 @@ pipeline {
echo "Platform is ${env.TESTPLATFORM_OWNER}"
}
if (params.FlexRanRtcGitLabRepository_Credentials != null) {
doFlexranCtrlTest = true
}
if (fileExists("flexran")) {
sh "rm -Rf flexran > /dev/null 2>&1"
}
@@ -141,15 +136,13 @@ pipeline {
// For the moment, there is no fail criteria. Just a notification of number of files that do not follow
sh "./ci-scripts/checkCodingFormattingRules.sh"
}
if (doFlexranCtrlTest && doMandatoryTests) {
// With Mosaic 5G being part of OSA and making all it's repositories public
// No need to pass credentials to clone flexran-rtc
if (doMandatoryTests) {
sh "mkdir flexran"
dir ('flexran') {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.FlexRanRtcGitLabRepository_Credentials}", usernameVariable: 'git_username', passwordVariable: 'git_password']
]) {
sh "git clone https://${git_username}:${git_password}@gitlab.eurecom.fr/flexran/flexran-rtc.git . > ../git_clone.log 2>&1"
sh "git checkout develop >> ../git_clone.log 2>&1"
}
sh "git clone https://gitlab.eurecom.fr/flexran/flexran-rtc.git . > ../git_clone.log 2>&1"
sh "git checkout develop >> ../git_clone.log 2>&1"
sh "zip -r -qq flexran.zip ."
}
}
@@ -196,16 +189,6 @@ pipeline {
}
}
stage ("Start VM -- phy-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- enb-ethernet") {
steps {
lock (vmResource) {
@@ -224,33 +207,14 @@ pipeline {
}
}
}
}
}
stage ("Start VM -- cppcheck") {
steps {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Variant Builds") {
parallel {
stage ("Analysis with cppcheck") {
steps {
gitlabCommitStatus(name: "Analysis with cppcheck") {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
stage ("Build basic simulator") {
steps {
gitlabCommitStatus(name: "Build basic-sim") {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 45, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -259,7 +223,7 @@ pipeline {
stage ("Build 5G gNB-USRP") {
steps {
gitlabCommitStatus(name: "Build gNB-USRP") {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 45, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -268,25 +232,16 @@ pipeline {
stage ("Build 5G NR-UE-USRP") {
steps {
gitlabCommitStatus(name: "Build nr-UE-USRP") {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 45, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build physical simulators") {
steps {
gitlabCommitStatus(name: "Build phy-sim") {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build eNB-ethernet") {
steps {
gitlabCommitStatus(name: "Build eNB-ethernet") {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 45, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -297,7 +252,7 @@ pipeline {
// This is typically the last one to finish.
lock (vmResource) {
gitlabCommitStatus(name: "Build UE-ethernet") {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 45, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -315,9 +270,9 @@ pipeline {
script {
dir ('archives') {
if (fileExists('red_hat')) {
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nr_ue_usrp red_hat"
sh "zip -r -qq vm_build_logs.zip basic_sim enb_eth ue_eth gnb_usrp nr_ue_usrp red_hat"
} else {
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nr_ue_usrp"
sh "zip -r -qq vm_build_logs.zip basic_sim enb_eth ue_eth gnb_usrp nr_ue_usrp"
}
}
if(fileExists('archives/vm_build_logs.zip')) {
@@ -325,16 +280,6 @@ pipeline {
}
if ("MERGE".equals(env.gitlabActionType)) {
sh "./ci-scripts/oai-ci-vm-tool report-build --workspace $WORKSPACE --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
// If the merge request has introduced more CPPCHECK errors or warnings, notifications in GitLab
if (fileExists('oai_cppcheck_added_errors.txt')) {
def ret=readFile('./oai_cppcheck_added_errors.txt').trim();
if ("0".equals(ret)) {
echo "No added cppcheck warnings/errors in this merge request"
} else {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Some modified files in Merge Request MAY have INTRODUCED up to " + ret + " CPPCHECK errors/warnings"
addGitLabMRComment comment: message
}
}
// If the merge request has introduced compilation warnings, notifications in GitLab
sh "./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
def res=readFile('./oai_warning_files.txt').trim();
@@ -361,29 +306,9 @@ pipeline {
parallel {
stage ("VM-based tests") {
stages {
stage ("Test physical simulators") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 90, unit: 'MINUTES') {
try {
gitlabCommitStatus(name: "Test phy-sim") {
sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
} catch (Exception e) {
currentBuild.result = 'FAILURE'
}
}
}
}
}
}
stage ("Build Flexran Controller") {
when {
expression {doFlexranCtrlTest && doMandatoryTests}
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
@@ -745,7 +670,7 @@ pipeline {
script {
if (doMandatoryTests) {
dir ('archives') {
sh "if [ -d basic_sim/test ] || [ -d phy_sim/test ] || [ -d l2_sim/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi"
sh "if [ -d basic_sim/test ] || [ -d rf_sim/test ] || [ -d l2_sim/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi"
}
if(fileExists('archives/vm_tests_logs.zip')) {
archiveArtifacts artifacts: 'archives/vm_tests_logs.zip'

View File

@@ -0,0 +1,233 @@
#!/bin/groovy
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// Location of the executor node
def pythonExecutor = params.pythonExecutor
// Location of the test XML file to be run
def testXMLFile = params.pythonTestXmlFile
def mainPythonAllXmlFiles = ""
def buildStageStatus = true
// Name of the test stage
def testStageName = params.pipelineTestStageName
// Name of the resource
def ciEpcResource = params.epcResource
// Global Parameters. Normally they should be populated when the master job
// triggers the slave job with parameters
def eNB_Repository
def eNB_Branch
def eNB_CommitID
def eNB_AllowMergeRequestProcess = false
def eNB_TargetBranch
// Flags
def scmEvent = false
def upstreamEvent = false
//-------------------------------------------------------------------------------
// Pipeline start
pipeline {
agent {
label pythonExecutor
}
options {
disableConcurrentBuilds()
timestamps()
ansiColor('xterm')
lock(ciEpcResource)
}
stages {
stage ('Verify Parameters') {
steps {
script {
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
JOB_TIMESTAMP = sh returnStdout: true, script: 'date --utc --rfc-3339=seconds | sed -e "s#+00:00##"'
JOB_TIMESTAMP = JOB_TIMESTAMP.trim()
def allParametersPresent = true
// It is already to late to check it
if (params.pythonExecutor != null) {
echo "eNB CI executor node : ${pythonExecutor}"
}
// If not present picking a default Stage Name
if (params.pipelineTestStageName == null) {
// picking default
testStageName = 'Template Test Stage'
}
if (params.smartphonesResource == null) {
allParametersPresent = false
}
if (params.eNB_IPAddress == null) {
allParametersPresent = false
}
if (params.eNB_SourceCodePath == null) {
allParametersPresent = false
}
if (params.eNB_Credentials == null) {
allParametersPresent = false
}
// the following 4 parameters should be pushed by the master trigger
// if not present, take the job GIT variables (used for developing)
if (params.eNB_Repository == null) {
eNB_Repository = env.GIT_URL
} else {
eNB_Repository = params.eNB_Repository
}
echo "eNB_Repository : ${eNB_Repository}"
if (params.eNB_Branch == null) {
eNB_Branch = env.GIT_BRANCH
} else {
eNB_Branch = params.eNB_Branch
}
echo "eNB_Branch : ${eNB_Branch}"
if (params.eNB_CommitID == null) {
eNB_CommitID = env.GIT_COMMIT
} else {
eNB_CommitID = params.eNB_CommitID
}
echo "eNB_CommitID : ${eNB_CommitID}"
if (params.eNB_mergeRequest != null) {
eNB_AllowMergeRequestProcess = params.eNB_mergeRequest
if (eNB_AllowMergeRequestProcess) {
if (params.eNB_TargetBranch != null) {
eNB_TargetBranch = params.eNB_TargetBranch
} else {
eNB_TargetBranch = 'develop'
}
echo "eNB_TargetBranch : ${eNB_TargetBranch}"
}
}
if (params.EPC_IPAddress == null) {
allParametersPresent = false
}
if (params.EPC_Type == null) {
allParametersPresent = false
}
if (params.EPC_SourceCodePath == null) {
allParametersPresent = false
}
if (params.EPC_Credentials == null) {
allParametersPresent = false
}
if (params.ADB_IPAddress == null) {
allParametersPresent = false
}
if (params.ADB_Credentials == null) {
allParametersPresent = false
}
if (params.OC_Credentials == null) {
allParametersPresent = false
}
if (params.OC_ProjectName == null) {
allParametersPresent = false
}
if (allParametersPresent) {
echo "All parameters are present"
if (eNB_AllowMergeRequestProcess) {
sh "git fetch"
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${eNB_Branch} --src-commit ${eNB_CommitID} --target-branch ${eNB_TargetBranch} --target-commit latest"
} else {
sh "git fetch"
sh "git checkout -f ${eNB_CommitID}"
}
} else {
echo "Some parameters are missing"
sh "./ci-scripts/fail.sh"
}
}
}
}
stage ("Deploy and Test") {
steps {
script {
dir ('ci-scripts') {
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
// If not present picking a default XML file
if (params.pythonTestXmlFile == null) {
// picking default
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
echo "Test XML file(default): ${testXMLFile}"
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
} else {
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
echo "Test XML file : ${xmlFile}"
}
}
}
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.OC_Credentials}", usernameVariable: 'OC_Username', passwordVariable: 'OC_Password']
]) {
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile} --OCUserName=${OC_Username} --OCPassword=${OC_Password} --OCProjectName=${OC_ProjectName}"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false
}
}
}
sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
}
}
}
}
}
stage ("Log Collection") {
steps {
script {
dir ('ci-scripts') {
// Zipping all archived log files
sh "zip -r -qq physim_deploytest_logs_${env.BUILD_ID}.zip physim_test_logs_*/*"
sh "rm -rf physim_test_logs_*/"
if (fileExists("physim_deploytest_logs_${env.BUILD_ID}.zip")) {
archiveArtifacts artifacts: "physim_deploytest_logs_${env.BUILD_ID}.zip"
}
if (fileExists("test_results.html")) {
sh "mv test_results.html test_results-${env.JOB_NAME}.html"
sh "sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's@build #TEMPLATE_BUILD_ID@build #${BUILD_ID}@' -e 's#Build-ID: TEMPLATE_BUILD_ID#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_STAGE_NAME#${testStageName}#' test_results-${JOB_NAME}.html"
archiveArtifacts artifacts: "test_results-${env.JOB_NAME}.html"
}
}
}
}
}
}
}

View File

@@ -0,0 +1,304 @@
#!/bin/groovy
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
// Location of the python executor node shall be in the same subnet as the others servers
def pythonExecutor = params.pythonExecutor
// Location of the test XML file to be run
def testXMLFile = params.pythonTestXmlFile
def mainPythonAllXmlFiles = ""
def buildStageStatus = true
// Name of the test stage
def testStageName = params.pipelineTestStageName
// Name of the phone resource
def ciSmartPhonesResource1 = params.SmartPhonesResource1
def ciSmartPhonesResource2 = params.SmartPhonesResource2
// Global Parameters. Populated when the master job
// triggers the slave job with parameters
def eNB_Repository = "https://gitlab.eurecom.fr/oai/openairinterface5g.git"
def eNB_Branch = "develop"
def eNB_CommitID
def eNB_AllowMergeRequestProcess = false
def eNB_TargetBranch = "develop"
def eNB_MR = "develop"
pipeline {
agent {
label pythonExecutor
}
options {
disableConcurrentBuilds()
ansiColor('xterm')
lock(extra: [[resource: ciSmartPhonesResource2]], resource: ciSmartPhonesResource1)
}
stages {
stage("Build Init") {
steps {
script {
//retrieve latest commit ID from branch
latest_commit_from_branch= sh returnStdout: true, script: 'git log -1 origin/${eNB_Branch} | grep commit'
echo "Branch ${eNB_Branch}"
echo "${latest_commit_from_branch}"
tmp=latest_commit_from_branch.split()
echo "${tmp}"
eNB_CommitID = tmp[1]
echo "eNB_CommitID ${eNB_CommitID}"
// update the build name and description
buildName "${params.eNB_MR}"
buildDescription "Commit : ${eNB_CommitID}"
}
}
}
stage ("Verify Parameters") {
steps {
script {
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
def allParametersPresent = true
// It is already to late to check it
if (params.pythonExecutor != null) {
echo "eNB CI executor node : ${pythonExecutor}"
}
// If not present picking a default Stage Name
if (params.pipelineTestStageName == null) {
// picking default
testStageName = 'Template Test Stage'
}
if (params.SmartPhonesResource1 == null) {
allParametersPresent = false
}
if (params.SmartPhonesResource2 == null) {
allParametersPresent = false
}
// 1st eNB parameters
if (params.eNB_IPAddress == null) {
allParametersPresent = false
}
if (params.eNB_SourceCodePath == null) {
allParametersPresent = false
}
if (params.eNB_Credentials == null) {
allParametersPresent = false
}
// 2nd eNB parameters
if (params.eNB1_IPAddress == null) {
allParametersPresent = false
}
if (params.eNB1_SourceCodePath == null) {
allParametersPresent = false
}
if (params.eNB1_Credentials == null) {
allParametersPresent = false
}
// 3rd eNB parameters
if (params.eNB2_IPAddress == null) {
allParametersPresent = false
}
if (params.eNB2_SourceCodePath == null) {
allParametersPresent = false
}
if (params.eNB2_Credentials == null) {
allParametersPresent = false
}
// the following 4 parameters should be pushed by the master trigger
// if not present, take the job GIT variables (used for developing)
if (params.eNB_Repository == null) {
eNB_Repository = env.GIT_URL
} else {
eNB_Repository = params.eNB_Repository
}
echo "eNB_Repository : ${eNB_Repository}"
if (params.eNB_Branch == null) {
eNB_Branch = env.GIT_BRANCH
} else {
eNB_Branch = params.eNB_Branch
}
echo "eNB_Branch : ${eNB_Branch}"
//if (params.eNB_CommitID == null) {
// eNB_CommitID = env.GIT_COMMIT
//} else {
// eNB_CommitID = params.eNB_CommitID
//}
echo "eNB_CommitID : ${eNB_CommitID}"
if (params.eNB_AllowMergeRequestProcess!= null) {
eNB_AllowMergeRequestProcess = params.eNB_AllowMergeRequestProcess
if (eNB_AllowMergeRequestProcess) {
if (params.eNB_TargetBranch != null) {
eNB_TargetBranch = params.eNB_TargetBranch
} else {
eNB_TargetBranch = 'develop'
}
echo "eNB_TargetBranch : ${eNB_TargetBranch}"
}
}
if (params.EPC_IPAddress == null) {
allParametersPresent = false
}
if (params.EPC_Type == null) {
allParametersPresent = false
}
if (params.EPC_SourceCodePath == null) {
allParametersPresent = false
}
if (params.EPC_Credentials == null) {
allParametersPresent = false
}
if (params.ADB_IPAddress == null) {
allParametersPresent = false
}
if (params.ADB_Credentials == null) {
allParametersPresent = false
}
if (allParametersPresent) {
echo "All parameters are present"
if (eNB_AllowMergeRequestProcess) {
sh "git fetch"
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${eNB_Branch} --src-commit ${eNB_CommitID} --target-branch ${eNB_TargetBranch} --target-commit latest"
} else {
sh "git fetch"
sh "git checkout -f ${eNB_CommitID}"
}
} else {
echo "Some parameters are missing"
sh "./ci-scripts/fail.sh"
}
}
}
}
stage ("Build and Test") {
steps {
script {
dir ('ci-scripts') {
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
// If not present picking a default XML file
if (params.pythonTestXmlFile == null) {
// picking default
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
echo "Test XML file(default): ${testXMLFile}"
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
} else {
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
echo "Test XML file : ${xmlFile}"
}
}
}
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB1_Credentials}", usernameVariable: 'eNB1_Username', passwordVariable: 'eNB1_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB2_Credentials}", usernameVariable: 'eNB2_Username', passwordVariable: 'eNB2_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
]) {
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
sh "python3 main.py --mode=TesteNB --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --eNB1IPAddress=${params.eNB1_IPAddress} --eNB1UserName=${eNB1_Username} --eNB1Password=${eNB1_Password} --eNB1SourceCodePath=${params.eNB1_SourceCodePath} --eNB2IPAddress=${params.eNB2_IPAddress} --eNB2UserName=${eNB2_Username} --eNB2Password=${eNB2_Password} --eNB2SourceCodePath=${params.eNB2_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false
}
}
}
sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
}
}
}
}
}
stage('Log Collection') {
parallel {
stage('Log Collection (eNB - Build)') {
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
]) {
echo '\u2705 \u001B[32mLog Collection (eNB - Build)\u001B[0m'
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
echo '\u2705 \u001B[32mLog Transfer (eNB - Build)\u001B[0m'
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
}
script {
if(fileExists("build.log.${env.BUILD_ID}.zip")) {
archiveArtifacts "build.log.${env.BUILD_ID}.zip"
}
}
}
}
stage('Log Collection (eNB - Run)') {
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
]) {
echo '\u2705 \u001B[32mLog Collection (eNB - Run)\u001B[0m'
sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
echo '\u2705 \u001B[32mLog Transfer (eNB - Run)\u001B[0m'
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/enb.log.zip ./enb.log.${env.BUILD_ID}.zip || true"
}
script {
if(fileExists("enb.log.${env.BUILD_ID}.zip")) {
archiveArtifacts "enb.log.${env.BUILD_ID}.zip"
}
if(fileExists("ci-scripts/test_results.html")) {
sh "mv ci-scripts/test_results.html test_results-${JOB_NAME}.html"
sh "sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's@build #TEMPLATE_BUILD_ID@build #${BUILD_ID}@' -e 's#Build-ID: TEMPLATE_BUILD_ID#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_STAGE_NAME#${testStageName}#' test_results-${JOB_NAME}.html"
archiveArtifacts "test_results-${JOB_NAME}.html"
}
}
}
}
}
}
}
post {
always {
script {
if (params.pipelineZipsConsoleLog != null) {
if (params.pipelineZipsConsoleLog) {
echo "Archiving Jenkins console log"
sh "wget --no-check-certificate --no-proxy ${env.JENKINS_URL}/job/${env.JOB_NAME}/${env.BUILD_ID}/consoleText -O consoleText.log || true"
sh "zip -m consoleText.log.${env.BUILD_ID}.zip consoleText.log || true"
if(fileExists("consoleText.log.${env.BUILD_ID}.zip")) {
archiveArtifacts "consoleText.log.${env.BUILD_ID}.zip"
}
}
}
}
}
}
}

View File

@@ -33,10 +33,9 @@ def buildStageStatus = true
// Name of the test stage
def testStageName = params.pipelineTestStageName
// Name of the phone resource
// Name of the phone/server resource
def ciSmartPhonesResource1 = params.SmartPhonesResource1
def ciSmartPhonesResource2 = params.SmartPhonesResource2
def ciSmartPhonesResource3 = params.SmartPhonesResource3
// Global Parameters. Normally they should be populated when the master job
// triggers the slave job with parameters
@@ -53,7 +52,7 @@ pipeline {
options {
disableConcurrentBuilds()
ansiColor('xterm')
lock(extra: [[resource: ciSmartPhonesResource2],[resource: ciSmartPhonesResource3]], resource: ciSmartPhonesResource1)
lock(extra: [[resource: ciSmartPhonesResource2]], resource: ciSmartPhonesResource1)
}
stages {
stage("Build Init") {
@@ -85,9 +84,6 @@ pipeline {
if (params.SmartPhonesResource2 == null) {
allParametersPresent = false
}
if (params.SmartPhonesResource3== null) {
allParametersPresent = false
}
// 1st eNB parameters
if (params.eNB_IPAddress == null) {
allParametersPresent = false

View File

@@ -36,8 +36,8 @@ pipeline {
stage ("Launcher") {
steps {
script {
//retrieve MR that are opened nd with tag READY_TO_BE_MERGED
MR_LIST= sh returnStdout: true, script: 'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=READY_TO_BE_MERGED" | jq ".[].iid" || true '
//retrieve MR that are opened nd with tag NSA
MR_LIST= sh returnStdout: true, script: 'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=NSA" | jq ".[].iid" || true '
echo "List of selected MR:\n${MR_LIST}"
def MR_ARRAY = MR_LIST.split('\n')
//for every selected MR, retrieve the branch name and the latest commit
@@ -48,21 +48,30 @@ pipeline {
COMMIT_ID=COMMIT_ID.trim()
echo "Testing NSA on : ${MR} ${SRC_BRANCH} ${COMMIT_ID}"
//calling NSA sub job
build job: "RAN-CI-NSA-B210", wait : false, propagate : false, parameters: [
string(name: 'eNB_MR', value: String.valueOf(MR)),
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
//calling Benetel sub job
build job: "RAN-CI-BENETEL", wait : false, propagate : false, parameters: [
build job: "RAN-NSA-Mini-Module", wait : true, propagate : false, parameters: [
string(name: 'eNB_MR', value: String.valueOf(MR)),
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
//calling NSA long sub job
// build job: "RAN-NSA-Mini-Module-Long", wait : true, propagate : false, parameters: [
// string(name: 'eNB_MR', value: String.valueOf(MR)),
// string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
// string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
// string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
// booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
// ]
//calling NSA attach/detach job
// build job: "RAN-NSA-Mini-Module-Attach-Detach", wait : true, propagate : false, parameters: [
// string(name: 'eNB_MR', value: String.valueOf(MR)),
// string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
// string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
// string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
// booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
// ]
}
}
}

View File

@@ -41,7 +41,7 @@ import constants as CONST
#-----------------------------------------------------------
def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM):
py_param_file_present = False
@@ -80,6 +80,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
HTML.ranRepository=matchReg.group(1)
ldpc.ranRepository=matchReg.group(1)
CONTAINERS.ranRepository=matchReg.group(1)
SCA.ranRepository=matchReg.group(1)
PHYSIM.ranRepository=matchReg.group(1)
elif re.match('^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE)
@@ -92,6 +94,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
RAN.ranAllowMerge=True
HTML.ranAllowMerge=True
CONTAINERS.ranAllowMerge=True
SCA.ranAllowMerge=True
PHYSIM.ranAllowMerge=True
elif re.match('^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
@@ -102,6 +106,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
HTML.ranBranch=matchReg.group(1)
ldpc.ranBranch=matchReg.group(1)
CONTAINERS.ranBranch=matchReg.group(1)
SCA.ranBranch=matchReg.group(1)
PHYSIM.ranBranch=matchReg.group(1)
elif re.match('^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE)
@@ -112,6 +118,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
HTML.ranCommitID=matchReg.group(1)
ldpc.ranCommitID=matchReg.group(1)
CONTAINERS.ranCommitID=matchReg.group(1)
SCA.ranCommitID=matchReg.group(1)
PHYSIM.ranCommitID=matchReg.group(1)
elif re.match('^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE)
@@ -122,12 +130,16 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
HTML.ranTargetBranch=matchReg.group(1)
ldpc.ranTargetBranch=matchReg.group(1)
CONTAINERS.ranTargetBranch=matchReg.group(1)
SCA.ranTargetBranch=matchReg.group(1)
PHYSIM.ranTargetBranch=matchReg.group(1)
elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBIPAddress=matchReg.group(1)
ldpc.eNBIpAddr=matchReg.group(1)
CONTAINERS.eNBIPAddress=matchReg.group(1)
SCA.eNBIPAddress=matchReg.group(1)
PHYSIM.eNBIPAddress=matchReg.group(1)
elif re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1IPAddress=matchReg.group(1)
@@ -142,6 +154,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
RAN.eNBUserName=matchReg.group(1)
ldpc.eNBUserName=matchReg.group(1)
CONTAINERS.eNBUserName=matchReg.group(1)
SCA.eNBUserName=matchReg.group(1)
PHYSIM.eNBUserName=matchReg.group(1)
elif re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1UserName=matchReg.group(1)
@@ -156,6 +170,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
RAN.eNBPassword=matchReg.group(1)
ldpc.eNBPassWord=matchReg.group(1)
CONTAINERS.eNBPassword=matchReg.group(1)
SCA.eNBPassword=matchReg.group(1)
PHYSIM.eNBPassword=matchReg.group(1)
elif re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1Password=matchReg.group(1)
@@ -170,6 +186,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
RAN.eNBSourceCodePath=matchReg.group(1)
ldpc.eNBSourceCodePath=matchReg.group(1)
CONTAINERS.eNBSourceCodePath=matchReg.group(1)
SCA.eNBSourceCodePath=matchReg.group(1)
PHYSIM.eNBSourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1SourceCodePath=matchReg.group(1)
@@ -239,6 +257,15 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
finalStatus = matchReg.group(1)
if ((finalStatus == 'true') or (finalStatus == 'True')):
CiTestObj.finalStatus = True
elif re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCUserName = matchReg.group(1)
elif re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCPassword = matchReg.group(1)
elif re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCProjectName = matchReg.group(1)
else:
HELP.GenericHelp(CONST.Version)
sys.exit('Invalid Parameter: ' + myArgv)

View File

@@ -0,0 +1,7 @@
#!/bin/bash
while true
do
echo "gNB will be started automatically..."
sleep 1
sudo .././cmake_targets/ran_build/build/nr-softmodem -E -O ../targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
done

View File

@@ -1,216 +0,0 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
function usage {
echo "OAI RedHat Build Check script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
echo " buildOnRH.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
echo ""
echo " --remote-host #### OR -rh ####"
echo " Specify the RedHat remote server."
echo ""
echo " --remote-user-name #### OR -ru ####"
echo " Specify the RedHat remote server username."
echo ""
echo " --remote-password #### OR -rp ####"
echo " Specify the RedHat remote server password."
echo ""
echo " --remote-path #### OR -ra ####"
echo " Specify the RedHat remote server path to work on."
echo ""
}
if [ $# -lt 1 ] || [ $# -gt 14 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
RH_HOST=XX
RH_USER=XX
RH_PASSWD=XX
RH_PATH=XX
JOB_NAME=XX
BUILD_ID=XX
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-jn|--job-name)
JOB_NAME="$2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
shift
shift
;;
-ws|--workspace)
JENKINS_WKSP="$2"
shift
shift
;;
-rh|--remote-host)
RH_HOST="$2"
shift
shift
;;
-ru|--remote-user-name)
RH_USER="$2"
shift
shift
;;
-rp|--remote-password)
RH_PASSWD="$2"
shift
shift
;;
-ra|--remote-path)
RH_PATH="$2"
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
if [ ! -f $JENKINS_WKSP/localZip.zip ]
then
echo "Missing localZip.zip file!"
exit 1
fi
if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ] || [ "$RH_HOST" == "XX" ] || [ "$RH_USER" == "XX" ] || [ "$RH_PASSWD" == "XX" ] || [ "$RH_PATH" == "XX" ]
then
echo "Missing options"
usage
exit 1
fi
echo "############################################################"
echo "Copying GIT repo into RedHat Server"
echo "############################################################"
echo "rm -Rf ${RH_PATH}" >> rh-cmd.txt
echo "mkdir -p ${RH_PATH}" >> rh-cmd.txt
sshpass -p ${RH_PASSWD} ssh -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST} < rh-cmd.txt
rm -f rh-cmd.txt
echo "############################################################"
echo "Running install and build script on RedHat Server"
echo "############################################################"
sshpass -p ${RH_PASSWD} scp -o 'StrictHostKeyChecking no' $JENKINS_WKSP/localZip.zip ${RH_USER}@${RH_HOST}:${RH_PATH}
echo "cd ${RH_PATH}" > rh-cmd.txt
echo "unzip -qq localZip.zip" >> rh-cmd.txt
echo "source oaienv" >> rh-cmd.txt
echo "cd cmake_targets" >> rh-cmd.txt
echo "mkdir -p log" >> rh-cmd.txt
echo "./build_oai -I -w USRP --eNB > log/install-build.txt 2>&1" >> rh-cmd.txt
sshpass -p ${RH_PASSWD} ssh -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST} < rh-cmd.txt
rm -f rh-cmd.txt
echo "############################################################"
echo "Creating a tmp folder to store results and artifacts"
echo "############################################################"
if [ ! -d $JENKINS_WKSP/archives ]
then
mkdir -p $JENKINS_WKSP/archives
fi
ARCHIVES_LOC=$JENKINS_WKSP/archives/red_hat
if [ ! -d $ARCHIVES_LOC ]
then
mkdir -p $ARCHIVES_LOC
fi
sshpass -p ${RH_PASSWD} scp -o 'StrictHostKeyChecking no' ${RH_USER}@${RH_HOST}:${RH_PATH}/cmake_targets/log/*.txt $ARCHIVES_LOC
echo "############################################################"
echo "Checking build status"
echo "############################################################"
LOG_PATTERN=.Rel15.txt
NB_PATTERN_FILES=7
LOG_FILES=`ls $ARCHIVES_LOC/*.txt`
STATUS=0
NB_FOUND_FILES=0
for FULLFILE in $LOG_FILES
do
if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
then
filename=$(basename -- "$FULLFILE")
PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
fi
done
if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]
then
echo "Expecting $NB_PATTERN_FILES log files and found $NB_FOUND_FILES"
STATUS=-1
fi
echo "COMMAND: build_oai -I -w USRP --eNB" > $ARCHIVES_LOC/build_final_status.log
if [ $STATUS -eq 0 ]
then
echo "BUILD_OK" >> $ARCHIVES_LOC/build_final_status.log
echo "STATUS seems OK"
else
echo "BUILD_KO" >> $ARCHIVES_LOC/build_final_status.log
echo "STATUS failed?"
fi
exit $STATUS

View File

@@ -62,7 +62,7 @@ function build_on_vm {
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "BUILD_OPTIONS = $BUILD_OPTIONS"
if [[ "$VM_NAME" == *"-enb-usrp"* ]]
if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]]
then
echo "This VM type is no longer supported in the pipeline framework"
return

View File

@@ -1,15 +1,15 @@
ranRepository : https://gitlab.eurecom.fr/oai/openairinterface5g.git
ranBranch : BRANCH_NAME
ranCommitID : COMMIT_ID
ranAllowMerge : 'true'
ranBranch : integration_2021_wk13_a
ranCommitID : 104aa7eed5d6702c1b9da663414079ef698da206
ranAllowMerge : 'yes'
ranTargetBranch : develop
steps:
- InitiateHtml,none
- TesteNB,xml_files/fr1_multi_node_build.xml
- TesteNB,xml_files/fr1_epc_start.xml
- TesteNB,xml_files/fr1_ran_ue_base.xml #ue toggle, nodes initialize, ue toggle, ping, nodes terminate
- TesteNB,xml_files/fr1_nsa_base_next.xml #ue toggle, nodes initialize, ue toggle, ping, nodes terminate
- TesteNB,xml_files/fr1_epc_closure.xml

View File

@@ -76,8 +76,8 @@ then
do
IS_NFAPI=`echo $FILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext" || true`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FILE || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FILE || true`
IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair3/NAS/COMMON/milenage.h" || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence|License-Identifier: BSD-2-Clause" $FILE || true`
IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h" || true`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
@@ -197,8 +197,8 @@ do
then
IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext" || true`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FULLFILE || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FULLFILE || true`
IS_EXCEPTION=`echo $FULLFILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair3/NAS/COMMON/milenage.h" || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence|License-Identifier: BSD-2-Clause" $FULLFILE || true`
IS_EXCEPTION=`echo $FULLFILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h" || true`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]

86
ci-scripts/ci_ctl_qtel.py Normal file
View File

@@ -0,0 +1,86 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Required Python Version
# Python 3.x
#
#---------------------------------------------------------------------
#usage example:
#sudo python3 ci_ctl_qtel.py /dev/ttyUSB2 wup
#sudo python3 ci_ctl_qtel.py /dev/ttyUSB2 detach
import sys
import time
import serial
class qtel_ctl:
#---------------
#private methods
#---------------
def __init__(self, usb_port_at):
self.QUECTEL_USB_PORT_AT = usb_port_at #ex : '/dev/ttyUSB2'
self.modem = serial.Serial(self.QUECTEL_USB_PORT_AT, timeout=1)
self.cmd_dict= {"wup": self.wup,"detach":self.detach}#dictionary of function pointers
def __set_modem_state(self,ser,state):
self.__send_command(ser,"AT+CFUN={}\r".format(state))
def __send_command(self,ser,com):
ser.write(com.encode())
time.sleep(0.1)
ret=[]
while ser.inWaiting()>0:
print("waiting")
msg=ser.readline()
msg=msg.decode("utf-8")
msg=msg.replace("\r","")
msg=msg.replace("\n","")
print(msg)
if msg!="":
ret.append(msg)
else:
print("msg empty")
return ret
#--------------
#public methods
#--------------
def wup(self):#sending AT+CFUN=0, then AT+CFUN=1
self.__set_modem_state(self.modem,'0')
time.sleep(3)
self.__set_modem_state(self.modem,'1')
def detach(self):#sending AT+CFUN=0
self.__set_modem_state(self.modem,'0')
if __name__ == "__main__":
#argv[1] : usb port
#argv[2] : qtel command (see function pointers dict "wup", "detach" etc ...)
command = sys.argv[2]
Module=qtel_ctl(sys.argv[1])
#calling the function to be applied
Module.cmd_dict[command]()

View File

@@ -0,0 +1,49 @@
idefix:
ID: idefix
State : enabled
Kind : quectel
Process :
Name : quectel-CM
Cmd : /home/oaicicd/quectel-CM/quectel-CM -s oai.ipv4 -4
WakeupScript : ci_ctl_qtel.py /dev/ttyUSB2 wup
DetachScript : ci_ctl_qtel.py /dev/ttyUSB2 detach
LogStore : /media/usb-drive/ci_qlogs
PLMN : 22201
UENetwork : wwan0
HostIPAddress : 192.168.18.188
HostUsername : oaicicd
HostPassword : oaicicd
HostSourceCodePath : none
nrmodule2_quectel:
ID: nrmodule2_quectel
State : enabled
Kind : quectel
Process :
Name : quectel-CM
Cmd : /home/nrmodule2/quectel-CM/quectel-CM -s oai.ipv4 -4
WakeupScript : ci_ctl_qtel.py /dev/ttyUSB7 wup
DetachScript : ci_ctl_qtel.py /dev/ttyUSB7 detach
LogStore : /media/ci_qlogs
PLMN : 20899
UENetwork : wwan1
HostIPAddress : 192.168.18.189
HostUsername : nrmodule2
HostPassword : linux
HostSourceCodePath : none
dummy:
ID: ''
State : ''
Kind : ''
Process :
Name : ''
Cmd : ''
WakeupScript : ''
DetachScript : ''
PLMN : 22201
UENetwork : wwan0
HostIPAddress : 192.168.18.188
HostUsername : oaicicd
HostPassword : oaicicd
HostSourceCodePath : none

View File

@@ -0,0 +1,57 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Required Python Version
# Python 3.x
#
#---------------------------------------------------------------------
#to use isfile
import os
import sys
import logging
#to create a SSH object locally in the methods
import sshconnection
#time.sleep
import time
#to load ue infrastructure dictionary
import yaml
class InfraUE:
def __init__(self):
self.ci_ue_infra ={}
#-----------------$
#PUBLIC Methods$
#-----------------$
#This method reads the yaml file describing the multi-UE infrastructure
#and stores the infra permanently in the related class attribute self.ci_ue_infra
def Get_UE_Infra(self,ue_infra_filename):
f_yaml=ue_infra_filename
with open(f_yaml,'r') as file:
logging.debug('Loading UE infrastructure from file '+f_yaml)
#load it permanently in the class attribute
self.ci_ue_infra = yaml.load(file,Loader=yaml.FullLoader)

View File

@@ -83,10 +83,12 @@ class Containerize():
self.flexranCtrlDeployed = False
self.flexranCtrlIpAddress = ''
self.cli = ''
self.cliBuildOptions = ''
self.dockerfileprefix = ''
self.host = ''
self.allImagesSize = {}
self.collectInfo = {}
#-----------------------------------------------------------
# Container management functions
#-----------------------------------------------------------
@@ -124,9 +126,11 @@ class Containerize():
if self.host == 'Ubuntu':
self.cli = 'docker'
self.dockerfileprefix = '.ubuntu18'
self.cliBuildOptions = '--no-cache'
elif self.host == 'Red Hat':
self.cli = 'sudo podman'
self.dockerfileprefix = '.rhel8.2'
self.cliBuildOptions = '--no-cache --disable-compression'
imageNames = []
result = re.search('eNB', self.imageKind)
@@ -144,6 +148,10 @@ class Containerize():
imageNames.append(('oai-gnb', 'gNB'))
imageNames.append(('oai-lte-ue', 'lteUE'))
imageNames.append(('oai-nr-ue', 'nrUE'))
if self.host == 'Red Hat':
imageNames.append(('oai-physim', 'phySim'))
if self.host == 'Ubuntu':
imageNames.append(('oai-lte-ru', 'lteRU'))
if len(imageNames) == 0:
imageNames.append(('oai-enb', 'eNB'))
@@ -156,7 +164,7 @@ class Containerize():
# on RedHat/CentOS .git extension is mandatory
result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
if result is not None:
full_ran_repo_name = self.ranRepository
full_ran_repo_name = self.ranRepository.replace('git/', 'git')
else:
full_ran_repo_name = self.ranRepository + '.git'
mySSH.command('mkdir -p ' + lSourcePath, '\$', 5)
@@ -170,7 +178,7 @@ class Containerize():
mySSH.command('mkdir -p cmake_targets/log', '\$', 5)
# if the commit ID is provided use it to point to it
if self.ranCommitID != '':
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 5)
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 30)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should already been checked earlier
imageTag = 'develop'
@@ -201,7 +209,7 @@ class Containerize():
# Build the shared image only on Push Events (not on Merge Requests)
if (not self.ranAllowMerge):
mySSH.command(self.cli + ' build --target ' + sharedimage + ' --tag ' + sharedimage + ':' + sharedTag + ' --file docker/Dockerfile.ran' + self.dockerfileprefix + ' --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > cmake_targets/log/ran-build.log 2>&1', '\$', 1600)
mySSH.command(self.cli + ' build ' + self.cliBuildOptions + ' --target ' + sharedimage + ' --tag ' + sharedimage + ':' + sharedTag + ' --file docker/Dockerfile.ran' + self.dockerfileprefix + ' --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > cmake_targets/log/ran-build.log 2>&1', '\$', 1600)
# First verify if the shared image was properly created.
status = True
mySSH.command(self.cli + ' image inspect --format=\'Size = {{.Size}} bytes\' ' + sharedimage + ':' + sharedTag, '\$', 5)
@@ -249,7 +257,7 @@ class Containerize():
# the archived Dockerfiles have "ran-build:latest" as base image
# we need to update them with proper tag
mySSH.command('sed -i -e "s#' + sharedimage + ':latest#' + sharedimage + ':' + sharedTag + '#" docker/Dockerfile.' + pattern + self.dockerfileprefix, '\$', 5)
mySSH.command(self.cli + ' build --target ' + image + ' --tag ' + image + ':' + imageTag + ' --file docker/Dockerfile.' + pattern + self.dockerfileprefix + ' . > cmake_targets/log/' + image + '.log 2>&1', '\$', 1200)
mySSH.command(self.cli + ' build ' + self.cliBuildOptions + ' --target ' + image + ' --tag ' + image + ':' + imageTag + ' --file docker/Dockerfile.' + pattern + self.dockerfileprefix + ' . > cmake_targets/log/' + image + '.log 2>&1', '\$', 1200)
# split the log
mySSH.command('mkdir -p cmake_targets/log/' + image, '\$', 5)
mySSH.command('python3 ci-scripts/docker_log_split.py --logfilename=cmake_targets/log/' + image + '.log', '\$', 5)
@@ -330,6 +338,31 @@ class Containerize():
errorandwarnings['warnings'] = warningsNo
errorandwarnings['status'] = status
files[fil] = errorandwarnings
# Let analyze the target image creation part
if os.path.isfile('build_log_{}/{}.log'.format(self.testCase_id,image)):
errorandwarnings = {}
with open('build_log_{}/{}.log'.format(self.testCase_id,image), mode='r') as inputfile:
startOfTargetImageCreation = False
buildStatus = False
for line in inputfile:
result = re.search('FROM .* [aA][sS] ' + image + '$', str(line))
if result is not None:
startOfTargetImageCreation = True
if startOfTargetImageCreation:
result = re.search('Successfully tagged ' + image + ':', str(line))
if result is not None:
buildStatus = True
result = re.search('COMMIT ' + image + ':', str(line))
if result is not None:
buildStatus = True
inputfile.close()
if buildStatus:
errorandwarnings['errors'] = 0
else:
errorandwarnings['errors'] = 1
errorandwarnings['warnings'] = 0
errorandwarnings['status'] = buildStatus
files['Target Image Creation'] = errorandwarnings
self.collectInfo[image] = files
if status:

107
ci-scripts/cls_log_mgt.py Normal file
View File

@@ -0,0 +1,107 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Required Python Version
# Python 3.x
#
#---------------------------------------------------------------------
#USAGE:
# log=Log_Mgt(Username,IPAddress,Password,Path)
# log.LogRotation()
import re
import subprocess
import logging
import math
class Log_Mgt:
def __init__(self,Username, IPAddress,Password,Path):
self.Username=Username
self.IPAddress=IPAddress
self.Password=Password
self.path=Path
#-----------------$
#PRIVATE# Methods$
#-----------------$
def __CheckAvailSpace(self):
HOST=self.Username+'@'+self.IPAddress
COMMAND="df "+ self.path
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
s=result[1].decode('utf-8').rstrip()#result[1] is the second line with the results we are looking for
tmp=s.split()
return tmp[3] #return avail space from the line
def __GetOldestFile(self):
HOST=self.Username+'@'+self.IPAddress
COMMAND="ls -rtl "+ self.path #-rtl will bring oldest file on top
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
s=result[1].decode('utf-8').rstrip()
tmp=s.split()
return tmp[8]#return filename from the line
def __AvgSize(self):
HOST=self.Username+'@'+self.IPAddress
COMMAND="ls -rtl "+ self.path
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if len(result)>1: #at least 1 file present
total_size=0
for i in range(1,len(result)):
s=result[i].decode('utf-8').rstrip()
tmp=s.split()
total_size+=int(tmp[4]) #get filesize
return math.floor(total_size/(len(result)-1)) #compute average file/artifact size
else:#empty,no files
return 0
#-----------------$
#PUBLIC Methods$
#-----------------$
def LogRotation(self):
avail_space =int(self.__CheckAvailSpace())*1000 #avail space in target folder, initially displayed in Gb
avg_size=self.__AvgSize() #average size of artifacts in the target folder
logging.debug("Avail Space : " + str(avail_space) + " / Artifact Avg Size : " + str(avg_size))
if avail_space < 2*avg_size: #reserved space is 2x artifact file ; oldest file will be deleted
oldestfile=self.__GetOldestFile()
HOST=self.Username+'@'+self.IPAddress
COMMAND="echo " + self.Password + " | sudo -S rm "+ self.path + "/" + oldestfile
logging.debug(COMMAND)
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
else:
logging.debug("Still some space left for artifacts storage")

175
ci-scripts/cls_module_ue.py Normal file
View File

@@ -0,0 +1,175 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Required Python Version
# Python 3.x
#
#---------------------------------------------------------------------
#to use isfile
import os
import sys
import logging
#to create a SSH object locally in the methods
import sshconnection
#time.sleep
import time
import re
import subprocess
from datetime import datetime
#for log rotation mgt
import cls_log_mgt
class Module_UE:
def __init__(self,Module):
#create attributes as in the Module dictionary
for k, v in Module.items():
setattr(self, k, v)
self.UEIPAddress = ""
#dictionary linking command names and related module scripts
self.cmd_dict= {"wup": self.WakeupScript,"detach":self.DetachScript}#dictionary of function scripts
self.ue_trace=''
#-----------------$
#PUBLIC Methods$
#-----------------$
#this method checks if the specified Process is running on the server hosting the module
#if not it will be started
def CheckCMProcess(self):
HOST=self.HostUsername+'@'+self.HostIPAddress
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
logging.debug(COMMAND)
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if len(result)!=0:
logging.debug(self.Process['Name'] + " process found")
return True
else:#start process and check again
logging.debug(self.Process['Name'] + " process NOT found")
#starting the process
logging.debug('Starting ' + self.Process['Name'])
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S ' + self.Process['Cmd'] + ' &','\$',5)
mySSH.close()
#checking the process
time.sleep(5)
HOST=self.HostUsername+'@'+self.HostIPAddress
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
logging.debug(COMMAND)
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if len(result)!=0:
logging.debug(self.Process['Name'] + " process found")
return True
else:
logging.debug(self.Process['Name'] + " process NOT found")
return False
#Generic command function, using function pointers dictionary
def Command(self,cmd):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
mySSH.command('echo ' + self.HostPassword + ' | sudo -S python3 ' + self.cmd_dict[cmd],'\$',10)
time.sleep(5)
logging.debug("Module "+ cmd)
mySSH.close()
#this method retrieves the Module IP address (not the Host IP address)
def GetModuleIPAddress(self):
HOST=self.HostUsername+'@'+self.HostIPAddress
response= []
tentative = 3
while (len(response)==0) and (tentative>0):
COMMAND="ip a show dev " + self.UENetwork + " | grep inet | grep " + self.UENetwork
logging.debug(COMMAND)
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
response = ssh.stdout.readlines()
tentative-=1
time.sleep(10)
if (tentative==0) and (len(response)==0):
logging.debug('\u001B[1;37;41m Module IP Address Not Found! Time expired \u001B[0m')
return -1
else: #check response
result = re.search('inet (?P<moduleipaddress>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)', response[0].decode("utf-8") )
if result is not None:
if result.group('moduleipaddress') is not None:
self.UEIPAddress = result.group('moduleipaddress')
logging.debug('\u001B[1mUE Module IP Address is ' + self.UEIPAddress + '\u001B[0m')
return 0
else:
logging.debug('\u001B[1;37;41m Module IP Address Not Found! \u001B[0m')
return -1
else:
logging.debug('\u001B[1;37;41m Module IP Address Not Found! \u001B[0m')
return -1
def EnableTrace(self):
if self.ue_trace=="yes":
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
#delete old artifacts
mySSH.command('echo ' + self.HostPassword + ' | sudo -S rm -rf ci_qlog','\$',5)
#start Trace, artifact is created in home dir
mySSH.command('echo $USER; nohup sudo -E QLog/QLog -s ci_qlog -f NR5G.cfg &','\$', 5)
mySSH.close()
def DisableTrace(self):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
mySSH.command('echo ' + self.HostPassword + ' | sudo -S killall --signal=SIGINT *QLog*', '\$',5)
mySSH.close()
def DisableCM(self):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
mySSH.command('echo ' + self.HostPassword + ' | sudo -S killall --signal SIGKILL *'+self.Process['Name']+'*', '\$', 5)
mySSH.close()
def LogCollect(self):
if self.ue_trace=="yes":
mySSH = sshconnection.SSHConnection()
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
#archive qlog to USB stick in /media/usb-drive/ci_qlogs with datetime suffix
now=datetime.now()
now_string = now.strftime("%Y%m%d-%H%M")
source='ci_qlog'
destination= self.LogStore + '/ci_qlog_'+now_string+'.zip'
#qlog artifact is zipped into the target folder
mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S zip -r '+destination+' '+source+' &','\$', 10)
mySSH.close()
#post action : log cleaning to make sure enough space is reserved for the next run
Log_Mgt=cls_log_mgt.Log_Mgt(self.HostUsername,self.HostIPAddress, self.HostPassword, self.LogStore)
Log_Mgt.LogRotation()
else:
destination=""
return destination

View File

@@ -54,7 +54,8 @@ import helpreadme as HELP
import constants as CONST
import sshconnection
import cls_module_ue
import cls_ci_ueinfra #class defining the multi Ue infrastrucure
#-----------------------------------------------------------
@@ -129,6 +130,7 @@ class OaiCiTest():
self.iperf_packetloss_threshold = ''
self.iperf_profile = ''
self.iperf_options = ''
self.iperf_direction = ''
self.nbMaxUEtoAttach = -1
self.UEDevices = []
self.UEDevicesStatus = []
@@ -157,6 +159,8 @@ class OaiCiTest():
self.clean_repository = True
self.air_interface=''
self.expectedNbOfConnectedUEs = 0
self.ue_id = '' #used for module identification
self.ue_trace ='' #used to enable QLog trace for Module UE, passed to Module UE object at InitializeUE()
def BuildOAIUE(self,HTML):
@@ -174,7 +178,7 @@ class OaiCiTest():
ue_prefix = ''
result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
if result is not None:
full_ran_repo_name = self.ranRepository
full_ran_repo_name = self.ranRepository.replace('git/', 'git')
else:
full_ran_repo_name = self.ranRepository + '.git'
SSH.command('mkdir -p ' + self.UESourceCodePath, '\$', 5)
@@ -217,7 +221,7 @@ class OaiCiTest():
# if the commit ID is provided use it to point to it
if self.ranCommitID != '':
SSH.command('git checkout -f ' + self.ranCommitID, '\$', 5)
SSH.command('git checkout -f ' + self.ranCommitID, '\$', 30)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should already been checked earlier
if self.ranAllowMerge:
@@ -364,29 +368,50 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def InitializeUE(self,HTML,COTS_UE):
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
multi_jobs = []
i = 0
for device_id in self.UEDevices:
p = Process(target = self.InitializeUE_common, args = (device_id,i,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
i += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def InitializeUE(self,HTML,RAN,EPC, COTS_UE, InfraUE,ue_trace):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
multi_jobs = []
i = 0
for device_id in self.UEDevices:
p = Process(target = self.InitializeUE_common, args = (device_id,i,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
i += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
else: #if an ID is specified, it is a module from the yaml infrastructure file
#RH
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.ue_trace=ue_trace
is_module=Module_UE.CheckCMProcess()
if is_module:
Module_UE.EnableTrace()
time.sleep(5)
Module_UE.Command("wup")
logging.debug("Waiting for IP address to be assigned")
time.sleep(20)
logging.debug("Retrieve IP address")
status=Module_UE.GetModuleIPAddress()
if status==0:
HTML.CreateHtmlTestRow(Module_UE.UEIPAddress, 'OK', CONST.ALL_PROCESSES_OK)
logging.debug('UE IP addresss : '+ Module_UE.UEIPAddress)
else: #status==-1 failed to retrieve IP address
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
def InitializeOAIUE(self,HTML,RAN,EPC,COTS_UE):
def InitializeOAIUE(self,HTML,RAN,EPC,COTS_UE,InfraUE):
if self.UEIPAddress == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if self.air_interface == 'lte-uesoftmodem':
result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
if result is None:
@@ -403,13 +428,13 @@ class OaiCiTest():
SSH = sshconnection.SSHConnection()
SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
# b2xx_fx3_utils reset procedure
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 60)
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 90)
result = re.search('type: b200', SSH.getBefore())
if result is not None:
logging.debug('Found a B2xx device --> resetting it')
SSH.command('echo ' + self.UEPassword + ' | sudo -S b2xx_fx3_utils --reset-device', '\$', 10)
# Reloading FGPA bin firmware
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 60)
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 90)
result = re.search('type: n3xx', str(SSH.getBefore()))
if result is not None:
logging.debug('Found a N3xx device --> resetting it')
@@ -563,7 +588,7 @@ class OaiCiTest():
SSH.command('ifconfig oaitun_ue1', '\$', 4)
SSH.command('ifconfig oaitun_ue1', '\$', 4)
# ifconfig output is different between ubuntu 16 and ubuntu 18
result = re.search('inet addr:1|inet 1', SSH.getBefore())
result = re.search('inet addr:[0-9]|inet [0-9]', SSH.getBefore())
if result is not None:
logging.debug('\u001B[1m oaitun_ue1 interface is mounted and configured\u001B[0m')
tunnelInterfaceStatus = True
@@ -605,7 +630,7 @@ class OaiCiTest():
HTML.htmlUEFailureMsg='nr-uesoftmodem did NOT synced'
HTML.CreateHtmlTestRow(self.air_interface + ' ' + self.Initialize_OAI_UE_args, 'KO', CONST.OAI_UE_PROCESS_COULD_NOT_SYNC, 'OAI UE')
logging.error('\033[91mInitialize OAI UE Failed! \033[0m')
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def checkDevTTYisUnlocked(self):
SSH = sshconnection.SSHConnection()
@@ -683,7 +708,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
self.checkDevTTYisUnlocked()
def AttachCatM(self,HTML,RAN,COTS_UE,EPC):
def AttachCatM(self,HTML,RAN,COTS_UE,EPC,InfraUE):
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
@@ -756,9 +781,9 @@ class OaiCiTest():
html_cell = '<pre style="background-color:white">CAT-M module Attachment Failed</pre>'
html_queue.put(html_cell)
HTML.CreateHtmlTestRowQueue('N/A', 'KO', 1, html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def PingCatM(self,HTML,RAN,EPC,COTS_UE):
def PingCatM(self,HTML,RAN,EPC,COTS_UE,InfraUE):
if EPC.IPAddress == '' or EPC.UserName == '' or EPC.Password == '' or EPC.SourceCodePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
@@ -767,7 +792,7 @@ class OaiCiTest():
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
try:
statusQueue = SimpleQueue()
@@ -788,7 +813,7 @@ class OaiCiTest():
moduleIPAddr = result.group('ipaddr')
else:
HTML.CreateHtmlTestRow(self.ping_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
ping_time = re.findall("-c (\d+)",str(self.ping_args))
device_id = 'catm'
@@ -852,7 +877,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRowQueue(self.ping_args, 'OK', 1, statusQueue)
else:
HTML.CreateHtmlTestRowQueue(self.ping_args, 'KO', 1, statusQueue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
except:
os.kill(os.getppid(),signal.SIGUSR1)
@@ -944,64 +969,82 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def AttachUE(self,HTML,RAN,EPC,COTS_UE):
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
check_eNB = True
check_OAI_UE = False
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow('N/A', 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
return
multi_jobs = []
status_queue = SimpleQueue()
lock = Lock()
nb_ue_to_connect = 0
for device_id in self.UEDevices:
if (self.nbMaxUEtoAttach == -1) or (nb_ue_to_connect < self.nbMaxUEtoAttach):
self.UEDevicesStatus[nb_ue_to_connect] = CONST.UE_STATUS_ATTACHING
p = Process(target = self.AttachUE_common, args = (device_id, status_queue, lock,nb_ue_to_connect,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
nb_ue_to_connect = nb_ue_to_connect + 1
for job in multi_jobs:
job.join()
def AttachUE(self,HTML,RAN,EPC,COTS_UE,InfraUE):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
check_eNB = True
check_OAI_UE = False
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow('N/A', 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
multi_jobs = []
status_queue = SimpleQueue()
lock = Lock()
nb_ue_to_connect = 0
for device_id in self.UEDevices:
if (self.nbMaxUEtoAttach == -1) or (nb_ue_to_connect < self.nbMaxUEtoAttach):
self.UEDevicesStatus[nb_ue_to_connect] = CONST.UE_STATUS_ATTACHING
p = Process(target = self.AttachUE_common, args = (device_id, status_queue, lock,nb_ue_to_connect,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
nb_ue_to_connect = nb_ue_to_connect + 1
for job in multi_jobs:
job.join()
if (status_queue.empty()):
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ALL_PROCESSES_OK)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
return
else:
attach_status = True
html_queue = SimpleQueue()
while (not status_queue.empty()):
count = status_queue.get()
if (count < 0):
attach_status = False
device_id = status_queue.get()
message = status_queue.get()
if (count < 0):
html_cell = '<pre style="background-color:white">UE (' + device_id + ')\n' + message + '</pre>'
else:
html_cell = '<pre style="background-color:white">UE (' + device_id + ')\n' + message + ' in ' + str(count + 2) + ' seconds</pre>'
html_queue.put(html_cell)
if (attach_status):
cnt = 0
while cnt < len(self.UEDevices):
if self.UEDevicesStatus[cnt] == CONST.UE_STATUS_ATTACHING:
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_ATTACHED
cnt += 1
HTML.CreateHtmlTestRowQueue('N/A', 'OK', len(self.UEDevices), html_queue)
result = re.search('T_stdout', str(RAN.Initialize_eNB_args))
if result is not None:
logging.debug('Waiting 5 seconds to fill up record file')
time.sleep(5)
if (status_queue.empty()):
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ALL_PROCESSES_OK)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
else:
HTML.CreateHtmlTestRowQueue('N/A', 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
attach_status = True
html_queue = SimpleQueue()
while (not status_queue.empty()):
count = status_queue.get()
if (count < 0):
attach_status = False
device_id = status_queue.get()
message = status_queue.get()
if (count < 0):
html_cell = '<pre style="background-color:white">UE (' + device_id + ')\n' + message + '</pre>'
else:
html_cell = '<pre style="background-color:white">UE (' + device_id + ')\n' + message + ' in ' + str(count + 2) + ' seconds</pre>'
html_queue.put(html_cell)
if (attach_status):
cnt = 0
while cnt < len(self.UEDevices):
if self.UEDevicesStatus[cnt] == CONST.UE_STATUS_ATTACHING:
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_ATTACHED
cnt += 1
HTML.CreateHtmlTestRowQueue('N/A', 'OK', len(self.UEDevices), html_queue)
result = re.search('T_stdout', str(RAN.Initialize_eNB_args))
if result is not None:
logging.debug('Waiting 5 seconds to fill up record file')
time.sleep(5)
else:
HTML.CreateHtmlTestRowQueue('N/A', 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
else: #if an ID is specified, it is a module from the yaml infrastructure file
#Attention, as opposed to InitializeUE, the connect manager process is not checked as it is supposed to be active already
#only 1- module wakeup, 2- check IP address
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.Command("wup")
logging.debug("Waiting for IP address to be assigned")
time.sleep(20)
logging.debug("Retrieve IP address")
status=Module_UE.GetModuleIPAddress()
if status==0:
HTML.CreateHtmlTestRow(Module_UE.UEIPAddress, 'OK', CONST.ALL_PROCESSES_OK)
logging.debug('UE IP addresss : '+ Module_UE.UEIPAddress)
else: #status==-1 failed to retrieve IP address
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
def DetachUE_common(self, device_id, idx,COTS_UE):
try:
@@ -1025,37 +1068,44 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def DetachUE(self,HTML,RAN,EPC,COTS_UE):
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
check_eNB = True
check_OAI_UE = False
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow('N/A', 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
return
multi_jobs = []
cnt = 0
for device_id in self.UEDevices:
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_DETACHING
p = Process(target = self.DetachUE_common, args = (device_id,cnt,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
cnt += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
result = re.search('T_stdout', str(RAN.Initialize_eNB_args))
if result is not None:
logging.debug('Waiting 5 seconds to fill up record file')
time.sleep(5)
cnt = 0
while cnt < len(self.UEDevices):
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_DETACHED
cnt += 1
def DetachUE(self,HTML,RAN,EPC,COTS_UE,InfraUE):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
check_eNB = True
check_OAI_UE = False
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow('N/A', 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
multi_jobs = []
cnt = 0
for device_id in self.UEDevices:
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_DETACHING
p = Process(target = self.DetachUE_common, args = (device_id,cnt,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
cnt += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
result = re.search('T_stdout', str(RAN.Initialize_eNB_args))
if result is not None:
logging.debug('Waiting 5 seconds to fill up record file')
time.sleep(5)
cnt = 0
while cnt < len(self.UEDevices):
self.UEDevicesStatus[cnt] = CONST.UE_STATUS_DETACHED
cnt += 1
else:#if an ID is specified, it is a module from the yaml infrastructure file
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.Command("detach")
HTML.CreateHtmlTestRow('NA', 'OK', CONST.ALL_PROCESSES_OK)
def RebootUE_common(self, device_id):
try:
@@ -1303,7 +1353,7 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def CheckStatusUE(self,HTML,RAN,EPC,COTS_UE):
def CheckStatusUE(self,HTML,RAN,EPC,COTS_UE,InfraUE):
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
@@ -1350,7 +1400,7 @@ class OaiCiTest():
if (status_queue.empty()):
HTML.CreateHtmlTestRow(htmlOptions, 'KO', CONST.ALL_PROCESSES_OK)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
else:
check_status = True
html_queue = SimpleQueue()
@@ -1366,7 +1416,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRowQueue(htmlOptions, 'OK', len(self.UEDevices), html_queue)
else:
HTML.CreateHtmlTestRowQueue(htmlOptions, 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def GetAllUEIPAddresses(self):
SSH = sshconnection.SSHConnection()
@@ -1437,14 +1487,20 @@ class OaiCiTest():
statusQueue.put(message)
lock.release()
def Ping_common(self, lock, UE_IPAddress, device_id, statusQueue,EPC):
def Ping_common(self, lock, UE_IPAddress, device_id, statusQueue,EPC, Module_UE):
try:
SSH = sshconnection.SSHConnection()
# Launch ping on the EPC side (true for ltebox and old open-air-cn)
# But for OAI-Rel14-CUPS, we launch from python executor
launchFromEpc = True
launchFromModule = False
if re.match('OAI-Rel14-CUPS', EPC.Type, re.IGNORECASE):
launchFromEpc = False
#if module, ping from module to EPC
if self.ue_id!='':
launchFromEpc = False
launchfromModule = True
ping_time = re.findall("-c (\d+)",str(self.ping_args))
if launchFromEpc:
@@ -1462,21 +1518,39 @@ class OaiCiTest():
#copy the ping log file to have it locally for analysis (ping stats)
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '.')
else:
#ping log file is on the python executor
cmd = 'ping ' + self.ping_args + ' ' + UE_IPAddress + ' 2>&1 > ping_' + self.testCase_id + '_' + device_id + '.log'
message = cmd + '\n'
logging.debug(cmd)
ret = subprocess.run(cmd, shell=True)
ping_status = ret.returncode
#copy the ping log file to an other folder for log collection (source and destination are EPC)
SSH.copyout(EPC.IPAddress, EPC.UserName, EPC.Password, 'ping_' + self.testCase_id + '_' + device_id + '.log', EPC.SourceCodePath + '/scripts')
#copy the ping log file to have it locally for analysis (ping stats)
logging.debug(EPC.SourceCodePath + 'ping_' + self.testCase_id + '_' + device_id + '.log')
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath +'/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '.')
if launchfromModule == False:
#ping log file is on the python executor
cmd = 'ping ' + self.ping_args + ' ' + UE_IPAddress + ' 2>&1 > ping_' + self.testCase_id + '_' + device_id + '.log'
message = cmd + '\n'
logging.debug(cmd)
ret = subprocess.run(cmd, shell=True)
ping_status = ret.returncode
#copy the ping log file to an other folder for log collection (source and destination are EPC)
SSH.copyout(EPC.IPAddress, EPC.UserName, EPC.Password, 'ping_' + self.testCase_id + '_' + device_id + '.log', EPC.SourceCodePath + '/scripts')
#copy the ping log file to have it locally for analysis (ping stats)
logging.debug(EPC.SourceCodePath + 'ping_' + self.testCase_id + '_' + device_id + '.log')
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath +'/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '.')
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
#cat is executed on EPC
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
else: #launch from Module
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
#target address is different depending on EPC type
if re.match('OAI-Rel14-Docker', EPC.Type, re.IGNORECASE):
Target = EPC.MmeIPAddress
else:
Target = EPC.IPAddress
#ping from module NIC rather than IP address to make sure round trip is over the air
cmd = 'ping -I ' + Module_UE.UENetwork + ' ' + self.ping_args + ' ' + Target + ' 2>&1 > ping_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',int(ping_time[0])*1.5)
#copy the ping log file to have it locally for analysis (ping stats)
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'ping_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
#cat is executed locally
SSH.command('cat ping_' + self.testCase_id + '_' + self.ue_id + '.log', '\$', 5)
ping_status=0
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
#cat is executed on EPC
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
# TIMEOUT CASE
if ping_status < 0:
message = 'Ping with UE (' + str(UE_IPAddress) + ') crashed due to TIMEOUT!'
@@ -1567,14 +1641,14 @@ class OaiCiTest():
html_queue.put(html_cell)
HTML.CreateHtmlTestRowQueue(self.ping_args, 'KO', len(self.UEDevices), html_queue)
def PingNoS1(self,HTML,RAN,EPC,COTS_UE):
def PingNoS1(self,HTML,RAN,EPC,COTS_UE,InfraUE):
SSH=sshconnection.SSHConnection()
check_eNB = True
check_OAI_UE = True
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
ping_from_eNB = re.search('oaitun_enb1', str(self.ping_args))
if ping_from_eNB is not None:
@@ -1660,10 +1734,10 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def Ping(self,HTML,RAN,EPC,COTS_UE):
def Ping(self,HTML,RAN,EPC,COTS_UE, InfraUE):
result = re.search('noS1', str(RAN.Initialize_eNB_args))
if result is not None:
self.PingNoS1(HTML,RAN,EPC,COTS_UE)
self.PingNoS1(HTML,RAN,EPC,COTS_UE,InfraUE)
return
if EPC.IPAddress == '' or EPC.UserName == '' or EPC.Password == '' or EPC.SourceCodePath == '':
HELP.GenericHelp(CONST.Version)
@@ -1676,20 +1750,32 @@ class OaiCiTest():
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
return
ueIpStatus = self.GetAllUEIPAddresses()
if (ueIpStatus < 0):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
if self.ue_id=="":
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra['dummy']) #RH, temporary, we need a dummy Module_UE object to pass to Ping_common
ueIpStatus = self.GetAllUEIPAddresses()
if (ueIpStatus < 0):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
else:
self.UEIPAddresses=[]
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.GetModuleIPAddress()
self.UEIPAddresses.append(Module_UE.UEIPAddress)
logging.debug(self.UEIPAddresses)
multi_jobs = []
i = 0
lock = Lock()
status_queue = SimpleQueue()
for UE_IPAddress in self.UEIPAddresses:
device_id = self.UEDevices[i]
p = Process(target = self.Ping_common, args = (lock,UE_IPAddress,device_id,status_queue,EPC,))
if self.ue_id=="":
device_id = self.UEDevices[i]
else:
device_id = Module_UE.ID + "-" + Module_UE.Kind
p = Process(target = self.Ping_common, args = (lock,UE_IPAddress,device_id,status_queue,EPC,Module_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
@@ -1699,7 +1785,7 @@ class OaiCiTest():
if (status_queue.empty()):
HTML.CreateHtmlTestRow(self.ping_args, 'KO', CONST.ALL_PROCESSES_OK)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
else:
ping_status = True
html_queue = SimpleQueue()
@@ -1716,7 +1802,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRowQueue(self.ping_args, 'OK', len(self.UEDevices), html_queue)
else:
HTML.CreateHtmlTestRowQueue(self.ping_args, 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def Iperf_ComputeTime(self):
result = re.search('-t (?P<iperf_time>\d+)', str(self.iperf_args))
@@ -1864,8 +1950,8 @@ class OaiCiTest():
else:
return -2
def Iperf_analyzeV2Server(self, lock, UE_IPAddress, device_id, statusQueue, iperf_real_options):
if (not os.path.isfile('iperf_server_' + self.testCase_id + '_' + device_id + '.log')):
def Iperf_analyzeV2Server(self, lock, UE_IPAddress, device_id, statusQueue, iperf_real_options, filename,type):
if (not os.path.isfile(filename)):
self.ping_iperf_wrong_exit(lock, UE_IPAddress, device_id, statusQueue, 'Could not analyze from server log')
return
# Computing the requested bandwidth in float
@@ -1890,14 +1976,18 @@ class OaiCiTest():
req_bandwidth = '%.1f Gbits/sec' % req_bw
req_bw = req_bw * 1000000000
server_file = open('iperf_server_' + self.testCase_id + '_' + device_id + '.log', 'r')
server_file = open(filename, 'r')
br_sum = 0.0
ji_sum = 0.0
pl_sum = 0
ps_sum = 0
row_idx = 0
for line in server_file.readlines():
result = re.search('(?P<bitrate>[0-9\.]+ [KMG]bits\/sec) +(?P<jitter>[0-9\.]+ ms) +(?P<lostPack>[0-9]+)/ +(?P<sentPack>[0-9]+)', str(line))
if type==0:
result = re.search('(?P<bitrate>[0-9\.]+ [KMG]bits\/sec) +(?P<jitter>[0-9\.]+ ms) +(?P<lostPack>[0-9]+)/ +(?P<sentPack>[0-9]+)', str(line))
else:
result = re.search('^\[ \d\].+ +(?P<bitrate>[0-9\.]+ [KMG]bits\/sec) +(?P<jitter>[0-9\.]+ ms) +(?P<lostPack>[0-9]+)\/(?P<sentPack>[0-9]+)', str(line))
if result is not None:
bitrate = result.group('bitrate')
jitter = result.group('jitter')
@@ -2127,12 +2217,95 @@ class OaiCiTest():
SSH.command('docker cp prod-trf-gen:/iperf-2.0.5/iperf_server_' + self.testCase_id + '_' + device_id + '.log ' + EPC.SourceCodePath + '/scripts', '\$', 5)
SSH.close()
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath+ '/scripts/iperf_server_' + self.testCase_id + '_' + device_id + '.log', '.')
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options)
filename='iperf_server_' + self.testCase_id + '_' + device_id + '.log'
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options,filename,0)
# in case of OAI-UE
if (device_id == 'OAI-UE'):
SSH.copyin(self.UEIPAddress, self.UEUserName, self.UEPassword, self.UESourceCodePath + '/cmake_targets/iperf_' + self.testCase_id + '_' + device_id + '.log', '.')
SSH.copyout(EPC.IPAddress, EPC.UserName, EPC.Password, 'iperf_' + self.testCase_id + '_' + device_id + '.log', EPC.SourceCodePath + '/scripts')
def Iperf_Module(self, lock, UE_IPAddress, device_id, idx, ue_num, statusQueue,EPC, Module_UE):
SSH = sshconnection.SSHConnection()
#RH temporary quick n dirty for test
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
cmd = 'echo ' + EPC.Password + ' | sudo -S ip link set dev tun5 mtu 1358'
SSH.command(cmd,'\$',5)
SSH.close()
#kill iperf processes before (in case there are still some remaining)
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
cmd = 'killall --signal=SIGKILL iperf'
SSH.command(cmd,'\$',5)
SSH.close()
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
cmd = 'killall --signal=SIGKILL iperf'
SSH.command(cmd,'\$',5)
SSH.close()
iperf_time = self.Iperf_ComputeTime()
if self.iperf_direction=="DL":
logging.debug("Iperf for Module in DL mode detected")
#server side UE
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
cmd = 'rm iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
cmd = 'echo $USER; nohup /opt/iperf-2.0.10/iperf -s -B ' + UE_IPAddress + ' -u 2>&1 > iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
SSH.close()
#client side EPC
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
cmd = 'rm iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
cmd = 'iperf -c ' + UE_IPAddress + ' ' + self.iperf_args + ' 2>&1 > iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',int(iperf_time)*5.0)
SSH.close()
#copy the 2 resulting files locally
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, 'iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
#send for analysis
filename='iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, self.iperf_args,filename,1)
elif self.iperf_direction=="UL":#does not work at the moment
logging.debug("Iperf for Module in UL mode detected")
#server side EPC
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
cmd = 'rm iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
cmd = 'echo $USER; nohup iperf -s -u 2>&1 > iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
SSH.close()
#client side UE
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
cmd = 'rm iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log'
SSH.command(cmd,'\$',5)
SSH.command('/opt/iperf-2.0.10/iperf -c 192.172.0.1 ' + self.iperf_args + ' 2>&1 > iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log', '\$', int(iperf_time)*5.0)
SSH.close()
#copy the 2 resulting files locally
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'iperf_client_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, 'iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
#send for analysis
filename='iperf_server_' + self.testCase_id + '_' + self.ue_id + '.log'
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, self.iperf_args,filename,1)
else :
logging.debug("Incorrect or missing IPERF direction in XML")
#kill iperf processes after to be clean
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
cmd = 'killall --signal=SIGKILL iperf'
SSH.command(cmd,'\$',5)
SSH.close()
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
cmd = 'killall --signal=SIGKILL iperf'
SSH.command(cmd,'\$',5)
SSH.close()
return
def Iperf_common(self, lock, UE_IPAddress, device_id, idx, ue_num, statusQueue,EPC):
try:
SSH = sshconnection.SSHConnection()
@@ -2229,8 +2402,13 @@ class OaiCiTest():
# Launch the IPERF client on the EPC side for DL (true for ltebox and old open-air-cn
# But for OAI-Rel14-CUPS, we launch from python executor
launchFromEpc = True
launchFromModule = False
if re.match('OAI-Rel14-CUPS', EPC.Type, re.IGNORECASE):
launchFromEpc = False
#if module
if self.ue_id!='' and self.iperf :
launchFromEpc = False
launchfromModule = True
# When using a docker-based deployment, IPERF client shall be launched from trf container
launchFromTrfContainer = False
if re.match('OAI-Rel14-Docker', EPC.Type, re.IGNORECASE):
@@ -2334,7 +2512,8 @@ class OaiCiTest():
subprocess.run(cmd, shell=True)
except:
pass
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options)
filename='iperf_server_' + self.testCase_id + '_' + device_id + '.log'
self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options,filename,0)
# in case of OAI UE:
if (device_id == 'OAI-UE'):
@@ -2347,7 +2526,7 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def IperfNoS1(self,HTML,RAN,EPC,COTS_UE):
def IperfNoS1(self,HTML,RAN,EPC,COTS_UE,InfraUE):
SSH = sshconnection.SSHConnection()
if RAN.eNBIPAddress == '' or RAN.eNBUserName == '' or RAN.eNBPassword == '' or self.UEIPAddress == '' or self.UEUserName == '' or self.UEPassword == '':
HELP.GenericHelp(CONST.Version)
@@ -2357,7 +2536,7 @@ class OaiCiTest():
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow(self.iperf_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
server_on_enb = re.search('-R', str(self.iperf_args))
if server_on_enb is not None:
@@ -2422,7 +2601,8 @@ class OaiCiTest():
if (os.path.isfile('iperf_server_' + self.testCase_id + '.log')):
os.remove('iperf_server_' + self.testCase_id + '.log')
SSH.copyin(iServerIPAddr, iServerUser, iServerPasswd, '/tmp/tmp_iperf_server_' + self.testCase_id + '.log', 'iperf_server_' + self.testCase_id + '_OAI-UE.log')
self.Iperf_analyzeV2Server(lock, '10.0.1.2', 'OAI-UE', status_queue, modified_options)
filename='iperf_server_' + self.testCase_id + '_OAI-UE.log'
self.Iperf_analyzeV2Server(lock, '10.0.1.2', 'OAI-UE', status_queue, modified_options,filename,0)
# copying on the EPC server for logCollection
if (clientStatus == -1):
@@ -2455,12 +2635,12 @@ class OaiCiTest():
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'OK', len(self.UEDevices), html_queue)
else:
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def Iperf(self,HTML,RAN,EPC,COTS_UE):
def Iperf(self,HTML,RAN,EPC,COTS_UE, InfraUE):
result = re.search('noS1', str(RAN.Initialize_eNB_args))
if result is not None:
self.IperfNoS1(HTML,RAN,EPC,COTS_UE)
self.IperfNoS1(HTML,RAN,EPC,COTS_UE,InfraUE)
return
if EPC.IPAddress == '' or EPC.UserName == '' or EPC.Password == '' or EPC.SourceCodePath == '' or self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
HELP.GenericHelp(CONST.Version)
@@ -2473,15 +2653,24 @@ class OaiCiTest():
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE,RAN,EPC)
if (pStatus < 0):
HTML.CreateHtmlTestRow(self.iperf_args, 'KO', pStatus)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
return
ueIpStatus = self.GetAllUEIPAddresses()
if (ueIpStatus < 0):
logging.debug('going here')
HTML.CreateHtmlTestRow(self.iperf_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
if self.ue_id=="":#is not a module, follow legacy code
ueIpStatus = self.GetAllUEIPAddresses()
if (ueIpStatus < 0):
HTML.CreateHtmlTestRow(self.iperf_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
return
else: #is a module
self.UEIPAddresses=[]
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.GetModuleIPAddress()
self.UEIPAddresses.append(Module_UE.UEIPAddress)
self.dummyIperfVersion = '2.0.10'
#cmd = 'iperf --version'
#logging.debug(cmd + '\n')
@@ -2498,9 +2687,15 @@ class OaiCiTest():
ue_num = len(self.UEIPAddresses)
lock = Lock()
status_queue = SimpleQueue()
logging.debug(self.UEIPAddresses)
for UE_IPAddress in self.UEIPAddresses:
device_id = self.UEDevices[i]
p = Process(target = self.Iperf_common, args = (lock,UE_IPAddress,device_id,i,ue_num,status_queue,EPC,))
#special quick and dirty treatment for modules, iperf to be restructured
if self.ue_id!="": #is module
device_id = Module_UE.ID + "-" + Module_UE.Kind
p = Process(target = self.Iperf_Module ,args = (lock, UE_IPAddress, device_id, i, ue_num, status_queue, EPC, Module_UE,))
else: #legacy code
p = Process(target = self.Iperf_common, args = (lock, UE_IPAddress, device_id, i, ue_num, status_queue, EPC, ))
p.daemon = True
p.start()
multi_jobs.append(p)
@@ -2510,7 +2705,7 @@ class OaiCiTest():
if (status_queue.empty()):
HTML.CreateHtmlTestRow(self.iperf_args, 'KO', CONST.ALL_PROCESSES_OK)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfaUE)
else:
iperf_status = True
iperf_noperf = False
@@ -2532,7 +2727,7 @@ class OaiCiTest():
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'OK', len(self.UEDevices), html_queue)
else:
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', len(self.UEDevices), html_queue)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
def CheckProcessExist(self, check_eNB, check_OAI_UE,RAN,EPC):
multi_jobs = []
@@ -2937,22 +3132,34 @@ class OaiCiTest():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateUE(self,HTML,COTS_UE):
terminate_ue_flag = False
self.GetAllUEDevices(terminate_ue_flag)
multi_jobs = []
i = 0
for device_id in self.UEDevices:
p = Process(target= self.TerminateUE_common, args = (device_id,i,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
i += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateUE(self,HTML,COTS_UE,InfraUE,ue_trace):
if self.ue_id=='':#no ID specified, then it is a COTS controlled by ADB
terminate_ue_flag = False
self.GetAllUEDevices(terminate_ue_flag)
multi_jobs = []
i = 0
for device_id in self.UEDevices:
p = Process(target= self.TerminateUE_common, args = (device_id,i,COTS_UE,))
p.daemon = True
p.start()
multi_jobs.append(p)
i += 1
for job in multi_jobs:
job.join()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
else: #if an ID is specified, it is a module from the yaml infrastructure file
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
Module_UE.ue_trace=ue_trace
Module_UE.Command("detach")
Module_UE.DisableTrace()
Module_UE.DisableCM()
archive_destination=Module_UE.LogCollect()
if Module_UE.ue_trace=='yes':
HTML.CreateHtmlTestRow('QLog at : '+archive_destination, 'OK', CONST.ALL_PROCESSES_OK)
else:
HTML.CreateHtmlTestRow('QLog trace is disabled', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateOAIUE(self,HTML,RAN,COTS_UE,EPC):
def TerminateOAIUE(self,HTML,RAN,COTS_UE,EPC, InfraUE):
SSH = sshconnection.SSHConnection()
SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
SSH.command('cd ' + self.UESourceCodePath + '/cmake_targets', '\$', 5)
@@ -2993,11 +3200,11 @@ class OaiCiTest():
# Not an error then
if (logStatus != CONST.OAI_UE_PROCESS_COULD_NOT_SYNC) or (ueAction != 'Sniffing'):
self.Initialize_OAI_UE_args = ''
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
else:
if (logStatus == CONST.OAI_UE_PROCESS_COULD_NOT_SYNC):
self.Initialize_OAI_UE_args = ''
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC)
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE)
else:
logging.debug('\u001B[1m' + ueAction + ' Completed \u001B[0m')
HTML.htmlUEFailureMsg='<b>' + ueAction + ' Completed</b>\n' + HTML.htmlUEFailureMsg
@@ -3006,21 +3213,21 @@ class OaiCiTest():
else:
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def AutoTerminateUEandeNB(self,HTML,RAN,COTS_UE,EPC):
def AutoTerminateUEandeNB(self,HTML,RAN,COTS_UE,EPC,InfraUE):
if (self.ADBIPAddress != 'none'):
self.testCase_id = 'AUTO-KILL-UE'
HTML.testCase_id=self.testCase_id
self.desc = 'Automatic Termination of UE'
HTML.desc='Automatic Termination of UE'
self.ShowTestID()
self.TerminateUE(HTML,COTS_UE)
self.TerminateUE(HTML,COTS_UE,InfraUE,self.ue_trace)
if (self.Initialize_OAI_UE_args != ''):
self.testCase_id = 'AUTO-KILL-OAI-UE'
HTML.testCase_id=self.testCase_id
self.desc = 'Automatic Termination of OAI-UE'
HTML.desc='Automatic Termination of OAI-UE'
self.ShowTestID()
self.TerminateOAIUE(HTML,RAN,COTS_UE,EPC)
self.TerminateOAIUE(HTML,RAN,COTS_UE,EPC,InfraUE)
if (RAN.Initialize_eNB_args != ''):
self.testCase_id = 'AUTO-KILL-RAN'
HTML.testCase_id=self.testCase_id
@@ -3273,7 +3480,7 @@ class OaiCiTest():
UhdVersion = result.group('uhd_version')
logging.debug('UHD Version is: ' + UhdVersion)
HTML.UhdVersion[idx]=UhdVersion
SSH.command('echo ' + Password + ' | sudo -S uhd_find_devices', '\$', 60)
SSH.command('echo ' + Password + ' | sudo -S uhd_find_devices', '\$', 90)
usrp_boards = re.findall('product: ([0-9A-Za-z]+)\\\\r\\\\n', SSH.getBefore())
count = 0
for board in usrp_boards:

View File

@@ -1,191 +1,191 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#to use logging.info()
import logging
#to create a SSH object locally in the methods
import sshconnection
#to update the HTML object
import html
from multiprocessing import SimpleQueue
#for log folder maintenance
import os
class PhySim:
def __init__(self):
self.buildargs = ""
self.runargs = ""
self.eNBIpAddr = ""
self.eNBUserName = ""
self.eNBPassWord = ""
self.eNBSourceCodePath = ""
self.ranRepository = ""
self.ranBranch = ""
self.ranCommitID= ""
self.ranAllowMerge= ""
self.ranTargetBranch= ""
self.exitStatus=0
self.forced_workspace_cleanup=False
#private attributes
self.__workSpacePath=''
self.__buildLogFile='compile_phy_sim.log'
self.__runLogFile=''
self.__runResults=[]
self.__runLogPath='phy_sim_logs'
#-----------------
#PRIVATE Methods
#-----------------
def __CheckResults_PhySim(self,HTML,CONST,testcase_id):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#retrieve run log file and store it locally$
mySSH.copyin(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord, self.__workSpacePath+self.__runLogFile, '.')
mySSH.close()
#parse results looking for Encoding and Decoding mean values
self.__runResults=[]
with open(self.__runLogFile) as f:
for line in f:
if 'mean' in line:
self.__runResults.append(line)
#the values are appended for each mean value (2), so we take these 2 values from the list
info=self.__runResults[0]+self.__runResults[1]
#once parsed move the local logfile to its folder for tidiness
os.system('mv '+self.__runLogFile+' '+ self.__runLogPath+'/.')
#updating the HTML with results
html_cell = '<pre style="background-color:white">' + info + '</pre>'
html_queue=SimpleQueue()
html_queue.put(html_cell)
HTML.CreateHtmlTestRowQueue(self.runargs, 'OK', 1, html_queue)
return HTML
def __CheckBuild_PhySim(self, HTML, CONST):
self.__workSpacePath=self.eNBSourceCodePath+'/cmake_targets/'
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#retrieve compile log file and store it locally
mySSH.copyin(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord, self.__workSpacePath+self.__buildLogFile, '.')
#delete older run log file
mySSH.command('rm ' + self.__workSpacePath+self.__runLogFile, '\$', 5)
mySSH.close()
#check build result from local compile log file
buildStatus=False
with open(self.__buildLogFile) as f:
#nr_prachsim is the last compile step
if 'nr_prachsim compiled' in f.read():
buildStatus=True
#update HTML based on build status
if buildStatus:
HTML.CreateHtmlTestRow(self.buildargs, 'OK', CONST.ALL_PROCESSES_OK, 'LDPC')
self.exitStatus=0
else:
logging.error('\u001B[1m Building Physical Simulators Failed\u001B[0m')
HTML.CreateHtmlTestRow(self.buildargs, 'KO', CONST.ALL_PROCESSES_OK, 'LDPC')
HTML.CreateHtmlTabFooter(False)
#exitStatus=1 will do a sys.exit in main
self.exitStatus=1
return HTML
#-----------------$
#PUBLIC Methods$
#-----------------$
def Build_PhySim(self,htmlObj,constObj):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#create working dir
mySSH.command('mkdir -p ' + self.eNBSourceCodePath, '\$', 5)
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
if not self.ranRepository.lower().endswith('.git'):
self.ranRepository+='.git'
#git clone
mySSH.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + self.ranRepository + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600)
#git config
mySSH.command('git config user.email "jenkins@openairinterface.org"', '\$', 5)
mySSH.command('git config user.name "OAI Jenkins"', '\$', 5)
#git clean depending on self.forced_workspace_cleanup captured in xml
if self.forced_workspace_cleanup==True:
logging.info('Cleaning workspace ...')
mySSH.command('echo ' + self.eNBPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
else:
logging.info('Workspace cleaning was disabled')
# if the commit ID is provided, use it to point to it
if self.ranCommitID != '':
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 5)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should have already been checked earlier
if (self.ranAllowMerge):
if self.ranTargetBranch == '':
if (self.ranBranch != 'develop') and (self.ranBranch != 'origin/develop'):
mySSH.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5)
else:
logging.info('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
#build
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('mkdir -p log', '\$', 5)
mySSH.command('chmod 777 log', '\$', 5)
mySSH.command('stdbuf -o0 ./build_oai ' + self.buildargs + ' 2>&1 | stdbuf -o0 tee ' + self.__buildLogFile, 'Bypassing the Tests|build have failed', 1500)
mySSH.close()
#check build status and update HTML object
lHTML = html.HTMLManagement()
lHTML=self.__CheckBuild_PhySim(htmlObj,constObj)
return lHTML
def Run_PhySim(self,htmlObj,constObj,testcase_id):
#create run logs folder locally
os.system('mkdir -p ./'+self.__runLogPath)
#log file is tc_<testcase_id>.log remotely
self.__runLogFile='physim_'+str(testcase_id)+'.log'
#open a session for test run
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
mySSH.command('cd '+self.__workSpacePath,'\$',5)
#run and redirect the results to a log file
mySSH.command(self.__workSpacePath+'phy_simulators/build/ldpctest ' + self.runargs + ' >> '+self.__runLogFile, '\$', 30)
mySSH.close()
#return updated HTML to main
lHTML = html.HTMLManagement()
lHTML=self.__CheckResults_PhySim(htmlObj,constObj,testcase_id)
return lHTML
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#to use logging.info()
import logging
#to create a SSH object locally in the methods
import sshconnection
#to update the HTML object
import html
from multiprocessing import SimpleQueue
#for log folder maintenance
import os
class PhySim:
def __init__(self):
self.buildargs = ""
self.runargs = ""
self.eNBIpAddr = ""
self.eNBUserName = ""
self.eNBPassWord = ""
self.eNBSourceCodePath = ""
self.ranRepository = ""
self.ranBranch = ""
self.ranCommitID= ""
self.ranAllowMerge= ""
self.ranTargetBranch= ""
self.exitStatus=0
self.forced_workspace_cleanup=False
#private attributes
self.__workSpacePath=''
self.__buildLogFile='compile_phy_sim.log'
self.__runLogFile=''
self.__runResults=[]
self.__runLogPath='phy_sim_logs'
#-----------------
#PRIVATE Methods
#-----------------
def __CheckResults_PhySim(self,HTML,CONST,testcase_id):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#retrieve run log file and store it locally$
mySSH.copyin(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord, self.__workSpacePath+self.__runLogFile, '.')
mySSH.close()
#parse results looking for Encoding and Decoding mean values
self.__runResults=[]
with open(self.__runLogFile) as f:
for line in f:
if 'mean' in line:
self.__runResults.append(line)
#the values are appended for each mean value (2), so we take these 2 values from the list
info=self.__runResults[0]+self.__runResults[1]
#once parsed move the local logfile to its folder for tidiness
os.system('mv '+self.__runLogFile+' '+ self.__runLogPath+'/.')
#updating the HTML with results
html_cell = '<pre style="background-color:white">' + info + '</pre>'
html_queue=SimpleQueue()
html_queue.put(html_cell)
HTML.CreateHtmlTestRowQueue(self.runargs, 'OK', 1, html_queue)
return HTML
def __CheckBuild_PhySim(self, HTML, CONST):
self.__workSpacePath=self.eNBSourceCodePath+'/cmake_targets/'
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#retrieve compile log file and store it locally
mySSH.copyin(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord, self.__workSpacePath+self.__buildLogFile, '.')
#delete older run log file
mySSH.command('rm ' + self.__workSpacePath+self.__runLogFile, '\$', 5)
mySSH.close()
#check build result from local compile log file
buildStatus=False
with open(self.__buildLogFile) as f:
#nr_prachsim is the last compile step
if 'nr_prachsim compiled' in f.read():
buildStatus=True
#update HTML based on build status
if buildStatus:
HTML.CreateHtmlTestRow(self.buildargs, 'OK', CONST.ALL_PROCESSES_OK, 'LDPC')
self.exitStatus=0
else:
logging.error('\u001B[1m Building Physical Simulators Failed\u001B[0m')
HTML.CreateHtmlTestRow(self.buildargs, 'KO', CONST.ALL_PROCESSES_OK, 'LDPC')
HTML.CreateHtmlTabFooter(False)
#exitStatus=1 will do a sys.exit in main
self.exitStatus=1
return HTML
#-----------------$
#PUBLIC Methods$
#-----------------$
def Build_PhySim(self,htmlObj,constObj):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
#create working dir
mySSH.command('mkdir -p ' + self.eNBSourceCodePath, '\$', 5)
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
if not self.ranRepository.lower().endswith('.git'):
self.ranRepository+='.git'
#git clone
mySSH.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + self.ranRepository + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600)
#git config
mySSH.command('git config user.email "jenkins@openairinterface.org"', '\$', 5)
mySSH.command('git config user.name "OAI Jenkins"', '\$', 5)
#git clean depending on self.forced_workspace_cleanup captured in xml
if self.forced_workspace_cleanup==True:
logging.info('Cleaning workspace ...')
mySSH.command('echo ' + self.eNBPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
else:
logging.info('Workspace cleaning was disabled')
# if the commit ID is provided, use it to point to it
if self.ranCommitID != '':
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 30)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should have already been checked earlier
if (self.ranAllowMerge):
if self.ranTargetBranch == '':
if (self.ranBranch != 'develop') and (self.ranBranch != 'origin/develop'):
mySSH.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5)
else:
logging.info('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
#build
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('mkdir -p log', '\$', 5)
mySSH.command('chmod 777 log', '\$', 5)
mySSH.command('stdbuf -o0 ./build_oai ' + self.buildargs + ' 2>&1 | stdbuf -o0 tee ' + self.__buildLogFile, 'Bypassing the Tests|build have failed', 1500)
mySSH.close()
#check build status and update HTML object
lHTML = html.HTMLManagement()
lHTML=self.__CheckBuild_PhySim(htmlObj,constObj)
return lHTML
def Run_PhySim(self,htmlObj,constObj,testcase_id):
#create run logs folder locally
os.system('mkdir -p ./'+self.__runLogPath)
#log file is tc_<testcase_id>.log remotely
self.__runLogFile='physim_'+str(testcase_id)+'.log'
#open a session for test run
mySSH = sshconnection.SSHConnection()
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
mySSH.command('cd '+self.__workSpacePath,'\$',5)
#run and redirect the results to a log file
mySSH.command(self.__workSpacePath+'phy_simulators/build/ldpctest ' + self.runargs + ' >> '+self.__runLogFile, '\$', 30)
mySSH.close()
#return updated HTML to main
lHTML = html.HTMLManagement()
lHTML=self.__CheckResults_PhySim(htmlObj,constObj,testcase_id)
return lHTML

342
ci-scripts/cls_physim1.py Normal file
View File

@@ -0,0 +1,342 @@
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Import
#-----------------------------------------------------------
import logging
import sshconnection as SSH
import html
import os
import re
import time
import sys
import constants as CONST
import helpreadme as HELP
class PhySim:
def __init__(self):
self.eNBIpAddr = ""
self.eNBUserName = ""
self.eNBPassword = ""
self.OCUserName = ""
self.OCPassword = ""
self.OCProjectName = ""
self.eNBSourceCodePath = ""
self.ranRepository = ""
self.ranBranch = ""
self.ranCommitID= ""
self.ranAllowMerge= False
self.ranTargetBranch= ""
self.testResult = {}
self.testCount = [0,0,0]
self.testSummary = {}
self.testStatus = False
#-----------------$
#PUBLIC Methods$
#-----------------$
def Deploy_PhySim(self, HTML, RAN):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
ocUserName = self.OCUserName
ocPassword = self.OCPassword
ocProjectName = self.OCProjectName
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '' or ocUserName == '' or ocPassword == '' or ocProjectName == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Building on server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
self.testCase_id = HTML.testCase_id
# on RedHat/CentOS .git extension is mandatory
result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
if result is not None:
full_ran_repo_name = self.ranRepository.replace('git/', 'git')
else:
full_ran_repo_name = self.ranRepository + '.git'
mySSH.command('echo ' + lPassWord + ' | sudo rm -Rf ' + lSourcePath, '\$', 30)
mySSH.command('mkdir -p ' + lSourcePath, '\$', 5)
mySSH.command('cd ' + lSourcePath, '\$', 5)
mySSH.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + full_ran_repo_name + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600)
# Raphael: here add a check if git clone or git fetch went smoothly
mySSH.command('git config user.email "jenkins@openairinterface.org"', '\$', 5)
mySSH.command('git config user.name "OAI Jenkins"', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
mySSH.command('mkdir -p cmake_targets/log', '\$', 5)
# if the commit ID is provided use it to point to it
if self.ranCommitID != '':
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 30)
if self.ranAllowMerge:
imageTag = "ci-temp"
if self.ranTargetBranch == '':
if (self.ranBranch != 'develop') and (self.ranBranch != 'origin/develop'):
mySSH.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5)
else:
logging.debug('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
else:
imageTag = "develop"
# Check if image is exist on the Red Hat server, before pushing it to OC cluster
mySSH.command("sudo podman image inspect --format='Size = {{.Size}} bytes' oai-physim:" + imageTag, '\$', 60)
if mySSH.getBefore().count('no such image') != 0:
logging.error('\u001B[1m No such image oai-physim\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.PHYSIM_IMAGE_ABSENT)
RAN.prematureExit = True
return
else:
result = re.search('Size *= *(?P<size>[0-9\-]+) *bytes', mySSH.getBefore())
if result is not None:
imageSize = float(result.group('size'))
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m oai-physim size is ' + ('%.0f' % imageSize) + ' kbytes\u001B[0m')
else:
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m oai-physim size is ' + ('%.0f' % imageSize) + ' Mbytes\u001B[0m')
else:
imageSize = imageSize / 1000
logging.debug('\u001B[1m oai-physim is ' + ('%.3f' % imageSize) + ' Gbytes\u001B[0m')
else:
logging.debug('oai-physim size is unknown')
# logging to OC Cluster and then switch to corresponding project
mySSH.command(f'oc login -u {ocUserName} -p {ocPassword}', '\$', 6)
if mySSH.getBefore().count('Login successful.') == 0:
logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
RAN.prematureExit = True
return
else:
logging.debug('\u001B[1m Login to OC Cluster Successfully\u001B[0m')
mySSH.command(f'oc project {ocProjectName}', '\$', 6)
if mySSH.getBefore().count(f'Already on project "{ocProjectName}"') == 0 and mySSH.getBefore().count(f'Now using project "{self.OCProjectName}"') == 0:
logging.error(f'\u001B[1m Unable to access OC project {ocProjectName}\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_PROJECT_FAIL)
RAN.prematureExit = True
return
else:
logging.debug(f'\u001B[1m Now using project {ocProjectName}\u001B[0m')
# Tag the image and push to the OC cluster
mySSH.command('oc whoami -t | sudo podman login -u ' + ocUserName + ' --password-stdin https://default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/ --tls-verify=false', '\$', 6)
if mySSH.getBefore().count('Login Succeeded!') == 0:
logging.error('\u001B[1m Podman Login to OC Cluster Registry Failed\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
RAN.prematureExit = True
return
else:
logging.debug('\u001B[1m Podman Login to OC Cluster Registry Successfully\u001B[0m')
time.sleep(2)
mySSH.command('oc create -f openshift/oai-physim-image-stream.yml', '\$', 6)
if mySSH.getBefore().count('(AlreadyExists):') == 0 and mySSH.getBefore().count('created') == 0:
logging.error(f'\u001B[1m Image Stream "oai-physim" Creation Failed on OC Cluster {ocProjectName}\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_IS_FAIL)
RAN.prematureExit = True
return
else:
logging.debug(f'\u001B[1m Image Stream "oai-physim" created on OC project {ocProjectName}\u001B[0m')
time.sleep(2)
mySSH.command(f'sudo podman tag oai-physim:{imageTag} default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/{self.OCProjectName}/oai-physim:{imageTag}', '\$', 6)
time.sleep(2)
mySSH.command(f'sudo podman push default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/{self.OCProjectName}/oai-physim:{imageTag} --tls-verify=false', '\$', 30)
if mySSH.getBefore().count('Storing signatures') == 0:
logging.error('\u001B[1m Image "oai-physim" push to OC Cluster Registry Failed\u001B[0m')
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_IS_FAIL)
RAN.prematureExit = True
return
else:
logging.debug('\u001B[1m Image "oai-physim" push to OC Cluster Registry Successfully\u001B[0m')
# Using helm charts deployment
time.sleep(5)
mySSH.command(f'sed -i -e "s#TAG#{imageTag}#g" ./charts/physims/values.yaml', '\$', 6)
mySSH.command('helm install physim ./charts/physims/ | tee -a cmake_targets/log/physim_helm_summary.txt 2>&1', '\$', 6)
if mySSH.getBefore().count('STATUS: deployed') == 0:
logging.error('\u001B[1m Deploying PhySim Failed using helm chart on OC Cluster\u001B[0m')
mySSH.command('helm uninstall physim >> cmake_targets/log/physim_helm_summary.txt 2>&1', '\$', 6)
isFinished1 = False
while(isFinished1 == False):
time.sleep(20)
mySSH.command('oc get pods -l app.kubernetes.io/instance=physim', '\$', 6, resync=True)
if re.search('No resources found', mySSH.getBefore()):
isFinished1 = True
mySSH.command(f'sudo podman rmi default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/{self.OCProjectName}/oai-physim:{imageTag}', '\$', 6)
mySSH.command('oc delete is oai-physim', '\$', 6)
mySSH.close()
self.AnalyzeLogFile_phySim(HTML)
RAN.prematureExit = True
return
else:
logging.debug('\u001B[1m Deployed PhySim Successfully using helm chart\u001B[0m')
isRunning = False
count = 0
while(count < 2 and isRunning == False):
time.sleep(60)
mySSH.command('oc get pods -o wide -l app.kubernetes.io/instance=physim | tee -a cmake_targets/log/physim_pods_summary.txt', '\$', 6, resync=True)
if mySSH.getBefore().count('Running') == 12:
logging.debug('\u001B[1m Running the physim test Scenarios\u001B[0m')
isRunning = True
podNames = re.findall('oai-[\S\d\w]+', mySSH.getBefore())
count +=1
if isRunning == False:
logging.error('\u001B[1m Some PODS Running FAILED \u001B[0m')
mySSH.command('oc get pods -l app.kubernetes.io/instance=physim 2>&1 | tee -a cmake_targets/log/physim_pods_summary.txt', '\$', 6)
mySSH.command('helm uninstall physim >> cmake_targets/log/physim_helm_summary.txt 2>&1', '\$', 6)
self.AnalyzeLogFile_phySim(HTML)
isFinished1 = False
while(isFinished1 == False):
time.sleep(20)
mySSH.command('oc get pods -l app.kubernetes.io/instance=physim', '\$', 6, resync=True)
if re.search('No resources found', mySSH.getBefore()):
isFinished1 = True
mySSH.command(f'sudo podman rmi default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/{self.OCProjectName}/oai-physim:{imageTag}', '\$', 6)
mySSH.command('oc delete is oai-physim', '\$', 6)
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_PHYSIM_DEPLOY_FAIL)
HTML.CreateHtmlTestRowPhySimTestResult(self.testSummary,self.testResult)
RAN.prematureExit = True
return
# Waiting to complete the running test
count = 0
isFinished = False
# doing a deep copy!
tmpPodNames = podNames.copy()
while(count < 32 and isFinished == False):
time.sleep(60)
for podName in tmpPodNames:
mySSH.command2(f'oc logs --tail=1 {podName} 2>&1', 6, silent=True)
if mySSH.cmd2Results.count('FINISHED') != 0:
logging.debug(podName + ' is finished')
tmpPodNames.remove(podName)
if not tmpPodNames:
isFinished = True
count += 1
if isFinished:
logging.debug('\u001B[1m PhySim test is Complete\u001B[0m')
else:
logging.error('\u001B[1m PhySim test Timed-out!\u001B[0m')
# Getting the logs of each executables running in individual pods
for podName in podNames:
mySSH.command(f'oc logs {podName} >> cmake_targets/log/physim_test.txt 2>&1', '\$', 15, resync=True)
time.sleep(30)
# UnDeploy the physical simulator pods
mySSH.command('helm uninstall physim | tee -a cmake_targets/log/physim_helm_summary.txt 2>&1', '\$', 6)
isFinished1 = False
while(isFinished1 == False):
time.sleep(20)
mySSH.command('oc get pods -l app.kubernetes.io/instance=physim', '\$', 6, resync=True)
if re.search('No resources found', mySSH.getBefore()):
isFinished1 = True
if isFinished1 == True:
logging.debug('\u001B[1m UnDeployed PhySim Successfully on OC Cluster\u001B[0m')
mySSH.command(f'sudo podman rmi default-route-openshift-image-registry.apps.5glab.nsa.eurecom.fr/{self.OCProjectName}/oai-physim:{imageTag}', '\$', 6)
mySSH.command('oc delete is oai-physim', '\$', 6)
logging.debug('\u001B[1m Deleted the Image and ImageStream\u001B[0m')
mySSH.command('oc logout', '\$', 6)
mySSH.close()
self.AnalyzeLogFile_phySim(HTML)
if self.testStatus and isFinished:
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRowPhySimTestResult(self.testSummary,self.testResult)
logging.info('\u001B[1m Physical Simulator Pass\u001B[0m')
else:
RAN.prematureExit = True
if isFinished:
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ALL_PROCESSES_OK)
else:
HTML.CreateHtmlTestRow('Some test(s) timed-out!', 'KO', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRowPhySimTestResult(self.testSummary,self.testResult)
logging.error('\u001B[1m Physical Simulator Fail\u001B[0m')
def AnalyzeLogFile_phySim(self, HTML):
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath, '\$', 5)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
mySSH.command('mkdir -p physim_test_log_' + self.testCase_id, '\$', 5)
mySSH.command('cp log/physim_* ' + 'physim_test_log_' + self.testCase_id, '\$', 5)
if not os.path.exists(f'./physim_test_logs_{self.testCase_id}'):
os.mkdir(f'./physim_test_logs_{self.testCase_id}')
mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/physim_test_log_' + self.testCase_id + '/*', './physim_test_logs_' + self.testCase_id)
mySSH.command('rm -rf ./physim_test_log_'+ self.testCase_id, '\$', 5)
mySSH.close()
# physim test log analysis
nextt = 0
if (os.path.isfile(f'./physim_test_logs_{self.testCase_id}/physim_test.txt')):
with open(f'./physim_test_logs_{self.testCase_id}/physim_test.txt', 'r') as logfile:
for line in logfile:
if re.search('execution 015', str(line)) or re.search('Bypassing compilation', str(line)):
nextt = 1
elif nextt == 1:
if not re.search('Test Results', str(line)):
nextt = 0
ret2 = re.search('T[^\n]*', str(line))
if ret2 is not None:
ret3 = ret2.group()
ret3 = ret3.replace("", "")
if re.search('execution 015', str(line)):
self.testCount[0] += 1
testName = line.split()
ret1 = re.search('Result = PASS', str(line))
if ret1 is not None:
self.testResult[testName[1]] = [ret3, 'PASS']
self.testCount[1] += 1
else:
self.testResult[testName[1]] = [ret3, 'FAIL']
self.testCount[2] += 1
self.testSummary['Nbtests'] = self.testCount[0]
self.testSummary['Nbpass'] = self.testCount[1]
self.testSummary['Nbfail'] = self.testCount[2]
if self.testSummary['Nbfail'] == 0:
self.testStatus = True
return 0

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