Compare commits

..

1908 Commits

Author SHA1 Message Date
matzakos
a9f7c3f89a Merge remote-tracking branch 'origin/NR_SA_NGAP_RRC_wk42' into NR_SRB_Config 2020-11-12 09:46:09 +01:00
matzakos
91d88abbfb Remove redundant hack in LTE PDCP for noS1 mode 2020-11-10 17:18:26 +01:00
matzakos
7772a51c07 Merge remote-tracking branch 'origin/develop' into NR_SA_NGAP_RRC_wk42
Conflicts:
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/nr_rrc_proto.h
	targets/COMMON/create_nr_tasks.c
2020-11-09 15:52:52 +01:00
Xue Song
9bba3c795a Fix GTPU's IP setting error 2020-11-09 18:04:56 +09:00
Remi Hardy
3d60e95387 Merge branch 'integration_2020_wk45_2' into 'develop'
Integration 2020 wk45 (2) comprising:

MR937:Nr dl sched fixes  
-restore old phytest scheduler behavior
-correct TA scheduling
-correct SSB
-shorten interface of `nr_fill_nfapi_dl_pdu()`
-Track RB allocation on symbol basis (bitmap)
-add a `remove_nr_ue_list()`, could be used instead of MR !934

MR910:5G SA NAS messages 
- 5G SA nass messages and a simple unitary test code
 
MR927:Nr rrc configuration fr2
- introduces some bug fixes for FR2 that might also have an impact on FR1.
2020-11-06 11:29:03 +01:00
Raphael Defosseux
7f70174cf8 CI: added missing build artifacts in one of the pipeline; fix RA test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-06 11:15:23 +01:00
hardy
3917b1ae0f Merge remote-tracking branch 'origin/NR_RRCConfiguration_FR2' into integration_2020_wk45_2 2020-11-05 16:53:13 +01:00
hardy
802e8218ad Merge remote-tracking branch 'origin/noCore' into integration_2020_wk45_2
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
2020-11-05 16:49:21 +01:00
Laurent
39bb839d7c Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-11-03 23:21:47 +01:00
Robert Schmidt
2e03cbe7bf Track RBs in vrb_map as binary 2020-11-03 20:02:48 +01:00
Florian Kaltenberger
0d30561ecd Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-11-03 16:55:20 +01:00
Robert Schmidt
c4f8ff1561 Assert on condition UE not found in UE_list 2020-11-03 14:23:50 +01:00
Robert Schmidt
ad0424cbba Check all RA procs in nr_rx_sdu() if unknown RNTI 2020-11-03 14:23:50 +01:00
Robert Schmidt
d94b1cd1a5 Track RB allocation in vrb_map{,_UL} on per-symbol basis 2020-11-03 14:23:50 +01:00
Robert Schmidt
40175d244a Format schedule_nr_mib() 2020-11-03 14:23:50 +01:00
Francesco Mani
2bdcbe6c18 Fix for filling vrb_map for ssb
The SSB nFAPI message is only sent every 8 frames, and automatically
repeated by the PHY layer in between. This commit sets the vrb_map
structure in those frames in between nFAPI so that the scheduler does
not schedule on such resources.
2020-11-03 14:23:50 +01:00
Robert Schmidt
a94da10dee Remove UE from UE_list on disconnect 2020-11-03 14:23:50 +01:00
Robert Schmidt
9125fc8d22 Refactor/shorten interface of nr_fill_nfapi_dl_pdu() 2020-11-03 14:23:50 +01:00
Robert Schmidt
8651b7fd14 Remove commented/unused code in DLSCH/phytest scheduler 2020-11-03 14:23:50 +01:00
Robert Schmidt
0deb5d291d Use special dlsim preprocessor 2020-11-03 14:23:50 +01:00
Robert Schmidt
b389e43eea Add phytest preprocessor
The phytest preprocessor schedules only one UE, as many RBs as possible
(largest continuous RB region), with a fixed MCS and time domain
allocation.
2020-11-03 14:22:28 +01:00
Robert Schmidt
fd9f5d2d2c Use function pointer to call pre-processor 2020-11-03 14:22:27 +01:00
Robert Schmidt
14f15d7e77 Fix: postprocessor resets UE scheduling condition 2020-11-03 14:22:27 +01:00
Francesco Mani
8363849c3f Modification of TA update procedure 2020-11-03 14:22:27 +01:00
Robert Schmidt
fd3d49bbe7 Correctly check and apply the TA in DLSCH scheduler 2020-11-03 14:21:37 +01:00
Remi Hardy
adcf9e9f86 Merge branch 'integration_2020_wk45' into 'develop'
MR902 Nr mac ssb ro ue idcc
- Construction of SSB-RO mapping table on the UE
- RO selection based on SSB index
- RACH preamble selection based on SSB index in a selected RO
- RA-RNTI calculation
  

MR928 nr: add MAC PDU traces for wireshark
- The T tracer macpdu2wireshark has been modified to handle the new traces. The usage is the same as for LTE.  

MR929 RA fixes for NR UE  

MR938 CI: Parse UE TUN interface correctly in S1 mode
- The TUN interface configuration is changed to use program "ip" only. 
- The CI script parsing is changed accordingly: the pipeline will recognize the attempt to bring up the interface of the first UE.

MR933 nr rlc: bugfix 
- ret.next was not set in a particular case
2020-11-03 12:45:06 +01:00
hardy
caa31696c3 Merge remote-tracking branch 'origin/nr-rlc-bugfix-w44' into integration_2020_wk45 2020-11-02 14:13:12 +01:00
hardy
58b91359e1 Merge remote-tracking branch 'origin/fix-ci-tun' into integration_2020_wk45 2020-11-02 14:12:22 +01:00
hardy
cb7e2c11e3 Merge remote-tracking branch 'origin/NR_UE_RA_fixes' into integration_2020_wk45 2020-11-02 14:11:44 +01:00
hardy
628c2b7486 Merge remote-tracking branch 'origin/nr-mac-pdu-wireshark' into integration_2020_wk45 2020-11-02 14:11:13 +01:00
Eurecom
c355a26aa6 fixing RA test iteration to 10 times to have a chance (unstable in CI env) 2020-10-30 15:26:57 +01:00
Laurent
7d603191db merge develop 2020-10-29 16:29:32 +01:00
Laurent
136d9ccb67 add documentation and code review comments 2020-10-29 16:14:55 +01:00
matzakos
87c83aaf21 Merge remote-tracking branch 'origin/develop' into NR_SA_NGAP_RRC_wk42
Conflicts:
	cmake_targets/CMakeLists.txt
	docker/Dockerfile.enb.rhel7.oc4-4
	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
2020-10-29 00:19:49 +01:00
Robert Schmidt
9d2651d080 CI: Parse UE TUN interface correctly in S1 mode
See also commit 8c5976e279

Above commit changed the TUN interface configuration to use program "ip"
only. This commit changes the CI script parsing correspondingly: the
pipeline will recognize the attempt to bring up the interface of the
first UE.
2020-10-28 17:10:21 +01:00
hardy
b18c361125 improved CI RA checks 2020-10-28 17:07:19 +01:00
Raymond Knopp
e880e66b65 Merge branch 'NR_RRCConfiguration_FR2' of http://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration_FR2 2020-10-28 16:40:11 +01:00
Raymond Knopp
77b152ade5 adding config file for band 13 2020-10-28 16:39:47 +01:00
Mario Hudon
bddd86b77a Merge remote-tracking branch 'oai-eurecom/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-10-28 08:23:29 -04:00
hardy
3578426082 fixed UE log file name 2020-10-28 10:07:25 +01:00
Raymond Knopp
36bbd2a068 adapting config file for band 261 2020-10-27 21:07:13 +01:00
masayuki.harada
483f4b2d1b Fix merge miss. 2020-10-28 04:21:41 +09:00
masayuki.harada
dc288b7bc8 Merge branch 'develop_SA_L3' into NR_SA_NGAP_RRC_wk42
# Conflicts:
#	openair2/GNB_APP/gnb_paramdef.h
#	openair2/RRC/NR/rrc_gNB.c
2020-10-28 03:57:14 +09:00
masayuki.harada
8cff73dc39 Fix merge error. 2020-10-28 03:19:41 +09:00
Remi Hardy
68619cae68 Merge branch 'integration_2020_wk44' into 'develop'
Integration 2020 wk44

MR923 : Fixes tun  
TUN-interface related changes

MR925 : bugfix: fix frequencies in nr_bandtable    
The array nr_bandtable has then been reviewed fully and all the values that were wrong have been changed.   The check of correctness was done using the website https://www.sqimway.com/nr_band.php  
  
MR931 : Finalize oaicn integration (CI)  
In addition, the "known unstable scenarios" are highlighted in the CI HTML reports.

MR917 : NR CSI reporting
This is a new feature
2020-10-27 18:35:34 +01:00
Eurecom
31f1a4b137 fixed RA check marker 2020-10-27 18:23:14 +01:00
Mario Hudon
818694acaa -Code review: Use FAPI PRACH PDU instead of PRACH vars in nr_ue_get_rach/nr_get_prach_resources 2020-10-27 11:26:16 -04:00
masayuki.harada
5c49c67f98 Merge remote-tracking branch 'remotes/origin/develop_SA_RRC' into develop_SA_L3
# Conflicts:
#	openair2/RRC/NR_UE/rrc_UE.c
#	openair2/RRC/NR_UE/rrc_defs.h
2020-10-27 20:47:03 +09:00
masayuki.harada
1956fd3b72 Merge commit 'b67badef1b2fd390d801e20644b08df0d5880583' into develop_SA_L3
# Conflicts:
#	common/utils/ocp_itti/intertask_interface.h
#	openair2/RRC/NR/rrc_gNB.c
#	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-10-27 20:25:16 +09:00
masayuki.harada
4649f0f615 Merge remote-tracking branch 'remotes/origin/develop_SA_SIM' into develop_SA_L3 2020-10-27 19:47:49 +09:00
He Shanyun
5880c1f8c7 add nas message for registration request 2020-10-27 09:28:47 +00:00
Xue Song
356a4d83e9 fix nrUE build error 2020-10-27 07:41:53 +00:00
yaojie
a5343618cf Added the judgment of the NGAP field in the configuration file 2020-10-27 07:40:09 +00:00
Laurent
7ec149cc35 merge develop 2020-10-27 08:23:59 +01:00
He Shanyun
b67badef1b fix build error of phy simulator 2020-10-27 02:59:52 +00:00
Xue Song
41d3892c64 Merge branch 'develop_SA_NGAP' into develop_SA_RRC 2020-10-27 02:51:57 +00:00
Xue Song
62292f892e modify ngap_gNB_handle_nas_first_req 2020-10-27 01:56:41 +00:00
hardy
779362dcb7 Merge remote-tracking branch 'origin/NR_CSI_reporting' into integration_2020_wk44 2020-10-26 17:30:17 +01:00
hardy
b0797c0899 Merge remote-tracking branch 'origin/finalize-oaicn-integration' into integration_2020_wk44 2020-10-26 17:29:28 +01:00
hardy
97d284bea3 Merge remote-tracking branch 'origin/bugfix-nr-bands' into integration_2020_wk44 2020-10-26 17:28:58 +01:00
hardy
89d7353ddf Merge remote-tracking branch 'origin/fixes-tun' into integration_2020_wk44 2020-10-26 17:28:11 +01:00
Cedric Roux
3826ea13ac nr rlc: bugfix - ret.next was not set in a particular case
The function next_missing needs a rewrite...
2020-10-26 11:01:44 +01:00
Wu.Jing
66bc0bac1e Merge branch 'master' into develop_SA_L3 2020-10-26 09:04:03 +00:00
Wu.Jing
08e775559b Merge branch 'develop_SA_SIM' into develop_SA_L3 2020-10-26 09:02:18 +00:00
Raphael Defosseux
41d059794c Merge remote-tracking branch 'origin/oc-docker-october-improvements' into finalize-oaicn-integration 2020-10-26 09:49:44 +01:00
Raphael Defosseux
457734988c CI: lock mechanism around the VM usage
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
61989549e1 CI: better handling of the case when no UE is connected to ADB server
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
0a4cfc2173 CI: scenarios that are known as unstable won't be seen as failures
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
fb957484af CI: intermediate commit
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Francesco Mani
1a1ee59d39 Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-26 09:27:52 +01:00
Francesco Mani
c41566ac6a fix compilation error 2020-10-26 09:27:40 +01:00
Wu.Jing
a9b76b5341 Merge branch 'develop_SA_RRC' into develop_SA_SIM
Conflicts:
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/rrc_gNB.c
2020-10-26 07:30:18 +00:00
Wu.Jing
92ba7dc249 Merge branch 'develop_SA_NGAP' into develop_SA_RRC 2020-10-26 06:20:02 +00:00
masayuki.harada
1ce1e8f82b Merge branch 'oai_develop'
# Conflicts:
#	ci-scripts/Jenkinsfile-gitlab
2020-10-26 15:03:58 +09:00
Remi Hardy
97ae4300f7 Merge branch 'integration_2020_wk42_2' into 'develop'
Integration 2020 wk42 (2)

MR921 : Hotfix for DL DCI issue in UE  
Fixing a bug from last MR.  
Fix in nr_dlsim that prevents reporting false 'PDSCH ok' message

MR915 : Fix to avoid RRC->X2AP ticking every msec when x2ap task is not enabled  
The aim of itti RRC_SUBFRAME_PROCESS message (MAC->RRC) is to trigger an itti X2AP_SUBFRAME_PROCESS message (RRC->X2AP)  
This change avoids creating RRC_SUBFRAME_PROCESS message if x2ap task is not enabled
2020-10-25 15:50:41 +01:00
Hongzhi WANG
0109c7b1fb remove ue warnings 2020-10-23 18:09:13 +02:00
Raphael Defosseux
d240e85c21 docker: removing obsolete file
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-23 17:08:29 +02:00
Francesco Mani
5de83e0bb8 fixing a couple of warnings 2020-10-23 16:49:58 +02:00
Florian Kaltenberger
3b56994113 fixing warnings 2020-10-23 14:18:12 +02:00
Xue Song
d5f95c6c79 fix some error 2020-10-23 08:00:21 +00:00
Xue Song
ce85677762 modify some issues 2020-10-23 03:42:06 +00:00
Mario Hudon
dd573e891d Changed for the original file in develop 2020-10-22 18:55:05 -04:00
Mario Hudon
e23219d53b Removed changes in fix_scc to avoid impact on the actual value of ssb_PositionsInBurst_Bitmap in the archived configuration files 2020-10-22 18:39:25 -04:00
Mario Hudon
a9169c0234 -Updated for a clean merge 2020-10-22 17:55:23 -04:00
Laurent
c8111292e9 fix warnings from merge 2020-10-22 21:06:35 +02:00
Mario Hudon
31fb92b802 Moved UE SSB/RO handling code from nr_mac_common to nr_ue_procedures 2020-10-22 13:45:33 -04:00
hardy
8d65628052 re-enabling RA test 2020-10-22 17:58:00 +02:00
Raphael Defosseux
4899c55101 [docker] adding some tools and missing USIM generation config file
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-22 17:05:08 +02:00
Raphael Defosseux
0519e31575 [docker] add CMD w/ 'sleep infinity' for remaining target images
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-22 16:56:04 +02:00
hardy
bebc0d98d7 Merge remote-tracking branch 'origin/UE_DL_DCI_hotfix' into integration_2020_wk42_2 2020-10-22 16:23:34 +02:00
hardy
0a8bc5cdb5 Merge remote-tracking branch 'origin/fix_rrc_x2_ticking' into integration_2020_wk42_2 2020-10-22 16:23:05 +02:00
matzakos
e904cf3a00 Add comments for dummy function definitions in nr phy simulators 2020-10-22 16:16:10 +02:00
masayuki.harada
a21ba6c7dc Merge remote-tracking branch 'remotes/origin/develop_SA_L3' into NR_SA_NGAP_RRC_wk42 2020-10-22 19:59:13 +09:00
Thomas Schlichter
bc810d1d04 Merge branch 'develop' into NR_UE_RA_fixes 2020-10-22 12:31:59 +02:00
zhanghuiqin
f3c922b1c1 fix RRCReject 2020-10-22 09:19:27 +00:00
Thomas Schlichter
7c5677fd1f fix message 1 frame number calculation on NR UE
UE initiates the RA procedure with sending message 1 via PRACH 150 frames after synchronizing with the gNB.
As the frame numbers wrap at 1024, we have to calculate the frame number for message 1 using modulo calculation.
2020-10-22 10:25:48 +02:00
Francesco Mani
76abeaf30e Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-22 09:26:51 +02:00
He Shanyun
028be9e486 fix build error of phy simulator 2020-10-22 05:55:51 +00:00
Mario Hudon
b61b591e42 Merge remote-tracking branch 'oai-eurecom/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-10-21 18:51:03 -04:00
Mario Hudon
3874e934d8 Added support of PRACH on start symbol != 0 on the UE 2020-10-21 15:45:08 -04:00
Cedric Roux
ae8c0ef448 nr: add MAC PDU traces for wireshark
The T tracer macpdu2wireshark has been modified to handle the new traces.
The usage is the same as for LTE.

In NR the RACH is logged as an LTE RACH. Maybe we'll change that in the
future. Looking at the source code of wireshark, I could not find any
way to report NR RACH. Maybe they forgot it. Or I did not search correctly...
2020-10-21 18:09:15 +02:00
Mohammed Ismail
7cc5765848 docker file updates on gnb and lteue
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2020-10-21 16:35:34 +02:00
cig
1ef9a7ceb6 Enter PRACH procedures only after UE sync 2020-10-21 16:02:47 +02:00
Raphael Defosseux
0e1a56c766 DOC: 1st draft for OC build / deployment
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-21 15:59:27 +02:00
Raphael Defosseux
1bed270326 DOC: adding table of content
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-21 15:14:00 +02:00
Raphael Defosseux
81785c1d91 DOC: initial draft for docker/openshift
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-21 15:14:00 +02:00
Raphael Defosseux
ddfeaf8119 [docker] adding a CMD for eNB dockerfiles
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-21 15:14:00 +02:00
Thomas Schlichter
fb7a098a47 fix execution of nr_ue_pdsch_procedures() only once per slot for SI_PDSCH, P_PDSCH and RA_PDSCH 2020-10-21 14:56:44 +02:00
Laurent
5c69510f17 merge develop, improve doc 2020-10-21 14:38:17 +02:00
Raphael Defosseux
b70671777c Merge branch 'integration_2020_wk42' into 'develop'
Develop Integration Branch: 2020 wk42

The following Merge Requests were included:

* MR 913 : Flexran Base Station Apps  
* MR 875 : Nr mac ssb ro global edge  
* MR 897 : python framework cleanup (CI)  
* MR 924 : C-RNTI as TC-RNTI  
* MR 911 : Cce indexing fix  
* MR 922 : fixes mac sched nfapi
2020-10-21 13:39:04 +02:00
masayuki.harada
a6a39d9951 Merge branch 'develop_SA_L3' into NR_SA_NGAP_RRC_wk42
# Conflicts:
#	openair2/RRC/NR/rrc_gNB.c
2020-10-21 16:41:09 +09:00
yaojie
bfd2c35c35 fix warning/error 2020-10-21 07:30:20 +00:00
masayuki.harada
72cc6b16bf Merge branch 'develop_SA_L3' into 'master'
develop_SA_L3_20201021

See merge request !2
2020-10-21 14:25:37 +09:00
Xue Song
592642cb28 modify RRC messages 2020-10-21 02:46:40 +00:00
cig
4589d86018 Set init_msg1 at the start of the nr_ue_prach_procedures 2020-10-20 18:07:17 +02:00
Thomas Schlichter
97e88dae06 Merge remote-tracking branch 'UE_DL_DCI_hotfix' 2020-10-20 17:47:35 +02:00
Thomas Schlichter
65962b4881 fix compilation of telnetsrv_proccmd.c with deadline scheduler disabled 2020-10-20 13:35:46 +02:00
Thomas Schlichter
d9a3009f10 fix some cppcheck warnings 2020-10-20 13:35:46 +02:00
Thomas Schlichter
7428723c87 Synchronize gnb.band78.tm1.106PRB.usrpn300.conf files in ci-scripts and targets directory 2020-10-20 13:35:46 +02:00
He Shanyun
e15f0b2813 add struct for registration request message 2020-10-20 11:30:06 +00:00
zhanghuiqin
fad30fff8a fix UECapabilityEnquiry & UECapabilityInformation 2020-10-20 08:41:41 +00:00
Florian Kaltenberger
288df1af6d remove hardcoding of FR2 parameters 2020-10-20 07:59:04 +02:00
Florian Kaltenberger
9e69c0e35d Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-10-20 07:38:07 +02:00
Raphael Defosseux
01c8e3e63f [OC]: point to proper namespace and branch
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-19 17:24:26 +02:00
Raphael Defosseux
50fbb1f111 CI: increased time-outs on last few VM creations
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-19 13:16:26 +02:00
Francesco Mani
914b8da916 fix after integration 2020-10-19 12:46:55 +02:00
matzakos
8e3ec3e5a8 Merge remote-tracking branch 'origin/develop' into fix_rrc_x2_ticking 2020-10-19 11:49:43 +02:00
Raphael Defosseux
1da61458ba DOC: adding docker readme skeleton
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-19 11:32:32 +02:00
hardy
ae6af7ed8c Merge remote-tracking branch 'origin/rh_ci_py' into integration_2020_wk42
Conflicts:
	ci-scripts/reportTestLocally.sh

Kept new RA test disabled
2020-10-19 11:24:12 +02:00
hardy
03e5b461a3 Merge remote-tracking branch 'origin/NR_MAC_SSB_RO_GlobalEdge' into integration_2020_wk42
Solved Conflicts in:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.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
2020-10-19 11:18:30 +02:00
hardy
8eb9d0b4a6 Merge remote-tracking branch 'origin/fixes-mac-sched-nfapi' into integration_2020_wk42 2020-10-19 10:52:37 +02:00
hardy
4d14cc63b9 Merge remote-tracking branch 'origin/cce_indexing_fix' into integration_2020_wk42 2020-10-19 10:51:46 +02:00
hardy
d94fc12887 Merge remote-tracking branch 'origin/NR_RA_updates' into integration_2020_wk42 2020-10-19 10:50:56 +02:00
hardy
639d957e30 Merge remote-tracking branch 'origin/flexran-apps' into integration_2020_wk42 2020-10-19 10:49:44 +02:00
zhanghuiqin
49487217bf add UECapabitlityEnquiry(ue) 2020-10-19 08:22:15 +00:00
Xue Song
4766f3a629 fix RRCReconfiguration/RRCReconfigurationComplete 2020-10-19 07:58:10 +00:00
Qiu DeZhi
4421bc5665 modify rrcRelease 2020-10-19 06:55:53 +00:00
Qiu DeZhi
1605266440 Add RRCrelease 2020-10-19 04:59:29 +00:00
Raphael Defosseux
13cf8284fd Merge branch 'integration_2020_wk41' into 'develop'
develop integration branch : 2020 week 41

* MR909 small-bugfixes-wk40 (Cedric Roux)
* MR919 docker and openshift initial support
2020-10-18 21:21:59 +02:00
Raphael Defosseux
591184c4ba CI: proper disabling of 5g RF sim RA-TEST
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-17 22:07:03 +02:00
Raphael Defosseux
3f2da854ef CI: increase time-out for RF Sim tests
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-17 21:18:00 +02:00
Florian Kaltenberger
63ddc9ac10 fixing a cppcheck warning 2020-10-16 14:21:44 +02:00
hardy
930c147b18 removing useless debug comments 2020-10-16 14:13:31 +02:00
hardy
118575d7d2 aligning ci-scripts/runTestOnVM.sh with integration_2020_wk41 2020-10-16 14:11:06 +02:00
Laurent
6b7eb07224 remove gtp work 2020-10-16 12:01:20 +02:00
Laurent
dd43752bbe add thread pool init 2020-10-16 11:41:14 +02:00
matzakos
dc63cab2b0 Merge remote-tracking branch 'origin/develop' into fix_rrc_x2_ticking 2020-10-16 11:35:54 +02:00
yaojie
6030a75a65 fix securityModeCommand/securityModeComplete 2020-10-16 09:15:53 +00:00
Xue Song
dfa50d975b Modify RRCSetupComplete 2020-10-16 08:42:28 +00:00
Xue Song
5697057f0b Unblock ITTI SIM process 2020-10-16 05:06:19 +00:00
Xue Song
a76ef07a69 Merge branch 'develop_SA_RRC' into develop_SA_SIM 2020-10-16 01:48:23 +00:00
Xue Song
43ef53cbcf Add pucchresset->maxPayloadMinus1 to be compatible with Rel15 2020-10-16 01:46:15 +00:00
Francesco Mani
10c196b64a Merge branch 'NR_CSI_reporting' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_CSI_reporting 2020-10-15 14:52:39 +02:00
Hongzhi Wang
8ff485fca4 sending csi reporting in scheduled slot from rrc config 2020-10-15 14:47:56 +02:00
Qiu DeZhi
46bbb6a943 Modify RRCSetupComplete 2020-10-15 10:34:19 +00:00
matzakos
c4dc689249 Initial work on nr-pdcp SRB supporting functions and configuration 2020-10-15 12:31:15 +02:00
Cedric Roux
f3a27d6ae3 bugfix: fix frequencies in nr_bandtable
A test with band 79 was not working. It turns out that the computation
of the frequency from the NR-ARFCN was giving a wrong value.

After fixing band 79 as found in this commit, the frequency was correct.

The array nr_bandtable has then been reviewed fully and all the values
that were wrong have been changed. The check of correctness was done
using the website https://www.sqimway.com/nr_band.php
2020-10-15 11:50:11 +02:00
Florian Kaltenberger
0d555854e9 Merge branch 'NR_MAC_SSB_RO_GlobalEdge' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_MAC_SSB_RO_GlobalEdge 2020-10-15 11:27:10 +02:00
Francesco Mani
757a01d2d9 k2 = 6 in rfsim config file 2020-10-15 11:26:51 +02:00
Remi Hardy
4f2f1cc744 Update TESTING_GNB_W_COTS_UE.md 2020-10-15 11:16:00 +02:00
Wu.Jing
0312db24b4 comment nnsf that it hasnot be test 2020-10-15 08:57:28 +00:00
Wu.Jing
b2722225ab Merge branch 'master' into develop_SA_L3 2020-10-15 08:26:42 +00:00
Francesco Mani
62dbda5c83 Merge remote-tracking branch 'origin/develop' into NR_RA_updates 2020-10-15 10:18:16 +02:00
Raphael Defosseux
c69a30fe5d CI: disabling RA test check for the moment. 5G RF SIM normal phy-test should be passing now
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-15 10:14:56 +02:00
kn.raju
2cad2b936e modified mapping of SSB index to UE_id 2020-10-15 13:00:04 +05:30
Francesco Mani
5f1fe21c7c Revert "Fix to avoid RRC->X2AP ticking every msec when x2ap task is not enabled"
This reverts commit 1a5874d40f.
2020-10-15 08:54:31 +02:00
masayuki.harada
fa8e7d9f71 Merge remote-tracking branch 'remotes/origin/develop_SA_SIM' into develop_SA_L3 2020-10-15 15:43:46 +09:00
masayuki.harada
d626d4b27f Merge remote-tracking branch 'remotes/origin/develop_SA_RRC' into develop_SA_L3 2020-10-15 15:42:34 +09:00
masayuki.harada
bdc83aaac6 Merge remote-tracking branch 'remotes/origin/develop_SA_NGAP' into develop_SA_L3
# Conflicts:
#	openair2/GNB_APP/gnb_paramdef.h
#	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-10-15 15:39:46 +09:00
masayuki.harada
af35e37c74 Merge branch 'oai_develop'
# Conflicts:
#	openair2/RRC/NR/rrc_gNB.c
2020-10-15 15:25:04 +09:00
yaojie
1fd1853ce7 add nr_decode_SI/SIB2/SIB3 2020-10-15 05:46:32 +00:00
yaojie
f00e5deb14 fix about nnfs,make it TODO 2020-10-14 08:34:41 +00:00
Qiu DeZhi
b4fad9c589 Merge branch 'develop_SA_SIM' of http://10.37.143.24:8000/gitlab/vran/OAI-5GNR into develop_SA_SIM 2020-10-14 08:02:27 +00:00
yaojie
e981df3cd8 add nr_decode_SIB1 2020-10-14 05:27:38 +00:00
He Shanyun
e6ddb5379c add process for itti simulator 2020-10-14 03:22:55 +00:00
Florian Kaltenberger
18ae5acc98 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB_RO_GlobalEdge 2020-10-13 21:47:21 +02:00
Francesco Mani
37b8995e9e fix merge bug at ue 2020-10-13 14:18:09 +02:00
Xue Song
878b483746 Merge branch 'develop_SA_RRC' into develop_SA_SIM 2020-10-13 11:37:45 +00:00
Xue Song
9812545c61 modify rrc_gNB_generate_RRCSetup 2020-10-13 11:36:52 +00:00
Xue Song
38516da2dc Merge branch 'develop_SA_RRC' into develop_SA_SIM 2020-10-13 10:48:46 +00:00
Xue Song
0f378cf3da modify RRCSetup 2020-10-13 10:48:01 +00:00
Sakthivel Velumani
2581428808 changing k2 to 6 to support oai-ue
this shouldn't affect the testing with cots ue
2020-10-13 11:49:21 +02:00
Xue Song
db410e41a6 Merge branch 'develop_SA_RRC' into develop_SA_SIM 2020-10-13 09:31:16 +00:00
Xue Song
8c421698c4 modify do_RRCSetup 2020-10-13 09:07:19 +00:00
Qiu DeZhi
f9d8c922e4 add rrcRelease 2020-10-13 07:26:54 +00:00
yaojie
602424f616 handle bcch message in rrc_nrue_task 2020-10-13 07:13:42 +00:00
Robert Schmidt
a6126a39a5 Remove MAX_NUMBER_NETIF and use num UE 2020-10-13 09:07:46 +02:00
Robert Schmidt
8c5976e279 Use "ip add" to add IP addresses
This then only uses the "modern" ip tool instead of ifconfig, and the
command is more "homogeneous".
2020-10-13 09:07:46 +02:00
Robert Schmidt
298956509f Delete double UE IP config setup 2020-10-13 09:07:46 +02:00
Robert Schmidt
4c7035e6e3 Remove UESIM_EXPANSION
This completely removes the UESIM_EXPANSION define: it does not compile
at the moment. Its function was to multiplex multiple UEs on the same
TUN interface. However, this functionality is not needed since it is
possible to allocate many TUN devices (i.e., >= 32).
2020-10-13 09:07:46 +02:00
Francesco Mani
4df83dd00e Merge remote-tracking branch 'origin/fix_rrc_x2_ticking' into NR_CSI_reporting 2020-10-13 08:51:13 +02:00
Robert Schmidt
ff48c369c5 Lower nFAPI eNB log level 2020-10-13 08:49:30 +02:00
Robert Schmidt
ac4bb8bc55 Prevent deadlocks in nFAPI when no free index 2020-10-13 08:49:30 +02:00
Robert Schmidt
9882460607 Remove Mutexes in phy_stub_UE.c
Various mutexes are present in the phy_stub_UE.c file. However, it will
only be run in a single thread; the multiple-thread implementation also
runs the higher layers concurrently, which leads to races and segfaults.
Therefore, remove these mutexes, as we don't need them.
2020-10-13 08:49:30 +02:00
Robert Schmidt
581de8b2d8 Limit UE UL RBs to 48 2020-10-13 08:49:30 +02:00
Robert Schmidt
41a440fad2 Do not schedule static slices if 0 RB(G)s 2020-10-13 08:49:29 +02:00
Robert Schmidt
ca1b0e2bbc Bugfix RR algo: if a UE cannot be allocated, skip it 2020-10-13 08:49:29 +02:00
abdeljel
8aa270a7c0 Refactor HARQ retx in try_allocate_harq_retransmission() 2020-10-13 08:49:29 +02:00
yincong
e344a7bd4a add Sidelink redioresource 2020-10-13 06:14:16 +00:00
Xue Song
f6d5e5f95d handle dcch message in rrc_nrue_task 2020-10-13 02:11:39 +00:00
Sakthivel Velumani
c9c1df0bff fixed dlsim build error
also added a log message for DCI generation in MAC
2020-10-12 18:59:15 +02:00
Sakthivel Velumani
f7cef6b132 fixed return value inconsistancy
changed uint8_t to void as return is not used in the calling function
2020-10-12 18:59:14 +02:00
Sakthivel Velumani
de4a370c39 changing k2 to 6 to support oai-ue
this shouldn't affect the testing with cots ue
2020-10-12 18:59:14 +02:00
Sakthivel Velumani
3a7079228e scheduling slot 2 aslo 2020-10-12 18:59:14 +02:00
Robert Schmidt
72556206e9 Simplify set_Y() 2020-10-12 18:59:14 +02:00
Sakthivel Velumani
e75108d312 fixing dlsim 2020-10-12 18:59:14 +02:00
Sakthivel Velumani
5307eed845 fixing warnings 2020-10-12 18:59:14 +02:00
Sakthivel Velumani
8a1be8aa2f increased the number of pdcch candidates in ue 2020-10-12 18:59:14 +02:00
Sakthivel Velumani
62562c32e9 fixing bug in pucch 2020-10-12 18:59:14 +02:00
Sakthivel Velumani
6b3ddcc799 fixed cce indexing to allow multiple pdcch on single coreset 2020-10-12 18:59:14 +02:00
Laurent
910a130eb2 Merge branch 'noCore' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-10-12 18:25:19 +02:00
Laurent
4f2d8ebfcd merge develop, use Linux crypto library 2020-10-12 18:24:08 +02:00
hardy
fd571e9014 Merge remote-tracking branch 'origin/small-bugfixes-w40' into integration_2020_wk41 2020-10-12 18:08:16 +02:00
hardy
e801d03836 Merge remote-tracking branch 'origin/rh_ci_oc' into integration_2020_wk41 2020-10-12 18:07:27 +02:00
Sakthivel Velumani
4074db8515 Hotfix for DL DCI issue in UE
Created two dci_pdu's to hold dci configuration for UL and DL DCI.
This wasn't a problem before as only one DCI was scheduled.
2020-10-12 18:07:24 +02:00
matzakos
cb7b924950 Create dummy x2 function where needed in the nr phy simulators
-To avoid including the whole x2 libraries for the corresponding executables
2020-10-12 17:53:40 +02:00
Raphael Defosseux
221e43bbb9 NASMESH: support for latest kernel version on RHEL
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
357748dfff BUILD: fix check when not in a container
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
00926c5b7d [DOCKER][Ubuntu18]: adding Ubuntu18 support
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
b6d0f22c13 [OC][RHEL8]: updating dockerfiles w/ proper library management on target images + support for USRP build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:28:41 +02:00
Raphael Defosseux
49e1add19f [DOCKER][RHEl8]:
* Standalone support on RHEL8.2 (without OpenShift build-config system)
* few ports for RHEL8.2 standalone podman/docker usage
* Supports eNB/gNB/LTE-UE/NR-UE

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:46 +02:00
Raphael Defosseux
4aae87ca5e BUILD: remove ue_ip is container-based build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:46 +02:00
Raphael Defosseux
45dfec4671 [OC][RHEL8]: copy/pasta error on build options
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:23 +02:00
Raphael Defosseux
8c41a241ee [OC][RHEL8]: finalizing lte/nr UE image builds on RHEL8
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:24:37 +02:00
Raphael Defosseux
40ff24661e [DOCKER]: fix files to copy
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:24:18 +02:00
Raphael Defosseux
0100b26686 [OC]: added support for RHEL8.2
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:23:30 +02:00
hardy
e598df840e [OC][Docker][RHEL8] Initial Support 2020-10-12 17:17:16 +02:00
Francesco Mani
b7d71d58ad Merge remote-tracking branch 'origin/fix_rrc_x2_ticking' into NR_CSI_reporting 2020-10-12 17:14:55 +02:00
Francesco Mani
d0bcde029a Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-12 17:08:04 +02:00
yaojie
5db27b9305 Add RRCSetup 2020-10-12 09:29:56 +00:00
Laurent
489fc7c0fe trial 2020-10-12 10:52:46 +02:00
Xue Song
f4f8db4373 Merge branch 'develop_SA_RRC' into develop_SA_SIM
Modify RRCReconfiguration
2020-10-12 04:59:49 +00:00
Xue Song
994229963b Modify RRCReconfiguration 2020-10-12 02:59:22 +00:00
Wu.Jing
ac6262e82b fix gNB build error 2020-10-10 06:57:57 +00:00
yaojie
3b6f720125 RM3977 2020-10-10 06:25:29 +00:00
Xue Song
fefb6148e6 Modify some warnings
Add nr_rrc_pdcp_config_security
Delete ENABLE_SECURITY
2020-10-10 06:18:40 +00:00
zhenghuangkun
84579c5dc0 Modify MME_MODE_ENABLED to AMF_MODE_ENABLED
Modify kenb to kgnb
Modify some warnings
2020-10-10 06:16:49 +00:00
He Shanyun
90dc22aea6 add rrc_nrue_task 2020-10-10 05:15:46 +00:00
Xue Song
aa8e695d59 Fix compiling error 2020-10-10 03:24:06 +00:00
Wu.Jing
079157eb55 cherry-pick 3efc7538ac 2020-10-10 11:26:40 +09:00
zhenghuangkun
6ca5753555 Add author and email 2020-10-10 10:56:14 +09:00
He Shanyun
c180323de4 fix compile issue about build ngap asn file 2020-10-10 10:55:49 +09:00
He Shanyun
9e428fe6c2 dummy define for some fields 2020-10-10 10:55:31 +09:00
zhenghuangkun
45e5be9c44 Add ErrorIndication
Add Paging
Add PDUSessionResourceModifyRequest
2020-10-10 10:55:01 +09:00
zhenghuangkun
57b28d0732 Add PDUSessionResourceReleaseCommand 2020-10-10 10:53:08 +09:00
zhenghuangkun
22ac1b9486 Add PDUSessionResourceModifyResponse
Add PDUSessionResourceReleaseResponse
Add NASNonDeliveryIndication
2020-10-10 10:52:08 +09:00
yincong
55495f68bc modify PDUSessionResourceSetupRequest 2020-10-10 10:51:51 +09:00
yincong
b84880a1fe PDUSessionResourceSetupRequest
PDUSessionResourceSetupResponse
2020-10-10 10:51:20 +09:00
zhenghuangkun
655b7d64f9 Add UERadioCapabilityInfoIndication 2020-10-10 10:51:10 +09:00
He Shanyun
fbea1eff2b modify type of tac 2020-10-10 10:50:57 +09:00
zhenghuangkun
c6d6a42484 Add UEContextReleaseComplete
Add UEContextReleaseRequest
2020-10-10 10:50:43 +09:00
zhenghuangkun
5217b76448 Add DownlinkNASTransport Message
Add UEContextReleaseCommand Message
Modify NGSetup Message Encode failed
2020-10-10 10:50:19 +09:00
Francesco Mani
74b2aec212 fix for rach pdus 2020-10-09 13:46:38 +02:00
Remi Hardy
0fe3e5fde2 Merged branch 'integration_2020_wk40' into 'develop'
Integration 2020 wk40 comprises the following udpates:

MR893 ULSCH decode mthread: 
- Enabled parallelization of ULSCH segments decoding, deinterleaving and rx rate matching.
  
MR896 Nsa remove band hardcodings:
- A missing commit from wk39, just a log change   

MR901 NR UE DCI improvements:
- Handling of DCI formats 0_0 and 0_1, including removing hard-coding and scheduling PUSCH with DCI parameters
- Blind decoding of DCIs based on size and format indicator
- Fix for segmentation fault during ULSCH encoding

MR895 support of RA procedure by implementing Msg3 on UE

MR908 NR DL scheduler improvements:
Preliminary work on the DL scheduler
- cleanup of DL scheduler, add interface preprocessor-postprocessor (`NR_UE_sched_ctrl_t`)
- postprocessor can handle multiple UEs. Preprocessor will follow soon (proportional fair scheduler)
- No MAC UE Context creation before end of RA (Msg 3)
These updates do not change anything performance wise (no additional scheduled slots, etc). 
This MR also reduces gNB log.
2020-10-09 11:26:09 +02:00
yaojie
457423fe25 RM3977 2020-10-09 08:03:48 +00:00
Robert Schmidt
8cb530d25c Address review in !913: rename functions 2020-10-09 09:02:59 +02:00
Francesco Mani
f28d7ce8ff bugfix in dlsim and ulsim 2020-10-08 17:33:17 +02:00
matzakos
9aba4bcf8c Include X2 libraries in nr phy simulators to avoid linking errors
-Also change the place of the check on whether x2ap is enabled to trigger the ITTI tick message from RRC to X2AP.
2020-10-08 15:34:35 +02:00
Raphael Defosseux
43c76e868f CI: adding waiver on License Banner check for milenage.h file
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-08 13:44:56 +02:00
Qiu Dezhi
ad1f8a372e Add RrcSetupComplete 2020-10-08 14:22:23 +09:00
Thomas Schlichter
2a4153eb29 fixup previous merge with develop branch 2020-10-07 17:54:39 +02:00
Robert Schmidt
a389e6f5e9 Fixup: reserve space for TA command 2020-10-07 17:54:39 +02:00
Francesco Mani
dec42f3385 rearrangement of handle_uci function for acknack 2020-10-07 17:38:37 +02:00
matzakos
1a5874d40f Fix to avoid RRC->X2AP ticking every msec when x2ap task is not enabled
-Since the aim of itti RRC_SUBFRAME_PROCESS message (MAC->RRC) is to trigger an itti X2AP_SUBFRAME_PROCESS message (RRC->X2AP), avoid creating
RRC_SUBFRAME_PROCESS message if x2ap task is not enabled. Not sure if this is the best solution. We could also avoid only sending the second itti X2AP_SUBFRAME_PROCESS message.
2020-10-07 14:37:02 +02:00
Francesco Mani
3af7ab3ff8 Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-07 11:20:32 +02:00
Xue Song
97dd024c1d Fix some issues 2020-10-07 08:57:30 +00:00
Raphael Defosseux
5411461582 Merge remote-tracking branch 'origin/develop' into integration_2020_wk40 2020-10-07 10:53:36 +02:00
matzakos
c6aae3140e Merge develop branch into NR_SA_NGAP_RRC 2020-10-07 10:38:58 +02:00
zhanghuiqin
8f2c96e6e2 add RRCReconfigurationComplete 2020-10-07 12:20:19 +08:00
Dong Anyuan
d82d881463 create CPPCheck Jenkins Job for OAI-5GNG/develop_SA_L3 2020-10-07 12:07:35 +09:00
Shweta Shrivastava
2305470a75 Fix for using K2 offset other than 2 2020-10-06 13:26:45 -05:00
Robert Schmidt
f146b640d5 FlexRAN agent app: trigger UE-slice assoc through IMSI regex 2020-10-06 19:47:33 +02:00
matzakos
824c504b11 Fix to avoid RRC->X2AP ticking every msec when x2ap task is not enabled
-Since the aim of itti RRC_SUBFRAME_PROCESS message (MAC->RRC) is to trigger an itti X2AP_SUBFRAME_PROCESS message (RRC->X2AP), avoid creating
RRC_SUBFRAME_PROCESS message if x2ap task is not enabled. Not sure if this is the best solution. We could also avoid only sending the second itti X2AP_SUBFRAME_PROCESS message.
2020-10-06 18:31:31 +02:00
Robert Schmidt
e569577944 FlexRAN: send loaded apps/macObjects to RTC 2020-10-06 17:45:50 +02:00
Robert Schmidt
28c47996e4 When preparing slice update/search also loaded libraries 2020-10-06 17:45:50 +02:00
Robert Schmidt
38ace905aa Check for shared objects beforing setting scheduler 2020-10-06 17:45:50 +02:00
Robert Schmidt
21dcd834cc Save list of SOs used in user plane 2020-10-06 17:45:50 +02:00
Robert Schmidt
65e52fcf11 Inform MAC of control delegation and load in user plane 2020-10-06 17:44:16 +02:00
Robert Schmidt
0f641b7d9c If unknown scheduler, save message and contact controller 2020-10-06 17:44:16 +02:00
Robert Schmidt
9de83a047a FlexRAN: Add control_delegation_request protobuf message 2020-10-06 17:44:16 +02:00
Robert Schmidt
c500babe8b FlexRAN fixup: FLPT_DELEGATE_REQUEST and corresp. destroy() 2020-10-06 17:44:16 +02:00
Robert Schmidt
865348b047 FlexRAN agent app: Add sample FlexRAN app 2020-10-06 17:44:16 +02:00
Robert Schmidt
fde3127823 FlexRAN Agent reconfiguration: call flexran_agent_handle_apps() 2020-10-06 17:44:16 +02:00
Robert Schmidt
8772856fd4 FlexRAN: Add app loader/CM 2020-10-06 17:44:16 +02:00
Robert Schmidt
9e4320864f FlexRAN control delegation: write/remove depending if payload present 2020-10-06 17:44:09 +02:00
Robert Schmidt
6e2c8d847a FlexRAN: new agent reconfiguration syntax, instead of YAML 2020-10-06 17:44:09 +02:00
Robert Schmidt
1c5a4eb645 FlexRAN: add control app delegation type in protobuf 2020-10-06 17:44:09 +02:00
Robert Schmidt
61344db9dd FlexRAN delegation: mapper function to return path name 2020-10-06 17:44:08 +02:00
Robert Schmidt
f63cf65919 FlexRAN: Improve handling of received shared objects 2020-10-06 17:44:08 +02:00
Robert Schmidt
5d9c61ea2a FlexRAN timers: Fix segfault timer no associated message 2020-10-06 17:27:12 +02:00
Robert Schmidt
33b73193e8 FlexRAN timers: enable timer add/remove within timer event
A lock help during executing a timer event prevented such event from
creating/removing new timers due to a dead lock. This commit changes the
logic of the timing loop and adding/removing code such that this dead
lock does not happen.
2020-10-06 17:27:12 +02:00
Robert Schmidt
7bdf807bab FlexRAN timers: Remove destroy_timers() 2020-10-06 17:27:12 +02:00
Robert Schmidt
db933da183 FlexRAN bugfix: first timer expiry after period 2020-10-06 17:27:12 +02:00
Francesco Mani
87b02489b0 using crnti as tcrnti 2020-10-06 14:12:29 +02:00
Laurent
6b676d1605 Fix compilation issues 2020-10-06 13:54:30 +02:00
hardy
d61f45ecb9 Merge remote-tracking branch 'origin/ulsch_decode_mthread' into integration_2020_wk40 2020-10-06 11:00:09 +02:00
hardy
8f9ba5553d Merge remote-tracking branch 'origin/nsa_remove_band_hardcodings' into integration_2020_wk40 2020-10-06 09:30:04 +02:00
Francesco Mani
8d6e0a43d1 adding cfra flag 2020-10-05 18:04:20 +02:00
Francesco Mani
3ac23f80f9 Merge remote-tracking branch 'origin/NR_DL_scheduler' into nr_ue_msg3 2020-10-05 14:56:18 +02:00
Francesco Mani
8e4a2f82c4 bugfix in crc6 2020-10-05 14:48:58 +02:00
Robert Schmidt
2904367165 Fixup: reserve space for TA command 2020-10-05 13:14:58 +02:00
Robert Schmidt
2e41782a12 Add configurable UE as param for nr_generate_dlsch_pdu() 2020-10-05 13:14:58 +02:00
Robert Schmidt
eb263af39e Remove statistics from nr_generate_dlsch_pdu() 2020-10-05 13:14:58 +02:00
Robert Schmidt
4ecb236df6 nr_fill_nfapi_dl_pdu(): pdu index and nPDUs counting 2020-10-05 13:14:58 +02:00
Robert Schmidt
cbd6250fdf Directly construct tx_req nFAPI message in DL postprocessor 2020-10-05 13:14:58 +02:00
Robert Schmidt
22cb1567d4 allocate only necessary amount of RBs 2020-10-05 13:14:58 +02:00
Robert Schmidt
d145d8d662 Consider retransmissions in the preprocessor 2020-10-05 13:14:58 +02:00
Robert Schmidt
0ef332ef75 DL Post processor: distinguish tx/retx 2020-10-05 13:14:58 +02:00
Robert Schmidt
acffd17d6f Store retx Info 2020-10-05 13:14:58 +02:00
Robert Schmidt
8a004df0c9 Create UE MAC Context after successful RA 2020-10-05 13:14:58 +02:00
Robert Schmidt
ee850206e4 fixup: throughput correct only if first TDD slot 2020-10-05 13:14:58 +02:00
Robert Schmidt
f80ab8797a Use vrb_map in in DL for NSA mode 2020-10-05 13:14:58 +02:00
Robert Schmidt
d7d21efcf5 Post-processor: enable multi-UE handling 2020-10-05 13:14:58 +02:00
Robert Schmidt
059f585e06 Preprocessor: check for number of UEs 2020-10-05 13:14:58 +02:00
Robert Schmidt
abd608b6cb Mark active in add_new_nr_ue() only if phytest 2020-10-05 13:14:58 +02:00
Robert Schmidt
d921581922 Remove fiveG_connected and use active 2020-10-05 13:14:58 +02:00
Robert Schmidt
793cbda97e Simplify allocate_rn_CCEs() 2020-10-05 13:14:58 +02:00
Robert Schmidt
1a73ea6c6d Make UE_info.active C99 bool 2020-10-05 13:14:58 +02:00
Robert Schmidt
0032bcc905 add_nr_ue_list() 2020-10-05 13:14:58 +02:00
Robert Schmidt
d0667d9ea4 Add NR_UE_list_t type 2020-10-05 13:14:58 +02:00
Robert Schmidt
e956c17bf8 Rename NR_UE_list_t to NR_UE_info_t
The name NR_UE_list_t is misleading: beyond being a simple "list", this
structure carries all/most UE-related MAC information. If at all, it is
a container for multiple lists. The next commit introduces a
NR_UE_list_t structure that organizes UEs in lists such that it is
easier to go through the UEs.
2020-10-05 13:14:58 +02:00
Thomas Schlichter
97354f1e2f Merge remote-tracking branch 'NR_UE_UL_DCI_improvements' into integration_2020_wk40
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
2020-10-05 12:15:59 +02:00
Thomas Schlichter
8b4d1a0f0f Merge remote-tracking branch 'NR_DL_scheduler' into integration_2020_wk40 2020-10-05 12:13:13 +02:00
hardy
51311c6c1c adding RA test to CI 2020-10-05 11:25:52 +02:00
Francesco Mani
91bfb290f1 Merge branch 'NR_CSI_reporting' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_CSI_reporting 2020-10-05 11:24:49 +02:00
Francesco Mani
9301bca035 fix for pucch rx reading rxdataF 2020-10-05 11:24:32 +02:00
Robert Schmidt
f28679b360 PreProc IF: save MCS-info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
f9dd8292f8 PreProc IF: Freq domain allocation per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
6c7ff44cd9 PreProc IF: save Time domain assignment info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
112b30d79a PreProc IF: save PUCCH info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
34a31a20b7 PreProc IF: save CCE info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
dcdee083ac PreProc IF: RLC status per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt
d12180b25b Start PreProc interface, add UE active BWP 2020-10-05 10:29:45 +02:00
Robert Schmidt
f86e4305f6 Reduce log DLSCH scheduler 2020-10-05 10:29:45 +02:00
Robert Schmidt
1b5558537f Move HARQ calculations out of nr_fill_nfapi_dl_pdu() 2020-10-05 10:29:45 +02:00
Robert Schmidt
4cebd0dd92 Only send random data if phytest 2020-10-05 10:29:45 +02:00
Robert Schmidt
7f51eca9d3 Remove UE-specific ulsch bitmap, special phy test slot
when in phy test, only schedule UE to be in slot 8
2020-10-05 10:29:45 +02:00
Robert Schmidt
14613222f3 clean up gNB_dlsch_ulsch_scheduler(), remove UE-specific DL bitmap 2020-10-05 10:29:45 +02:00
Robert Schmidt
de2cf2393b Do not allocate CCE in nr_configure_pdcch()
nr_configure_pdcch() allocates the CCE, but this is not wanted, e.g., in
multi-user scheduling, since it might not be possible to allocate the
CCEs for these UEs. This commit makes the following changes:

- remove CCE allocation in nr_configure_pdcch()
- remove coreset search in nr_configure_pdcch()
- add functions get_coreset() and get_searchspace() to retrieve coresets
  and search spaces easily
- in nr_fill_nfapi_dl_pdu(), add extra parameters for aggregation level
  and CCE indices and the searchspace and coreset of a UE, which might
  be different for each UE
- allocate CCEs manually in phytest, RA, and DLSCH schedulers
2020-10-05 10:29:45 +02:00
Robert Schmidt
43f177e7df Restructure nr_schedule_ue_spec() 2020-10-05 10:29:44 +02:00
Robert Schmidt
3de6b619be Move TBS calculation out of nr_fill_nfapi_dl_pdu 2020-10-05 10:29:44 +02:00
Robert Schmidt
685c540353 nr_fill_nfapi_dl_pdu(): MCS + other params configurable 2020-10-05 10:29:44 +02:00
Robert Schmidt
041bb7a755 Inline nr_get_tbs_dl() 2020-10-05 10:29:44 +02:00
Robert Schmidt
7a0650c40c nr_fill_nfapi_dl_pdu(): Parameters by value, not pointers 2020-10-05 10:29:44 +02:00
Robert Schmidt
77f5d59691 Create separate nr_fill_nfapi_dl_pdu() 2020-10-05 10:29:44 +02:00
Robert Schmidt
e259111f77 Create NR DLSCH nr_schedule_ue_spec() 2020-10-05 10:29:44 +02:00
Robert Schmidt
7cf7a0e8b1 Reduce log nr-softmodem 2020-10-05 10:24:41 +02:00
hardy
eb3f34aad5 fixed egrep to match pass test 2020-10-05 10:14:10 +02:00
hardy
538be9155c finalized RFsim RA check test 2020-10-04 21:34:30 +02:00
Florian Kaltenberger
c2889d3b49 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB_RO_GlobalEdge 2020-10-04 20:54:40 +02:00
Florian Kaltenberger
39615e8210 fixing ocp targets as well 2020-10-04 20:54:27 +02:00
Laurent
4772f7f6e4 for push to OSA git 2020-10-04 19:35:41 +02:00
Laurent
4dacef8bb7 merge develop and test 2020-10-04 19:22:33 +02:00
hardy
0004490f58 rfsim RA check : check html formatting 2020-10-04 15:52:18 +02:00
hardy
15005cfd28 still working on rfsim RA test 2020-10-04 14:46:41 +02:00
Sakthivel Velumani
eebc233abd reducing ulsch decoding cores for CI segfault 2020-10-02 15:18:04 +02:00
Sakthivel Velumani
53f3874032 updating ulsim to take samples from exernal source 2020-10-02 15:11:28 +02:00
Sakthivel Velumani
3367b0f199 fixing compile warnings 2020-10-02 14:30:42 +02:00
laurent
5cb8e9e14d Reduce difference with OSA develop branch for merge 2020-10-02 11:26:46 +02:00
Cedric Roux
0ec02eaf5d T tracer: bugfix: properly log the MIB
Bytes of the MIB were logged in reverse.

Bug reported by David Breaux <davidbreaux67@gmail.com>.
2020-10-01 18:18:25 +02:00
Cedric Roux
35a0a4e1c7 rrc enb: small fix to avoid wrong code execution
dedicated_DRB was not set properly when the NSA UE sends
ReconfigurationComplete so the wrong code was executed below
(we had dedicated_DRB == 0). Let's put a value that does
nothing (-1 seems fine).
2020-10-01 18:18:25 +02:00
Cedric Roux
3c85a88081 s1ap encoding: return -1 on error 2020-10-01 18:18:25 +02:00
Remi Hardy
bc73585d31 Merge branch 'integration_2020_wk39' into 'develop', comprising :
MR 896 : Nsa remove band hardcodings  
Removes hardcodings of EUTRA and NR bands in UE_Capability_Enquiry and NR_UE Capability_Enquiry messages, providing them from the eNB config file and gNB over X2 respectively. Moreover, the SSB Absolute frequency of the gNB is now provided by the eNB configuration file (instead of being hardcoded at rrc_eNB.c)  

MR903 : pusch ta update  
Update of PUSCH Timing advance  

MR 900 : improve x2/rrc for ENDC  
This MR introduces several enhancements in X2AP and RRC to deal with ENDC. 
The main goal is to deal with UE's on/off and with various errors.
Includes :
- DC prep and DC overall X2 timers
- X2 messages for UE release and DC timers' timeout
2020-10-01 18:16:53 +02:00
Rakesh
5f7c30fb8c fix for get_slot_from_timestamp 2020-10-01 17:47:17 +02:00
laurent
6b50cbcae2 continue 5G SA 2020-10-01 16:13:03 +02:00
Hongzhi Wang
0ea9c3f711 ue changing csi length function name 2020-10-01 13:12:02 +02:00
Florian Kaltenberger
e68d09404c fixing compiler warnings and hopefully if4.5 CI tests 2020-10-01 07:40:49 +02:00
Sakthivel Velumani
13b016de53 doing nr_segmentation in all rounds
because round 0 could be skipped if no pusch signal detected
2020-09-30 16:24:40 +02:00
Robert Schmidt
a2bf8f478a Add configurable UE as param for nr_generate_dlsch_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt
f97c4f8ae6 Remove statistics from nr_generate_dlsch_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt
574f47d014 nr_fill_nfapi_dl_pdu(): pdu index and nPDUs counting 2020-09-30 14:52:59 +02:00
Robert Schmidt
ea9aacd664 Directly construct tx_req nFAPI message in DL postprocessor 2020-09-30 14:52:59 +02:00
Robert Schmidt
b7b32fbe77 allocate only necessary amount of RBs 2020-09-30 14:52:59 +02:00
Robert Schmidt
0c61983196 Consider retransmissions in the preprocessor 2020-09-30 14:52:59 +02:00
Robert Schmidt
2209b999a0 DL Post processor: distinguish tx/retx 2020-09-30 14:52:59 +02:00
Robert Schmidt
09d85a052a Store retx Info 2020-09-30 14:52:59 +02:00
Robert Schmidt
b4d8e41a00 Create UE MAC Context after successful RA 2020-09-30 14:52:59 +02:00
Robert Schmidt
a2b1fa5d57 fixup: throughput correct only if first TDD slot 2020-09-30 14:52:59 +02:00
Robert Schmidt
b9eb6c9843 Use vrb_map in in DL for NSA mode 2020-09-30 14:52:59 +02:00
Robert Schmidt
ce2dd17ed5 Post-processor: enable multi-UE handling 2020-09-30 14:52:59 +02:00
Robert Schmidt
fdb4c69221 Preprocessor: check for number of UEs 2020-09-30 14:52:59 +02:00
Robert Schmidt
f13c97db02 Mark active in add_new_nr_ue() only if phytest 2020-09-30 14:52:59 +02:00
Robert Schmidt
738d61a173 Remove fiveG_connected and use active 2020-09-30 14:52:59 +02:00
Robert Schmidt
77e2a5aab8 Simplify allocate_rn_CCEs() 2020-09-30 14:52:59 +02:00
Robert Schmidt
5efe475120 Make UE_info.active C99 bool 2020-09-30 14:52:59 +02:00
Robert Schmidt
34f61ce396 add_nr_ue_list() 2020-09-30 14:52:59 +02:00
Robert Schmidt
ccb83d16e1 Add NR_UE_list_t type 2020-09-30 14:52:59 +02:00
Robert Schmidt
adcd2949fe Rename NR_UE_list_t to NR_UE_info_t
The name NR_UE_list_t is misleading: beyond being a simple "list", this
structure carries all/most UE-related MAC information. If at all, it is
a container for multiple lists. The next commit introduces a
NR_UE_list_t structure that organizes UEs in lists such that it is
easier to go through the UEs.
2020-09-30 14:52:59 +02:00
Robert Schmidt
476c7177f9 PreProc IF: save MCS-info per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
9ad94aad82 PreProc IF: Freq domain allocation per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
123a4e9ada PreProc IF: save Time domain assignment info per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
ad4da1b068 PreProc IF: save PUCCH info per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
020405686c PreProc IF: save CCE info per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
5e5abe420e PreProc IF: RLC status per UE 2020-09-30 14:52:59 +02:00
Robert Schmidt
77a814fe27 Start PreProc interface, add UE active BWP 2020-09-30 14:52:59 +02:00
Robert Schmidt
a403ca0398 Reduce log DLSCH scheduler 2020-09-30 14:52:59 +02:00
Robert Schmidt
b516e26a66 Move HARQ calculations out of nr_fill_nfapi_dl_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt
8dd212c0d1 Only send random data if phytest 2020-09-30 14:52:59 +02:00
Robert Schmidt
439095bc84 Remove UE-specific ulsch bitmap, special phy test slot
when in phy test, only schedule UE to be in slot 8
2020-09-30 14:52:59 +02:00
Robert Schmidt
4ffc4fdad8 clean up gNB_dlsch_ulsch_scheduler(), remove UE-specific DL bitmap 2020-09-30 14:52:59 +02:00
Robert Schmidt
5578aeb4a5 Do not allocate CCE in nr_configure_pdcch()
nr_configure_pdcch() allocates the CCE, but this is not wanted, e.g., in
multi-user scheduling, since it might not be possible to allocate the
CCEs for these UEs. This commit makes the following changes:

- remove CCE allocation in nr_configure_pdcch()
- remove coreset search in nr_configure_pdcch()
- add functions get_coreset() and get_searchspace() to retrieve coresets
  and search spaces easily
- in nr_fill_nfapi_dl_pdu(), add extra parameters for aggregation level
  and CCE indices and the searchspace and coreset of a UE, which might
  be different for each UE
- allocate CCEs manually in phytest, RA, and DLSCH schedulers
2020-09-30 14:52:59 +02:00
Robert Schmidt
67a081772d Restructure nr_schedule_ue_spec() 2020-09-30 14:52:59 +02:00
Robert Schmidt
f0533b9ec4 Move TBS calculation out of nr_fill_nfapi_dl_pdu 2020-09-30 14:52:59 +02:00
Robert Schmidt
71bfadf192 nr_fill_nfapi_dl_pdu(): MCS + other params configurable 2020-09-30 14:52:59 +02:00
Robert Schmidt
fc179f396c Inline nr_get_tbs_dl() 2020-09-30 14:52:59 +02:00
Robert Schmidt
9b2be0a1f6 nr_fill_nfapi_dl_pdu(): Parameters by value, not pointers 2020-09-30 14:52:59 +02:00
Robert Schmidt
192da32734 Create separate nr_fill_nfapi_dl_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt
566bc95bc0 Create NR DLSCH nr_schedule_ue_spec() 2020-09-30 14:52:59 +02:00
Robert Schmidt
5b9658f005 Reduce log nr-softmodem 2020-09-30 14:52:59 +02:00
hardy
f69824c998 Merge remote-tracking branch 'origin/PUSCH_TA_update' into integration_2020_wk39 2020-09-30 14:38:43 +02:00
hardy
70135e1c74 Merge remote-tracking branch 'origin/nsa_remove_band_hardcodings' into integration_2020_wk39 2020-09-30 14:36:24 +02:00
kn.raju
66b20f1ac3 Fixed improper UE_id 2020-09-30 15:23:09 +05:30
Xue Song
b331fc9af6 Add rrc_ue_process_rrcReconfiguration
->nr_rrc_ue_process_measConfig
    ->nr_rrc_ue_process_radioBearerConfig
Modify RRCReconfiguration message (gnb->ue)
2020-09-30 08:15:22 +00:00
hardy
ed0d35dcc3 dummy push 2020-09-30 09:22:04 +02:00
Shweta Shrivastava
659b8e32e4 Removed hard-coding for mcs_table 2020-09-30 01:05:29 -05:00
matzakos
410c18ecd8 Change log message 2020-09-29 19:49:18 +02:00
hardy
b9f91a62da updated the RFsim RA check (not final) 2020-09-29 18:05:18 +02:00
Francesco Mani
a53f195bb4 Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-09-29 17:04:03 +02:00
Hongzhi Wang
73281a4302 ue computing csi bit length from rrc 2020-09-29 11:28:17 +02:00
Xue Song
118ac391ad Modify some warnings
Add nr_rrc_pdcp_config_security
Delete ENABLE_SECURITY
2020-09-29 06:11:02 +00:00
yincong
685837f8de Merge branch 'master' into develop_SA_L3 2020-09-29 03:08:58 +00:00
zhenghuangkun
3efc7538ac Modify MME_MODE_ENABLED to AMF_MODE_ENABLED
Modify kenb to kgnb
Modify some warnings
2020-09-29 02:56:21 +00:00
masayuki.harada
c264b2650d Merge remote-tracking branch 'remotes/origin/oai_develop' 2020-09-29 10:44:46 +09:00
Francesco Mani
1340e00fec mcs table for pusch from rrc config 2020-09-28 19:05:23 -05:00
Hongzhi Wang
8676ceea7e initializing nr ue dlsch harq status 2020-09-28 18:06:18 -05:00
hardy
544df8cbdb fixing another typo 2020-09-28 23:10:29 +02:00
masayuki.harada
c948fefec2 Revert some changes to avoid setup failure. 2020-09-28 19:55:31 +09:00
masayuki.harada
67b91fec27 Merge commit '5372a3478ad3047b80c65828862742ba4dd8b77b' into candidate_20200928 2020-09-28 19:51:43 +09:00
Francesco Mani
4b4304b5c3 modifications in pucch scheduling to avoid conflicts between acknacks and csi 2020-09-28 12:22:01 +02:00
masayuki.harada
d797dacaaa Merge branch 'candidate_20200928' into 'master'
Candidate 20200928

See merge request !1
2020-09-28 18:25:29 +09:00
zhanghuiqin
f86fb5df56 add RRCSetupRequest(ue→gnb) 2020-09-28 08:44:23 +00:00
Francesco Mani
0b1f0f8693 function to compute nr of prbs for pucch 2020-09-28 10:35:37 +02:00
yincong
b46abe7bcb add nr_rrc_ue_process_securityModeCommand
add pdcp_config_set_security
2020-09-28 07:22:52 +00:00
zhenghuangkun
ad44cbdc94 Add author and email 2020-09-28 06:03:39 +00:00
hardy
2498bc8bc0 fixed 1 typo ; 1 cut error (part of code missing) 2020-09-27 12:54:41 +02:00
hardy
175c98af0e Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_py 2020-09-27 12:30:56 +02:00
Guido Casati
f8796fb71f Update doc/RUNMODEM.md with the RA setup 2020-09-25 13:50:08 +02:00
Xue Song
b5f58b7d22 Add RRCReconfigurationComplete message
Modify compilation warning
2020-09-25 10:27:27 +00:00
hardy
670ca6877e logging debug data from initializeUE 2020-09-25 11:32:08 +02:00
Francesco Mani
df369e0cae mcs table for pusch from rrc config 2020-09-25 10:13:26 +02:00
He Shanyun
9c462934d4 fix compile issue about build ngap asn file 2020-09-25 07:55:58 +00:00
Francesco Mani
a0ec575b3c initialization of ta variables 2020-09-25 07:50:57 +02:00
Francesco Mani
17051b86d8 changes in ta procedure at gnb, to be tested with the phone 2020-09-25 07:50:45 +02:00
Shweta Shrivastava
06313dc616 Introduced UE Assertion if value of K2 is less than DURATION_RX_TO_TX 2020-09-24 23:53:07 -05:00
Shweta Shrivastava
911092f574 Fixed values of slot offset K2 in gNB config file 2020-09-24 23:48:46 -05:00
hardy
8ccf320813 terminateOAIUE was still missing an arg 2020-09-24 23:17:56 +02:00
Francesco Mani
b69920b9f6 fix for reference point for k in pucch2 dmrs 2020-09-24 18:50:06 +02:00
hardy
2fe140ffa6 Merge branch 'rh_ci_py' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_py 2020-09-24 17:29:44 +02:00
hardy
09052083d2 working on RA test for 5G Rfsim 2020-09-24 17:27:22 +02:00
He Shanyun
1aac22879c dummy define for some fields 2020-09-24 11:56:06 +00:00
laurent
ffd4c20e58 fix L2 tracing in wireshark, start security mode comman 2020-09-24 11:55:43 +02:00
Hongzhi Wang
4cb1193ba2 initializing nr ue dlsch harq status 2020-09-24 09:27:32 +02:00
matzakos
72b53688b8 Merge branch 'nsa_remove_band_hardcodings' of https://gitlab.eurecom.fr/oai/openairinterface5g into nsa_remove_band_hardcodings 2020-09-24 08:11:30 +02:00
matzakos
7c8019da9f Merge develop into nsa_remove_band_hardcodings branch 2020-09-24 08:10:55 +02:00
kn.raju
f07ef48249 solved nr_dlsim issue 2020-09-24 11:26:56 +05:30
zhanghuiqin
7dac9ba9a0 add UECapabilityEnquiry 2020-09-24 14:08:43 +09:00
Xue Song
caff16a6d1 Add RRCReconfiguration message 2020-09-24 03:00:43 +00:00
He Shanyun
966569c119 implement RRC release 2020-09-24 01:33:53 +00:00
Qiu Dezhi
49eb710850 add UeCapabilityInformation message 2020-09-24 10:14:27 +09:00
hardy
c74e1b2c04 reverted some changes that are no longer needed (and lead to improper execution) 2020-09-24 00:03:44 +02:00
Remi Hardy
f66b79fffb added nr_scg_ssb_freq param in enb conf file used by CI 2020-09-23 17:48:35 +02:00
hardy
a0c30944a4 added 5g rfsim RA check procedure 2020-09-23 16:44:37 +02:00
hardy
812b2384fc fixed SSH issue / fixed functions arguments 2020-09-23 15:01:59 +02:00
zhanghuiqin
06578d2d2b add UECapabilityEnquiry 2020-09-23 19:28:34 +09:00
zhenghuangkun
79632d2f91 Add ErrorIndication
Add Paging
Add PDUSessionResourceModifyRequest
2020-09-23 05:45:33 +00:00
Florian Kaltenberger
a06a2ef700 moving find_SSB_and_RO_available to MAC 2020-09-22 22:48:50 +02:00
Laurent
3024f57805 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-09-22 17:57:27 +02:00
Cedric Roux
1d583c14a8 nr: fix compilation of physical simulators
Maybe not the right way to do.
To be checked.
2020-09-22 17:42:30 +02:00
Francesco Mani
03b97dd45e using signal_energy_nodc 2020-09-22 17:35:27 +02:00
Laurent
19c6229049 merge develop, compile ok 2020-09-22 16:24:49 +02:00
Florian Kaltenberger
79bf2b3fb0 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB_RO_GlobalEdge 2020-09-22 15:26:57 +02:00
hardy
b9d98b0029 fixed SSH call without instanciation (temp : by passing obj as parameter) 2020-09-22 14:29:28 +02:00
Florian Kaltenberger
f11bf8dc47 reducing logs 2020-09-22 14:00:26 +02:00
Cedric Roux
6cc7e22132 nr: bugfix: set ul_valid_re_per_slot properly
After the UE disconnects, the next connection fails
because the gNB cannot decode Msg3. The root cause
seems to be this ul_valid_re_per_slot not set to 0.
Setting it before the test fixes the problem and
does not seem to impact anything else.
2020-09-22 12:44:51 +02:00
Cedric Roux
00e6a13764 nr: hack to remove UE data in gNB's PHY
Some data remains in the PHY of the gNB after UE removal by
upper layers. After some connection/deconnection/reconnection
the gNB will exit because there is no free space in PHY.

This commit adds some global variables shared by MAC and PHY.
The function mac_remove_nr_ue puts UEs to be removed in it
and the function rxtx removes what needs to be removed.

This is a hack. It will be removed at some point in time.

The real way to remove in the PHY should be to release
data after some time of inactivity in the PHY, which would
mean the UE has been removed in upper layers. Kind of
timer-based thing. There should be no communication between
PHY and MAC.
2020-09-22 12:35:44 +02:00
Cedric Roux
4236ff2b3e nr: improve x2/rrc for ENDC
This commit introduces several enhancements in X2AP and RRC to deal
with ENDC. The main goal is to deal with UE's on/off and with various
errors.

The following work is included:

    - DC prep and DC overall X2 timers
    - X2 messages for UE release and DC timers' timeout

Open problems:

    - what to do when the UE sends an scg Failure? This commit removes
      the UE. And this removal may not be correctly done
    - UE removal in the gNB's PHY layer (a next commit is coming,
      but it is hackish and will need a rework)
2020-09-22 11:57:31 +02:00
Shweta Shrivastava
8cd05eac17 Fix for handling same length DCIs 2020-09-21 22:06:55 -05:00
Shweta Shrivastava
6c6e29faf8 Merge branch 'develop' into NR_UE_UL_DCI_improvements 2020-09-21 19:19:11 -05:00
Shweta Shrivastava
590a9d41ea Fix for segfault in nrLDPC_encoder 2020-09-21 18:57:27 -05:00
Mario Hudon
b0b5825c6a -Re-added a missing function for the gNB build 2020-09-21 16:53:03 -04:00
Florian Kaltenberger
221973bffc PRACH duration to be calculated based on PRACH format.
PRACH_PDU.prach_format now interpreted according to last version (March 2020) of 5G FAPI specs
fixing nr_prachsim
2020-09-21 22:17:28 +02:00
Mario Hudon
479cacbf38 Merge remote-tracking branch 'oai-eurecom/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-09-21 14:28:02 -04:00
Remi Hardy
5372a3478a Merge branch 'integration_2020_wk38' into 'develop'
Integration 2020 wk38

See merge request oai/openairinterface5g!899
2020-09-21 17:27:37 +02:00
Laurent
93550b1cb0 add test code, finished authentication 2020-09-21 15:11:02 +02:00
hardy
098409adb2 Merge remote-tracking branch 'origin/rh_ci_doc' into integration_2020_wk38 2020-09-21 14:58:12 +02:00
hardy
e95e5ac7d9 fixed python typo 2020-09-21 14:56:48 +02:00
hardy
ac970cca5f ssh fix + additional debug info 2020-09-21 11:38:54 +02:00
He Shanyun
58bab3f202 fix compiler error of UE when rrc is rel16 2020-09-21 03:29:59 +00:00
zhenghuangkun
bc70da119d Fix merge build error 2020-09-21 02:54:09 +00:00
zhenghuangkun
0f3d53e1b9 Merge remote-tracking branch 'remotes/origin/master' into develop_SA_L3 2020-09-21 02:20:35 +00:00
Mario Hudon
282823d9a7 Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-09-18 16:32:24 -04:00
Mario Hudon
7996582729 - Added support for random RO selection for a given SSB index in a slot (as per 38.321)
- Fixed random preamble selection in contention-based RA
- Cleaned-up comments and commented code
2020-09-18 15:00:59 -04:00
Francesco Mani
ccae34e647 taking into account pucch2 acknack for mac 2020-09-18 18:59:59 +02:00
hardy
56b551fde4 Merge remote-tracking branch 'origin/fix-0509-crash-RRCConnectionReconfiguration' into integration_2020_wk38 2020-09-18 17:20:30 +02:00
hardy
76c0c6beea Merge remote-tracking branch 'origin/2020-09-ci-updates' into integration_2020_wk38 2020-09-18 17:19:26 +02:00
hardy
d25722b251 Merge remote-tracking branch 'origin/nr-rlc-time-handling' into integration_2020_wk38 2020-09-18 17:18:13 +02:00
hardy
b9a48b3560 fixed parameters list in functions 2020-09-18 17:06:14 +02:00
Raphael Defosseux
f9ca09fbf4 CI: typo in MR case
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-18 16:41:18 +02:00
hardy
2bb5032f18 fixing SSH object instanciation issue 2020-09-18 10:12:49 +02:00
zhenghuangkun
ec988428ac Add PDUSessionResourceReleaseCommand 2020-09-18 06:49:09 +00:00
He Shanyun
bb73d64186 implement securityCommandComplete 2020-09-18 05:07:20 +00:00
Shweta Shrivastava
c91d689d8c Imrpovements for extracting UL DCI, remove hardcoding, blind decoding of DCI 2020-09-17 22:31:32 -05:00
hardy
8c99b7ba13 dummy push 2020-09-17 18:30:01 +02:00
Francesco Mani
d3843b7214 initialization of ta variables 2020-09-17 17:53:37 +02:00
Rakesh
2cac29b5c6 fix for modulation rotataion to support all numerlogies 2020-09-17 17:46:50 +02:00
Sakthivel Velumani
6ff951be08 wait before abandoning next trx processing 2020-09-17 17:09:15 +02:00
Francesco Mani
e8be11da21 changes in ta procedure at gnb, to be tested with the phone 2020-09-17 11:48:45 +02:00
Cedric Roux
f87b93e639 nr: fix check in nr_find_pucch 2020-09-17 10:55:48 +02:00
hardy
28936a10a0 fixed a few issues / typo 2020-09-17 10:17:16 +02:00
Xue Song
e5216cdba3 Handle NGAP Initial Context Setup Request message from NGAP task 2020-09-17 07:55:05 +00:00
zhenghuangkun
5689cf906a Add PDUSessionResourceModifyResponse
Add PDUSessionResourceReleaseResponse
Add NASNonDeliveryIndication
2020-09-17 07:37:09 +00:00
Xue Song
679b6be9be Modify RRCSetupRequest message
Add RRCSetupComplete message
2020-09-17 03:18:56 +00:00
yincong
b0c79092fa modify PDUSessionResourceSetupRequest 2020-09-17 10:33:12 +09:00
He Shanyun
a02b0b4054 implement SecurityModeCommand 2020-09-17 01:19:50 +00:00
Francesco Mani
4776e13c5f bugfix in scheduling acknack 2020-09-16 18:48:40 +02:00
Sakthivel Velumani
db5011922d ulschsim works 2020-09-16 17:59:49 +02:00
hardy
b5377042c8 removed SSH lib shortcut 2020-09-16 16:31:04 +02:00
Sakthivel Velumani
c65c6a401f Merge branch 'ulsch_decode_mthread' of https://gitlab.eurecom.fr/oai/openairinterface5g into ulsch_decode_mthread 2020-09-16 16:25:08 +02:00
Sakthivel Velumani
76d841ff89 fixed ulschsim 2020-09-16 16:24:58 +02:00
hardy
5aa8368577 added local SSH obj instanciation inside the methods 2020-09-16 16:21:23 +02:00
Remi Hardy
0677e03aa8 adding missing libs 2020-09-16 12:30:09 +02:00
Rakesh
8ab1c0b9d4 Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-09-16 11:56:07 +02:00
hardy
15dfc7fc73 tentative to move oaicitest class to a separate module 2020-09-16 11:50:16 +02:00
matzakos
db33ee5ec2 Add NR_RRC_LIB in lte-uesoftmodem
- To avoid linking error due to dependency from NR_RRC FreqBandList type
2020-09-16 11:14:34 +02:00
Thomas Schlichter
30f1f947c6 fix some CPPCHECK errors and compile warnings
use snprintf() instead of sprintf() to avoid writes outside buffer limits
2020-09-16 10:08:10 +02:00
Thomas Schlichter
659cd82c21 Merge remote-tracking branch 'develop' 2020-09-15 16:00:23 +02:00
Xue Song
a81b655c3f Add RRC Setup message 2020-09-15 10:33:30 +00:00
yincong
b77ecaf2d8 PDUSessionResourceSetupRequest
PDUSessionResourceSetupResponse
2020-09-15 19:19:36 +09:00
Raphael Defosseux
4a873b4d43 CI: optmimizations on VM-based framework
also correction for Circular Dependency Protection on header files
    also correction on the banner check

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-15 12:18:26 +02:00
Francesco Mani
6998d303fc using different resource (with different symbol) in case 2 pucch in a slot 2020-09-15 11:12:05 +02:00
Sakthivel Velumani
005e5f85df Merge branch 'develop' into ulsch_decode_mthread 2020-09-15 11:09:37 +02:00
Florian Kaltenberger
5bb1893f3d forgot to account for prachStartSymbol in rx_nr_prach_ru 2020-09-15 09:59:28 +02:00
zhenghuangkun
15cd202d5f Add UERadioCapabilityInfoIndication 2020-09-15 07:54:03 +00:00
Sergey Aranovskiy
3a2e3ff316 Fix formatting style
Signed-off-by: Sergey Aranovskiy <aranovskiy@mwnts.ru>
2020-09-15 09:57:28 +03:00
He Shanyun
ef508433d2 modify type of tac 2020-09-15 15:24:44 +09:00
zhenghuangkun
4a7ca735da Add UEContextReleaseComplete
Add UEContextReleaseRequest
2020-09-15 00:57:40 +00:00
matzakos
161d788fea Add absolute SSB frequency of nr cell as configuration parameter in the eNB configuration file instead of hardcoding it at rrc_eNB for NSA scenario 2020-09-14 14:47:10 +02:00
Florian Kaltenberger
a98cf88735 fixing a mistake in the computation of the prach_start_symbol 2020-09-14 13:38:30 +02:00
Francesco Mani
cb5362ea53 allowing 2 different pucch occasions in a slot 2020-09-14 12:08:25 +02:00
hardy
123666b730 completing the fr1 doc (with python script) 2020-09-14 11:11:39 +02:00
hardy
0c30b3a1e7 added CI integration of FR1 test section 2020-09-14 10:47:01 +02:00
hardy
0acd1e0974 fixing the CN doc path on an other line as well 2020-09-14 10:30:58 +02:00
hardy
a2b14d9cbc fixing the path to CN doc in FR1 doc 2020-09-14 10:16:09 +02:00
zhenghuangkun
b2f4b9828b Add DownlinkNASTransport Message
Add UEContextReleaseCommand Message
Modify NGSetup Message Encode failed
2020-09-14 06:51:14 +00:00
Cedric Roux
5b0efd5b83 NR: fix time keeping in RLC for gNB
RLC has timers. We need to keep track of time. We chose to not use
realtime but 'processing time'. That is we send a tick to RLC for every
subframe when it is processed by the softmodem. Before this commit we
used to increase time in the function mac_rlc_status_ind which is called
for every subframe in the eNB, but not in the gNB (at least not in the
current gNB). So we need another way to keep track of time.

The function gNB_dlsch_ulsch_scheduler is called for every slot. It seems
to be the perfect candidate to send a tick to RLC for every subframe. We
take care of subcarrier spacing to send every subframe (one subframe is
always 1ms), not every slot (slot duration depends on subcarrier spacing).

It may not be the best solution. To be revised if needed.

Note: the UE has not been fixed. Some modification is needed for the UE
too, most probably.
2020-09-12 14:54:09 +02:00
Xue Song
3f02d18f86 NR RRC ASN1 version upgrade release 16
Add RRCSetupRequest message
Add RRCReject message
2020-09-12 10:23:31 +00:00
He Shanyun
3c84c4d887 fix issues about sending ngap message by sctp 2020-09-12 08:36:31 +00:00
Sergey Aranovskiy
4bcf0a407d Fix crash when sending RRCConnectionReestablishmentReject
Create a temporary rrc_eNB_ue_context_t when it can't be obtained from
current RRC state:
- if UE was not attached to current eNB
- when RRCConnectionReestablishmentRequest has a wrong encoding
- in all other cases when ue_context_p can't be obtained.

Signed-off-by: Sergey Aranovskiy <aranovskiy@mwnts.ru>
2020-09-11 23:18:14 +03:00
matzakos
86a0210f50 Merge remote-tracking branch 'origin/develop' into nsa_remove_band_hardcodings 2020-09-11 18:19:08 +02:00
matzakos
f9aaa4336d Merge remote-tracking branch 'origin/develop' into nsa_remove_band_hardcodings 2020-09-11 17:54:49 +02:00
Mario Hudon
da355a395f Merge remote-tracking branch 'origin/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-09-11 11:12:58 -04:00
Florian Kaltenberger
fecf27e223 updating FAPI interface with PRACH configuration index
NR PHY should now be able to handle multiple PRACH occasions
2020-09-11 17:00:44 +02:00
Raphael Defosseux
3a7ac9821e Merge branch 'integration_2020_wk37' into 'develop'
Develop integration 2020 week 37

The following Merge Requests have been included:

* MR [878] : CI framework update for 5G NSA FR1 setup
* MR [885] : PTRS-based UL phase compensation
2020-09-11 16:49:52 +02:00
matzakos
3671692656 More corrections wrt Band Information in NR UE Capability message 2020-09-11 16:05:35 +02:00
Sakthivel Velumani
34ae102229 Merge branch 'develop' into ulsch_decode_mthread 2020-09-11 15:01:19 +02:00
matzakos
67db56d873 Corrections to properly fill the Band Information list at UE Capability Enquiry message 2020-09-11 14:39:49 +02:00
zhenghuangkun
7e327ae84a Add UplinkNASTransport Message 2020-09-11 10:11:25 +00:00
Guido Casati
b95ea59421 ulsim fix: missing qam_mod_order in UL PUSCH PDU 2020-09-11 11:43:57 +02:00
zhenghuangkun
05033b0bf4 Add InitialContextSetupResponse Message 2020-09-11 09:23:39 +00:00
Francesco Mani
461990a155 changes in pucch2 indication 2020-09-11 11:04:05 +02:00
He Shanyun
3b3452dcce fix issue about load config error of gnb 2020-09-11 06:09:24 +00:00
kn.raju
f9db898155 modified num of FAPI PRACH pdu 2020-09-11 11:38:41 +05:30
zhenghuangkun
2b22daa445 Fix Warning 2020-09-11 05:38:30 +00:00
zhenghuangkun
5dc6712cec Add InitialUEMessage And InitialContextSetupRequest Message 2020-09-11 03:01:55 +00:00
Sakthivel Velumani
77dc7daf0a fixed bugs 2020-09-10 20:28:38 +02:00
Francesco Mani
ae0c02b261 some rearrangements in function to schedule csi reporting 2020-09-10 18:19:25 +02:00
Thomas Schlichter
8e5ec076ae Merge remote-tracking branch 'ptrs_ul_phase_compensation'
Conflicts:
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair1/SIMULATION/NR_PHY/ulsim.c
2020-09-10 16:52:42 +02:00
hardy
ebd7f50992 Merge remote-tracking branch 'origin/rh_ci_fr1' into integration_2020_wk37 2020-09-10 15:30:27 +02:00
hardy
53922c13cf Merge remote-tracking branch 'origin/ptrs_ul_phase_compensation' into integration_2020_wk37 2020-09-10 15:23:53 +02:00
Francesco Mani
0113d9927f rnti from UE_list in pucch pdu 2020-09-10 14:21:35 +02:00
hardy
e1927aa46b Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-09-10 14:16:23 +02:00
hardy
6039cda5a9 remove oc files as they were developed in an other branch 2020-09-10 14:15:15 +02:00
He Shanyun
c8b67cb1a1 compile NGAP_GNB lib 2020-09-10 11:34:02 +00:00
Hongzhi Wang
99d220c3e1 set rnti at gnb and remove uci crc length at ue 2020-09-10 12:51:58 +02:00
Hongzhi Wang
54ba635cf7 update csi report 2020-09-10 12:34:49 +02:00
Hongzhi Wang
4d4843e7b1 adding rsrp measurement and csi report 2020-09-10 12:34:29 +02:00
zhenghuangkun
46f1dc9614 Modify NGAP Message 2020-09-10 09:19:49 +00:00
Remi Hardy
0d9fc95063 Update TESTING_GNB_W_COTS_UE.md 2020-09-10 10:36:08 +02:00
Xue Song
bdd31eb852 fix the problem that nr-rrc-16.1.0.asn1 cannot generate C files 2020-09-10 08:23:28 +00:00
He Shanyun
8f3adc8bc8 fix gNB build error 2020-09-10 07:05:01 +00:00
Remi Hardy
894fd8c40c Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-09-09 17:59:51 +02:00
Remi Hardy
2ab1b9697d fixed cls_cots_ue.py packages ; fixed terminate_ue_flag copy-paste error 2020-09-09 17:58:16 +02:00
Thomas Schlichter
8f58d1ec7f Fix nr_ulsim to transmit actual random data instead of uninitialized PDU 2020-09-09 16:50:32 +02:00
matzakos
8670269d69 Remove hardcodings of eutra and nr bands in UE Capability Enquiry messages 2020-09-09 16:21:55 +02:00
Raphael Defosseux
128887b9bc DOC: replace obsolete links w/ correct ones
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-09 16:18:14 +02:00
Rakesh
960ab93183 changing UL PRB for FR2 32 PRB testing 2020-09-09 16:11:01 +02:00
Rakesh
8022252513 Function to check for ssb from rrc configuration 2020-09-09 16:08:54 +02:00
Rakesh
ec51d54f89 fix for number of slots per tdd period calculation 2020-09-09 16:00:39 +02:00
Rakesh
26fb2905f5 adding prb 32 for timing advance calculation 2020-09-09 15:59:03 +02:00
Rakesh
948dc6b1d9 bug fix in channel estimation 2020-09-09 15:53:13 +02:00
Rakesh
0b7573484c overiting centre frequency for FR2 testing 2020-09-09 15:49:40 +02:00
Rakesh
39f84c3a62 FR2 testing 2020-09-09 15:46:25 +02:00
hardy
4ec420271f fixed how to retrieve the cots ue file location 2020-09-09 15:14:18 +02:00
zhenghuangkun
85fe26bd80 Modify NGAP Messages 2020-09-09 18:55:14 +09:00
matzakos
05f49e5b1e Preliminary work to remove hardcodings of nr frequency bands for the NSA setup
- Create itti message to tranfer to RRC the information received at eNB through X2 ENDC Setup Request message
2020-09-09 11:52:07 +02:00
Parminder Singh
2281436b66 Fix - Issue with uninitialized structure in ULSIM
- Changed malloc to calloc to set all values to zero to remove the
  valgrind issue with uninitialized structure values in RC.gNB structure
2020-09-09 11:11:24 +02:00
hardy
1c77b36ae9 reverted eNB auto terminate fix (not working) 2020-09-09 10:26:58 +02:00
Rakesh
42fe39ece5 moving gpio control to the rx 2020-09-08 22:43:42 +02:00
Thomas Schlichter
9e52db7538 Merge remote-tracking branch 'develop'
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
2020-09-08 17:42:52 +02:00
Francesco Mani
692215752b adapting GES commit 532fdbb4 to compute CSI meas report bilen (only for SSB) 2020-09-08 17:33:35 +02:00
Remi Hardy
ef04e7e90d replaced if if ... by if elif ... in GetPAramtersFromXML function 2020-09-08 17:24:18 +02:00
Mario Hudon
c48e96e93a -UE RACH updates
- Added support for FR1 in RO selection
  -RACH preamble selected according to the chosen RO
2020-09-08 11:18:42 -04:00
Remi Hardy
de6a4b81ae fixed eNB auto termination ; cleaned cots_ue_airplane action (no longer needed) 2020-09-08 16:58:06 +02:00
Sakthivel Velumani
e686da4e48 fixed tbslbrm 2020-09-08 16:08:30 +02:00
cig
6ac5a6e74a N_RB configuration for DCI extraction according to 7.3.1.0 of TS 38.212
- replacing ambiguous configuration of N_RB for extraction of DCI 1_0
2020-09-08 14:09:05 +02:00
cig
7c3377d515 Minor fixes to RA procedures
- added some text descriptions
- replaced active BWP with initial BWP in Msg3 scheduling (8.3 TS 38.213)
- fixed logging
- disabled Msg3 repetitions after first transmission (disabled RA @ MAC)
2020-09-08 14:09:05 +02:00
cig
81398971ff Set tb_size in bytes and A in bits @ UE
- now is consistent for both UE and gNB
2020-09-08 14:09:05 +02:00
cig
9ac6dfee09 Minor fixes UE
- added some descriptions to the code
- fixed hardcoded factors
- removed commented out and unused code
- phy_procedures_nrUE_RX: removed unused do_pdcch_flag
- updated LTE naming to 5G
2020-09-08 14:09:05 +02:00
cig
7ab4abacb1 Retrieve N_PRB Overhead from PUSCH-ServingCellConfig 2020-09-08 14:09:05 +02:00
cig
e72ef27e66 Moved nr_compute_tbs_common file to common MAC folder
- updated cmakelists file
- fixed formatting, tabs and white spaces in the function
2020-09-08 14:09:05 +02:00
cig
66b117dcd5 NR UE PUSCH procedures fixes
- moved remaining PUSCH PDU configuration from ULSCH
  procedures entirely to MAC
- introduced a function for DMRS RE configuration
- cleaned up redundant code in ULSCH procedures
- fixed TBS computation for Msg3
2020-09-08 14:08:56 +02:00
Remi Hardy
2541e8cf27 adding a more challenging ping in the FR1 testcase 2020-09-08 13:22:31 +02:00
Remi Hardy
a3a05075f3 adding a more challenging ping in the FR1 testcase 2020-09-08 13:20:52 +02:00
Thomas Schlichter
73f5851690 Merge remote-tracking branch 'develop'
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SIMULATION/NR_PHY/ulsim.c
2020-09-08 12:01:37 +02:00
Sakthivel Velumani
9751fa052b bugfix in tx rate matching 2020-09-08 10:52:15 +02:00
Raphael Defosseux
bdc1fa4edf Merge branch 'develop_integration_2020_w36' into 'develop'
Develop integration 2020 week 36

The following Merge Requests have been included:

* MR [877] : update conf2uedata
* MR [879] : Nr ul scheduling
* MR [880] : Cleanup usage of txdata array in NR UE threads
* MR [882] : Fixes for handling NR UE DCI decoding errors
* MR [884] : benetel: driver for Benetel's 4G and 5G RRUs
* MR [886] : NR UE fix get_Qm_dl and nr_get_code_rate_dl
* MR [887] : Usrp fix adc shift and pps sync
2020-09-08 10:38:29 +02:00
Remi Hardy
c4428f67ae Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-09-08 10:13:49 +02:00
Remi Hardy
20ee6ca67c fixing logging and html rendering 2020-09-08 10:10:27 +02:00
Sakthivel Velumani
be522f5c44 changed ul resources to full bwp 2020-09-07 16:31:38 +02:00
Raymond Knopp
d38af248db fixing a stupid mistake introduced in da3dd6b8 2020-09-07 16:21:13 +02:00
Sakthivel Velumani
915854447b fixed merge 2020-09-07 16:10:15 +02:00
Sakthivel Velumani
9b9295f5b2 Merge branch 'NR_UL_scheduling' into ulsch_decode_mthread 2020-09-07 15:13:08 +02:00
Francesco Mani
f80bcef3dc back to 16 PRBs and 1 nrofreportedRS 2020-09-07 13:56:16 +02:00
Remi Hardy
a19ce58978 Update TESTBenches.md 2020-09-07 11:49:38 +02:00
Remi Hardy
cd73b71037 Update TESTBenches.md 2020-09-07 11:47:30 +02:00
Remi Hardy
a511d9043a Update TESTBenches.md 2020-09-07 11:47:06 +02:00
hardy
bc8543c55c updating testbenches doc resources 2020-09-07 11:47:10 +02:00
Raphael Defosseux
e5bbc0f1e4 BUILD: fix compilation warning and circular dependency protection on header files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-07 10:54:49 +02:00
Raphael Defosseux
0b4716d739 Merge remote-tracking branch 'origin/NR_UL_scheduling' into develop_integration_2020_w36 2020-09-07 10:33:24 +02:00
Raymond Knopp
5e10e26668 PUCCH2 3-11 bits with > 2 PRB. Will work for even number of PRBs up to 16 2020-09-07 09:13:32 +02:00
zhenghuangkun
170a8f1702 Add NGAP Config 2020-09-07 12:53:24 +09:00
Raymond Knopp
1a8e531436 PUCCH2 3-11 bits with > 2 PRB. Will work for even number of PRBs up to 16 2020-09-05 15:12:31 +02:00
Sakthivel Velumani
21f5956f72 fixed dlsch_errors stats 2020-09-04 17:36:34 +02:00
Raphael Defosseux
88b3d0af5e CI: adding new rx gain for NR-UE
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-04 16:20:38 +02:00
Thomas Schlichter
6868a3db0d Fix merge conflict in openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
I had to remove the Msg2 transmission in phytest mode, which was present in branch 'benetel_integration'.
This caused following assertion:

Assertion (Foffset <= Ncb) failed!
In nr_rate_matching_ldpc() /home/sli/sudas-demonstrator/openair1/PHY/CODING/nr_rate_matching.c:411
Foffset 6492 > Ncb 924
2020-09-04 16:14:28 +02:00
Remi Hardy
7c92b90444 Update TESTING_GNB_W_COTS_UE.md 2020-09-04 15:28:42 +02:00
cig
e837c3b1b5 Msg3 PDU configuration cleanup
- fetching resource allocation from higher layer
- sorting out config for the remaining parameters
2020-09-04 14:45:15 +02:00
cig
88e6fb9d36 Fixed warnings 2020-09-04 14:45:15 +02:00
cig
e81b195917 Replaced malloc with local variable for ptrs_ports_list 2020-09-04 14:45:15 +02:00
cig
1f684f79c1 Introduced a function to fill the scheduled_response
- redundant code for the configuration of the scheduled_response was removed
- scheduled response is not needed to be stored in the NR_UE_MAC_INST struct as it passed to the function right away
2020-09-04 14:45:15 +02:00
cig
8694e5ee80 Removed tx_request from the NR_UE_MAC_INST struct
- tx_request is filled in the nr_scheduled_response upon the presence tx data
2020-09-04 14:45:15 +02:00
cig
ab4f9de25c Code cleanup UE 2020-09-04 14:45:15 +02:00
cig
539bc784b4 Changes to number of PDUs logic @ UE
- calling nr_ue_scheduled_response after pdu preparation
- increasing the number_pdus before response scheduling
- resetting after dl/ul config pdu handling
2020-09-04 14:44:22 +02:00
cig
28eb835533 Enter ULSCH procedures for Msg3 transmission 2020-09-04 14:44:22 +02:00
cig
83979a8758 Code cleanup, logging, formatting
- removed superfluos code
- formatting
- fixed logging
- removed redundant nr_get_dci_size (replaced by nr_dci_size)
- removed unused and long-time commented out functions @ UE side
2020-09-04 14:44:22 +02:00
cig
0fafb2ba64 Set DMRS offset to 0 when transform precoding is enabled 2020-09-04 14:44:22 +02:00
cig
4715308bd2 Msg3 implementation
- extraction of resource allocation from Msg2
- configuration of Msg3 PDU
- Msg3 scheduling
- MAC/PHY interface adaptations
2020-09-04 14:44:22 +02:00
Thomas Schlichter
ac5f5d7899 add missing init_symbol_rotation() to nr-uesoftmodem.c 2020-09-04 14:15:58 +02:00
Thomas Schlichter
966cc20766 fix compile warning in rfsimulator 2020-09-04 14:05:26 +02:00
Thomas Schlichter
6f1d37d1d7 enable OFDM symbol rotation in PUSCH transmission 2020-09-04 14:03:58 +02:00
Remi Hardy
63394891ee Update TESTING_GNB_W_COTS_UE.md 2020-09-04 13:43:29 +02:00
Raphael Defosseux
9675f34854 CPPCHECK: few fixes
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-04 12:37:15 +02:00
Raphael Defosseux
f7ad3f1e4d Merge remote-tracking branch 'origin/NR_UL_scheduling' into develop_integration_2020_w36 2020-09-04 12:07:46 +02:00
Raphael Defosseux
8b77c68f28 fix nr_dlsim build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-04 11:59:24 +02:00
Sakthivel Velumani
7820a57bf8 fixed ul harq assertion 2020-09-04 11:59:23 +02:00
Francesco Mani
5c19d13cae SSB resource set, 2 PRBs and 11 bits 2020-09-04 11:54:30 +02:00
Raphael Defosseux
4c779ba466 Merge remote-tracking branch 'origin/NR_UL_scheduling' into develop_integration_2020_w36 2020-09-04 11:48:45 +02:00
Raphael Defosseux
e3301fa62d Merge remote-tracking branch 'origin/usrp_fix_adc_shift_and_pps_sync' into develop_integration_2020_w36 2020-09-04 11:45:52 +02:00
Florian Kaltenberger
111cf1e3d9 changing rx gain to max in all n310 config files 2020-09-04 11:31:20 +02:00
Thomas Schlichter
db77516652 fix some compile warnings for nr_dlsim and nr_ulsim 2020-09-04 11:16:21 +02:00
zhenghuangkun
fe4b3c0a21 Create ngap files 2020-09-04 18:00:03 +09:00
Thomas Schlichter
3faeff23c1 fixing compile errors and some warnings 2020-09-04 09:47:17 +02:00
Remi Hardy
e3264917ce small fixes 2020-09-04 09:28:29 +02:00
Raymond Knopp
7394e4dc9c changes to DLSCH/ULSCH statistics in PHY 2020-09-03 22:20:44 +02:00
Raymond Knopp
42f96710f2 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling
Conflicts:
	openair2/NR_PHY_INTERFACE/NR_IF_Module.c
2020-09-03 20:59:58 +02:00
Raymond Knopp
66b4c74f36 added MAC statistics (Transport and logical channel interfaces) 2020-09-03 18:58:30 +02:00
Raphael Defosseux
0e96ad6a57 CI: updating also ci conf file
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-03 16:51:54 +02:00
Raphael Defosseux
59ab6f3628 Merge remote-tracking branch 'origin/usrp_fix_adc_shift_and_pps_sync' into develop_integration_2020_w36 2020-09-03 16:50:21 +02:00
Raphael Defosseux
746fb82839 Merge remote-tracking branch 'origin/NR_UE_get_Qm_dl_fix' into develop_integration_2020_w36 2020-09-03 16:49:58 +02:00
Raphael Defosseux
2dcf50a5bc Merge remote-tracking branch 'origin/benetel_integration' into develop_integration_2020_w36 2020-09-03 16:47:39 +02:00
Raphael Defosseux
869f0e989c Merge remote-tracking branch 'origin/NR_UE_DCI_decode_fix' into develop_integration_2020_w36 2020-09-03 16:45:56 +02:00
Raphael Defosseux
a05f7e1448 Merge remote-tracking branch 'origin/nr_ue_txdata_cleanup' into develop_integration_2020_w36 2020-09-03 16:41:25 +02:00
Raphael Defosseux
ec1a7cadff Merge remote-tracking branch 'origin/NR_UL_scheduling' into develop_integration_2020_w36 2020-09-03 16:35:03 +02:00
Raphael Defosseux
3970424b29 Merge remote-tracking branch 'origin/docs/fix-small-error' into develop_integration_2020_w36 2020-09-03 16:34:42 +02:00
Florian Kaltenberger
a44a32af28 Merge remote-tracking branch 'origin/develop' into benetel_integration 2020-09-03 15:28:52 +02:00
Florian Kaltenberger
8ba3ba91ef updating conf file for CI 2020-09-03 15:27:56 +02:00
Florian Kaltenberger
2c7968cc04 changing rx gain to max in all n310 config files 2020-09-03 13:59:53 +02:00
Florian Kaltenberger
5d5aea13b9 adding config file for n310 2020-09-03 13:50:07 +02:00
Florian Kaltenberger
627da47786 fixing adc inpput shift and gain table for N310. adding pps sync. 2020-09-03 13:49:41 +02:00
Sakthivel Velumani
1ffa59c9f2 moved dl & ul harq handlers to MAC 2020-09-03 13:33:43 +02:00
Remi Hardy
cb650a1a6e v0.2 integrating the new cots control procedure into the existing framework 2020-09-03 11:54:18 +02:00
Sakthivel Velumani
9026652468 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-09-03 11:03:03 +02:00
Sakthivel Velumani
0c1c2edd65 small fix 2020-09-03 11:02:41 +02:00
masyuki.harada
0a375bc044 Create asn1 file 2020-09-03 17:17:47 +09:00
Thomas Schlichter
15a376fab2 Harden nr_get_Qm() and nr_get_code_rate_dl() functions
Check the provided MCS index according to the specified table.
Some tables go up to MCS index 27, others up to MCS index 28.
If the MCS index exceeds the allowed limit, assume max. MCS.
2020-09-03 09:10:51 +02:00
yaojie
760acd0856 Create directory structure 2020-09-03 15:27:32 +09:00
Raymond Knopp
37dcdeb338 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-09-02 22:11:44 +02:00
Raymond Knopp
142249d84b added ulsch statistics 2020-09-02 22:11:04 +02:00
Remi Hardy
430496d59f v0.1 (temporary) running fr1 2020-09-02 17:52:18 +02:00
Francesco Mani
1025fd850c trying to fix some cppcheck errors 2020-09-02 16:44:40 +02:00
Raphael Defosseux
5a9ed93032 CPPCHECK: does not understand the different lengths of arrays
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-02 16:38:06 +02:00
Raphael Defosseux
1c457bf1fa BUILD: missing dependency on T_TRACER for L2_LTE_NR sub-lib
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-02 16:13:22 +02:00
Raymond Knopp
73c7bee040 added basic analytics for PDSCH measurements 2020-09-02 16:12:16 +02:00
Francesco Mani
4d2a8cc8d0 completed scheduling of csi meas report reception (to be tested) 2020-09-02 14:55:37 +02:00
Parminder Singh
b6792b3487 Fixed Warning issue due to wrong data type in ULSIM 2020-09-02 10:59:28 +02:00
Parminder Singh
88a14fc4cc Set the previous PTRS estimates to 0 for each slot
- The memory shall be reset for each slot to avoid interpolation error.
2020-09-02 10:10:10 +02:00
Parminder Singh
6ce38ac960 Fix Phase noise addition in ULSIM
- moved the noise function gNB variable
2020-09-02 09:53:45 +02:00
Parminder Singh
f7ed592ef5 Fixed available_bits calculation for PTRS in -n option in ulsim 2020-09-02 09:51:04 +02:00
Remi Hardy
237fdf5bd0 xml files update 2020-09-01 18:50:54 +02:00
Thomas Schlichter
0cff460e0e Fix alignment of mod_ptrs array in nr_ulsch_ue.c 2020-09-01 17:45:04 +02:00
Thomas Schlichter
600dd0e913 Add nr_ulsim testcases for UL DMRS and PTRS configurations 2020-09-01 17:39:21 +02:00
Remi Hardy
574c5944de file cleaning 2020-09-01 16:53:40 +02:00
Remi Hardy
78c7fb9f9b bug fixing + completing fr1 automation 2020-09-01 16:52:41 +02:00
Remi Hardy
d50e523d0e reworking check of xml_class_list location 2020-09-01 13:29:36 +02:00
Parminder Singh
92fc259592 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-09-01 12:55:50 +02:00
Parminder Singh
8cf32ed2ad Modify DMRS configuration with command line in ULSIM
- To modify DMRS use -U flag followed by 3 integers
- Example: ./nr_ulsim -U 2 1 0
- 1st Value is the list of arguments     -> e.g. 2
- 2nd Value is for TYPE{0=A,1=B}         -> e.g. 1
- 3rd Value is for ADD_POS{0,1,2,3}      -> e.g. 0
2020-09-01 12:22:12 +02:00
Sakthivel Velumani
0a3941fd17 dl harq handle update 2020-09-01 12:07:06 +02:00
Sakthivel Velumani
9e7ae9ce5f ul harq numbering fix 2020-09-01 11:35:08 +02:00
Remi Hardy
c3e2df6639 adding new xml files for fr1 setup 2020-09-01 10:24:40 +02:00
Francesco Mani
47a3ee095b first version of function to prepare scheduling of csi meas reporting 2020-09-01 10:12:41 +02:00
Sakthivel Velumani
892dffec3b dlsim perf print fix 2020-09-01 10:07:18 +02:00
kn.raju
86dee25800 Reverted multi RACH process 2020-08-31 22:31:14 +05:30
Parminder Singh
14096886e8 Enable PTRS with command line in ULSIM
- To enable PTRS use -T flag followed by 3 integers
- Example: ./nr_ulsim -T 2 0 2
- 1st Value is the list of arguments -> e.g. 2
- 2nd Value is for L_PTRS{0,1,2}     -> e.g. 0
- 3rd Value is for K_PTRS{2,4}       -> e.g. 2
2020-08-31 17:51:56 +02:00
hardy
c86fac47b9 fixing typo to make it work 2020-08-31 15:36:24 +02:00
hardy
88f9d88a44 Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-08-31 15:26:46 +02:00
hardy
b67d4bd183 fixing typo in searching path ci-scripts 2020-08-31 15:24:45 +02:00
Raymond Knopp
d443d9e915 added multi-antenna support for gNB RX (tested in ulsim) 2020-08-31 13:43:16 +02:00
Remi Hardy
9f772f36fd checking issues 2020-08-31 11:44:09 +02:00
Francesco Mani
d34bef816f first commit to schedule reception of csi measrep 2020-08-31 11:20:53 +02:00
Raymond Knopp
dbdae54c6d removed AssertFatal in nr_ue_mac_procedures.c for nr_dlsim HARQ tests. For some unknown reason there are occasion 0 SDUs sent up to MAC which causes failure. 2020-08-29 21:51:10 +02:00
Laurent
693364ddc5 merge develop 2020-08-29 09:37:15 +02:00
Laurent
a3367e58ea Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-08-29 09:35:47 +02:00
Shweta Shrivastava
f8b130a8ee Fix for build warnings 2020-08-28 16:15:13 -05:00
Raymond Knopp
cbeccf9868 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-28 17:35:18 +02:00
Raymond Knopp
99774b2afb bugfix in nr_dlsch_decoding.c 2020-08-28 17:34:47 +02:00
Francesco Mani
6a801ab562 Merge branch 'NR_UL_scheduling' into NR_CSI_reporting 2020-08-28 16:19:19 +02:00
Francesco Mani
4e8fa97d7d getting rid of frame_rx and slot_rx in gnb scheduler 2020-08-28 15:42:14 +02:00
Thomas Schlichter
8f09cc6c75 fix UE UL DMRS generation if start_rb != 0 in nr_ue_ulsch_procedures()
also do some code cleanup while at it...
2020-08-28 14:27:20 +02:00
Parminder Singh
ec0aea2374 Removed separate LLR calculation for PTRS
- New Data Structure to store PTRS RE's is removed
- LLR's are calculated at the end symbol for whole slot
2020-08-28 12:14:13 +02:00
Thomas Schlichter
a14dd04e1b Fix memory allocation of gNB channel estimation arrays 2020-08-28 10:03:38 +02:00
Sakthi
1fc73ba77f fixing nr-softmodem 2020-08-27 21:50:35 +02:00
Mario Hudon
597ddf7574 Merged in some FR2 fixes from Rakesh 2020-08-27 15:23:59 -04:00
Sakthivel Velumani
57dec19ac8 fixed thread init; ulsim runs fine 2020-08-27 18:23:29 +02:00
Francesco Mani
96f78feec7 moving init_symbol_rotation in uesoftmodem 2020-08-27 14:52:58 +02:00
Sakthivel Velumani
478c7352b3 fixes 2020-08-27 13:06:48 +02:00
Sakthivel Velumani
3e3af2c11b bugfixes 2020-08-27 12:42:25 +02:00
Parminder Singh
b288eafd1e Common Phase error estimation and compensation in uplink.
FEATURE STATEMENT:
- Introduce linear phase error noise model in Uplink at UE
- Perform common phase error (CPE) estimation and compensation at gNB

SOLUTION:
- A linear phase shift model is introduced in simulation.
- PTRS symbols are used to perform estimation of CPE from DMRS compensated signal
- The estimated values are interpolated in time domain and signal is compensated for the CPE.
- PTRS processing is done in Frequency Domain for each symbol in a slot and
  LLR's are calculated for each symbol accordingly.

IMPLEMENTATION:
* sim.h/channle_sim.c
- Linear Phase Noise Generation model definition.
* nr_ul_channel_estimation.c/nr_ul_estimation.h
- CPE estimation from PTRS and DMRS compensated signal.
* nr_dmrs_rx.c/nr_refsig.h
- Regenerate PTRS symbols at gNB.
* nr_ulsch_demodulation.c
- Removed old PTRS processing code and move to a common PTRS processing function
* defs_gNB.h/init.c
- New PTRS variables definition and initialization
* nr_ulsch_ue.c
- Corrected PTRS parameter to get new PTRS symbols for each OFDM symbol

TESTING
* ulsim.c
- Added Phase noise, Enable PTRS signal and verified the output.

VERIFICATION
- The LLR are rotated back with estimated CPE and no error is observed in scrambling/decoding
2020-08-27 11:55:06 +02:00
Francesco Mani
4cc5bf586e fix for pucchsim with sr 2020-08-27 10:35:05 +02:00
Raymond Knopp
260a9e58a0 nr_pbchsim modifications for carrier phase rotation procedure 2020-08-27 05:49:46 +02:00
Sakthi
9dc149e0f0 added postDecode; ulsim compiles 2020-08-27 00:42:21 +02:00
Shweta Shrivastava
3a999254c9 Fixes for handling NR UE DCI decoding errors 2020-08-26 15:01:00 -05:00
Mario Hudon
384fc315c8 Fixed initialization of SSB to RO mapping tables 2020-08-26 13:24:04 -04:00
Mario Hudon
638d8f8d0d Fix endianness handling of the ssb_PositionsInBurst 2020-08-26 13:14:50 -04:00
Sakthivel Velumani
e6804be968 created worker threads 2020-08-26 18:01:38 +02:00
Raphael Defosseux
e31349256f hotfix for eNB-OCP build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-26 17:24:45 +02:00
Cedric Roux
d7bdf4937a nr: use RLC AM instead of RLC UM 2020-08-26 17:15:43 +02:00
Cedric Roux
01da43a00d nr rlc: remove hardcoded values 2020-08-26 16:54:03 +02:00
Thomas Schlichter
070ee365e3 Fixup dlsch harq if() conditions in nr_dlsch_demodulation.c 2020-08-26 16:46:48 +02:00
Thomas Schlichter
a8fc7ebd38 Merge remote-tracking branch 'develop' into nr_ue_txdata_cleanup 2020-08-26 16:45:48 +02:00
Francesco Mani
28b280a657 Merge remote-tracking branch 'origin/develop' into NR_UL_scheduling 2020-08-26 13:49:30 +02:00
Raphael Defosseux
ab025ab026 Merge branch 'develop_integration_2020_w34' into 'develop'
Develop integration 2020 week 34

The following merge requests have been included:

* MR [859] : Fixed the bug not sending MSG3
* MR [860] : FeMBMS eNB / UE End-to-End chain
* MR [866] : Improved modulation speed
* MR [872] : Improvement on CUDA GPU ldpc latency
2020-08-26 12:00:24 +02:00
Remi Hardy
eb78f3b9ea Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-08-26 11:27:19 +02:00
Francesco Mani
a3466a4966 calling pucch format 2 decoding in gnb rx procedures 2020-08-26 09:35:38 +02:00
Francesco Mani
6042df1ab5 to make lte-uesoftmodem compile 2020-08-26 07:06:28 +02:00
Francesco Mani
d219341905 to make simulators compile 2020-08-25 19:02:13 +02:00
Raymond Knopp
12a75c60e2 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 15:03:06 +02:00
Raymond Knopp
632803289c fixed initialization of rotation for symbol 0 2020-08-25 15:02:41 +02:00
Francesco Mani
1b06523c86 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 14:44:24 +02:00
Francesco Mani
0130518529 rssi dBFS based on 16 bits 2020-08-25 14:44:08 +02:00
hardy
e2b19083e5 fixing the xml action list yaml file location search 2020-08-25 10:55:43 +02:00
Raymond Knopp
b58ea80990 debug trace 2020-08-25 10:47:48 +02:00
Raymond Knopp
0bb99458c3 bugfix for TX slot processing 2020-08-25 10:06:02 +02:00
Raymond Knopp
2124343889 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 01:50:43 +02:00
Raymond Knopp
cc0ff7422e implementation of missing symbol-based rotation for NR modulation/demodulation (Section 5.3 38.211). Tested with unitary simulators (ulsim/dlsim).
To be tested with gNB testbench and rfsimlator
2020-08-25 01:48:55 +02:00
Thomas Schlichter
cec42dc330 Some more UE timing fixes
- Check for timing_advance update _after_ RX (and TX) processing
- Update writeBlockSize when timing_advance value changes (for USRP)
- ignore timestamp when pre-reading the first OFDM symbol of a frame (for rfsimulator)
- do not busy wait for a finished RX-TX thread, use blocking wait instead
2020-08-24 20:01:56 +02:00
Francesco Mani
664ac4facc bugfix on last commit 2020-08-24 17:59:30 +02:00
Francesco Mani
c127a5a2f8 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-24 16:10:16 +02:00
Francesco Mani
c1b775394f tpc update for pusch only if there is signal 2020-08-24 16:10:13 +02:00
matzakos
0e02dcf620 Modify LCID value for RLC DRB preconfiguration in noS1 mode 2020-08-24 15:01:18 +02:00
Raphael Defosseux
f0fb73f673 CI: less verbose when running MBMS on UE side
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-24 14:19:51 +02:00
Raphael Defosseux
9b58b2c872 CI: uniqueness in references
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-24 14:19:14 +02:00
Raymond Knopp
50dda0e4fe Remove redundant log 2020-08-24 13:02:19 +02:00
Raymond Knopp
e471d8b898 Merge remote-tracking branch 'origin/NR_RRC_PDCP' into NR_UL_scheduling 2020-08-24 11:19:42 +02:00
Julio Renner
e3e84ca282 update conf2uedata 2020-08-24 02:21:03 +02:00
Thomas Schlichter
4049eb4f53 clean TX buffer on UE side after transmitting it via USRP 2020-08-22 11:08:47 +02:00
Thomas Schlichter
f51611b108 remove unused variable "pdsch_vars_flp" and type "LTE_UE_PDSCH_FLP" 2020-08-22 10:21:39 +02:00
Thomas Schlichter
32b9f74067 remove "pdsch_vars_flp", "pdsch_vars_SI", "pdsch_vars_ra", "pdsch_vars_p" and "pdsch_vars_MCH", use per thread "pdsch_vars" instead 2020-08-22 10:21:39 +02:00
Thomas Schlichter
f8cb47d447 fix uePcchLLR() in nr_phy_scope.c to plot the PDCCH LLRs 2020-08-22 10:21:39 +02:00
Thomas Schlichter
b0903e2079 change timing advance to only affect the TX timestamp, not the position in the "txdata" buffer 2020-08-22 10:21:36 +02:00
Thomas Schlichter
1ca238dc19 remove unused function ulsch_common_procedures() from phy_procedures_nr_ue.c 2020-08-22 10:19:15 +02:00
Thomas Schlichter
1f57bd9bd2 Transmit data to USRP after finishing the producing thread 2020-08-22 10:18:30 +02:00
Francesco Mani
2f65453508 improved threshold for pucch0 detection 2020-08-21 18:28:44 +02:00
hardy
b5e17fb2d1 preparation for oc enb 2020-08-21 17:38:48 +02:00
Raphael Defosseux
f36a1b42cb Merge remote-tracking branch 'origin/NCTU_OpinConnect_LDPC' into develop_integration_2020_w34 2020-08-21 16:13:47 +02:00
Raphael Defosseux
a8ea336cfd Merge remote-tracking branch 'origin/improve_nr_modulation' into develop_integration_2020_w34 2020-08-21 16:13:27 +02:00
Raphael Defosseux
34a2945abf Merge remote-tracking branch 'origin/fembms-enb-ue' into develop_integration_2020_w34 2020-08-21 16:13:08 +02:00
hardy
8b3eb61f1c fixing typos + more in-code comments 2020-08-21 16:04:32 +02:00
Laurent
038a80b2ff fixes after merge 2020-08-21 15:50:27 +02:00
Rakesh
98aefe94fb Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRCConfiguration_FR2 2020-08-21 15:12:45 +02:00
Francesco Mani
09344667c3 fix for unresolved conflict 2020-08-21 15:08:26 +02:00
Laurent
38f01abd77 merge develop, compile ok, no test 2020-08-21 14:26:06 +02:00
Rakesh
e1c6130187 Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRCConfiguration_FR2 2020-08-21 13:52:51 +02:00
Laurent
c05bc1a3e9 5G SA authentication: authentication request, partial authentication response 2020-08-21 13:48:26 +02:00
Cedric Roux
da3dd6b8b0 benetel: driver for Benetel's 4G and 5G RRUs
This commit contains work done by Eurecom and by Benetel.
2020-08-21 10:24:35 +02:00
Sakthivel Velumani
579f9f969b included check for mod_order 2020-08-20 16:59:02 +02:00
kn.raju
eeb20f23a2 Resolved temp-rnti issue 2020-08-20 18:59:14 +05:30
hardy
2724f9c198 updated control sequence of cots ue for CI bench 2020-08-20 15:26:23 +02:00
Francesco Mani
0be0b4e0e3 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-20 12:38:14 +02:00
Francesco Mani
fd003dd786 Merge remote-tracking branch 'origin/develop' into NR_UL_scheduling 2020-08-20 12:37:21 +02:00
Raymond Knopp
2dffbb75e7 fixing a bug in the prach sequency initialization 2020-08-20 12:28:11 +02:00
Francesco Mani
35c298d708 remove unnecessary declarations 2020-08-20 11:26:10 +02:00
Florian Kaltenberger
54f7019e19 Merge branch 'develop' into 'dongzhanyi-zte-develop'
# Conflicts:
#   openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
2020-08-20 10:24:24 +02:00
Raphael Defosseux
7f28f8d10d Merge branch 'develop_integration_2020_w33' into 'develop'
Develop integration: 2020 week 33

The following Merge Requests are included:

* MR [849] : Implement Message2 (RAR) reception for NR-UE
* MR [870] : Fix softmodem restart
* MR [871] : Fix support for MIMO in rf-simulator
* MR [873] : BUILD: fix for new API on load_softscope
2020-08-20 07:47:55 +02:00
Laurent
0ee578f4bd add authentication request 2020-08-19 19:30:53 +02:00
Francesco Mani
9245f22d43 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-19 17:23:49 +02:00
hardy
cc1e2c59cf adding resources and page for testbenches doc 2020-08-19 17:05:30 +02:00
matzakos
e5d317a4d2 Change DURATION_RX_TO_TX to 6 slots instead of 4 at nrUE
- Ensure that tx slot processing is done by the time trx_write_func() gets called
2020-08-19 16:56:04 +02:00
Sakthivel Velumani
8a10323d2a more mem alignment for dmrs 2020-08-19 15:52:16 +02:00
Sakthivel Velumani
44ac0ec190 fixing a log message 2020-08-19 15:39:21 +02:00
Sakthivel Velumani
403956d6c2 avoiding race condition for PDSCH tx 2020-08-19 14:52:16 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
d4603636d3 fix compile problem in non-CUDA environment 2020-08-19 20:37:29 +08:00
hardy
28e37684f4 adding runtime stats to console and HTML when Terminate_UE 2020-08-19 14:27:15 +02:00
Francesco Mani
4d0d54a98d power target from config file functional 2020-08-19 14:25:03 +02:00
matzakos
53f0ab6405 Merge remote-tracking branch 'origin/develop' into dongzhanyi-zte-develop 2020-08-19 11:10:09 +02:00
Sakthivel Velumani
e4755f9c31 init mod tables fo ue 2020-08-19 10:27:59 +02:00
Raymond Knopp
f8c510e061 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-19 10:03:21 +02:00
Raymond Knopp
68fd55b21e added PDCCH lists to L1 processing to remove race condition between FAPI and L1 threads 2020-08-19 10:01:29 +02:00
hardy
eddf218d8d updating python to read ue commands dictionary 2020-08-18 22:18:31 +02:00
Francesco Mani
8999b51c1f bugifix 2020-08-18 17:36:52 +02:00
Sakthivel Velumani
f42291a4f7 Merge branch 'develop' into improve_nr_modulation 2020-08-18 17:20:46 +02:00
kn.raju
2be7cc59bf Addition of multi-user rach 2020-08-18 19:26:07 +05:30
Rakesh
76346c450d Tdd configuration and a small fix for get_band() for FR2 2020-08-18 15:50:38 +02:00
Francesco Mani
3952ad7729 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-18 15:47:52 +02:00
Francesco Mani
edf903f776 pucch power control and handling of missed reception using confidence level 2020-08-18 15:47:48 +02:00
Sakthivel Velumani
923070e6c1 mem alignment for dmrs symbs 2020-08-18 15:16:23 +02:00
Raymond Knopp
21b25fcefb Remove some heavy PRACH logs 2020-08-18 15:14:32 +02:00
Laurent
59964b0f84 Identity response encoding 2020-08-18 14:07:56 +02:00
Raymond Knopp
3e767faeeb fixed channel model initialization in rfsimulator for added parameter (to be added to bridge structure still) 2020-08-18 08:38:15 +02:00
Raymond Knopp
e68cfaf70e added AVX2 optimization for 64QAM LLR computation in NR ULSCH 2020-08-18 07:45:07 +02:00
Sakthivel Velumani
dc2d948bad memory bugfix and other minor fixes 2020-08-17 13:55:13 +02:00
Francesco Mani
ffae55f62c n0 measurement in pucchsim 2020-08-17 12:30:36 +02:00
Raymond Knopp
37c1219e79 AVX2 optimization of 16QAM NR ULSCH LLR 2020-08-16 23:07:04 +02:00
Raymond Knopp
fc21364fa0 optimization of ldpc deinterleaving and llr computation 2020-08-16 15:04:27 +02:00
Raymond Knopp
80cc29acd9 optimization of RE extraction for NR ULSCH. Addition of faster memcpy to utils 2020-08-16 12:10:42 +02:00
Raymond Knopp
b16b2f7d99 optimization of NR ULSCH unscrambling 2020-08-15 09:42:05 +02:00
Sakthivel Velumani
92595bb2af further fixes 2020-08-14 18:03:04 +02:00
Sakthivel Velumani
12feffcc1c bugfix 2020-08-14 17:29:51 +02:00
Sakthivel Velumani
9c01cc66ea diabling avx2 for qpsk 2020-08-14 16:31:37 +02:00
Sakthivel Velumani
8aa88999fc fixes 2020-08-14 11:43:54 +02:00
Parminder Singh
f4631f2186 Bug-fix in Up-link with respect to PUSCH RE calculation when PTRS is enabled.
Problem STATEMENT:
- When enabling PTRS flag in ulsim, there are multiple scrambling and decoding errors
  are observed even with high SNR values
  SNR 60dB   errors_scrambling 5546/13800
  Channel BLER 1.000000e+00, Channel BER 4.018841e-01

ANALYSIS:
- While extracting PTRS RE's, the PUSCH RE count was not updated accordingly for PTRS symbols.
- This results in 0 value LLR's on same positions which cause offset issue in later processing.

IMPLEMENTATION:
* nr_ulsch_demodulation.c
- In case of PTRS symbol, respective total number of PTRS RE's are subtracted from available
  PUSCH RE's in each PUSCH Symbol processing.

TESTING
* ulsim.c
- PTRS are enabled for testing and are not enabled by default by this commit.
- Available bit count is adjusted if PTRS is enabled.

VERIFICATION
- Total Scrambling errors after gNb processing shall be only 250 bits (in K=2)
  which were replaced with PTRS at UE side while transmission.
  SNR 60.000000 errors_scrambling 250/13800
  Channel BLER 0.000000e+00, Channel BER 1.811594e-02
- After adjusting available bits in ulsim.c for error calculation
  SNR 60.000000: n_errors errors_scrambling 0/13550
  Channel BLER 0.000000e+00, Channel BER 0.000000e+00

EXTRA
- Removed white-spaces from all above mentioned files
- Added Global/vim tags to .gitignore file
2020-08-14 10:20:36 +02:00
Rakesh
e4088f7f7f bug fix in dft memory allignment and get_band() for FR2 2020-08-14 09:55:22 +02:00
Rakesh
2da9710958 Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-08-14 09:54:04 +02:00
Francesco Mani
9f72b81df6 tci and csi on ssb depending on ssb bitmap 2020-08-14 08:47:20 +02:00
Raymond Knopp
9b138dec72 LLR scaling adjustment (log2_maxh computation) for NR ULSCH receiver. 2020-08-14 08:12:18 +02:00
Raphael Defosseux
140c70373e Merge remote-tracking branch 'origin/hotfix-ocp-executable' into develop_integration_2020_w33 2020-08-13 22:08:07 +02:00
Raphael Defosseux
3c3c94efa5 Merge remote-tracking branch 'origin/fix_rfsim_mimo' into develop_integration_2020_w33 2020-08-13 22:07:37 +02:00
Raphael Defosseux
4c6c4954e2 Merge remote-tracking branch 'origin/fix-softmodem-restart' into develop_integration_2020_w33 2020-08-13 22:07:02 +02:00
Raphael Defosseux
4ff959fe34 Merge remote-tracking branch 'origin/nrue_msg2_reception' into develop_integration_2020_w33 2020-08-13 22:06:25 +02:00
Thomas Schlichter
819ee74123 move up assertions in config_ue.c to satisfy cppcheck 2020-08-13 17:42:13 +02:00
Rakesh
b07f3739c4 fix for ue tx freq and gnb if_frequency 2020-08-13 11:45:48 +02:00
kn.raju
c68c26e5b0 added debug in logs in rx_nr_prach 2020-08-13 14:35:58 +05:30
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
bc1c69fead fix compile issue 2020-08-13 16:32:09 +08:00
Raymond Knopp
49a14c4f9f fixes for TDL channel models in nr_ulsim 2020-08-13 09:43:50 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
1fa6e0c6a1 Merge remote-tracking branch 'origin/develop' into NCTU_OpinConnect_LDPC 2020-08-13 14:22:55 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
10d52466a8 Fix CUDA diff with develop 2020-08-13 14:15:54 +08:00
Francesco Mani
fa105bd4d9 reworking rrc config for csi meas report on ssb 2020-08-12 17:33:43 +02:00
kn.raju
7af14dd7c1 Added Debug logs for RACH issue with ssb id other than 0 2020-08-12 20:18:50 +05:30
Raymond Knopp
ae4f3320c7 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-12 16:23:54 +02:00
Raymond Knopp
13d1be0782 added TDL channel models and use them in nr_ulsim 2020-08-12 16:23:14 +02:00
Raphael Defosseux
4e67434570 BUILD: fix for new API on load_softscope
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-12 14:55:59 +02:00
matzakos
e0e0ed0cf9 Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRC_PDCP 2020-08-12 14:27:05 +02:00
Sakthivel Velumani
42ba1047ac changed pusch debug trace 2020-08-12 14:03:44 +02:00
Francesco Mani
5607a10dbc fixing compilation errors 2020-08-12 13:30:57 +02:00
Francesco Mani
d151e9fd6c making csi function compile again 2020-08-12 12:25:16 +02:00
Francesco Mani
5390811cac including first carrier offset in csi mapping 2020-08-12 12:24:54 +02:00
Francesco Mani
5117f0110f bug fixes and adding debug 2020-08-12 12:24:32 +02:00
Francesco Mani
d986d8bf2c csi-rs resource mapping (to be debugged and tested) 2020-08-12 12:24:02 +02:00
Francesco Mani
f8f97a21f5 implementation of table 7.4.1.5.3-1 2020-08-12 12:14:54 +02:00
Francesco Mani
2a3306a181 adding csi rs file, function still empty 2020-08-12 12:14:01 +02:00
Francesco Mani
76f360c112 generation of csi-rs sequence 2020-08-12 12:09:40 +02:00
laurent
5729f15363 merge develop 2020-08-12 11:43:33 +02:00
Thomas Schlichter
18b9edff09 Merge remote-tracking branch 'develop' into fix_rfsim_mimo
Conflicts:
	targets/ARCH/rfsimulator/simulator.c
2020-08-12 09:44:39 +02:00
Raphael Defosseux
05f052cc04 Merge branch 'develop_integration_2020_w31' into 'develop'
See merge request oai/openairinterface5g!869

Develop Integration Branch : 2020 week 31

The following Merge Requests have been included:

* MR [861] : Fixes for buffer overrun when L1 information is cleared upon UE removal in
* MR [863] : Small fixes
* MR [864] : Fixed the bug no supporting CellId more than 256
* MR [865] : Fix to have the sony 5g connect in NSA mode
* MR [867] : CI improvements for OCP-enb testing and NSA FR1 testing
* MR [868] : Add chansimuparams
2020-08-11 17:45:58 +02:00
Francesco Mani
b2e54e091c fixing an issue in n0 measurements 2020-08-11 13:57:02 +02:00
Raphael Defosseux
f445bdd324 CI: fixed typo in the list of allowed methods
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-11 11:29:05 +02:00
Thomas Schlichter
9bcec8a628 hotfix UE configuration for DCI format 1_1
Set n_dmrs_cdm_groups = 1 for now.
Should be fixed accordingly to TS 38.214 section 5.1.6.2
using tables 7.3.1.2.2-1, 7.3.1.2.2-2, 7.3.1.2.2-3, 7.3.1.2.2-4 of TS 38.212
2020-08-10 20:11:05 +02:00
Thomas Schlichter
a75d6088ea fix dlschsim by correctly setting dmrsConfigType 2020-08-10 20:05:40 +02:00
Sakthi
76f7840961 bug fixes 2020-08-10 19:22:53 +02:00
Sakthi
5e7ce26c10 more additions 2020-08-10 19:14:14 +02:00
laurent
7d1d8744e6 continue 5G SA NAS messages 2020-08-10 17:46:10 +02:00
Raphael Defosseux
470ecad248 Merge remote-tracking branch 'origin/add_chansimuparams' into develop_integration_2020_w31 2020-08-10 16:56:23 +02:00
Raphael Defosseux
e83acab6ca Merge remote-tracking branch 'origin/rh_ci_next' into develop_integration_2020_w31 2020-08-10 16:54:26 +02:00
Raphael Defosseux
e1ba785a94 Merge remote-tracking branch 'origin/fix-for-sony-5g-phone' into develop_integration_2020_w31 2020-08-10 16:54:14 +02:00
Raphael Defosseux
81f8af65a2 Merge remote-tracking branch 'origin/dongzhanyi-zte-develop1' into develop_integration_2020_w31 2020-08-10 16:53:58 +02:00
Raphael Defosseux
03a2d3e1ff Merge remote-tracking branch 'origin/bug-rfsim-and-warnings' into develop_integration_2020_w31 2020-08-10 16:53:37 +02:00
Raphael Defosseux
1aa7d4b9d5 Merge remote-tracking branch 'origin/hotfix-ue-release' into develop_integration_2020_w31 2020-08-10 16:53:12 +02:00
Sakthivel Velumani
e2afb8662e new table generator 2020-08-10 15:21:59 +02:00
Sakthivel Velumani
82df0e51b9 updated tables and 64qam mod 2020-08-10 15:19:53 +02:00
kn.raju
81f7ef4dac Fixed initial prach_id frame&slot number 2020-08-07 21:02:42 +05:30
Francesco Mani
7989afbb78 bugfix in measurements 2020-08-07 17:05:58 +02:00
Cedric Roux
c95e5deb42 add back ssb_perRACH_Occasion, sony phone complains 2020-08-07 10:33:26 +02:00
kn.raju
8ad840cbf0 Fixed issue in finding prach_id 2020-08-07 13:01:37 +05:30
Francesco Mani
7d46e43334 using the right structures for n0 measurements 2020-08-07 09:19:37 +02:00
Francesco Mani
e7ca1619b8 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-06 18:03:37 +02:00
Francesco Mani
d8d2739c2b bugfixes 2020-08-06 17:46:16 +02:00
Sakthivel Velumani
566570899c Handle case where all harq are busy 2020-08-06 15:49:44 +02:00
Sakthivel Velumani
107167d100 Fixed a bug in PDCCH sched 2020-08-06 15:40:45 +02:00
matzakos
cbb321d7a2 Merge branch 'NR_RRC_PDCP' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PDCP 2020-08-06 14:42:01 +02:00
matzakos
5ab8e0079b Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRC_PDCP 2020-08-06 14:27:54 +02:00
Cedric Roux
cccb56e571 nr rlc: bug fixes, cleanup
- bad values in asn1_utils.c (copy/paste from 4g)
- remove hardcoded values (t_reassembly, sn_field_length)
- some cleanup
2020-08-06 11:46:39 +02:00
laurent
9a72b0c52e partial code for NR SIB1, existing bugs fix, merge develop 2020-08-06 11:44:48 +02:00
kn.raju
5d4acc2ea3 added debug logs for phy issue 2020-08-06 14:37:46 +05:30
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
96023eeb93 Fix CUDA latency 2020-08-06 16:13:18 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
61bdea7584 fix build_oai and CUDA latency 2020-08-06 15:40:57 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
b64b6e85c4 fix build_oai and CUDA latency 2020-08-06 15:39:15 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
0e5d4fe268 fix CUDA latency 2020-08-06 15:32:30 +08:00
Thomas Schlichter
9dadad8298 fix enabling of PTRS
to set a flag in a bitmap, use "bitmap |= flag", to clear a flag in a bitmap use "bitmap &= ~flag".
2020-08-06 09:10:20 +02:00
Thomas Schlichter
3514caddc2 minor warning fixes 2020-08-06 09:06:37 +02:00
Khodr Saaifan
16ab5979e2 Extend rfsim to enable muti transmit antennas for gNB+solve beamforming ssb_index 0 when nb_tx>1 2020-08-05 19:15:00 +02:00
matzakos
431ed8bd73 Add GTPU tunnel data request at PDCP to deliver Uplink traffic over S1-U 2020-08-05 18:42:47 +02:00
Raphael Defosseux
cf23c58681 CI: fix typo for RAN HTML reporting
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-05 18:04:16 +02:00
Thomas Schlichter
00d9af7a15 Merge remote-tracking branch 'eurecom/develop' into fhg-ra2
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2020-08-05 17:16:42 +02:00
Francesco Mani
ee2bd11e6e to remove some logs 2020-08-05 16:35:09 +02:00
matzakos
e6f20804b9 Remove dependency from noS1 mode to forward received UL traffic from MAC to RLC 2020-08-05 15:45:39 +02:00
Francesco Mani
ff7ac327cd first version of pusch power control 2020-08-05 12:30:25 +02:00
Francesco Mani
61a2842da8 Merge remote-tracking branch 'origin/ul_harq' into NR_UL_scheduling 2020-08-05 12:22:33 +02:00
Robert Schmidt
e761819e28 Fix in other functions 2020-08-05 10:10:50 +02:00
Robert Schmidt
a4a7de5ffe Make restart work again: do not free/copy ru frame_parms 2020-08-05 08:57:05 +02:00
matzakos
1326f6daf7 NR_RRC_PDCP: Bring back Downlink data scheduling in every opportunity
-Schedule IP traffic when it is available and random data when there is no IP traffic
2020-08-04 14:59:05 +02:00
kn.raju
dfdca4a251 fixed floating point exception error 2020-08-04 11:20:31 +05:30
Sakthivel Velumani
f8675c258d Fixed linking errors 2020-08-03 14:11:52 +02:00
Raphael Defosseux
a385ad5244 Putting back SIGINT detection for lte-softmodem and initial skeleton to retrieve runtime stats from eNB/gNB
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-03 14:03:20 +02:00
Raphael Defosseux
7daa4a2a10 CI: update on FR1 scenarios
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-03 14:02:12 +02:00
kn.raju
a5580844b8 added for assoc period more than 1 2020-08-03 17:11:16 +05:30
matzakos
d013302c42 Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRC_PDCP
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
2020-08-03 12:36:19 +02:00
Sakthivel Velumani
18a3747e82 added the changed octave script 2020-08-03 11:46:33 +02:00
Sakthivel Velumani
fbd4df014c Further improvements
additional 50% speed improvement with SIMD vectors
2020-08-03 11:22:34 +02:00
Raphael Defosseux
613d603278 CI: few fixes and improvements
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-03 11:15:06 +02:00
laurent
571d094715 Merge branch 'rh_ci_next' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_next 2020-08-03 09:20:49 +02:00
laurent
381fa7234a remove need to set /data/opencells-ran/../oaiCloneFapi before calling cmake 2020-08-03 09:20:25 +02:00
kn.raju
e56a085ada Fixed msg2 error and added CFRA config 2020-08-02 15:57:29 +05:30
kn.raju
18695f070e added logs for debug 2020-07-31 20:17:55 +05:30
Raphael Defosseux
0e06277360 CI: enabling 3/4 sampling rate when running gNB on B210
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 16:14:34 +02:00
Remi Hardy
de64484fe5 Update TESTING_GNB_W_COTS_UE.md 2020-07-31 16:11:13 +02:00
laurent
2b5c6a1e40 Merge branch 'rh_ci_next' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_next 2020-07-31 16:04:47 +02:00
laurent
b829d3c9f7 add exit trace and fix a gcc warning 2020-07-31 16:04:24 +02:00
Remi Hardy
def42f92d8 Update TESTING_GNB_W_COTS_UE.md 2020-07-31 15:07:26 +02:00
Raphael Defosseux
a12266b94f DOC: point now to CI-used conf files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 14:43:05 +02:00
Raphael Defosseux
3ec2a46fd3 CI: fix clock management in FR1 conf files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 14:40:52 +02:00
kn.raju
201ab3eb11 Resolving ra-rnti miss-match 2020-07-31 17:19:45 +05:30
Sakthivel Velumani
414cc0ee83 fixed bug 2020-07-31 12:48:44 +02:00
Sakthivel Velumani
ea8ad2d6ca handle harq if pusch not detected 2020-07-31 12:35:57 +02:00
Raphael Defosseux
a6cd5b2d34 CI: no more usage of 'daemon' for launch soft-modem executables
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 11:54:29 +02:00
Raphael Defosseux
f00ddc7972 CI: add OCP pipeline trigger to master pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 10:20:38 +02:00
Raphael Defosseux
765ba2eba3 CI: last typo
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-31 09:51:01 +02:00
Francesco Mani
c810300e48 tpc = 1 for pusch 2020-07-30 17:54:44 +02:00
Francesco Mani
27cdb8116d debug message for pusch not received 2020-07-30 17:53:35 +02:00
Sakthivel Velumani
82be36533b Included special case for 64qam 2020-07-30 17:31:28 +02:00
Raphael Defosseux
e55f2aea0c CI: adding support for FR1 run of both eNB and gNB
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-30 16:21:51 +02:00
Anes Rose Rigiel Antony
ccc143d6f6 Merge branch 'NR_MAC_SSB_RO_GlobalEdge' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_MAC_SSB_RO_GlobalEdge 2020-07-30 18:13:28 +05:30
kn.raju
7c9bd5b321 Added debug logs 2020-07-30 17:40:17 +05:30
kn.raju
312ff2f85f fixed run time issue 2020-07-30 17:40:17 +05:30
kn.raju
6acb8d909a rrc configuration changes reverted 2020-07-30 17:40:17 +05:30
kn.raju
df5ce819c6 fixed run time error 2020-07-30 17:40:17 +05:30
kn.raju
46dcf9406a Debug logs added 2020-07-30 17:40:17 +05:30
kn.raju
991e5ad49a Scheduling and handling of SSB-RO 2020-07-30 17:40:17 +05:30
Raphael Defosseux
5e62d39c9d CI: fix the air_interface support on RAN and OAI-UE sides -- separate member now.
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-30 14:06:31 +02:00
Raphael Defosseux
2612f2639d CI: fix a few remaining getters
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-30 10:38:36 +02:00
frtabu
d4bd2cdc63 implement modifying channel model algo while running, complete function freeing a model 2020-07-29 20:27:04 +02:00
laurent
81eb393000 add preeliminary support for ubuntu 20 or debian 11, add file for 5G SA 2020-07-29 18:28:29 +02:00
laurent
e52948a0a5 merge develop 2020-07-29 18:21:25 +02:00
Sakthivel Velumani
db90088c5b Fixed bug in ul harq handler 2020-07-29 17:08:20 +02:00
Sakthivel Velumani
420aaf371e Added print messages for debugging 2020-07-29 17:01:04 +02:00
Francesco Mani
8bebabc151 initialization of hrq_id 2020-07-29 16:04:30 +02:00
Raphael Defosseux
7dc726f8f5 Merge remote-tracking branch 'origin/develop' into rh_ci_next 2020-07-29 16:01:40 +02:00
Francesco Mani
1043320676 Merge remote-tracking branch 'origin/NR_UL_scheduling' into ul_harq 2020-07-29 15:32:08 +02:00
Cedric Roux
503b46cd53 fix to have the sony 5g connect in NSA mode
c_SRS was 61, which does not fit for 106 PRBs as it seems. Value 0 works.
Maybe not the right thing to do though (see 38.211 6.4.1.4.3,
table 6.4.1.4.3-1).

Also it seems necessary to pass desired LTE/NR bands when requesting
LTE UE capabilities. Today this is hardcoded, to be done better at
some point. We should get the bands from the eNB configuration and
the eNB/gNB X2 exchanges.
2020-07-29 14:55:40 +02:00
Francesco Mani
1dab506b78 minor changes 2020-07-29 14:50:07 +02:00
Sakthivel Velumani
7bcf468e1b Added the changed octave script 2020-07-29 13:11:31 +02:00
Sakthivel Velumani
5fa775580c Removed unwanted loop and if
Reordered mod_table to support new changes in the function
2020-07-29 13:01:09 +02:00
Cedric Roux
9c2696e5e2 fix to have the sony 5g connect in NSA mode
c_SRS was 61, which does not fit for 106 PRBs as it seems. Value 0 works.
Maybe not the right thing to do though (see 38.211 6.4.1.4.3,
table 6.4.1.4.3-1).

Also it seems necessary to pass desired LTE/NR bands when requesting
LTE UE capabilities. Today this is hardcoded, to be done better at
some point. We should get the bands from the eNB configuration and
the eNB/gNB X2 exchanges.
2020-07-29 11:11:04 +02:00
Javier Morgade
a8e2a8d4b0 Merge remote-tracking branch 'origin/develop' into fembms-enb-ue 2020-07-29 10:54:38 +02:00
Raphael Defosseux
f7dc17ec20 Merge branch 'integration_2020_wk30' into 'develop'
Integration branch 2020 week 30  

- MR 854 : NR_DCI_01  
- MR 857 : improve_ue_stability  
- MR 839 : mac-flexran-improvements
2020-07-29 09:20:42 +02:00
frtabu
f5d1dbb731 add telnet command to rfsimulator 2020-07-29 01:34:52 +02:00
frtabu
f61f9520db implement queued commands in telnet server 2020-07-28 20:08:48 +02:00
Raphael Defosseux
71c66ec583 CI: fix HTML tab name
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-28 17:08:09 +02:00
Remi Hardy
ca21ad8b36 cleaned-removed commented-out legacy code 2020-07-28 17:02:28 +02:00
Francesco Mani
86250f682a bugfix in ul estimation and other minor changes 2020-07-28 16:35:12 +02:00
Raphael Defosseux
5c2df00101 CI: fix terminate
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-28 16:28:36 +02:00
Raphael Defosseux
b8edd71244 CI: adding retries on OCP test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-28 16:03:28 +02:00
Raphael Defosseux
5dd3e3353d CI: using ninja for OCP build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-28 15:25:00 +02:00
Raphael Defosseux
31a0d28ad9 CI: fix a few typos
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-28 15:22:46 +02:00
Remi Hardy
d3b415d6ed commented out printing of object attributes (debug) 2020-07-28 14:22:46 +02:00
Remi Hardy
8c9501b6a6 fixing args_parse function arguments list 2020-07-28 14:17:27 +02:00
Sakthivel Velumani
012db77f15 One more fix to pucch tx 2020-07-28 12:04:30 +02:00
Remi Hardy
eceb1ed21f fixed air_interface variable for ocp-enb option 2020-07-28 10:40:15 +02:00
dong.zhanyi
828bab2fd6 fixed the bug no supporting CellId more than 256 2020-07-28 07:34:05 +08:00
frtabu
7eb2ab66c5 add telnet commands to show and modify channel simulation parameters 2020-07-28 01:33:16 +02:00
dong.zhanyi
5c0a149946 fixed the bug no supporting the CellId more than 256 2020-07-28 07:00:56 +08:00
Sakthivel Velumani
c868c345e3 Fixed dl ack tx in pucch 0 2020-07-28 00:30:44 +02:00
Laurent
384aec0d03 coding 5G SA, add documentation 2020-07-27 20:35:10 +02:00
Laurent
427b223136 small fiwes 2020-07-27 16:08:31 +02:00
Javier Morgade
a061c8acc5 fembms: CI/CD fallback to original MBMS settings
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-27 14:17:58 +02:00
hardy
d81f8b9120 fixed CONST. missing in front of constant, leading to execution error 2020-07-27 14:08:21 +02:00
hardy
292addf8d6 Merge remote-tracking branch 'origin/NR_DCI_01' into integration_2020_wk30 2020-07-27 13:47:22 +02:00
hardy
0b58e7a6f5 Merge remote-tracking branch 'origin/mac-flexran-improvements' into integration_2020_wk30 2020-07-27 13:47:00 +02:00
hardy
45ef34737c Merge remote-tracking branch 'origin/NR_DCI_01' into integration_2020_wk30 2020-07-27 11:49:46 +02:00
hardy
607ebabbfe Merge remote-tracking branch 'origin/improve_ue_stability' into integration_2020_wk30 2020-07-27 11:48:15 +02:00
Javier Morgade
73dd471594 fembms: CI/CD using MBMS config to lauch FeMBMS test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-27 10:34:43 +02:00
Francesco Mani
3648ac46ce fix in ulsch ch estimation debug message 2020-07-27 09:29:43 +02:00
Javier Morgade
e10b0646e4 fembms: CI/CD fallback USRP tests
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-26 08:41:42 +02:00
Javier Morgade
0c31b449ca fembms: CI/CD fixing USRP Test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-25 15:48:05 +02:00
Javier Morgade
1d4bd3358a fembms: CI/CD fixing USRP Test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-25 11:42:23 +02:00
cig
90dc9e9555 Set RA succeeded and UE mode to PUSCH after correct decoding of Msg2 2020-07-25 11:38:29 +02:00
cig
457c1b725a Small fixes @ UE 2020-07-25 11:38:22 +02:00
Javier Morgade
7f9dbdd3f4 fembms: CI/CD Test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-25 08:06:04 +02:00
Sakthivel Velumani
5fd040d645 Added HARQ stats to ulsim 2020-07-25 00:36:53 +02:00
Mario Hudon
8ea4897ff9 Renaming of variables after code review 2020-07-24 15:22:01 -04:00
hardy
017e4339bb brought cde line arg parsing out of main.py, into a separated module 2020-07-24 18:03:22 +02:00
Javier Morgade
8e9a989aa5 fembms: FIX filename typo
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-24 17:48:51 +02:00
Javier Morgade
c681e800ba fembms: CI/CD Adding USRP coverage tests for FeMBMS
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-24 14:45:28 +02:00
Mario Hudon
8735920b5a Modified a comment 2020-07-24 08:17:59 -04:00
Sakthivel Velumani
0db13a3801 Added UL harq handling
Also fixed bugs in ulsim and dlsim harq tests
2020-07-24 14:00:55 +02:00
laurent
d04b4c0eeb fix ont bug in DFT and some performance improvements 2020-07-24 11:29:49 +02:00
Francesco Mani
d94f4cdae0 fixing again pusch ok when no data 2020-07-24 11:03:31 +02:00
Javier Morgade
6e54a81fa5 Merge branch 'fembms-enb-ue' of https://gitlab.eurecom.fr/oai/openairinterface5g into fembms-enb-ue 2020-07-24 09:46:52 +02:00
Javier Morgade
27b9fa6935 fembms: CI/DC adding missing commit
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-24 09:46:02 +02:00
Javier Morgade
63ed400e28 fembms: CI/CD Adding FeMBMS RFSIM coverage test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-24 09:44:13 +02:00
Mario Hudon
f967ba1756 Added some comments and cleaned up code 2020-07-23 17:14:46 -04:00
Raymond Knopp
d8bbfdbdda bugfix in eNB_scheduler.c. Code still to be moved to L1. 2020-07-23 22:24:55 +02:00
Mario Hudon
7ecba96f42 Fixed compilation errors and warnings 2020-07-23 09:52:38 -04:00
Francesco Mani
1f74524d0d fix for prepare dci 0_1 2020-07-23 11:48:25 +02:00
Francesco Mani
483b601c54 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-07-23 10:10:51 +02:00
Francesco Mani
05e6ebe24b fix for prepare dci 0_1 2020-07-23 10:10:19 +02:00
cig
bc243cee47 Bugfix in DMRS configuration at UE side:
- DM-RS type {1,2} was wrongly assigned to {1,2} instead of {0,1}
- Num DM-RS CDM groups without data is now taken into account in mthread
  decoding function
- number of DM-RS CDM groups without data for format 1_0 according to 5.1.6.2
  3GPP TS 38.214 version 15.9.0 Release 15:
-- the UE shall assume the number of DM-RS CDM groups without data is:
-- 1 (CDM group 0) for the case of PDSCH with allocation duration of 2 symb
-- 2 (CDM group {0,1}) for all other cases.
2020-07-22 23:52:16 +02:00
cig
ea86120c4b Restructured UE DCI configuration function:
- moved RRC structs checks and mac configuration to config_ue.c
- new implementation of DCI configuration according to 3GPP TS 38.331
  version 15.9.0 Release 15 and 3GPP TS 38.213 version 15.9.0 Release 15
2020-07-22 23:52:08 +02:00
Sakthivel Velumani
5f80474114 Merge branch 'ul_harq' into NR_UL_scheduling 2020-07-22 18:21:54 +02:00
Sakthivel Velumani
2cd3c0b7bb harq put in ulsim 2020-07-22 18:08:27 +02:00
Raymond Knopp
3d8e5e11ef fixes for buffer overrun when L1 information is cleared upon UE removal in RRC. This is a temporary fix to solve a stability issue for Benetel pending more significant changes along the same lines in several places. 2020-07-22 17:56:51 +02:00
Remi Hardy
220445f157 wip : fr1 set up automation / fixing issues from recent changes 2020-07-22 17:53:28 +02:00
Dr.-Ing. Javier Morgade
5a68767d6a Update enb.band17.tm1.mbms.25PRB.usrpb210.conf 2020-07-22 16:57:51 +02:00
Francesco Mani
390c648a81 bugfix in time domain assigment 2020-07-22 15:15:50 +02:00
Francesco Mani
39b22f17b3 calloc for dci_pdu 2020-07-22 15:11:17 +02:00
Francesco Mani
5331189c8b bugfixes 2020-07-22 15:07:04 +02:00
Francesco Mani
ac6aae9dde fix in allocation of segments 2020-07-22 14:53:16 +02:00
kn.raju
203e715365 Added debug logs 2020-07-22 17:42:58 +05:30
Francesco Mani
c949170a28 calloc for dci_pdu in ul 2020-07-22 14:01:47 +02:00
Javier Morgade
df58e251d8 fembms: -FIX phy_simulators compiling error
- adding missing dummy functions

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-22 10:35:22 +02:00
Francesco Mani
9bd139246b bugfix in time domain assigment 2020-07-22 09:13:04 +02:00
Javier Morgade
543457f377 fembms: removing debug log
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-22 08:09:51 +02:00
Javier Morgade
dc857e8d76 Merge remote-tracking branch 'origin/develop' into fembms-enb-ue 2020-07-22 07:42:44 +02:00
Javier Morgade
8f8b16a84e embms: Experimental MBMS Couting support added / 3GPP TS 36.44 (*)
(*) The MBMS Counting function allows the MCE to request the eNB(s) to count and
	  report per MBSFN area for one or more MBMS services the number of connected UEs
	  receiving the MBMS Service or interested in receiving it.

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-22 07:40:32 +02:00
Javier Morgade
9e789c84be fembms: - added suppor for FeMBMS RRC sublayer / l2 interface
- added primitives to build asn1 messages for FeMBMS eNB

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-22 07:34:09 +02:00
dong.zhanyi
7233e99143 Fixed the bug that can not send MSG3 2020-07-22 06:59:01 +08:00
hardy
4b48e457ba WIP : yaml config files for multiple eNB or gNB nodes 2020-07-21 23:55:20 +02:00
Javier Morgade
6db9fca1b7 fembms: code cleanup
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 21:07:42 +02:00
laurent
afc93b0f68 add SA messages defintion 2020-07-21 18:50:25 +02:00
Javier Morgade
3aaa152e4e fembms: new FeMBMS/eMBMS MCH eNB/UE scheduler implemented
- MBMS scheduler re-worked to enable dedicated MBMS serving cells
	- added support for multiple eMBMS MCH sessions
	- added support for multiple FeMBMS MCH sessions

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 18:16:46 +02:00
Javier Morgade
9b37dcecdb fembms: handle MBMS in new RLC
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 18:14:44 +02:00
Javier Morgade
e3cf9bcf1f fembms: handle L2 eNB/UE config
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 18:11:51 +02:00
Javier Morgade
1f034ab404 fembms: prototype overload (legacy code for F1AP)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 18:10:25 +02:00
Javier Morgade
f1d51cc0be fembms: handle L2 eNB config in softmodem
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 18:08:41 +02:00
Remi Hardy
3d365b0d8e WIP fr1 set up 2020-07-21 17:04:23 +02:00
Francesco Mani
e76593f73f bugfixes 2020-07-21 16:25:19 +02:00
Javier Morgade
220ba2ebc8 fembms: new mbmssim target (TOCHECK)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:20:10 +02:00
Javier Morgade
0bef84d0a5 fembms: - FeMBMS 36.213 eNB procedures v14.2
- FeMBMS 36.213 UE procedures v14.2
	- Implementation of OFDM encoding for FeMBMS/eNB v14.2

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:16:49 +02:00
Javier Morgade
5eb6dac7db fembms: routines for decoding the UE FeMBMS/PMCH physical/multicast/transport channel 3GPP TS 36.211 version 14.2.0
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:09:38 +02:00
Javier Morgade
8eac27b83b fembms: Added support for FeMBMS UE Channel Estimation Procedures for 10 and 20 MHz BWs @ FeMBMS 1.25KHz Carrier Spacing
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:07:05 +02:00
laurent
e01a98f074 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-07-21 12:10:02 +02:00
kn.raju
6392059732 fixed run time issue 2020-07-21 15:18:13 +05:30
Remi Hardy
2d1b7f78ad Merge branch 'oai_integration_week29' into 'develop'
Oai integration week29

See merge request oai/openairinterface5g!858
2020-07-21 11:38:00 +02:00
kn.raju
3daaad1385 rrc configuration changes reverted 2020-07-21 14:52:31 +05:30
Francesco Mani
ce846e6f7f fix in fapi function in dci for ul 2020-07-21 10:38:39 +02:00
kn.raju
c036940db7 fixed run time error 2020-07-21 10:47:49 +05:30
hardy
d244ea4b99 slight reformatiing of main.py ; introducing yaml for xml class definition 2020-07-20 22:45:24 +02:00
Francesco Mani
60b82248a1 first version of reworking scheduling function, including UL scheduling 2020-07-20 18:07:54 +02:00
Remi Hardy
dfe6278ee1 fixing issues for CI integration 2020-07-20 18:06:02 +02:00
hardy
87dccea43f integrating cots ue control into CI 2020-07-20 16:44:51 +02:00
Francesco Mani
0f0ede038d removing a printf in pusch scheduling 2020-07-20 16:25:04 +02:00
Remi Hardy
331c74af2a fixing execution issues following recent changes 2020-07-20 14:21:11 +02:00
Javier Morgade
58bd55b9b3 fembms:
-Increase buffer size in PHY_ofdm_mod to accomodate FeMBMS sizes
	-New FFT sizes added (IDFT_12288, IDFT_24576) to enable support for FeMBMS 10MHz and 20MHz channels BWs

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 11:02:18 +02:00
Javier Morgade
459eff02d1 fembms: Top-level routines for generating DL mbsfn reference signals for FeMBMS (eNB)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:58:57 +02:00
Javier Morgade
3fca8304a4 fembms: FeMBMS top-level routines for generating and decoding the PBCH/BCH physical/transport channel
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:54:01 +02:00
Javier Morgade
3d11b3d65d fembms: FeMBMS (eNB) Top-level routines for generating the PDSCH physical channel from 36-211 V14.1
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:51:51 +02:00
Javier Morgade
4923ba301a fembms: Addapting top-level routines for implementing Turbo-coded (DLSCH) transport channels from 36-212 with FeMBMS support
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:49:58 +02:00
Javier Morgade
da5ae9c8d1 fembms: L1 prototypes for FeMBMS eNB procedures
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:48:26 +02:00
Javier Morgade
c5799e1cca fembms: missing protype added 2020-07-20 10:42:47 +02:00
Javier Morgade
eb0dacc443 fembms: L1 prototypes and params added 2020-07-20 10:41:56 +02:00
Javier Morgade
43dc75f92f fembms: reference config files re-arranged 2020-07-20 10:39:12 +02:00
Robert Schmidt
6eb00a0895 Enable multi-module support in pdcp_fifo_flush_sdus() 2020-07-20 09:33:35 +02:00
Robert Schmidt
33b860f1b4 FlexRAN: use lock-free ringbuffers for slice conf
Use LFDS 7.0.0 Ringbuffer implementation to handle
* Slice Configuration
* UE slice association
which is then uploaded through MAC scheduling thread
2020-07-20 09:13:19 +02:00
Robert Schmidt
07313fd96d FlexRAN Bugfix: Free Ringbuffer on exit 2020-07-20 09:13:19 +02:00
Robert Schmidt
4901daf759 FlexRAN: New protobuf slice structure + Static Slice handling 2020-07-20 09:13:19 +02:00
Robert Schmidt
872cfc03fe Implement Static Slicing 2020-07-20 09:13:19 +02:00
Robert Schmidt
9956b96049 Use fptr for preproc and align UL PP definition 2020-07-20 09:13:19 +02:00
Robert Schmidt
2b4e529068 Simplify add_ue_list(), remove_ue_list(); add init_ue_list() 2020-07-20 09:13:19 +02:00
Robert Schmidt
a74f4c1238 Delete old protobuf slice types flex_slice_{dl,ul} 2020-07-20 09:13:19 +02:00
Robert Schmidt
714a2df097 Remove any slice-related information from OAI 2020-07-20 09:13:19 +02:00
Robert Schmidt
da09d63acd Default pre-processor: efficiently build UE list 2020-07-20 09:13:19 +02:00
Robert Schmidt
6fcc4f5970 Format to dynamically handle UL SCHED 2020-07-20 09:13:19 +02:00
Robert Schmidt
af89a6b780 Configurable Default Scheduler DL Algo 2020-07-20 09:13:19 +02:00
Robert Schmidt
fe7236d9c4 Add Maximum Throughput scheduler, wbCqi
Selects the UE with the highest CQI. If two UEs have the same CQI,
choses the one with highest number of bytes in RLC queue. Allocates as
many RBGs as possible, and potentially continues with the next UE.
2020-07-20 09:13:19 +02:00
Robert Schmidt
2de57fbc36 Add Proportional Fair scheduler, wbCqi
Selects UE with highest coefficient. Allocates until there are no more
RBGs to allocate, or UE has no more data. In the latter case, continues
with the next UE (second-highest coefficient).
2020-07-20 09:13:19 +02:00
Robert Schmidt
18a6961fcd Format to dynamically handle default DL SCHED algo 2020-07-20 09:13:19 +02:00
Robert Schmidt
8c7d94133f Bugfix RR DL: a retx UE might not be allocated again 2020-07-20 09:13:19 +02:00
Robert Schmidt
864fa84ba8 Default SCHED RR algo: optimize algo and defer RB calc.
- Loop only to next UE instead of jumping multiple

- mark used RBGs in rbg_mask

- Only calculate number of RBs based on CQI when UE is selected, instead
of calculating for all UEs which might be unnecessary.

- When looping the list of UEs for RB allocation, remove UEs that have
no data anymore instead of skipping them.
2020-07-20 09:13:19 +02:00
Robert Schmidt
82194319cf Bugfix DLSCH: only warn when retx with less RB
The preprocessor pre-allocates a CCE. Thus, when arriving at the check
for the number of RBs for retransmission, it is too late to skip the UE.
Therefore, only print a warning.

The default schedulers allocate a correct amount of RBs for
retransmissions, therefore it is ok.
2020-07-20 09:13:19 +02:00
Robert Schmidt
d0baab6ed3 DLSCH: limit LC bytes according to preprocessor 2020-07-20 09:13:19 +02:00
Robert Schmidt
a96c3761cc Log TBS in every window 2020-07-20 09:13:19 +02:00
Robert Schmidt
19c2856bbe UE: Set correct selected PLMN Identity 2020-07-20 09:13:19 +02:00
Robert Schmidt
332dec605a UE: Print all SIB1 decoded PLMNs 2020-07-20 09:13:19 +02:00
Robert Schmidt
a1f77198f7 FlexRAN: Manage PLMNs 2020-07-20 09:13:18 +02:00
Robert Schmidt
e4eea33de6 FlexRAN: Enable MME adding/removing 2020-07-20 09:13:18 +02:00
Robert Schmidt
d47c539dda S1AP: Only register MME if we do not know it yet 2020-07-20 09:13:18 +02:00
Robert Schmidt
64f0b7e0e5 Do not check for register_enb_pending
The test seemingly ensures that this code block is hit only once.
However, if we enable later activation of MMEs, it will be hit a second
(and third, ...) time. The only thing in guards against, though, is an
INIT message to the L1L2 thread, when register_enb_pending == 0, which
should only be sent once.  Therefore, functionality won't be changed if
register_enb_pending becomes negative, and the assert can be removed.
2020-07-20 09:13:18 +02:00
Robert Schmidt
40fdd53adc Correctly decode IMSI also when not integrity protected 2020-07-20 09:13:18 +02:00
Robert Schmidt
bbca88ad78 Bugfix FlexRAN: if a UE is in RRC but not S1AP, treat as no bug 2020-07-20 09:13:18 +02:00
hardy
dc9211ae20 removed all Getters and Setters from EPC, HTML classes (as all attributes are public) 2020-07-19 17:56:00 +02:00
hardy
d0805bd8ab Merge remote-tracking branch 'origin/bugfix-minor-remove-wrong-log' into oai_integration_week29 2020-07-17 16:00:20 +02:00
frtabu
8b4498cd11 nr scope as a dynamically loaded shared lib 2020-07-17 15:59:38 +02:00
Remi Hardy
d273ae84f3 added a class function to check adb returned values from a list 2020-07-17 15:28:34 +02:00
laurent
cf18c0d7e0 ocp-gnb regression fixed on rfsimulator 2020-07-17 15:12:20 +02:00
laurent
3772d7e56a merge develop, other modifs, not working 2020-07-17 13:57:56 +02:00
kn.raju
907860a228 Debug logs added 2020-07-17 11:23:21 +05:30
cig
fe724b555d Cleanup RA procedure 2020-07-16 18:03:22 +02:00
cig
68391d7243 Bugfix in RA window computation 2020-07-16 17:55:52 +02:00
kn.raju
7588dc50fa Scheduling and handling of SSB-RO 2020-07-16 16:26:00 +05:30
Sakthivel Velumani
e325d007a6 Merge branch 'develop' into improve_ue_stability 2020-07-15 15:00:02 +02:00
Cedric Roux
0b8d5a8fd2 Merge remote-tracking branch 'origin/develop' into NR_RRC_PDCP
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
2020-07-15 12:06:41 +02:00
hardy
2e5d0db742 removed getter/setter from RAM class 2020-07-13 16:45:32 +02:00
Remi Hardy
91480dccce support for ocp enb build and test (unit test ok) 2020-07-13 15:17:54 +02:00
Thomas Schlichter
c8a23e2d74 Merge remote-tracking branch 'develop' 2020-07-13 11:45:47 +02:00
Thomas Schlichter
e736b9410a Apply rx_offset in rfsimulator, too 2020-07-13 11:39:32 +02:00
laurent
5e4d1f61ff small bug 2020-07-11 11:52:49 +02:00
Francesco Mani
079456d07a Merge remote-tracking branch 'origin/develop' into NR_DCI_01 2020-07-10 16:57:35 +02:00
Raphael Defosseux
2bf5758418 Merge branch 'develop_integration_2020_w27' into 'develop'
Develop integration 2020 weeks 27/28

The following Merge Requests have been included:

* MR 842 : NR RRC HARQ hacks
* MR 843 : hack for RLC AM ACK reporting
* MR 844 : gcc warnings
* MR 846 : nr-rlc: small bugfix
* MR 848 : NR VCD
* MR 852 : bugfix: uplink ACK/NACK reporting through T was gone
* Documentation update
* Some CI improvements
2020-07-10 16:49:26 +02:00
Cedric Roux
96b5380b02 minor: remove a LOG_E that should not be here anymore
When running the softmodem, we get the error:

    fill_ulsch UE_id 0 nb_rb = 0

The code has changed some time ago and this log was left but is not
meaningful anymore.
2020-07-10 12:44:59 +02:00
Thomas Schlichter
91149a7bf5 Merge remote-tracking branch 'NR_ue_dlsch_dmrs_cdm' 2020-07-10 11:55:17 +02:00
Francesco Mani
5caf5a4d1c dlsch ue n_dmrs_cdm_groups 2020-07-10 11:46:52 +02:00
Raphael Defosseux
c38e542f89 Merge remote-tracking branch 'origin/bugfix-T-uplink-ack-nack' into develop_integration_2020_w27 2020-07-10 09:35:17 +02:00
Raphael Defosseux
d7ffd70bbd Merge remote-tracking branch 'origin/nr_vcd' into develop_integration_2020_w27 2020-07-10 09:34:16 +02:00
Remi Hardy
42ab797a2d Merge branch 'rh_ci_next' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_next 2020-07-10 09:31:00 +02:00
Raphael Defosseux
91104cb648 Merge remote-tracking branch 'origin/nr-rlc-bugfix-2020-w28' into develop_integration_2020_w27 2020-07-10 09:30:14 +02:00
Raphael Defosseux
4ddebabe7f Merge remote-tracking branch 'origin/gcc-warnings-20200702' into develop_integration_2020_w27 2020-07-10 09:29:47 +02:00
Raphael Defosseux
da4f395a04 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into develop_integration_2020_w27 2020-07-10 09:29:18 +02:00
Francesco Mani
e9f370ed02 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_DCI_01 2020-07-10 09:16:28 +02:00
Francesco Mani
5651b9073c pusch config in mac gnb from rrc 2020-07-10 09:16:11 +02:00
Francesco Mani
d66aea3fe6 bugfixes in dci size 2020-07-09 17:57:39 +02:00
Sakthivel Velumani
b0b03700ca bugfix in pucch tx 2020-07-09 16:16:44 +02:00
Cedric Roux
d32b45dd1a bugfix: uplink ACK/NACK reporting through T was gone
Let's get it back!
2020-07-09 15:50:14 +02:00
Raphael Defosseux
f157d41e2f BUILD: missing dependency for NR_GTPV1U lib
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-09 15:40:11 +02:00
hardy
8d75cb61bc to support OCP eNB build and test 2020-07-09 14:37:18 +02:00
Raphael Defosseux
f6999282f2 DOC: update on the 5G Rf simulator
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-09 13:36:47 +02:00
Raphael Defosseux
7921071518 CI: fix when retrieving the DL Carrier Frequency in UE Run log
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-09 12:32:21 +02:00
Francesco Mani
0f9519925d fill dci pdu 2020-07-09 11:58:15 +02:00
Thomas Schlichter
c5357e6a59 Merge remote-tracking branch 'NR_RRC_harq_hacks' 2020-07-09 11:43:16 +02:00
Sakthivel Velumani
b22b71536a Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-09 11:37:29 +02:00
Sakthivel Velumani
94905c0f43 fixing warnings 2020-07-09 11:37:03 +02:00
Francesco Mani
d474f4a1b8 fix some warnings 2020-07-09 10:55:41 +02:00
Cedric Roux
1fa7a61b2b nr: fix compilation warning 2020-07-09 10:50:17 +02:00
Thomas Schlichter
aea3bc2d42 Merge remote-tracking branch 'NR_RRC_harq_hacks'
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
2020-07-09 10:27:27 +02:00
Florian Kaltenberger
e0231398ca update from Walter Maguire 2020-07-08 21:02:33 +02:00
Francesco Mani
5fc3a991c9 dci size for 0_1 and some other modifications 2020-07-08 18:44:34 +02:00
Raymond Knopp
614af99745 Remove hardcoding of DRB id to be added for NSA 2020-07-07 18:36:58 +02:00
Rakesh
24bdbde2a1 bugfix 2020-07-07 16:53:13 +02:00
Rakesh
e6713b7467 Merge remote-tracking branch 'origin/develop' into nr_vcd 2020-07-07 15:29:30 +02:00
Raymond Knopp
cc7c66feea Introduce new UE context status state at the eNB for the NSA procedure
- UE context status enters RRC_NR_NSA_RECONFIGURED state, after the eNB receives an RRCConnectionReconfigurationComplete message including the
scg_ConfigResponseNR_r15 container.
- Use this state to avoid triggering sGNB Addition Request multiple times
2020-07-07 15:22:01 +02:00
laurent
46adeaa7c4 merge branch NR_RRC_harq_hacks 2020-07-07 12:56:37 +02:00
laurent
4bc36627be fix some used but not initialized variables 2020-07-07 12:53:04 +02:00
Raymond Knopp
027853ba8e Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-06 16:26:38 +02:00
Raymond Knopp
9a662fbcb3 fixed ulsim performance issues 2020-07-06 15:36:20 +02:00
Francesco Mani
64e9629b8c patch for pucch in ulsim 2020-07-06 14:37:31 +02:00
laurent
4d6e647aaa fixes pushed also in develop 2020-07-06 14:07:46 +02:00
Cedric Roux
62df572aed nr-rlc: small bugfix 2020-07-06 11:24:55 +02:00
Raymond Knopp
4761cbdc3d Modifications wrt the NR LCIDs used for DTCH 2020-07-06 10:48:41 +02:00
Francesco Mani
1fee40a590 fix in pucchsim 2020-07-06 10:38:36 +02:00
Raymond Knopp
bea3385f28 changes for ulsim to get functionality back. simulation behaviour for PUSCH is not good (BLER waterfall is way too steep even if SNR threshold is ok). Note develop does more or less the same thing but SNR threshold is lower. 2020-07-06 01:53:46 +02:00
Raymond Knopp
afb95b106f Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-04 12:59:40 +02:00
Raymond Knopp
2ca4137c1c forgot one line in autotest xml file 2020-07-04 12:59:08 +02:00
Raymond Knopp
3f38b447c6 prachsim functional for format A2 and 0. added format 0 test to CI autotests 2020-07-04 12:58:18 +02:00
matzakos
895cf14973 Merge NR_RRC_harq_hacks branch into NR_RRC_PDCP 2020-07-03 17:10:40 +02:00
Raphael Defosseux
f5b81b4eb0 CI: fix html tab name
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-03 15:06:31 +02:00
laurent
cabff5b73b fix itti issue in memory management 2020-07-03 14:57:27 +02:00
Francesco Mani
12354bb6c6 bugfixes in dlschsim 2020-07-03 13:57:46 +02:00
Sakthivel Velumani
d11cbab95b Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-03 13:45:00 +02:00
Sakthivel Velumani
a7dae03d73 set txdataF to 0 at beginning of slots 2020-07-03 13:43:43 +02:00
Sakthivel Velumani
f13398e17b fixed pucch config in ue 2020-07-03 13:42:10 +02:00
Francesco Mani
67a8f8dab4 minor fixes 2020-07-03 11:10:56 +02:00
Raphael Defosseux
a1e293a164 Merge remote-tracking branch 'origin/ci-rd-july-improvements' into develop_integration_2020_w27 2020-07-03 10:37:34 +02:00
Raphael Defosseux
c5d1228143 Merge remote-tracking branch 'origin/rh_doc_update_3' into develop_integration_2020_w27 2020-07-03 10:36:58 +02:00
laurent
9205b4d004 fix gaussain noise seed in rfsimulator 2020-07-02 22:29:44 +02:00
Raphael Defosseux
b0d65fd6cb CI: adding test on caracal with TX Write Thread enabled
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-07-02 17:06:43 +02:00
laurent
4b58b9d38a gcc warnings 2020-07-02 16:32:07 +02:00
cig
52e49fd8ec Fixed some warnings + cleanup
- replaced nr_slot_t with int as it was barely used in the code (also is defined after an lte struct)
- removed use of phy_frame_config_nr from the UE (another file was created in SCHED_NR_UE, still the
  gNB file is used in some tests file at UE side)
2020-07-02 12:44:48 +02:00
cig
e054b5e247 RA Msg2 reception according to 8.2 of TS 38.213
- Msg2 scheduler used for testing purposes was removed
- Now the UE tries to DCI 1_0 scrambled with RA_RNTI in the RA window
- If no RAPID is found within the RA window, instructs PHY to TX PRACH
2020-07-02 12:44:48 +02:00
cig
6737d27346 PUSCH data filling from PHY to MAC:
- IP data were fetched and passed to MAC directly at the PHY layer
- random data was generated whenever there's no upcoming data.
- Therefore these functionalities are now moved to MAC and FAPI interfaces
- are used instead.
2020-07-02 12:44:38 +02:00
cig
8e271ce945 Fixes for reception of Msg2:
- ceiling computation num of segments (cod/dec)
- fixes demodulation
- initialisation CW for PDSCH RA
- memcpy dl_ch_estimates to pdsch_vars_ra (hotfix)
- correct N_RB for DCI 1_0 and RNTI_RA
2020-07-02 12:32:33 +02:00
cig
79a655d47e Use MCS 9 for Msg2 to avoid issues with the LDPC decoder
- LDPC decoder does not support lower MCS, therefore MCS 9 has been selected
  for the Msg2 configuration.
- This is done only in do-ra mode, in order to prevent any fallout on the
  current the configuration used for the operation with the commercial UE
2020-07-02 12:30:57 +02:00
laurent
35bf936351 merge develop, phy-test mode in 5G testing ok 2020-07-02 12:02:21 +02:00
Francesco Mani
7176bb4607 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-02 11:01:34 +02:00
Florian Kaltenberger
f73ecda995 nr_prachsim -F now reads full subframe 2020-07-02 10:49:18 +02:00
matzakos
e7d2b8eeb1 Resolve remaining conflicts after merge of develop into NR_RRC_harq_hacks 2020-07-02 10:17:47 +02:00
Francesco Mani
cd61f38eca Merge remote-tracking branch 'origin/develop' into NR_RRC_harq_hacks 2020-07-02 10:16:57 +02:00
Francesco Mani
20635bb00a Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-07-02 10:02:17 +02:00
Cedric Roux
71f75a3d88 hack for RLC AM ACK reporting
hack: in schedule_ue_spec, 3 bytes are "reserved" (this should be
done better). An RLC AM entity may ask for only 2 bytes for
ACKing and get a TBS of 32 bits and due to these 3 reserved bytes we may
end up with only 1 byte left for RLC, which is not enough. This hack
prevents the problem. To be done better at some point. If the function
schedule_ue_spec is (has been) reworked, this hack can be removed.
Dig for "TBS - ta_len - header_length_total - sdu_length_total - 3"
in schedule_ue_spec.

This should be done better at some point.
2020-07-02 09:13:45 +02:00
laurent
0f032447c0 fix bugs in main OAI, begining of PRACH test+fxi 2020-07-01 17:44:36 +02:00
Florian Kaltenberger
fa5213dfed removing some of the s1ap and x2ap xer prints 2020-07-01 14:43:44 +02:00
Francesco Mani
548e8f8797 fix ulsim compilation 2020-07-01 10:16:48 +02:00
Robert Schmidt
dcd43c1526 FlexRAN: use lock-free ringbuffers for slice conf
Use LFDS 7.0.0 Ringbuffer implementation to handle
* Slice Configuration
* UE slice association
which is then uploaded through MAC scheduling thread
2020-07-01 10:10:48 +02:00
Robert Schmidt
05c10662da FlexRAN Bugfix: Free Ringbuffer on exit 2020-07-01 10:10:48 +02:00
Robert Schmidt
d926a9a9c8 FlexRAN: New protobuf slice structure + Static Slice handling 2020-07-01 10:10:48 +02:00
Robert Schmidt
d2fe5af67a Implement Static Slicing 2020-07-01 10:10:48 +02:00
Robert Schmidt
115c1f38f6 Use fptr for preproc and align UL PP definition 2020-07-01 10:10:48 +02:00
Robert Schmidt
a21e9aa6ef Simplify add_ue_list(), remove_ue_list(); add init_ue_list() 2020-07-01 10:10:48 +02:00
Robert Schmidt
8c76d6ab57 Delete old protobuf slice types flex_slice_{dl,ul} 2020-07-01 10:10:48 +02:00
Robert Schmidt
198822aa17 Remove any slice-related information from OAI 2020-07-01 10:10:48 +02:00
Robert Schmidt
9f26028ded Default pre-processor: efficiently build UE list 2020-07-01 10:10:48 +02:00
Robert Schmidt
41de51b187 Format to dynamically handle UL SCHED 2020-07-01 10:10:48 +02:00
Robert Schmidt
5d1d2bcd1c Configurable Default Scheduler DL Algo 2020-07-01 10:10:48 +02:00
Robert Schmidt
36cd697b62 Add Maximum Throughput scheduler, wbCqi
Selects the UE with the highest CQI. If two UEs have the same CQI,
choses the one with highest number of bytes in RLC queue. Allocates as
many RBGs as possible, and potentially continues with the next UE.
2020-07-01 10:10:48 +02:00
Robert Schmidt
a0b331415f Add Proportional Fair scheduler, wbCqi
Selects UE with highest coefficient. Allocates until there are no more
RBGs to allocate, or UE has no more data. In the latter case, continues
with the next UE (second-highest coefficient).
2020-07-01 10:10:48 +02:00
Robert Schmidt
dc5357ca13 Format to dynamically handle default DL SCHED algo 2020-07-01 10:10:48 +02:00
Robert Schmidt
31ad66e146 Bugfix RR DL: a retx UE might not be allocated again 2020-07-01 10:10:48 +02:00
Robert Schmidt
1401d21081 Default SCHED RR algo: optimize algo and defer RB calc.
- Loop only to next UE instead of jumping multiple

- mark used RBGs in rbg_mask

- Only calculate number of RBs based on CQI when UE is selected, instead
of calculating for all UEs which might be unnecessary.

- When looping the list of UEs for RB allocation, remove UEs that have
no data anymore instead of skipping them.
2020-07-01 10:10:48 +02:00
Robert Schmidt
b06dadbdb0 Bugfix DLSCH: only warn when retx with less RB
The preprocessor pre-allocates a CCE. Thus, when arriving at the check
for the number of RBs for retransmission, it is too late to skip the UE.
Therefore, only print a warning.

The default schedulers allocate a correct amount of RBs for
retransmissions, therefore it is ok.
2020-07-01 10:10:48 +02:00
Robert Schmidt
71647eb4ef DLSCH: limit LC bytes according to preprocessor 2020-07-01 10:10:48 +02:00
Robert Schmidt
476d58a8de Log TBS in every window 2020-07-01 10:10:48 +02:00
Robert Schmidt
9d5a46dcfa UE: Set correct selected PLMN Identity 2020-07-01 10:10:48 +02:00
Robert Schmidt
d2cc43b4e7 UE: Print all SIB1 decoded PLMNs 2020-07-01 10:10:48 +02:00
Robert Schmidt
f895a28645 FlexRAN: Manage PLMNs 2020-07-01 10:10:48 +02:00
Robert Schmidt
df3f7e1ecf FlexRAN: Enable MME adding/removing 2020-07-01 10:10:48 +02:00
Robert Schmidt
1363a53dd0 S1AP: Only register MME if we do not know it yet 2020-07-01 10:10:48 +02:00
Robert Schmidt
b01d63ba4e Do not check for register_enb_pending
The test seemingly ensures that this code block is hit only once.
However, if we enable later activation of MMEs, it will be hit a second
(and third, ...) time. The only thing in guards against, though, is an
INIT message to the L1L2 thread, when register_enb_pending == 0, which
should only be sent once.  Therefore, functionality won't be changed if
register_enb_pending becomes negative, and the assert can be removed.
2020-07-01 10:10:48 +02:00
Robert Schmidt
9072101a1a Correctly decode IMSI also when not integrity protected 2020-07-01 10:10:48 +02:00
Robert Schmidt
c5fdcd85cc Bugfix FlexRAN: if a UE is in RRC but not S1AP, treat as no bug 2020-07-01 10:10:48 +02:00
Raphael Defosseux
12e5fe3399 Merge branch 'develop_integration_2020_w26' into 'develop'
Develop integration 2020 week 26

See merge request oai/openairinterface5g!841
2020-07-01 07:34:38 +02:00
Raphael Defosseux
6edff47db2 CI: fix cppcheck error
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-30 21:45:53 +02:00
Francesco Mani
406ae17d11 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-30 18:05:04 +02:00
Francesco Mani
a40f119a80 revert to dl only in slot 1 before merge 2020-06-30 18:04:32 +02:00
Raymond Knopp
c301b62d8a Add printing contents of NR scgFailureInformation message at rrc eNB 2020-06-30 16:58:38 +02:00
Raymond Knopp
7ddfa636f8 Add detection of NR scgFailureInformation message at rrc eNB 2020-06-30 16:58:18 +02:00
Sakthivel Velumani
b5cce24e83 fixed rv in phy-test mode 2020-06-30 15:07:43 +02:00
Remi Hardy
56f8827bde Update TESTING_GNB_W_COTS_UE.md 2020-06-30 14:42:22 +02:00
Raphael Defosseux
0516a452c1 BUILD: explicitely stop build when compilation/linking issues
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-30 12:37:00 +02:00
Raphael Defosseux
dde8ba2d51 Merge remote-tracking branch 'origin/trx_thread_param' into develop_integration_2020_w26 2020-06-30 09:57:51 +02:00
Francesco Mani
f4ccaf0dc0 Merge remote-tracking branch 'origin/develop' into NR_RRC_harq_hacks 2020-06-29 19:27:33 +02:00
WANG Tsu-Han
099169831e adding parameter in nr uesoftmodem for usrp trx thread 2020-06-29 16:23:10 +02:00
Remi Hardy
e7ab8f83c6 Update TESTING_GNB_W_COTS_UE.md 2020-06-29 13:57:23 +02:00
hardy
fa66f18c75 uploading conf and log example files 2020-06-29 13:53:41 +02:00
Remi Hardy
e5ab435173 Update TESTING_GNB_W_COTS_UE.md 2020-06-29 12:21:55 +02:00
Thomas Schlichter
a5a1d7b918 Improve stability by replacing AssertFatal() with LOG_E() in nr_rx_pdsch() 2020-06-29 12:13:27 +02:00
Raphael Defosseux
8d2f7a5491 Merge remote-tracking branch 'origin/NR_MAC_CE_GlobalEdge' into develop_integration_2020_w26 2020-06-29 12:09:52 +02:00
Raphael Defosseux
42057bccde Merge remote-tracking branch 'origin/NR_RRC_X2AP_RemoveHardcodings_GlobalEdge' into develop_integration_2020_w26 2020-06-29 12:09:33 +02:00
Thomas Schlichter
b90e57549c ignore inconsistent DCI instead of exiting 2020-06-29 12:04:34 +02:00
Francesco Mani
d8b7637981 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-29 10:37:18 +02:00
WANG Tsu-Han
5884838ad5 Merge branch 'develop' into trx_thread_param 2020-06-29 10:30:55 +02:00
WANG Tsu-Han
3f461d680d adding parameter in uesoftmodem for uhd trx thread 2020-06-29 10:29:40 +02:00
Sakthivel Velumani
150ef017f2 fixed rv for phy-test mode 2020-06-29 10:17:52 +02:00
Raphael Defosseux
5a8fe59c68 Merge remote-tracking branch 'origin/nfapi-bugfix' into develop_integration_2020_w26 2020-06-26 17:19:25 +02:00
Raphael Defosseux
0af8f618cd Merge remote-tracking branch 'origin/enable_ta_for_phytest' into develop_integration_2020_w26 2020-06-26 17:03:32 +02:00
Raphael Defosseux
233f51957c CI: add phy-sim runs to eNB logCollector. this is temporary
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-26 17:01:59 +02:00
Raphael Defosseux
e1888940b6 CI: retry on typical unstable scenarios
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-26 16:59:05 +02:00
Raphael Defosseux
27080aa607 DOC: remove obsolete pipeline reference
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-26 16:55:47 +02:00
Raphael Defosseux
bc6f6a6067 CI: no workspace clean when running phy-sim
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-26 16:54:56 +02:00
Raphael Defosseux
de0f46466c Merge remote-tracking branch 'origin/ci_update' into develop_integration_2020_w26 2020-06-26 16:54:21 +02:00
Remi Hardy
0d914eecae Update CONTRIBUTING.md 2020-06-26 11:43:04 +02:00
Remi Hardy
c3ccb6cc1d Update TESTING_GNB_W_COTS_UE.md 2020-06-26 11:32:43 +02:00
Remi Hardy
f9a2829b44 Update TESTING_GNB_W_COTS_UE.md 2020-06-26 11:17:36 +02:00
hardy
c84e8a2b3a Merge branch 'rh_doc_update_3' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_doc_update_3 2020-06-26 10:07:08 +02:00
hardy
9ef54616fe upload signaling scheme 2020-06-26 10:05:45 +02:00
Remi Hardy
02dadedb47 Update TESTING_GNB_W_COTS_UE.md 2020-06-26 10:03:28 +02:00
hardy
e42cf3db9c Merge branch 'rh_doc_update_3' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_doc_update_3 2020-06-26 09:07:23 +02:00
hardy
0bb67fffd1 setup visio sheme update 2020-06-26 09:06:24 +02:00
Raymond Knopp
7c116c7981 small bugfix in pullarray8 in nfapi.c 2020-06-26 04:23:24 +02:00
matzakos
0553332b26 Bring back default RB configuration as it is required for phytest mode 2020-06-25 18:47:10 +02:00
Remi Hardy
55828cbbab Update TESTING_GNB_W_COTS_UE.md 2020-06-25 12:16:48 +02:00
hardy
8048f6b838 update 2020-06-25 12:15:54 +02:00
Remi Hardy
ff111e0797 Update TESTING_GNB_W_COTS_UE.md 2020-06-25 12:13:51 +02:00
hardy
ca91b8da3c qMerge branch 'rh_doc_update_3' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_doc_update_3 2020-06-25 10:03:34 +02:00
hardy
f79f6351d8 uploading fr1 setup lab photo 2020-06-25 09:58:08 +02:00
laurent
ada39bb238 scope round 2, merge develop branch 2020-06-24 17:04:46 +02:00
Remi Hardy
03d9bca101 Update TESTING_GNB_W_COTS_UE.md 2020-06-24 16:45:08 +02:00
Thomas Schlichter
72aa2963ea Merge branch 'develop' into enable_ta_for_phytest
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
2020-06-24 12:16:03 +02:00
Remi Hardy
ebbff46cde update 3 after review 2020-06-24 11:58:41 +02:00
laurent
aad868d8fa 5G scope cleaning round 2 2020-06-24 09:48:35 +02:00
Remi Hardy
03ff1ef304 update 2 after review 2020-06-23 22:29:23 +02:00
matzakos
c06e734eb5 Merge remote-tracking branch 'origin/develop' into NR_RRC_X2AP_RemoveHardcodings_GlobalEdge 2020-06-23 17:15:43 +02:00
Remi Hardy
16d9e27d5d Update TESTING_GNB_W_COTS_UE.md 2020-06-23 10:43:53 +02:00
Remi Hardy
b33993f542 Update TESTING_GNB_W_COTS_UE.md 2020-06-23 10:42:43 +02:00
hardy
ec7d26d30d scheme fix 2020-06-23 09:51:54 +02:00
Raphael Defosseux
e68e72cd74 Merge branch 'develop_integration_2020_w25' into 'develop'
Develop integration 2020 week 25

The following Merge Requests have been included:

* MR 799 : NR RRC PRACH procedures
* MR 831 : NR PUCCH2 polar implementation
* MR 832 : coarse scope cleanup
* MR 835 : fix NR UE transport on PBCH
* MR 836 : NR fix phytest packet corruption DLSCH
2020-06-23 09:47:59 +02:00
Raphael Defosseux
5503073f9b Merge remote-tracking branch 'origin/NR_RRC_PRACH_procedures' into develop_integration_2020_w25 2020-06-23 09:43:14 +02:00
Remi Hardy
9833c0a123 Delete oppo.jpg 2020-06-22 23:38:47 +02:00
Remi Hardy
3a8d361b7c Update TESTING_GNB_W_COTS_UE.md 2020-06-22 23:35:20 +02:00
hardy
779b7537cc uploading fr1 setup scheme 2020-06-22 23:34:34 +02:00
Remi Hardy
dbbe79ad85 Update TESTING_GNB_W_COTS_UE.md 2020-06-22 21:35:38 +02:00
Florian Kaltenberger
b31861bac3 Update RUNMODEM.md 2020-06-22 17:08:32 +02:00
Florian Kaltenberger
8517f1314a Update RUNMODEM.md 2020-06-22 17:07:59 +02:00
Remi Hardy
497c611080 update 1 after review 2020-06-22 16:59:15 +02:00
Remi Hardy
2e3e862c6a Update TESTING_GNB_W_COTS_UE.md 2020-06-22 15:49:21 +02:00
hardy
6cb01bd58d folder for .md resources 2020-06-22 15:21:03 +02:00
hardy
bc9ee1071c creation, empty file 2020-06-22 15:20:50 +02:00
hardy
6d65930fd0 initial push to make branch visible 2020-06-22 15:20:38 +02:00
laurent
a456054d9b continue scope 2020-06-22 12:02:58 +02:00
Raphael Defosseux
75b271a809 CI: adding more error messages to HTML report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-22 11:56:55 +02:00
Raphael Defosseux
ce06872722 Merge remote-tracking branch 'origin/nr_fix_phytest_packet_corruption_dlsch' into develop_integration_2020_w25 2020-06-22 11:54:54 +02:00
Raphael Defosseux
96034a3dca Merge remote-tracking branch 'origin/nr_ue_fix_pbch' into develop_integration_2020_w25 2020-06-22 11:54:46 +02:00
Raphael Defosseux
41fcabc69b Merge remote-tracking branch 'origin/rework-5G-scope' into develop_integration_2020_w25 2020-06-22 11:54:41 +02:00
laurent
e4b2689e29 continue scope rebuild 2020-06-19 20:35:32 +02:00
matzakos
860742a134 Fix DLSCH PDU corruption issue for phytest mode (random traffic generation)
- Payload was filled with zeros instead of random bytes
2020-06-19 18:19:34 +02:00
Francesco Mani
94fa9c5f1f fix in function to check data in dmrs symbol 2020-06-19 18:16:53 +02:00
Francesco Mani
0ce23beef8 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-19 17:36:40 +02:00
Sakthivel Velumani
2e9cd58d48 nb_re_dmrs fixed in one more place
this fixed dlsch crc fails
2020-06-19 17:18:15 +02:00
Raymond Knopp
fbb6ba16c3 Merge branch 'NR_fix_nrarfcn' into NR_RRCConfiguration_FR2 2020-06-19 16:41:07 +02:00
Florian Kaltenberger
2634d57282 changing RRC measurement config to FR2 2020-06-19 16:39:56 +02:00
Florian Kaltenberger
794f9dac71 fixing NR_arfcn calculation 2020-06-19 16:24:50 +02:00
Florian Kaltenberger
8a3feeb5f6 fix from Walter Maguire 2020-06-19 16:11:19 +02:00
Francesco Mani
e189e06a16 Yet another bugfix in nr_ulsch_ue.c 2020-06-19 15:25:28 +02:00
Florian Kaltenberger
9411438dd0 small fix 2020-06-19 15:00:00 +02:00
Francesco Mani
0354a7399b bugfix nr_ulsch_ue.c 2020-06-19 14:32:26 +02:00
matzakos
7e33d11c3d Change NR PDCP SN field to 18 instead of 12 bits length
-Required because the 12 bits SN is not accepted from the phone
2020-06-19 14:19:12 +02:00
Raphael Defosseux
a9dbcf6b93 added in-code comments and changed attr to private 2020-06-19 14:18:13 +02:00
Raymond Knopp
c3e871257b Add printing contents of NR scgFailureInformation message at rrc eNB 2020-06-19 14:00:34 +02:00
hardy
dcadc24ad6 complete and working version supporting phy-simulators 2020-06-19 13:38:17 +02:00
matzakos
9c4bb6bf4b Fix DLSCH PDU corruption issue for phytest mode (random traffic generation)
- Payload was filled with zeros instead of random bytes
2020-06-19 13:01:50 +02:00
Raphael Defosseux
1ff1f3dda9 fix a bunch of compilation warnings 2020-06-19 11:41:36 +02:00
Raphael Defosseux
efb7bd8417 CPPCHECK: fixes
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-19 11:41:03 +02:00
Thomas Schlichter
f47dcb199a enable TA update in phy-test mode 2020-06-19 11:28:29 +02:00
Thomas Schlichter
2029cb93c9 update configuration file gnb.band78.tm1.106PRB.usrpx300.conf based on gnb.band78.tm1.106PRB.usrpn300.conf 2020-06-19 11:27:07 +02:00
WANG Tsu-Han
3217b51256 simulation fix 2020-06-18 16:55:02 +02:00
laurent
2eb799c3b6 fix pdcp race condition 2020-06-18 15:52:54 +02:00
laurent
bc480ad9bf Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-06-18 15:41:47 +02:00
laurent
36fab59e1c fix pdcp race condition 2020-06-18 15:41:10 +02:00
k.ramya
0cbe7e40db fixed merge conflicts 2020-06-18 18:32:43 +05:30
Rangaswami
8642d3e779 Corrected indentation and removed GES macro 2020-06-18 18:27:47 +05:30
vr.devendra
06fa1f8e0f GlobalEdge: CSI and TCI related MAC CE intial commit 2020-06-18 18:26:06 +05:30
Rangaswami
e08878ed1c Corrected indentation and removed GES macro 2020-06-18 18:01:13 +05:30
Francesco Mani
2b1f3891de Merge remote-tracking branch 'origin/develop' into NR_RRC_harq_hacks 2020-06-18 14:25:00 +02:00
vr.devendra
8533610e2a GlobalEdge: CSI and TCI related MAC CE intial commit 2020-06-18 17:51:44 +05:30
Francesco Mani
c5f82f6d9f Merge remote-tracking branch 'origin/NR_RRC_PRACH_procedures' into NR_RRC_harq_hacks 2020-06-18 12:31:07 +02:00
Francesco Mani
338c0dbd63 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-18 12:30:01 +02:00
Francesco Mani
795b6e02c4 fix for pusch num_dmrs_cdm_grps_no_data 2020-06-18 12:29:36 +02:00
Raphael Defosseux
4747f287d1 Merge remote-tracking branch 'origin/nr_pucch2_polar' into develop_integration_2020_w25 2020-06-18 11:35:12 +02:00
Raphael Defosseux
cc16b290b9 Merge remote-tracking branch 'origin/rework-5G-scope' into develop_integration_2020_w25 2020-06-18 11:33:12 +02:00
Raphael Defosseux
3f897adfb6 Merge remote-tracking branch 'origin/NR_RRC_PRACH_procedures' into develop_integration_2020_w25 2020-06-18 11:30:24 +02:00
laurent
d21a40066d scope for 5G 2020-06-18 10:19:52 +02:00
Raphael Defosseux
5df0326946 Merge branch 'develop_integration_2020_w24' into 'develop'
Develop integration 2020 week 24

The following Merge Requests are included:

* MR 822 : GPU implementation in `ldpctest` unitary test (NCTU)
* A few CI python fixes and to enable back parallel build on RRU
* Documentation update on the supported feature list
2020-06-17 21:17:50 +02:00
Raphael Defosseux
3bce9a7b85 CI: increase gNB VM RAM size; display memory usage during modems runs
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-17 14:19:40 +02:00
Raphael Defosseux
c540dd6120 Merge remote-tracking branch 'origin/rh_doc_update' into develop_integration_2020_w24 2020-06-17 10:14:03 +02:00
Raphael Defosseux
ebb225dc6e CI: adding ping operations in HTML report for 5G RF Sim Test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-17 10:13:30 +02:00
matzakos
65b5a48ed1 Minor logs modifications at gNB ulsch scheduler 2020-06-16 17:41:34 +02:00
matzakos
456e6c9207 Change return type of nr_generate_ulsch_pdu() to avoid overflow on the offset variable 2020-06-16 17:40:03 +02:00
Sakthivel Velumani
eb7e15dd69 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-16 17:05:41 +02:00
Sakthivel Velumani
2bee4f4974 partial fix for pdsch dmrs issue
decoding performance degraded. still some issue to be solved.
2020-06-16 17:03:47 +02:00
Raphael Defosseux
f4274b2b2c Merge remote-tracking branch 'origin/NCTU_GPU_ldpctest' into develop_integration_2020_w24 2020-06-16 13:03:08 +02:00
WANG Tsu-Han
c68c6153ed code clean up 2020-06-16 11:02:15 +02:00
Francesco Mani
619f82cbb7 external clock in config files and padding lcid 2020-06-16 10:32:12 +02:00
Francesco Mani
fd1388b61e power values in testing gnb file 2020-06-16 10:18:36 +02:00
Florian Kaltenberger
377cfc6f0c fixing an issue with libconfig 2020-06-16 09:11:19 +02:00
Raymond Knopp
a0f8e5ac25 removed LOG functions from nr_polar_init, they make polartest segfault. polartest to be fixed ... 2020-06-15 21:20:03 +02:00
WANG Tsu-Han
98353b37d1 code cleanup 2020-06-15 17:14:11 +02:00
WANG Tsu-Han
37bb310a36 redefine conflict resolve 2020-06-15 16:51:04 +02:00
Thomas Schlichter
45ed1e8066 revert the number of DRB from 4 back to 5 2020-06-15 14:44:32 +02:00
laurent
1f95ec0888 coarse scope cleanup 2020-06-15 14:14:38 +02:00
Raphael Defosseux
527c3bcdd5 FORMAT: fix circular-depencendy-protection check on include files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-15 14:02:18 +02:00
Raymond Knopp
09efbc0272 Merge remote-tracking branch 'origin/develop' into nr_pucch2_polar
Conflicts:
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
2020-06-15 11:30:07 +02:00
matzakos
9a177fd368 Bring back mapping check between drb_id and channel_id 2020-06-15 10:42:04 +02:00
laurent
a9ba117ac7 first version scope reworked 2020-06-15 10:32:14 +02:00
Sakthivel Velumani
9add099c2b Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-15 10:23:21 +02:00
Raymond Knopp
417bc7e567 added tests to CI for PUCCH2 with polar code 2020-06-14 23:35:01 +02:00
Raymond Knopp
0e3d87b44c format 2 up to 64 bits tested for 8 and 16 PRBs PUCCH format 2020-06-14 23:10:12 +02:00
Rigiel Antony
a44d5fdcb9 fixed mergee conflicts 2020-06-14 16:57:07 +05:30
Rangaswami
7964fed747 Corrected indentation and removed GES macro 2020-06-14 16:40:37 +05:30
vr.devendra
f9b49d1a24 GlobalEdge: CSI and TCI related MAC CE intial commit 2020-06-14 16:37:28 +05:30
Raymond Knopp
a2f448aa1c Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-13 11:49:36 +02:00
Raymond Knopp
14a0b772f3 fix for 36864 size dfts (missing initialization) 2020-06-13 11:48:50 +02:00
Raymond Knopp
2381bd91d2 Add detection of NR scgFailureInformation message at rrc eNB 2020-06-12 19:30:17 +02:00
Francesco Mani
2b976aa711 Merge branch 'NR_RRC_PRACH_procedures' into NR_RRC_harq_hacks 2020-06-12 19:14:25 +02:00
WANG Tsu-Han
860d406974 debug print remove 2020-06-12 15:58:56 +02:00
WANG Tsu-Han
89bb495799 fixes for emulate-rf in lte-softmodem 2020-06-12 15:18:43 +02:00
matzakos
45daaedbda Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-06-12 14:46:20 +02:00
matzakos
928c189ef0 Modify starting LCID for DTCH to start from 4 instead of 3 for both UL and DL
- Make required adaptations in RLC and default DRB configuration
2020-06-12 14:44:52 +02:00
WANG Tsu-Han
702192148e fixes for PARALLEL_RU_L1_TRX_SPLIT from Laurent 2020-06-12 14:42:51 +02:00
matzakos
1552be348c Fix ULSCH slot scheduling inconsistency between nrUE and gNB 2020-06-12 14:33:08 +02:00
Sakthivel Velumani
186dde7073 changes to dlsim 2020-06-12 14:07:15 +02:00
Raphael Defosseux
128aa79773 CI: no need for daemon install/usage in EPC VM
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-12 13:52:26 +02:00
Raphael Defosseux
938aa0f645 FORMAT: fix circular-depencendy-protection check on include files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-12 13:51:50 +02:00
Florian Kaltenberger
b9f9d69bfd doc update 2020-06-12 11:31:00 +02:00
Remi Hardy
981d35a778 restructuring the 5G part
update of the 5G feature set (gNB and UE)
ref : Florian K ppt
2020-06-12 11:28:17 +02:00
Remi Hardy
e40835f96d Update:
eNB RRC version
eNB X2AP section
2020-06-12 11:28:17 +02:00
hardy
9be3e9f451 4G scheduler update 2020-06-12 11:28:17 +02:00
Florian Kaltenberger
f46e3d4c76 fixing an issue with libconfig 2020-06-12 11:13:18 +02:00
Sakthivel Velumani
28da25f420 more dummy functions for physims 2020-06-12 10:50:06 +02:00
Florian Kaltenberger
21a775817d Update RUNMODEM.md 2020-06-12 10:41:35 +02:00
Francesco Mani
cec29bb240 bugfix nr_initial_sync.c 2020-06-12 09:57:23 +02:00
Francesco Mani
5f87b73451 small fixes 2020-06-12 08:43:17 +02:00
WANG Tsu-Han
68366cb686 adding executional option for usrp trx thread and adding null device function for device other than usrp 2020-06-11 18:03:05 +02:00
Raphael Defosseux
edca3646c0 CI: fix typo
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-11 16:33:11 +02:00
Remi Hardy
24598a64d0 restructuring the 5G part
update of the 5G feature set (gNB and UE)
ref : Florian K ppt
2020-06-11 16:29:06 +02:00
Raphael Defosseux
90c8dfd76b Merge remote-tracking branch 'origin/ci_june_improvements' into develop_integration_2020_w24 2020-06-11 16:25:53 +02:00
Raphael Defosseux
d685023344 Merge remote-tracking branch 'origin/NCTU_GPU_ldpctest' into develop_integration_2020_w24 2020-06-11 16:25:41 +02:00
Raphael Defosseux
4893729e58 CI: re-enabling multi-RRU build w/ ninja build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-11 16:22:54 +02:00
Raphael Defosseux
efee127a99 CI: added error output if in MBMS-case, the UE does not show MBMS messages
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-11 16:20:36 +02:00
Remi Hardy
8b0d4e15d7 Update:
eNB RRC version
eNB X2AP section
2020-06-11 14:43:34 +02:00
hardy
2c8e2a30f9 4G scheduler update 2020-06-11 14:24:12 +02:00
Raymond Knopp
613d1e8cf0 intermediate commit 2020-06-11 14:24:03 +02:00
WANG Tsu-Han
cdc60bd9ae fixes for compilation error in CUDA machine 2020-06-11 11:53:26 +02:00
Sakthivel Velumani
a4fb2e21c9 linking error fix in pbchsim 2020-06-11 09:53:10 +02:00
Sakthivel Velumani
3e47e26cd1 bugfix in dl harq ue 2020-06-10 17:12:36 +02:00
Anes Rose Rigiel Antony
3ac51d2115 Removed the compilation error 2020-06-10 19:47:32 +05:30
Francesco Mani
ae00c77c5c Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-09 20:33:21 +02:00
Francesco Mani
bedb295dfd Merge branch 'develop' into NR_RRC_harq_hacks 2020-06-09 20:32:35 +02:00
Ahmed Hussein
dae91c60b8 Fixing ulsim and rf simulator
- no_data_in_dmrs was being used at gNB side, and not handled at UE side
- nr_schedule_response wasn't being called in ulsim
2020-06-09 15:49:53 +02:00
Sakthivel Velumani
132b48ea36 Fixed bugs in pucch UE
UE now sends ack/nack in format0
2020-06-09 15:44:09 +02:00
Rigiel
e4335ef412 After rebasing the NR RRC PRACH procedure 2020-06-09 18:58:53 +05:45
s.rampalli
b4651f2449 modified the rrc_add_nsa_user api 2020-06-09 18:50:04 +05:45
s.rampalli
9cbe078ed0 indentations fixed 2020-06-09 18:50:04 +05:45
s.rampalli
defea03ab9 Required changes/modifications are done at both eNB and gNB side 2020-06-09 18:50:04 +05:45
Raymond Knopp
c7a8c6f60a Merge branch 'NR_RRC_PDCP' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PDCP 2020-06-09 15:03:16 +02:00
s.rampalli
2f48b92501 compilation done need to verify with GES endc setup 2020-06-09 17:47:08 +05:45
s.rampalli
63bc9a9ba3 coding done need to verify testing part 2020-06-09 17:47:08 +05:45
s.rampalli
9747773f16 changed the encoded buffer size to 4096 2020-06-09 17:47:08 +05:45
s.rampalli
38a39ec0be fixed rrc x2ap runtime issues 2020-06-09 17:47:08 +05:45
s.rampalli
e7c20bc081 mistake 2020-06-09 17:47:08 +05:45
s.rampalli
a07cfa3dd3 rrc changes 2020-06-09 17:47:08 +05:45
s.rampalli
69455512c8 fixed rrc issues 2020-06-09 17:47:08 +05:45
s.rampalli
eac285d405 rrc runtime errors fixed 2020-06-09 17:47:08 +05:45
s.rampalli
b8e43ff2da fixed encoding failed issue 2020-06-09 17:47:08 +05:45
s.rampalli
d988eb82fc Removed temporary values in x2ap and rrc 2020-06-09 17:47:08 +05:45
cig
f4d47b1ea7 Checking in dl_indication if scheduling is needed or any DL PDU was received:
- scheduling is needed only when whe it doesn´t fall in dci_ind or rx_ind cases
- cleaned up some old commented out code
2020-06-09 13:53:27 +02:00
Thomas Schlichter
36f5e80ea3 cleaning up the UE MAC/PHY interface 2020-06-09 13:53:27 +02:00
Thomas Schlichter
614083f03f Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/GNB_APP/gnb_app.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/RRC/NR/rrc_gNB_nsa.c
2020-06-09 13:03:28 +02:00
Thomas Schlichter
96dc4a888d fix broken merge from develop in ulsim 2020-06-09 12:38:54 +02:00
laurent
64e3e97158 more cleanup, start scope vizualisation rework 2020-06-09 09:00:03 +02:00
Raymond Knopp
6a9d606255 Temporarily consider single LCID for DL traffic scheduling 2020-06-08 19:09:03 +02:00
Francesco Mani
2e8092540f moving function to prepare pucch scheduling inside dlsch_phytest 2020-06-08 16:31:30 +02:00
Raphael Defosseux
90b102687f Merge branch 'develop_integration_2020_w23' into 'develop'
Develop Integration 2020 week 23

The following merge requests have been included:

* MR 823 : NR-UE Init sync bugfix
* MR 824 : code cleanup
2020-06-08 15:17:34 +02:00
Raymond Knopp
072836d7b9 NR-IP traffic: Make fapi dl pdu configuration be triggered only when there is data from the upper layers to be scheduled
- To be used for NSA and noS1 modes
2020-06-08 14:38:54 +02:00
Raymond Knopp
ad1e47f7f4 Merge branch NR_RRC_harq_hacks into NR_RRC_PDCP 2020-06-08 14:30:38 +02:00
Raphael Defosseux
d0ca8f12e8 CI: handling of new compilation warnings
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-08 11:04:27 +02:00
Raphael Defosseux
5cb573fcab Merge remote-tracking branch 'origin/cleanup-20200604' into develop_integration_2020_w23 2020-06-08 10:34:21 +02:00
Florian Kaltenberger
0124e5378c adding possibility to read rx signal from file 2020-06-06 22:55:13 +02:00
laurent
1ff806d519 fix shared lib dependency error 2020-06-05 18:26:47 +02:00
Sakthivel Velumani
06ee95f40e UE sync fix 2020-06-05 17:35:46 +02:00
Sakthivel Velumani
91fd14bf99 UE harq bugfixes 2020-06-05 17:35:25 +02:00
Thomas Schlichter
84dfeff40a fix broken merge from develop in phy_procedures_gNB_common_RX() 2020-06-05 10:09:57 +02:00
Raphael Defosseux
89acc09420 CI: fix the RAW files usage by NR-UE
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-04 14:32:41 +02:00
laurent
d1e8c23529 cleanup 2020-06-04 10:48:29 +02:00
Rangaswami
884cbc7c8c Corrected indentation and removed GES macro 2020-06-04 11:04:43 +05:30
Thomas Schlichter
1a91c25d07 Merge branch 'init_sync_bugfix' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
2020-06-03 21:50:01 +02:00
Thomas Schlichter
225a500b3e Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
	openair1/PHY/NR_REFSIG/dmrs_nr.c
	openair1/PHY/NR_TRANSPORT/nr_prach.c
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
2020-06-03 19:50:54 +02:00
Raymond Knopp
376baa3247 fixes for machine without CUDA 2020-06-03 17:02:03 +02:00
Francesco Mani
7948d26f8c Revert "scheduling dl in both half frames"
This reverts commit cf5bc231ec.
2020-06-03 15:45:00 +02:00
Francesco Mani
62b154e8d6 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-06-03 15:42:31 +02:00
Raphael Defosseux
a2ffa29f3b Making CUDA additions conditional on CUDA installation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-03 15:32:51 +02:00
Sakthivel Velumani
5bfbb00d2c bugfix for UE init sync 2020-06-03 14:49:26 +02:00
Florian Kaltenberger
f6b83fd925 adding frequency offset to prachsim 2020-06-03 11:52:20 +02:00
WANG Tsu-Han
79899c8a6f adding CUDA in LDPC test 2020-06-03 09:55:33 +02:00
Francesco Mani
c359a05351 Revert "separation of dl and ul clear fapi information"
This reverts commit 17a1a554b7.
2020-06-02 18:31:09 +02:00
Francesco Mani
17a1a554b7 separation of dl and ul clear fapi information 2020-06-02 16:14:49 +02:00
laurent
0169c05c74 merge develop, some tests in 5g: no regression 2020-06-02 11:26:11 +02:00
laurent
62f9e7b5e7 remove all usage of RC.ru global var in ocp-gnb and nr-uesoftmodem 2020-06-02 10:35:17 +02:00
Raymond Knopp
e6d03868cb Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-06-02 10:17:26 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
579cfad82d git add for merge 2020-06-01 19:51:25 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
03d354efce merge to develop 2020-06-01 19:27:44 +08:00
Raymond Knopp
65cf9da7d2 Merge branch NR_RRC_harq_hacks into NR_RRC_PDCP 2020-05-29 16:57:34 +02:00
Francesco Mani
cf5bc231ec scheduling dl in both half frames 2020-05-29 16:44:26 +02:00
Raphael Defosseux
362da7c920 Merge branch 'develop_integration_2020_w22' into 'develop'
Develop Integration Branch : 2020 week 22

The following Merge Requests are been included:

* MR 796 : Nr rrc configuration trx thread
* MR 807 : Use SCF FAPI for DMRS and PTRS also on UE side
* MR 817 : Fixing errored/missing circular dependency protection
* MR 819 : cleanup branch and initial ninja build support
* MR 820 : CI: Add OAI-CN-In-Docker support
2020-05-29 15:50:58 +02:00
Raphael Defosseux
8cdba4ff2d CI: fix a few cppcheck errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-29 11:59:40 +02:00
Raphael Defosseux
534525eada CI: fix typo in inria pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-29 11:58:28 +02:00
s.rampalli
19a44bd092 modified the rrc_add_nsa_user api 2020-05-29 12:57:29 +05:30
Francesco Mani
4e12c39471 static bitmap to schedule dl slots (also to test phone) 2020-05-28 17:56:42 +02:00
Raphael Defosseux
77492a09ce Merge remote-tracking branch 'origin/cleanup-may-2020' into develop_integration_2020_w22 2020-05-28 14:27:45 +02:00
Raphael Defosseux
f63920dc7c CI: taking care of the case if R2LAB is not available
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:27:06 +02:00
Raphael Defosseux
6a0e50c8a8 CI: trying on inria setup w/o threading specific option
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:26:54 +02:00
Raphael Defosseux
29b2922758 CI: increase timeout for building OAI UE
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:23:09 +02:00
laurent
19690332af fix one T dependency 2020-05-28 13:41:04 +02:00
Raphael Defosseux
4ce8275ffb Merge remote-tracking branch 'origin/add_oai_cn_docker_support_to_ci' into develop_integration_2020_w22 2020-05-28 12:59:08 +02:00
Raphael Defosseux
768b4e0f24 Merge remote-tracking branch 'origin/cleanup-may-2020' into develop_integration_2020_w22 2020-05-28 12:58:42 +02:00
Raphael Defosseux
a0ab138a5e Merge remote-tracking branch 'origin/fix-circular-dependency-protection' into develop_integration_2020_w22 2020-05-28 12:56:05 +02:00
Raphael Defosseux
e5eca66ad5 Merge remote-tracking branch 'origin/fapi_for_dmrs_and_ptrs' into develop_integration_2020_w22 2020-05-28 12:55:48 +02:00
laurent
9b06211056 remove test ninja 2020-05-27 17:58:01 +02:00
laurent
c02b12f15b test ninja 2020-05-27 17:19:11 +02:00
WANG Tsu-Han
82bbde7dbb fix for rf simulation 2020-05-27 10:48:26 +02:00
Raymond Knopp
dad2d8bce7 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks
Conflicts:
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
2020-05-26 16:39:50 +02:00
WANG Tsu-Han
a5cffd8240 device funtion call initalization fix 2020-05-26 16:21:20 +02:00
Raymond Knopp
0a45909bd1 minor changes 2020-05-26 15:37:10 +02:00
Raymond Knopp
c042f7c26a fixed issue related to scheduing of PRACH for long sequence (only gets done in last slot of subframe now, not both) and start point of DFT in RU processing for long-sequence. Removes fatal segfault. 2020-05-26 11:40:54 +02:00
Raphael Defosseux
9097867cd8 CI: check the NR-UE cell-synchronization during launch not and just in post-mortem diagnosis
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-26 10:53:58 +02:00
Raphael Defosseux
9142c684df CI: adding support for docker-based OAI-CN-CUPS deployment
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>

Conflicts:
	ci-scripts/epc.py
2020-05-26 10:53:38 +02:00
Sakthivel Velumani
d37f077082 handling failed ack/nack reception 2020-05-26 00:22:48 +02:00
Raymond Knopp
539ff7bf85 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-26 00:05:40 +02:00
Raymond Knopp
fe5cd3d28d fixed bug for long PRACH sequence configuration, flipped HARQ bits for 2-bit PUCCH0 UCI report 2020-05-26 00:04:49 +02:00
Raymond Knopp
69b4211aba Change default NR DRB configuration to RLC UM 2020-05-25 21:13:19 +02:00
Raymond Knopp
72f1b2cb09 Remove hack restriction for single time DL scheduling 2020-05-25 20:55:12 +02:00
Raymond Knopp
fd5f7bec0d Merge branch NR_PDCP_noS1 back to NR_RRC_PDCP 2020-05-25 20:13:22 +02:00
Raymond Knopp
d0e6e847e1 assertion removal 2020-05-25 14:36:37 +02:00
vr.devendra
02be147d17 GlobalEdge: CSI and TCI related MAC CE intial commit 2020-05-22 20:15:12 +05:30
Francesco Mani
6fa5a6cf89 bugfix 2020-05-22 15:35:31 +02:00
Francesco Mani
03b38ca871 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-22 15:02:03 +02:00
Francesco Mani
17e52131d3 scheduling continuous dl transmission in first half frame 2020-05-22 15:00:37 +02:00
Sakthivel Velumani
94b88cf2cf bug fixes 2020-05-22 13:16:30 +02:00
Sakthivel Velumani
453e257d8d Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-22 12:47:03 +02:00
Sakthivel Velumani
eb5a7a9ab1 added harq handling in gnb mac 2020-05-22 12:41:28 +02:00
Raymond Knopp
8f8894d764 suppressed some LOG_M that were killing real-time. 2020-05-21 23:02:08 +02:00
Thomas Schlichter
ce105df4e7 Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_transport.h
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair2/GNB_APP/RRC_nr_paramsvalues.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2020-05-20 19:26:16 +02:00
Francesco Mani
2f4f90ba24 bugfix 2020-05-20 15:49:43 +02:00
laurent
bdee45878a cleanup branch 2020-05-20 15:44:20 +02:00
Francesco Mani
3284e42e51 Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-20 15:06:03 +02:00
Francesco Mani
b0ff2cef54 rearranged function to prepare pucch scheduling 2020-05-20 15:05:33 +02:00
cig
928dd902e3 Code cleanup 2020-05-20 12:41:06 +02:00
cig
783470905d Bugfix: missing deactivation dlsch after processing is done:
- the issue popped up with the new rx/tx implementation  at the UE
- this was causing false processing of DLSCH PDU and reception of false
  TA commands
2020-05-20 12:41:05 +02:00
s.rampalli
04e903a39b indentations fixed 2020-05-20 15:47:03 +05:30
s.rampalli
729890a133 Required changes/modifications are done at both eNB and gNB side 2020-05-20 15:26:37 +05:30
WANG Tsu-Han
a85a39048d Merge branch 'develop' into NR_RRCConfiguration_trx_thread 2020-05-20 09:50:05 +02:00
Raymond Knopp
6fb195867b Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-19 23:59:31 +02:00
Raymond Knopp
dd8cb98443 added support in gNB and UE for long PRACH sequences. Tested format 0 with unitary simulation only. 2020-05-19 23:58:28 +02:00
laurent
cbd801b6e5 some cleanup and checks 2020-05-19 21:29:13 +02:00
Francesco Mani
49991e100b bugfix for 2 acknacks in pucch0 2020-05-19 19:09:29 +02:00
laurent
9112ee01f5 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-05-18 22:17:16 +02:00
laurent
026924244a merge develop, ocp-gnb working on rf sim and phy-test mode: DL and UL user traffic 2020-05-18 22:16:54 +02:00
Francesco Mani
03ce05571a Merge branch 'NR_RRC_harq_b' into NR_RRC_harq_hacks 2020-05-18 19:00:58 +02:00
Sakthivel Velumani
5a5f503997 Merge branch 'develop' into NR_RRC_harq_b 2020-05-18 12:57:51 +02:00
Sakthivel Velumani
54ca9ea5ab fixed pucch procedures to use rrc struct in UE 2020-05-18 12:57:24 +02:00
matzakos
6d71096637 Change pseudo-subheader byte of random ULSCH PDU (phytest) to an appropriate value
- Apply a value which cannot be interpreted as any valid LCID at the MAC layer of the receiver gNB (as per 38.321 Table 6.2.1-2),
to avoid forwarding the random PDU to the upper layers in noS1 mode.
2020-05-17 13:03:24 +02:00
Raymond Knopp
4e50e36ede intermediate commit, pucch2 RX with polar still not complete 2020-05-17 10:43:15 +02:00
Francesco Mani
b5b78125c9 test scheduling of pucch reception 2020-05-15 18:47:06 +02:00
Francesco Mani
d268c320ca Merge branch 'develop' into NR_RRC_harq_hacks 2020-05-15 16:26:33 +02:00
Raphael Defosseux
11783e755a Fixing errored/missing circular dependency protection
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-15 15:39:11 +02:00
Francesco Mani
0add4fdb55 bugfix in pucch timing indicator selection 2020-05-15 09:14:30 +02:00
Thomas Schlichter
7fc9ab7720 use NR_UE_sched_ctrl_t instead of UE_sched_ctrl_t in gNB_scheduler 2020-05-14 18:38:08 +02:00
Thomas Schlichter
95833dde60 Merge branch 'develop' 2020-05-14 18:36:59 +02:00
Ahmed Hussein
566de5670b Bug fixes regarding ping issues 2020-05-14 16:18:53 +02:00
s.rampalli
2792f8ce4a compilation done need to verify with GES endc setup 2020-05-14 15:36:45 +05:30
s.rampalli
62bb979b49 coding done need to verify testing part 2020-05-14 12:22:44 +05:30
Raymond Knopp
f043c63a34 added 2 UCI tests to CI for polartest 2020-05-14 00:45:58 +02:00
Raymond Knopp
100f75ba45 polar coding for UCI (PUCCH) integrated into polartest for lengths 12...64 2020-05-14 00:41:15 +02:00
Francesco Mani
1c7ee3caba using num_dmrs_cdm_grps_no_data for PUSCH in PHY 2020-05-13 18:05:15 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
a102405896 LDPC cuda support BG1 all length 2020-05-13 22:31:30 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
02dc4ba8ce configured LDPC on CPU and GPU 2020-05-13 22:27:36 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
da62b92f6e Merge remote-tracking branch 'origin/develop' into NCTU_OpinConnect_LDPC 2020-05-13 22:24:40 +08:00
Francesco Mani
6f0e4fe149 using numDmrsCdmGrpsNoData for PDSCH in PHY 2020-05-13 16:22:05 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
5c7e4c21db LDPC implementation on Quadro p5000 by NCTU OpinCommect 2020-05-13 22:21:49 +08:00
cig
268a35419e Hotfix scrambling rnti
- this is needed because in the current implementation of the gNB
  the scrambling rnti is 0 for the RA and dci rnti otherwise
2020-05-12 17:38:47 +02:00
cig
4522cd4eb9 Changes to RA procedures:
- monitoring RA window
- taking RA_offset into account
- workaround to generate PRACH only when the RAR has not been received yet (RA is idle)
2020-05-12 17:33:28 +02:00
cig
66395ff7b7 Set RA offset at UE to compensate for 2 frames offset introduced by gNB 2020-05-12 17:28:35 +02:00
cig
8394ee82f5 More dynamic DCI configuration 2020-05-12 17:28:11 +02:00
cig
08b6211956 Scheduling of Msg2 2020-05-12 17:23:50 +02:00
cig
12b585a190 Fixes to RA procedure 2020-05-12 17:19:10 +02:00
cig
58dbf7d4b9 New design UE scheduler 2020-05-12 17:19:00 +02:00
Raymond Knopp
704e167b86 Merge branch 'NR_RRC_PDCP' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PDCP 2020-05-12 15:31:12 +02:00
Raymond Knopp
06d4ef6177 Modification of an input parameter type for nr_rrc_rlc_config_asn1_req 2020-05-12 14:58:44 +02:00
Francesco Mani
ad246f961b reset rnti and harq_mask in dlsch structure 2020-05-12 14:14:41 +02:00
Raphael Defosseux
e376241a82 Merge branch 'develop_integration_2020_w19' into 'develop'
Develop Integration Branch -- 2020 week 19

The following Merge Requests were included:

* MR [810] : NR PUCCH
* MR [812] : fix 20 compilation warnings
* MR [815] : rlc v2 -- coverity scan fixes
* MR [816] : hotfix: fix compilation of UE with --musim

Also add fixes for CI
2020-05-11 21:10:34 +02:00
Raphael Defosseux
f9403e9a2e Merge remote-tracking branch 'origin/hotfix-ue-musim-compilation' into develop_integration_2020_w19 2020-05-11 11:22:48 +02:00
Raphael Defosseux
ab7ec85342 Merge remote-tracking branch 'origin/rlc_v2_coverity_fixes' into develop_integration_2020_w19 2020-05-11 11:22:34 +02:00
cig
96b5755753 Cleanup NR UE DCI configuration 2020-05-11 11:09:36 +02:00
cig
785ffa4def Minor fixes 2020-05-11 11:09:36 +02:00
cig
4dc0e7f235 Enabled UE to process RX and TX in every DL or UL (or mixed) slot respectivey
- the commit fixes also the selection of the thread_id in TX procedures
- DCI configuration is currently limited to slot 1 and 7
2020-05-11 11:09:36 +02:00
cig
e3ba90b055 Fixes for polar and scrambling RNTI at UE
- including temporary hotfix for the polar rnti
2020-05-11 11:09:36 +02:00
Francesco Mani
cdead06962 fix for scrambling rnti and dci format 2020-05-11 11:09:36 +02:00
Cedric Roux
301ea42482 hotfix: fix compilation of UE with --musim
The following was failing:
./build_oai --UE --musim

Not sure this fix is correct, but it seems consistent with
the rest of platform_constants.h.
2020-05-09 10:12:38 +02:00
Cedric Roux
21a2a8c6e1 rlc v2: some fixes for 'bugs' found by coverity scan
Minor fixes, doesn't change anything. Not sure these are 'bugs' either,
but let's be polite with coverity scan...

One thing was not changed.
Coverity scan says:
*** CID 357991:  Memory - illegal accesses  (USE_AFTER_FREE)
/home/carabe/raphael/openairinterface5g/openair2/LAYER2/rlc_v2/rlc_entity_am.c: 507 in tx_list_remove_sn()
501         } else {
502           prev = cur;
503           cur = cur->next;
504         }
505       }
506
>>>     CID 357991:  Memory - illegal accesses  (USE_AFTER_FREE)
>>>     Using freed pointer "head.next".
507       return head.next;
508     }
509
510     void cleanup_sdu_list(rlc_entity_am_t *entity)
511     {
512       rlc_sdu_t head;

But as far as I understand, there is no problem. We don't access
head.next at all if it has been freed. Or is there some aliasing
going on there (pointer aliasing)? I doubt it. False positive?
2020-05-07 18:05:05 +02:00
Raphael Defosseux
bca9ecfd3c add missing circular dependency protection
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-07 16:38:00 +02:00
Raphael Defosseux
2a8dacc009 CI: better code guideline analysis
-- check if C file has a GNU GPL license
-- check if C file has s suspect license
-- check if C header is having correct circular dependency protection (with Laurent Thomas's help)

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-07 16:35:28 +02:00
Raphael Defosseux
454139ac63 CI: fix a few typos in python framework
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-07 16:34:53 +02:00
Thomas Schlichter
25c4cea36f remove now unnecessary frame_gap completely 2020-05-07 10:02:11 +02:00
Thomas Schlichter
aa7e10c405 also use the high 6 bits from MIB when calculating decoded_frame_rx after the initial synchronization 2020-05-07 10:02:11 +02:00
Thomas Schlichter
fa18a88fdb fix updating UE->frame_gap and calculation if proc->frame_rx > dcireq.dl_config_req.sfn 2020-05-07 10:02:11 +02:00
Francesco Mani
d4929cc21e bugfix in dmrs offset for pusch 2020-05-07 09:52:48 +02:00
s.rampalli
cf844cef14 changed the encoded buffer size to 4096 2020-05-06 22:31:08 +05:30
Ahmed Hussein
1ffa9eed64 Bug fix regarding the uplink dmrs symbol position bitmask 2020-05-06 16:15:30 +02:00
Sakthivel Velumani
87ecb91885 updated cmakelist 2020-05-06 13:45:14 +02:00
Raphael Defosseux
ae5a1e4131 CI: fix unresolved merge conflicts
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-06 12:08:53 +02:00
Raphael Defosseux
29f984a60a CI: fix missing class member for EPC
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-06 12:08:53 +02:00
Raphael Defosseux
0113a9b978 Merge remote-tracking branch 'origin/nr_pucch2' into develop_integration_2020_w19 2020-05-06 12:08:41 +02:00
s.rampalli
37dcfb1a9d fixed rrc x2ap runtime issues 2020-05-05 21:36:07 +05:30
Sakthivel Velumani
7746421192 Merge branch 'develop' into NR_RRC_harq_b 2020-05-05 16:32:37 +02:00
s.rampalli
cfd402a03a mistake 2020-05-05 19:53:13 +05:30
s.rampalli
509fb16705 rrc changes 2020-05-05 17:22:17 +05:30
s.rampalli
c52c9b7ba4 fixed rrc issues 2020-05-05 14:03:05 +05:30
s.rampalli
85cfa10961 rrc runtime errors fixed 2020-05-05 13:55:49 +05:30
s.rampalli
bdc7943b8f fixed encoding failed issue 2020-05-05 09:09:27 +05:30
Sakthivel Velumani
64808859b9 updated CI test list with harq test 2020-05-04 15:42:15 +02:00
Sakthivel Velumani
7655123997 included throughput print 2020-05-04 09:29:36 +02:00
laurent
7aa9a7bd49 work in progress, re-merge before continuing 2020-05-03 18:30:26 +02:00
laurent
da54778c4a fix warnings 2020-05-03 18:27:07 +02:00
Thomas Schlichter
79471f2f6d Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
	openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
	openair1/PHY/defs_RU.h
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/RRC/NR/rrc_gNB_nsa.c
	openair2/X2AP/x2ap_eNB_handler.c
2020-04-30 18:54:37 +02:00
Raymond Knopp
84b1df4b87 Merge remote-tracking branch 'origin/develop' into nr_pucch2 2020-04-30 16:12:18 +02:00
Raymond Knopp
4210c41179 removal of a massive number of warnings 2020-04-30 15:48:37 +02:00
Raphael Defosseux
cd82d94cb2 Merge branch 'develop_integration_2020_w17' into 'develop'
Develop Integration Branch -- 2020 week 17

See merge request oai/openairinterface5g!809
2020-04-30 14:37:31 +02:00
Raphael Defosseux
9f09885dbf Merge remote-tracking branch 'origin/split73' into develop_integration_2020_w17 2020-04-30 10:37:22 +02:00
Raymond Knopp
7caf3d9cd9 Merge remote-tracking branch 'origin/develop' into nr_pucch2
Conflicts:
	cmake_targets/autotests/test_case_list.xml
	executables/nr-gnb.c
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/TOOLS/tools_defs.h
	openair1/PHY/defs_gNB.h
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
2020-04-30 09:48:13 +02:00
Raymond Knopp
cd3f5ad001 added parameters to generate_pucch2 in ue pucch procedures 2020-04-30 09:18:54 +02:00
Raphael Defosseux
7ad752232d Merge remote-tracking branch 'origin/new_rlc_2020' into develop_integration_2020_w17 2020-04-29 18:50:32 +02:00
Cedric Roux
e5ea8a5a03 rlc v2: fix cmake file 2020-04-29 16:15:59 +02:00
Ahmed Hussein
fcf6439040 Fixed bug related to N_TA_offset not being applied at UE
- By default this value is equal to 0 at gNB in case of ulsim, but
    has a value in case of RF simulator
  - The N_TA_offset was calculated but not used at UE side
2020-04-29 12:08:22 +02:00
laurent
9ac5f6015d update license text 2020-04-29 11:31:00 +02:00
Raphael Defosseux
8007758efe Merge remote-tracking branch 'origin/split73' into develop_integration_2020_w17 2020-04-29 10:31:14 +02:00
Raphael Defosseux
c47daed70c LIC: wrong license banner on proto-agent files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-29 10:30:09 +02:00
Sakthivel Velumani
4eb78faaa1 added harq stats in dlsim 2020-04-28 21:59:34 +02:00
Ahmed Hussein
eeef6da2aa Fixed bug regarding TBS calculation and G calculation
- The number of nb_dmrs_re at gNB side was set to 6, but here it is assumed
    that there will be no data allocation in OFDM symbols that carry DMRS
  - nb_dmrs_re that is being given as an input to the TBS calculation,
    should be multiplied by the number of DMRS symbols in order to get the total
    number of DMRS REs per RB
  - In the calculation of G, only the number of DMRS per RB in 1 OFDM symbol should
    be given as an input, because inside the function of the G calculation, this
    number is being multiplied by the number of OFDM symbols that carry DMRS
2020-04-28 18:05:14 +02:00
laurent
9480293cda include dir 2020-04-28 16:33:50 +02:00
laurent
744fe92859 set back rrc as a separate thread, lead to create back race conditions 2020-04-28 15:39:50 +02:00
laurent
60845819a2 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into split73 2020-04-28 14:32:38 +02:00
laurent
b1da29427c justone log line 2020-04-28 14:32:31 +02:00
Raymond Knopp
dc5149e854 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-04-27 19:28:39 +02:00
laurent
07c8d00011 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-04-24 11:45:29 +02:00
laurent
151bde05c8 merge develop, compile only 2020-04-24 11:45:22 +02:00
Sakthivel Velumani
fd50f1b5bd fixed round update in UE 2020-04-24 01:44:47 +02:00
Raymond Knopp
7689b9394a added missing file 2020-04-23 22:49:33 +02:00
Raymond Knopp
d7d196c280 CI tests for nr_pucchsim : added PUCCH format 2 tests 2020-04-23 22:27:28 +02:00
Sakthivel Velumani
93e745b8ec updated dlsim to test harq 2020-04-23 19:45:00 +02:00
Sakthivel Velumani
6b307e8123 bugfix in ratematching for higher rv 2020-04-23 19:44:04 +02:00
Raphael Defosseux
f6383343fc Merge remote-tracking branch 'origin/new_rlc_2020' into develop_integration_2020_w17 2020-04-23 18:19:00 +02:00
Raphael Defosseux
ddf9471002 DOC: license for all LFDS versions updated
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-23 16:40:52 +02:00
Raphael Defosseux
e957d9cb49 DOC: put correct license
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-23 16:37:11 +02:00
Javier Morgade
591b45d29f Configure right lcid range at MBMS config file
Now is aligned with RMSIMULATOR config file (this should solve CI issues with monolithic tests)
2020-04-23 11:45:07 +02:00
Raphael Defosseux
ab5e767c0d Merge remote-tracking branch 'origin/doc-nfapi-l2-update' into develop_integration_2020_w17 2020-04-23 11:44:08 +02:00
Raphael Defosseux
381f44843d DOC: fix some formatting issues
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-23 11:43:40 +02:00
Raphael Defosseux
4da101fd7f Merge remote-tracking branch 'origin/split73' into develop_integration_2020_w17 2020-04-23 11:31:51 +02:00
Raphael Defosseux
fde5af0ecc Merge remote-tracking branch 'origin/ue_nfapi_mch' into develop_integration_2020_w17 2020-04-23 11:31:46 +02:00
Raphael Defosseux
0d1edf6c47 CI: add missing import
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-23 11:30:48 +02:00
Raphael Defosseux
6258755d14 Merge remote-tracking branch 'origin/develop_integration_2020_w15' into develop_integration_2020_w17 2020-04-23 11:29:33 +02:00
cig
5eacaddd0e Code cleanup 2020-04-23 09:55:04 +02:00
cig
32af60bcf5 UE RA procedures changes to preamble selection:
- get preamble from rach_ConfigDedicated in contention free mode
- do preamble selection only in prach slot
2020-04-23 09:55:04 +02:00
cig
f276494317 Completed dlsch demodulation for RA PDSCH 2020-04-23 09:55:04 +02:00
cig
c56854afe4 Set proper polar rnti and scrambling rnti for the phy-test and do-ra running modes:
- in phy-test both rnti are set to same rnti
- in do-ra the scrambling rnti is set to 0 while the polar rnti is the RA_rnti (computed as per
  TS 38.321)
2020-04-23 09:55:04 +02:00
cig
acfad36f1a Code cleanup:
- restructured nr_pdcch_unscrambling function
- minor cleanups
- formatting
2020-04-23 09:55:04 +02:00
cig
220685e320 UE RAR DCI reception
- NR UE scheduled response for RA PDSCH case
- UE processing of RAR DCI
- some cleanup and formatting
2020-04-23 09:54:34 +02:00
Raymond Knopp
6d8aa8d6b9 added 3-bit payload for pucch0 to nr_pucchsim, fixed SNR scaling for pucch2 2020-04-23 01:17:11 +02:00
Raymond Knopp
35b04083b1 Merge remote-tracking branch 'origin/nr_pucch' into nr_pucch2 2020-04-22 20:43:21 +02:00
cig
0546bcea94 Doing phy procedures RX in slot 7 for RAR DCI 2020-04-22 17:57:24 +02:00
Raphael Defosseux
a0cf407742 CI: final fixes on help functions
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-22 17:26:34 +02:00
Raphael Defosseux
009609f1f3 DOC: update L2 nFAPI simulator
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-22 16:46:42 +02:00
Raphael Defosseux
1e6e780a71 CI: final fixes for noS1 ping operations and LTE-M
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-22 12:04:51 +02:00
Raymond Knopp
93ba34b027 testing for pucch format 2, 3-11 bits. Configuration works for 2 PRBs, 1 symbol only. Assertion in gNB RX otherwise. 2020-04-21 23:44:06 +02:00
Raphael Defosseux
6eb5d8c9c7 CI: fix a few more things
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 22:25:16 +02:00
Raphael Defosseux
39a5ddf551 CI: cleanup
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 20:15:57 +02:00
Raphael Defosseux
9758abf9b9 CI: cleanup
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 16:47:44 +02:00
Raphael Defosseux
ea376b1eb2 CI: fix eNB log analysis
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 16:36:43 +02:00
Raphael Defosseux
e120cabda0 CI: fix HTML footer generation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 16:03:13 +02:00
Raphael Defosseux
8e8e9d67f8 CI: fix html generation in EPC functions
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 14:51:32 +02:00
Raphael Defosseux
92ce0e8df4 CI: fix merge request case
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-21 14:34:21 +02:00
Cedric Roux
456e90e25d rlc v2: bugfixes for mbms 2020-04-20 16:28:20 +02:00
s.rampalli
939a28ba07 Removed temporary values in x2ap and rrc 2020-04-20 11:27:56 +05:30
Cedric Roux
baa9cd0140 rlc v2: mbms support 2020-04-19 13:44:15 +02:00
Javier Morgade
72cba28436 Add UE MCH NFAPI 2020-04-17 18:50:55 +02:00
Thomas Schlichter
0cc5a12e77 Merge branch 'develop' 2020-04-17 16:01:51 +02:00
Thomas Schlichter
42413bc565 disable PUSCH PTRS even in ulsim
PTRS leads to code shortening, and the current LDPC implementation has issues with that for higher code rate.
Because of this, we have to disable PTRS by default, as we test MCS 28 in CI.
2020-04-17 15:59:05 +02:00
laurent
3c4cafa1cd fix L2 sim issue (bad manual merge) 2020-04-17 12:58:46 +02:00
Cedric Roux
3089dc0d45 rlc v2: update to latest develop
All previous commits for rlc v2 are proably
not functional or even compiling.
2020-04-17 10:41:21 +02:00
Cedric Roux
123745118c rlc v2: hotfix: remove some AssertFatal
Not sure if the problem is in the MAC layer or in the RLC v2 layer.
Maybe the buffer status reporting in RLC v2 is not good. Let's remove
two AssertFatal in the MAC for the time being.
2020-04-17 10:40:05 +02:00
Cedric Roux
4b6f5cea52 rlc v2: have the L2 simulator functional
Not very clean, but will do the job for the time being.
2020-04-17 10:40:05 +02:00
Cedric Roux
fbd69663b1 rlc v2: fix for CU/DU split
Limitation: this fix only works if there is only one eNB,
because we force module_id = 0 in the function deliver_sdu where
(as the code is today) we have no way to know which module_id is
concerned. More generally, the rlc v2 does not work with more than
1 eNB.
2020-04-17 10:40:05 +02:00
Cedric Roux
8ca42918d6 hotfix: remove an AssertFatal
The UE code to compute BSR is too complex, has to be reworked/simplified.
This commit just removes the assert, does not solve anything.
2020-04-17 10:40:05 +02:00
Cedric Roux
9b9654a8e8 rlc v2: initial UE support 2020-04-17 10:40:05 +02:00
Cedric Roux
eebf2cb938 rlc v2: improve buffer status reporting
The old method was wrong.
The new method is better, but not accurate, especially when the
TX buffer contains SDU of size > 2047 bytes.

Plus it's probably too slow.

To be refined at some point.
2020-04-17 10:40:05 +02:00
Cedric Roux
d860ca510e rlc v2: bugfix 2020-04-17 10:40:04 +02:00
Cedric Roux
fd61774f26 rlc v2: fix: remove #define RRC_DEFAULT_RAB_IS_AM 1 in rrc_eNB.c 2020-04-17 10:40:04 +02:00
Cedric Roux
6698759a60 rlc v2: fix crash deliver_sdu: ERROR: pdcp_data_ind failed
simply ignore the error

maybe not the best solution
2020-04-17 10:40:04 +02:00
Cedric Roux
90e05a2702 rlc v2: fix cppcheck error (disable it) 2020-04-17 10:40:04 +02:00
Cedric Roux
3310f5c6b0 alternative RLC implementation
This commit introduces an alternative RLC implementation
based on 36.322 version 8. AM and UM done, TM not done.

See openair2/LAYER2/rlc_v2/TODO for missing parts.
2020-04-17 10:40:04 +02:00
Thomas Schlichter
2a0bfde4a0 use "PUSCH_PDU_BITMAP_PUSCH_PTRS" when setting, clearing or checking pdu_bit_map 2020-04-17 10:20:09 +02:00
Ahmed Hussein
68ba04abf8 Adding an extra condition for L_ptrs
- if L_ptrs is >= number of pusch symbols, then no ptrs will be scheduled
2020-04-16 21:48:27 +02:00
Ahmed Hussein
728a903369 Making "is_ptrs_symbol" as a static inline function 2020-04-16 19:30:52 +02:00
Ahmed Hussein
9b52bf29ca Separating "is_ptrs_subcarrier" from "is_ptrs_symbol" 2020-04-16 19:21:35 +02:00
Francesco Mani
9deb0ed08c Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-16 18:58:53 +02:00
Raphael Defosseux
c918f1d86c Merge branch 'NR_fix_Downlink_IP' into 'develop'
NR fix downlink IP

See merge request oai/openairinterface5g!806
2020-04-16 18:45:08 +02:00
Ahmed Hussein
f8c0de63cd Using "ptrs_re_offset" at UE side instead of using the function "get_kRE_ref" (TEMP implementation) 2020-04-16 18:02:59 +02:00
Ahmed Hussein
eae301e5d8 Fix regarding PTRS frequeny domain allocation 2020-04-16 16:49:44 +02:00
Ahmed Hussein
6adc40bbd1 Removed "ptrs_configured" and using "pusch_pdu->pdu_bit_map" instead at UE side 2020-04-16 15:58:50 +02:00
Ahmed Hussein
870845fc9d Minor fixes and modifications for get_K_ptrs 2020-04-16 14:50:11 +02:00
Ahmed Hussein
b0611cf49d Modifying get_L_ptrs and minor fixes 2020-04-16 14:34:40 +02:00
Ahmed Hussein
15629f126c Moving get_L_ptrs and get_K_ptrs from PHY to MAC 2020-04-16 13:49:52 +02:00
laurent
71cbb7e894 dirty workaround if4p5 bug 2020-04-16 10:40:33 +02:00
Ahmed Hussein
b8f77a9c60 Fixed PTRS frequency domain allocation
- The bug occurs when the PUSCH allocation contains the central RB of the whole UL BW
2020-04-15 19:14:14 +02:00
Ahmed Hussein
e9dd51a746 Minor clean-ups regarding PTRS 2020-04-15 18:48:03 +02:00
cig
6f87d474b7 Fixed wrong printing in nr_process_timing_advance 2020-04-15 16:59:09 +02:00
Ahmed Hussein
c878bbcc78 Fixing ptrs time domain allocation in set_ptrs_symb_idx 2020-04-15 16:11:56 +02:00
Raphael Defosseux
e9b8c72b7c CI: adding ping operations to 5G-RF sim; try loop on failures
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-15 15:55:47 +02:00
matzakos
e1b968db8b Small Fix for NR Downlink IP traffic issue after last updates in develop branch 2020-04-15 10:17:12 +02:00
laurent
497595ba0c merge again develop 2020-04-14 21:16:23 +02:00
laurent
b0b5a1012a cosmetic 2020-04-14 19:53:43 +02:00
laurent
8a58359a1b rereremerge 2020-04-14 19:51:00 +02:00
laurent
b3c06eae1c reremerge 2020-04-14 18:06:25 +02:00
laurent
dfafa90037 big merge with develop 2020-04-14 18:02:45 +02:00
cig
ec422f7050 Introduced a delay after a completed sync before starting msg1 generation:
- this was necessary because as soon as the gNB starts, it tries detecting
  the prach preambles and it mesaures the background noise. However, there is
  a delay of several dozens of frames before it considers the preables as
  detected.
- the solution at the UE consists in avoiding sending preamble as soon as the
  UE syncs by introducing an offset, this keeps the power measurements low at
  gNB side as long as the preamble detection counter is under threshold
2020-04-14 14:28:01 +02:00
cig
19530c5ab9 Cleanup nr transport header file 2020-04-14 14:28:01 +02:00
cig
8dd88bcb0e Deleted duplicated transport common proto header file 2020-04-14 14:28:01 +02:00
cig
c0029473dc Fixed some warnings 2020-04-14 14:28:01 +02:00
cig
3e70405b58 Cleanup transport_proto header 2020-04-14 14:28:00 +02:00
Francesco Mani
3dc9ad0567 Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-14 14:17:34 +02:00
laurent
58e973409a small compilation details 2020-04-14 11:25:59 +02:00
Ahmed Hussein
672937b4d7 Using SCF structs for DMRS at UE side instead of dmrs_UplinkConfig 2020-04-14 08:38:13 +02:00
Raphael Defosseux
1bf529be68 Merge remote-tracking branch 'origin/develop' into split73 2020-04-13 22:14:44 +02:00
Raphael Defosseux
238c83f400 Merge remote-tracking branch 'origin/feature-4g-sched' into develop 2020-04-13 22:08:41 +02:00
Raphael Defosseux
69869810a1 Merge branch 'develop_integration_2020_w15_bis' into 'develop'
See merge request oai/openairinterface5g!804

Develop Integration Branch : 2020 week 15

The following Merge Requests have been included :

* MR 789 : fix sync source configuration for eNB and B200-mini
* MR 795 : dft/fft in shared lib
* MR 795 : NR gNB SCF indication
* MR 798 : Improvements on the "default" LTE-4G scheduler
2020-04-13 22:00:47 +02:00
laurent
861caa735d merge develop 2020-04-13 18:04:18 +02:00
laurent
a9ec7a1d7c merge develop, updates related 2020-04-10 20:55:50 +02:00
laurent
b90e8ea7db merge, compile ok, regular exe ok, ocp-gnb not 2020-04-10 18:21:37 +02:00
Florian Kaltenberger
e197824e20 updating targets/ARCH/rfsimulator/README.md 2020-04-10 14:16:15 +02:00
Raphael Defosseux
10b484279c Merge remote-tracking branch 'origin/feature-4g-sched' into develop_integration_2020_w15_bis 2020-04-10 12:11:58 +02:00
Raphael Defosseux
d367260214 Merge remote-tracking branch 'origin/NR_gNB_SCF_Indication' into develop_integration_2020_w15_bis 2020-04-10 12:11:31 +02:00
Raphael Defosseux
149454ed4c Merge remote-tracking branch 'origin/extend_sharedlibusage2' into develop_integration_2020_w15_bis 2020-04-10 12:11:07 +02:00
Raphael Defosseux
b00ef27355 Merge remote-tracking branch 'origin/NR_RRCConfiguration_sync_source' into develop_integration_2020_w15_bis 2020-04-10 12:10:44 +02:00
Robert Schmidt
0e4ff0ecb4 L2 sim: space RA in time 2020-04-10 00:09:36 +02:00
Robert Schmidt
23fb00a248 Fix: telnet use right variable names 2020-04-10 00:09:36 +02:00
Robert Schmidt
a56be93e80 Reduce CPU load in PHY stub UE (L2 sim)
Instead of looping over UEs and all DL config Req/HI DCI0, loop first
over all DL config Req/HI DCI0, and for each, match UE.  Lowers CPU
traffic for high traffic situations.
2020-04-10 00:09:36 +02:00
Robert Schmidt
4df3157a7a L2: do not overwrite FAPI message, correct check 2020-04-10 00:09:36 +02:00
Robert Schmidt
0bef57e2d4 L2 sim: fix PDU_index test 2020-04-10 00:09:36 +02:00
Robert Schmidt
382b815fa4 Remove AssertFatal from UCI handlers 2020-04-10 00:09:36 +02:00
Robert Schmidt
8f450f0e51 DL PP: consider the last RBG might be smaller 2020-04-10 00:09:36 +02:00
Raymond Knopp
b568d5b01a removed faulty entries in ci unitary simulators and SNR starting point for nr_ulsim tests 2020-04-09 22:25:02 +02:00
Raphael Defosseux
46b386f0db Merge branch 'develop_inria_ci_deployment_gp' into develop_integration_2020_w15 2020-04-09 12:16:22 +02:00
Raphael Defosseux
64fcb6daa1 Merge branch 'develop_inria_ci_deployment_gp' of gitlab.eurecom.fr:oai/openairinterface5g into develop_inria_ci_deployment_gp 2020-04-09 12:11:20 +02:00
Gabriele Perrone
8a1118abac operations: 1) creation of develop_integration_2020_w15 (=develop) 2) merge of develop_inria_ci_deployment_gp 3) main.py conflicts resolution and now: commit of new main.py, epc.py, ran.py etc. 2020-04-09 11:03:49 +02:00
Thomas Schlichter
c128e82291 use nfapi_nr_ue_pusch_pdu_t instead of fapi_nr_ul_config_pusch_pdu for pusch_config_pdu 2020-04-07 21:18:28 +02:00
Gabriele Perrone
d15d86cf0c Update README.md 2020-04-07 19:20:30 +02:00
Gabriele Perrone
be9d4e1b55 after full run of enb_usrp210_band7_test_05mhz_tm1.xml commit the latest changes; then I will create an integration branch to run CI 2020-04-07 16:10:58 +02:00
Ahmed Hussein
b9148d636f Migrating members from NR_UL_UE_HARQ_t to the new added NFAPI structs 2020-04-07 15:02:04 +02:00
Raphael Defosseux
8bef0d1d61 CI: adding some try/catches and more debug to see what is going on --> failure to load images since 2 weeks
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-07 12:24:08 +02:00
WANG Tsu-Han
f0116d6bba fixes for return value for not using usrp write thread 2020-04-07 11:55:27 +02:00
Raphael Defosseux
9a13669552 CI: adding a few checks before loading images in R2LAB
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-06 16:33:40 +02:00
Gabriele Perrone
564db9c398 debugging 2020-04-06 15:20:02 +02:00
Gabriele Perrone
eff978af5d debugging 2020-04-06 14:54:13 +02:00
Robert Schmidt
1372e02206 Check for CCE allocation in UL PP 2020-04-06 13:56:59 +02:00
Robert Schmidt
36ebfe04f6 Use CCE_try_allocate_ulsch() in ULSCH 2020-04-06 13:56:59 +02:00
Robert Schmidt
c76af0a142 Check for CCE allocation in DL PP 2020-04-06 13:56:56 +02:00
Robert Schmidt
ed6e5ce832 Use CCE_try_allocate_dlsch() 2020-04-06 13:56:31 +02:00
Robert Schmidt
6b3b0b0b8b Final CCE allocation check: print message on fail 2020-04-06 13:56:31 +02:00
Robert Schmidt
88d156478f CCE_allocation_infeasible(): log only debug 2020-04-06 13:56:31 +02:00
Robert Schmidt
5443c7a792 fill_nfapi_dlsch_config() takes index for filling 2020-04-06 13:56:31 +02:00
Robert Schmidt
0f46f17c1c UL PP can change retx freq allocation 2020-04-06 13:56:31 +02:00
Robert Schmidt
24fb5e9c80 add adaptive HARQ UL 2020-04-06 13:56:31 +02:00
Robert Schmidt
9256a9e813 Clean up schedule_ulsch_rnti() 2020-04-06 13:56:31 +02:00
Robert Schmidt
c9a921504c TEST: TPC + TA cleaned up in DLSCH 2020-04-06 13:56:31 +02:00
Robert Schmidt
fd2e5fee96 Clean up schedule_dlsch() 2020-04-06 13:56:31 +02:00
Robert Schmidt
2f32448707 Correctly handle 2ms Sched. Reqs 2020-04-06 13:56:31 +02:00
Robert Schmidt
a3bbbd0630 Lock PRACH region through vrb_map_UL 2020-04-06 13:56:31 +02:00
Robert Schmidt
abc65b1d86 Reimplement UL PP 2020-04-06 13:56:31 +02:00
Robert Schmidt
8bf7a13ffa Remove first_rb from ULSCH scheduler 2020-04-06 13:56:31 +02:00
Robert Schmidt
8a84e2d92e Rewrite assign_max_mcs_min_rb() more concisely 2020-04-06 13:56:31 +02:00
Robert Schmidt
10bd164ad4 UL PP: Remove UE sorting and slicing 2020-04-06 13:56:31 +02:00
Robert Schmidt
9b4725ad0b Shortened UL-PP, remove CC and slicing 2020-04-06 13:56:31 +02:00
Robert Schmidt
4250f8eaec ULSCH: remove CC loop, remove variables or limit scope 2020-04-06 13:56:31 +02:00
Robert Schmidt
1670b4521e Reimplement the DLSCH preprocessor
This refactors the preprocessor. The new preprocessor implements the
same scheduling strategy (Modified Round-Robin: give resources according
to round-robin, then group) but should be fairer by changing every time
the RR start UE (i.e., 1st TTI UE 0 starts, 2nd TTI UE 1, etc) when the
UE number is not a divisor/multiple of the RBG size (and the last RBG is
often smaller). This also removes all unneeded code of the preprocessor
such as allocate(), positioning(), etc.
2020-04-06 13:56:27 +02:00
Robert Schmidt
eb0af3a5e0 Simplify DLSCH code
* do not check rlc_ind()
* Simplify retransmission part and remove nb_rb_available var
* Simplify new transmission code
* Simplify fill_DLSCH_dci(), avoid unnecessary copies
* fix: first check No. RBs, then check CCE alloc
2020-04-06 13:43:52 +02:00
Robert Schmidt
eeaa5a99d0 RLC: _req() accepts max TB size, _ind() not
Previously, the various rlc_*_ind() functions had a parameter to enable
the MAC to specify the max TB size that a subsequent call to the
corresponding rlc_*_req() (!) function would return. This patch removes
this parameter from the rlc_*_ind() functions and makes the parameter
working that is already in the rlc_*_req() functions.
2020-04-06 13:43:52 +02:00
Robert Schmidt
5c153ca0d2 Move release and RA control to own function, call once for every UE 2020-04-06 13:43:52 +02:00
Robert Schmidt
97a1bd105c store_dlsch_buffer() works per CC, checks only active LCs
store_dlsch_buffer() puts the RLC buffer status results in the
UE_TEMPLATE, which is per-CC. Since the DLSCH scheduler works per-CC,
too, we pass the right CC. However, this is not strictly necessary, as
we could do this once before every CC, and it might be updated.
2020-04-06 13:43:52 +02:00
Robert Schmidt
2e9f391a0a Store active LCs in MAC, remove unneeded headers 2020-04-06 13:43:52 +02:00
Gabriele Perrone
2ea0070d4d further cleanup 2020-04-06 12:04:07 +02:00
Ahmed Hussein
d3cbf14694 Using ul_dmrs_symb_pos at UE side instead of assuming that DMRS is only present at 1st symbol of PUSCH 2020-04-06 10:37:17 +02:00
Gabriele Perrone
9eab72b2bf aligning remote repository with local on starsky 2020-04-06 09:18:42 +02:00
Ahmed Hussein
76f937d8f2 Removing nb_re_dmrs and length_dmrs from NR_UE_ULSCH_t 2020-04-06 09:12:33 +02:00
Ahmed Hussein
1104cf0414 Removing DMRS parameters from "nr_ulsch_encoding" 2020-04-06 08:51:35 +02:00
Raphael Defosseux
657a42fec3 CI: during VM builds, we often have connection issues. Adding retry options to wget
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-04-02 14:33:37 +02:00
WANG Tsu-Han
76eec2d1ee Merge branch 'develop' into NR_RRCConfiguration_trx_thread 2020-04-02 13:03:25 +02:00
WANG Tsu-Han
a6e1b2a9f8 Merge branch 'develop' into NR_RRCConfiguration_trx_thread
Conflicts:
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2020-04-02 13:02:31 +02:00
frtabu
0518ced81f dft/idft in shared lib 2020-04-02 12:11:21 +02:00
Ahmed Hussein
9a857e4486 Adopting the dynamic implementation of DMRS at the gNB side
- Using the implemented DMRS functionalities at the MAC layer at the gNB side
  - Removing is_dmrs_symbol function
  - Temporary implemetation at the UE side considering DMRS symbol is at the 1st PUSCH symbol,
    until the nFAPI structs for DMRS is adopted at the UE side
2020-04-02 10:05:54 +02:00
adk
5f194af906 optimization and fixing PUSCH PTRS generation 2020-04-02 10:05:54 +02:00
adk
5e7d52d279 fix indentation 2020-04-02 10:05:54 +02:00
Gabriele Perrone
236b17ce81 cleanup of main*.py names and push of minor changes on main.py and html.py 2020-04-01 18:27:34 +02:00
Robert Schmidt
5420e74032 Efficient RB estimation through binary search 2020-04-01 11:13:58 +02:00
Robert Schmidt
8ffe5b4920 Rename UE_list_t to UE_info_t, UE_list_t separate struct
UE_list_t is now used as a separate list. It can be e.g. used in the
scheduler to mark groups of users. The original UE_list_t is renamed to
UE_info_t to reflect that it is a container for information about UEs.
2020-04-01 10:47:02 +02:00
Robert Schmidt
7c92456338 Remove DL Slicing-related variables 2020-04-01 10:38:47 +02:00
Robert Schmidt
fd6618dc1c Simplify preprocessor, retain functionality
* Simplify store_dlsch_buffer()
* Simplify assign_rbs_required()
* Simplify dlsch_scheduler_pre_processor_partitioning()
* Simplify dlsch_scheduler_pre_processor_accounting() and dlsch_scheduler_pre_processor_accounting_allocate()
* Simplify allocation printing

The original functions used in the fairRR scheduler have been moved to
eNB_scheduler_fairRR
2020-04-01 08:49:26 +02:00
Robert Schmidt
4462e2d710 Remove unused/broken code in preprocessor
* Remove MIMO_mode_indicator: it is simply not used ATM
* Remove min_rb_unit as parameter: function auto-detects
* Remove commented code
* Remove slice sharing/multiplexing: it is broken
* Remove UE sorting, add UE with add_new_ue() in MAC
  - UE sorting is useless overhead on every iteration, instead it should
    be governed by a scheduling algorithm (e.g., RR or PF)
  - The MAC keeps a UE list and automatically adds a UE
  - UE_list empty, set head to -1
* Remove slice_positioning: the slicing functionality is broken
* Remove unused/untested code
2020-04-01 08:49:26 +02:00
Robert Schmidt
8d3fa4dc22 Simplify dlsch_scheduler_pre_processor_reset()
The original reset() function used in fairRR has been moved to
eNB_scheduler_fairRR.c
2020-04-01 08:49:26 +02:00
Robert Schmidt
ff766786a8 Remove mbsfn_flag from schedule_ue_spec(), simplify pre_processor interface 2020-04-01 08:49:26 +02:00
Robert Schmidt
8e72b1364a Remove sf0 DC limitation 2020-04-01 08:49:26 +02:00
Robert Schmidt
cd480271af Remove everything related to TM5 in pre_processor 2020-04-01 08:49:26 +02:00
Robert Schmidt
99301f438f Call schedule_ue_spec() once for each CC 2020-04-01 08:49:26 +02:00
Robert Schmidt
81fb7628c5 get_min_rb_unit(): all channel bandwidths 2020-04-01 08:49:26 +02:00
Robert Schmidt
ffc4f464f5 Remove useless mac_proto.h include
When a header is changed, all including files need to be recompiled,
too. Thus, including a header needlessly all over the place drives
compile times up without any reason.
2020-04-01 08:49:26 +02:00
Robert Schmidt
1efd2b428b Remove useless MAC/defs.h file 2020-04-01 08:49:26 +02:00
Robert Schmidt
5e0d6253b8 Fix: search UE in ULSCH when handling UCI 2020-04-01 08:49:26 +02:00
frtabu
4649034b26 create dft shared lib 2020-03-31 12:10:48 +02:00
frtabu
296494ea4c create dft shared lib 2020-03-30 18:23:32 +02:00
Gabriele Perrone
f7c1a954b1 Merge branch 'develop_inria_ci_deployment_gp' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop_inria_ci_deployment_gp 2020-03-30 17:56:57 +02:00
Gabriele Perrone
ddfaa9af5e editorial on html.py 2020-03-30 17:47:08 +02:00
Gabriele Perrone
34694363e2 clean up the HSS termination procedure using the screen command 2020-03-30 17:34:23 +02:00
laurent
6bbf9011ba compilation ok 2020-03-24 19:16:13 +01:00
laurent
82e71acee6 merge develop 2020-03-24 18:58:53 +01:00
WANG Tsu-Han
669cc161f0 adding second_addr in config file 2020-03-24 11:22:17 +01:00
Florian Kaltenberger
c6d8d934c1 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into NR_RRCConfiguration_sync_source 2020-03-23 22:07:05 +01:00
Florian Kaltenberger
897ca561f5 adding time_source command line parameter and removing duplications of clock_source
ignoring command line paramters clock_source and time_source in lte-softmodem and harmonizing it with nr-softmodem
time_source and clock_source handled separately in usrp_lib.cpp
2020-03-23 17:45:48 +01:00
OAI Jenkins
e9c6872bb9 minor modifications during a lease on inria fit14 to keep on debugging main, html, ran.py etc. 2020-03-20 14:09:51 +01:00
Gabriele Perrone
6aa64bd286 to switch to develop 2020-03-17 08:24:13 +01:00
NCTU CS ISIP
689426e8c1 LDPC implement on Quadro p5000 2020-03-11 20:02:20 +08:00
laurent
99729391a3 merge develop, first version of 5g simple main() 2020-03-06 21:45:26 +01:00
NCTU CS ISIP
1f6dbb20fe LDPC implementation on GPU
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 19:12:31 +08:00
NCTU CS ISIP
fb30fc6aa5 GPU branch
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 18:36:33 +08:00
NCTU CS ISIP
0f011679c0 NCTU_CS_ISIP
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 17:42:52 +08:00
WANG Tsu-Han
5cdfcc4cb5 bugfix after merge 2020-03-05 19:24:40 +01:00
WANG Tsu-Han
e08b5c1c38 Merge branch 'trx_write_thread' into NR_RRCConfiguration_trx_thread
Conflicts:
	executables/nr-ru.c
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2020-03-05 18:31:21 +01:00
WANG Tsu-Han
cc4a0c742e adding debug message 2020-03-05 17:38:47 +01:00
Gabriele Perrone
9afdaf0244 pushing for debugging 2020-03-04 15:13:07 +01:00
laurent
756ac05e4d merge develop,fix basic sim and warnings 2020-03-04 13:32:03 +01:00
laurent
44167f0119 Fix phy simulators 2020-03-02 19:15:44 +01:00
laurent
7ad4efb37a fix warnings, reduce formating differences with develop branch 2020-03-02 17:39:44 +01:00
laurent
53db39b8a0 split 7.3 ready for merge 2020-03-02 15:41:21 +01:00
WANG Tsu-Han
bd672c5f0f renaming of variable 2020-02-26 14:47:24 +01:00
WANG Tsu-Han
d30a28c368 adding check for overflow, removing prints and parameter setting fix 2020-02-25 16:49:39 +01:00
WANG Tsu-Han
c2b3867f8a fix for not using pointer to stash 2020-02-25 15:16:18 +01:00
WANG Tsu-Han
61a24472db assertion removal and debuging message adding 2020-02-25 14:07:01 +01:00
laurent
3d15918c14 merge again with develop, compiles only 2020-02-22 14:19:18 +01:00
WANG Tsu-Han
d83c935e42 add trx write thread 2020-02-21 16:19:43 +01:00
Gabriele Perrone
ee7300f102 experiment of export of enb classes from main.py to enb.py 2020-02-13 15:11:48 +01:00
laurent
943802f2a1 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into merged4g5g 2020-02-06 11:02:07 +01:00
laurent
255d32389c real time ok in monolithic cases, phy test tools fixed 2020-02-06 11:01:54 +01:00
laurent
10b046f5b8 merge continue: take develop latest commits, fix compilation for test tools 2020-02-03 15:25:50 +01:00
laurent
4abaa55949 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into merged4g5g 2020-02-01 18:06:18 +01:00
laurent
8d9d80ee37 very big merge with merged develop, basic test done 2020-01-30 17:10:36 +01:00
Gabriele Perrone
9281156872 rework of the help from embedded Usage() function to external helpreadme.py file 2020-01-27 11:45:03 +01:00
Gabriele Perrone
3f546cb48a minor changes to epc.py, helpreadme.py, main.py to complete the export of EPC functions from main 2020-01-23 10:41:49 +01:00
Gabriele Perrone
5e8af1ade9 Merge remote-tracking branch 'origin/develop' into develop_inria_ci_deployment_gp 2020-01-21 14:24:32 +01:00
Gabriele Perrone
0235b8c0e7 CI: first draft of separating EPC functions
Signed-off-by: Gabriele Perrone <gabriele.perrone@openairinterface.org>
2020-01-21 13:50:44 +01:00
Gabriele Perrone
b104c26212 overwriting config file mnc with the proper mnc (93) 2020-01-14 15:25:21 +01:00
Gabriele Perrone
295dc07cb6 Merge remote-tracking branch 'origin/develop_inria_ci_deployment' into develop_inria_ci_deployment_gp 2020-01-14 15:13:05 +01:00
Gabriele Perrone
5d1f16c3e9 fix gitignore file 2020-01-14 14:54:53 +01:00
Gabriele Perrone
ec258105f6 Removed the old ssh commands from orignal implementaion location
FIx missing replacement
2020-01-14 14:52:57 +01:00
Gabriele Perrone
ba9786dfea review of modified main.py and sshconnection.py 2020-01-13 15:12:33 +01:00
Gabriele Perrone
8f476a9904 creating a file sshconnection.py with class SSHConnection (methods: open, command, close, copyin, copyout); and modifying main.py to import this file and call the SSHConnection class from the new file 2020-01-10 14:14:08 +01:00
Gabriele Perrone
4d57f1bda8 class name changed from SSH to CiTestObj 2020-01-07 14:43:49 +01:00
laurent
c8d28f5254 fix LimeSDR board API, merge develop 2019-12-23 15:38:36 +01:00
Gabriele Perrone
091be33b62 main.py mods: coloured rows between retries and variable cnt become an object (FailReportCnt) 2019-12-16 15:59:54 +01:00
projetstc
ae3a540f40 scope autoscale 2019-12-16 11:37:51 +01:00
laurent
f8f344d224 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into Remove-global 2019-12-12 10:39:10 +01:00
laurent
ed6559ffa9 add CU measurement: whole CPU active time per subframe 2019-12-12 10:37:53 +01:00
Gabriele Perrone
581e46f1d3 introduced a class object FailRepeatCnt in place of a static counter 2019-12-11 14:28:14 +01:00
Gabriele Perrone
28eb2d61bb fixing self.cnt to SSH.cnt mistake 2019-12-09 22:04:22 +01:00
Gabriele Perrone
75642c34c4 add a new main file for test with cnt changed into self.cnt 2019-12-09 15:36:44 +01:00
Gabriele Perrone
a1cb460a01 repeatCounts reading from command line instead than xml file 2019-12-09 14:46:59 +01:00
Gabriele Perrone
9b1846ea76 que beau fichier 2019-12-09 14:20:38 +01:00
laurent
8dedd093fb remove a forgotten test trace, re-indentation of modified source files 2019-12-06 18:41:30 +01:00
laurent
47abf562db add FS6 transport time measurement 2019-12-06 16:24:47 +01:00
Raphael Defosseux
0b8a25ee90 CI: finalizing offline the X2 handover scenario at inria --> to be tested
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-11-29 13:57:42 +01:00
Raphael Defosseux
f7a9226438 CI: add initial support to do X2 HO at Inria
Signed-off-by: Raphael Defosseux <raphael.defosseux@openairinterface.org>
2019-11-29 11:52:01 +01:00
laurent
08ea618067 fix important bug in CU, merge thread pool improvement and rf simulator improvements made initialy in 5G branch 2019-11-19 13:27:28 +01:00
Raymond Knopp
9133aeddc4 gtkw file 2019-11-12 20:03:21 +01:00
Raphael Defosseux
beda33b8f1 CI: fix UL iperf in distributed env
Signed-off-by: Raphael Defosseux <raphael.defosseux@openairinterface.org>
2019-11-11 20:15:27 +01:00
laurent
e8091083b0 restore ue compilation with ocp-softmodem, some RF simulator improvement 2019-11-04 16:11:09 +01:00
laurent
3ce5d40064 add comments in data structures, gcc warnings fixed 2019-10-31 20:49:42 +01:00
laurent
aa10676e90 parallel UL, split mode 2019-10-31 17:48:31 +01:00
laurent
13122a272e ul in parallel monolithic case, ul in parallel memory leak fix 2019-10-31 17:28:21 +01:00
laurent
f0759d6e61 dl in threadpool ok 2019-10-30 11:10:41 +01:00
laurent
63c023029a du in 2 threads, and fix UL in FS6 split 2019-10-26 11:28:46 +02:00
laurent
283fed9c4c du RX/Tx in parallel, controled by the thread pool 2019-10-21 14:59:16 +02:00
Laurent
4c646e8d57 try parallel du 2019-10-18 18:04:00 +02:00
Raphael Defosseux
b760012adf CI: fix in looping attach / ping / detach
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-10-18 16:48:40 +02:00
Laurent
90b9cbb81d remove global for frame/subframe, noS1 attach+ traffic ok, UE do not compile 2019-10-18 16:35:33 +02:00
Raphael Defosseux
6b52ac7d58 CI: looping on attach/ping/detach sequences
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-10-17 16:51:15 +02:00
Laurent
ae25c88372 flush traces 2019-10-17 16:38:08 +02:00
Laurent
03dda0d890 flush traces 2019-10-17 16:30:45 +02:00
Laurent
280e12ba4f flush traces 2019-10-17 16:03:39 +02:00
Laurent
24de1caad6 flush traces 2019-10-17 16:01:30 +02:00
Laurent
63f04fe72c flush traces 2019-10-17 15:52:41 +02:00
Laurent
282a60fd56 reset measurements after print 2019-10-17 15:29:20 +02:00
Laurent
80b89510b7 add cu and full loop measurements 2019-10-17 15:15:19 +02:00
Laurent
61041b4275 add du measurements 2019-10-17 15:04:20 +02:00
Laurent
2e08907513 Move split 6 to do rate matching (puncturing) in CU 2019-10-17 11:14:23 +02:00
Raphael Defosseux
93f6e2446b CI: increasing the repeat count since the 1st try will always fail
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-10-16 18:01:40 +02:00
Rakesh
666db5675d build fail fixes for nrUE 2019-10-14 21:02:22 +02:00
Rakesh
ebb86d437d Merge branch 'nr_fapi_for_push' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr_fapi_for_push 2019-10-14 19:26:24 +02:00
Rakesh
da524268c2 Adding VCD traces in gNB 2019-10-14 19:25:35 +02:00
laurent
708076f6ad documentation, bug in UDP timeout, merge develop 2019-10-11 16:43:50 +02:00
laurent
2fc6384642 first version with UL and DL traffic good throughput 2019-10-07 17:56:46 +02:00
laurent
18fb589b71 fixes: improves throughput 2019-10-07 13:21:01 +02:00
laurent
3321a35101 add DL packet compression 2019-10-02 16:22:47 +02:00
laurent
2aafa61712 fix multi blocks transport issue in fs6, and simulators related ul issue for rfsim 2019-09-29 18:00:07 +02:00
laurent
733d1292c6 small fixes 2019-09-25 08:28:02 +02:00
laurent
0e9c068aad merge develop, add example config file 2019-09-16 12:40:54 +02:00
laurent
839a7997d1 UE attach complete, added traces ulsch coding, remove temporary renaming 2019-08-29 19:22:46 +02:00
laurent
f112de54b1 fix -O3 issue; add FS6_REMOTE_IP to set distant CU or DU 2019-08-28 09:35:27 +02:00
laurent
f1b677f849 Remove useless differences with regular OAI, enhance the build to be compatible with regular binaries 2019-08-27 18:47:12 +02:00
laurent
43c07e401d fix SR report from UE->DU->CU, remain later failure in PUSCH allocation 2019-08-26 21:14:25 +02:00
laurent
1fe5ed6f3a changed terminology from/to split 2019-08-25 20:45:13 +02:00
laurent
55660e87ca RACH working, fails later during MME authentication 2019-08-25 20:32:57 +02:00
laurent
cb41822b42 ulsch turbo decode success, fails after now 2019-08-24 18:59:45 +02:00
laurent
d28419cfca usage of setAllfromTS in also monolitic version, RACH detected to the cu, several bugs fixed, still no attach complete 2019-08-24 16:28:55 +02:00
laurent
b907922014 SIB ok for UE, UE send RACH 2019-08-13 21:03:45 +02:00
laurent
9fb9ac5387 UE primary sync ok, DU upper layers disabled, UE DCI decoding nok (partial) 2019-08-12 21:32:46 +02:00
laurent
32e19dbbb7 removed all frame/subframe copies distributed update, replace by a single function 2019-08-09 08:10:36 +02:00
laurent
88d5739040 continue timestamp 2019-08-05 21:19:27 +02:00
ferrieux
ebb52e388b test mail, qui marche \! 2019-08-03 15:50:50 +02:00
laurent
43c2e779b1 Merge branch 'fs6' of http://open-cells.com/git/laurent/openair-systemx into fs6 2019-08-03 11:51:48 +02:00
laurent
0d58255905 test 2019-08-03 11:51:11 +02:00
ferrieux
9b8e103329 test mail 2019-08-02 21:49:09 +02:00
laurent
02c8b38b18 adding timestamp management 2019-08-02 11:08:09 +02:00
laurent
5a7cbde584 test mail 2019-08-01 12:23:38 +02:00
laurent
cd920b09eb test mail 2019-08-01 10:18:16 +00:00
laurent
75665ad0fc Create DL sub header 2019-08-01 10:45:25 +02:00
laurent
2af75f48f2 merge develop 2019-07-29 09:12:24 +02:00
laurent
e67081e749 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into fs6 2019-07-29 08:58:54 +02:00
laurent
9e4f59f8e5 add SystemX documentation 2019-07-29 08:58:40 +02:00
laurent
a9122624a1 progress fs6 uplink 2019-07-26 11:24:51 +02:00
laurent
94831547c7 add prach 2019-07-23 18:24:27 +02:00
laurent
c48609f9af merge develop (split pdsch/dlsch) 2019-07-18 15:10:20 +02:00
laurent
926cf580d4 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into fs6 2019-07-18 12:24:55 +02:00
laurent
8f3a5d455c continue coding DL 2019-07-16 20:50:31 +02:00
laurent
b8005ed09a more code 2019-07-15 20:09:56 +02:00
laurent
740a68bf6f Merge branch 'fs6' of http://open-cells.com/git/laurent/openair-systemx into fs6 2019-07-15 10:51:08 +02:00
laurent
a4300281ba Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into fs6 2019-07-15 10:42:39 +02:00
ferrieux
50aa4dcc58 test commit - just whitespace 2019-07-13 22:06:34 +02:00
laurent
6b662a3ed9 compiles 2019-07-12 17:25:52 +02:00
laurent
24e01ea29d merge develop 2019-07-08 11:48:15 +02:00
laurent
db85b23122 continue ocp-main.c 2019-07-05 16:27:28 +02:00
laurent
92442cece2 progress in main cleanup coding 2019-07-01 16:43:47 +02:00
laurent
217491cbbf progress in main cleanup coding 2019-07-01 15:46:38 +02:00
laurent
8493071bde merge develop 2019-06-25 13:45:11 +02:00
laurent
0ba0422df7 add simple main 2019-06-24 22:04:14 +02:00
laurent
9371c56934 merge branch origin/channel-simulation-in-rfsimulator 2019-06-18 09:00:05 +02:00
laurent
17d5bcd396 dev continue 2019-06-18 08:57:08 +02:00
laurent
7653b79f31 Merge remote-tracking branch 'origin/develop' into ocpgit/fs6 2019-06-13 10:51:39 +02:00
laurent
4bf5f598fb begining functional split 6 2019-06-02 16:59:32 +02:00
988 changed files with 150117 additions and 40076 deletions

8
.dockerignore Normal file
View File

@@ -0,0 +1,8 @@
*.log
cmake_targets/log/
cmake_targets/ran_build/
common/utils/T/T_IDs.h
common/utils/T/T_messages.txt.h
common/utils/T/genids
common/utils/T/genids.o
targets/bin/

6
.gitignore vendored
View File

@@ -12,3 +12,9 @@ targets/bin/
# vscode
.vscode
# Tags for vim/global
GPATH
GRTAGS
GTAGS
tags

View File

@@ -2,13 +2,12 @@
We want to make contributing to this project as easy and transparent as possible.
Please refer to the steps described on our website: [How to contribute to OAI](https://www.openairinterface.org/?page_id=112)
1. Sign and return a Contributor License Agreement to OAI team.
2. Create an account on [Eurecom GitLab Server](https://gitlab.eurecom.fr).
3. Provide the identifiant of this account to the OAI team (mailto:contact@openairinterface.org) so you have developer rights on this repository.
2. We recommend that you provide us with a professional or student email address
2. Register on [Eurecom GitLab Server](https://gitlab.eurecom.fr/users/sign_in)
3. Provide the OAI team with the **username** of this account to (mailto:contact@openairinterface.org) ; we will give you the developer rights on this repository.
4. The policies are described in these wiki pages: [OAI Policies](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/oai-policies-home)
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account. It just eats up space on our servers.
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account. It just eats up space on our servers.
- You can fork onto another hosting system. But we will NOT accept a merge request from a forked repository.
* This decision was made for the license reasons.
* The Continuous Integration will reject your merge request.

View File

@@ -4,7 +4,7 @@ For more details of the license, refer to [LICENSE](LICENSE) file in the same di
However, the source code also contains third party software that is acknowledged here for reference.
## Credits for LFDS user space source code located in folder openair2/UTILS/LFDS/liblfds6.1.1/ ##
## Credits for LFDS user space source code located in folder openair2/UTILS/LFDS/ ##
See on [liblfds website](https://liblfds.org/) the license section.
@@ -21,3 +21,7 @@ The Regents of the University of California: BSD 3-Clause Licence.
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.
## Credits for source code openair3/GTPV1-U/nw-gtpv1u: ##
Amit Chawre <http://www.amitchawre.net/contact.html>: BSD 2-Clause Licence.

View File

@@ -1,3 +1,4 @@
r*.raw
enb_*.log
ue_*.log
ping_*.*
@@ -5,3 +6,5 @@ iperf_*.*
phones_list.txt
modules_list.txt
test_results*.html
pMain*
__pycache__

View File

@@ -30,12 +30,14 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def doRedHatBuild = false
def doFlexranCtrlTest = false
// Location of the executor node
def nodeExecutor = params.nodeExecutor
// VM Lockable resources
def vmResource = params.vmLockableResource
pipeline {
agent {
label nodeExecutor
@@ -66,7 +68,8 @@ pipeline {
"Test-IF4p5-TDD-Band38-Multi-RRU",
"Test-eNB-OAI-UE-FDD-Band7",
"Test-Mono-FDD-Band13-X2-HO",
"Test-TDD-Band78-gNB-NR-UE"
"Test-TDD-Band78-gNB-NR-UE",
"Test-OCP-FDD-Band7"
])
ansiColor('xterm')
}
@@ -84,21 +87,6 @@ pipeline {
echo "Platform is ${env.TESTPLATFORM_OWNER}"
}
if (params.RedHatRemoteServer == null) {
allParametersPresent = false
}
if (params.RedHatRemoteCredentials == null) {
allParametersPresent = false
}
if (params.RedHatWorkingPath == null) {
allParametersPresent = false
}
if (allParametersPresent) {
echo "Performing Red Hat Build"
doRedHatBuild = true
} else {
doRedHatBuild = false
}
if (params.FlexRanRtcGitLabRepository_Credentials != null) {
doFlexranCtrlTest = true
}
@@ -174,65 +162,81 @@ pipeline {
stage ("Start VM -- basic-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- gnb-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- nr-ue-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- enb-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
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 {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- ue-ethernet") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- cppcheck") {
steps {
timeout (time: 5, unit: 'MINUTES') {
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"
}
}
}
}
@@ -278,7 +282,7 @@ pipeline {
steps {
gitlabCommitStatus(name: "Build eNB-USRP") {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
@@ -303,33 +307,14 @@ pipeline {
}
stage ("Build UE-ethernet") {
steps {
// This is typically the last one to finish.
lock (vmResource) {
gitlabCommitStatus(name: "Build UE-ethernet") {
timeout (time: 20, 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"
}
}
}
}
stage ("Build eNB-USRP on Red Hat") {
when {
expression {doRedHatBuild}
}
steps {
gitlabCommitStatus(name: "Build eNB-USRP-RHE") {
script {
try {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.RedHatRemoteCredentials}", usernameVariable: 'RH_Username', passwordVariable: 'RH_Password']
]) {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}"
}
}
} catch (Exception e) {
echo "Red Hat build failed but we could keep running pipeline if all ubuntu-based build passed"
}
}
}
}
}
}
}
@@ -391,6 +376,7 @@ pipeline {
stages {
stage ("Test physical simulators") {
steps {
lock (vmResource) {
script {
timeout (time: 90, unit: 'MINUTES') {
try {
@@ -402,6 +388,7 @@ pipeline {
}
}
}
}
}
}
stage ("Build Flexran Controller") {
@@ -409,6 +396,7 @@ pipeline {
expression {doFlexranCtrlTest}
}
steps {
lock (vmResource) {
script {
timeout (time: 20, unit: 'MINUTES') {
try {
@@ -418,10 +406,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test basic simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -433,10 +423,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test L1 simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -448,12 +440,14 @@ pipeline {
}
}
}
}
}
}
stage ("Test RF simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 40, unit: 'MINUTES') {
try {
gitlabCommitStatus(name: "Test RF-sim") {
sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant rf-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
@@ -463,10 +457,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test L2 simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -478,11 +474,14 @@ pipeline {
}
}
}
}
}
}
stage ("Destroy all Virtual Machines") {
steps {
lock (vmResource) {
sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
@@ -683,6 +682,25 @@ pipeline {
}
}
}
stage ("Test OAI OCP-eNB - FDD - Band 7 - B210") {
steps {
script {
triggerSlaveJob ('OCPeNB-FDD-Band7-B210', 'Test-OCP-FDD-Band7')
}
}
post {
always {
script {
finalizeSlaveJob('OCPeNB-FDD-Band7-B210')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
}
post {
always {

View File

@@ -62,6 +62,7 @@ def r2labUE0IpAddr = r2labBaseIpAddr + r2labUE0Idx
def r2labENB1Idx = '16'
def r2labENB1 = 'fit' + r2labENB1Idx
def r2labENB1IpAddr = r2labBaseIpAddr + r2labENB1Idx
def r2labDoAllOff = true
pipeline {
agent {
@@ -136,19 +137,49 @@ pipeline {
sh "python3 /home/eurecom/inria-scripts/booking-lease.py --book-lease --from ${BOOK_TIMESTAMP}T${r2labStartTime} --duration ${r2labDuration} --slice inria_oaici ${r2labuser} ${r2labpassword}"
sh "python3 /home/eurecom/inria-scripts/booking-lease.py --get-leases ${r2labuser} ${r2labpassword} | grep -v nightly"
}
// Adding a tempo after booking leases
sh "sleep 10"
LEASE_STATUS = sh returnStdout: true, script: "ssh -t inria_oaici@faraday.inria.fr 'rleases --check'"
LEASE_STATUS = LEASE_STATUS.trim()
if (LEASE_STATUS ==~ /.*Access currently denied to inria_oaici.*/) {
r2labDoAllOff = false
currentBuild.result = 'ABORTED'
error('Stopping early because R2LAB not available')
}
}
}
}
stage ("Load Images") {
steps {
script {
sh "ssh -t inria_oaici@faraday.inria.fr 'all-off'"
sh "sleep 10"
echo '\u2705 \u001B[32mLoad Image for Python Executor\u001B[0m'
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labPythonExeIdx} > /dev/null 2>&1'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labPythonExeIdx}'"
try {
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labPythonExeIdx} > /dev/null 2>&1'"
} catch (Exception e) {
echo "Why is it wrong?"
}
try {
//sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labPythonExeIdx}'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait ${r2labPythonExeIdx}'"
} catch (Exception e) {
echo "Why is it wrong?"
}
echo '\u2705 \u001B[32mLoad Image for two (2) eNBs\u001B[0m'
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labENB0Idx},${r2labENB1Idx} > /dev/null 2>&1'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labENB0Idx},${r2labENB1Idx}'"
try {
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labENB0Idx},${r2labENB1Idx} > /dev/null 2>&1'"
} catch (Exception e) {
echo "Why is it wrong?"
}
try {
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labENB0Idx},${r2labENB1Idx}'"
} catch (Exception e) {
echo "Why is it wrong?"
}
sh "ssh -t inria_oaici@faraday.inria.fr 'uon ${r2labENB0Idx},${r2labENB1Idx}'"
sh "sleep 5"
sh "ssh -t inria_oaici@faraday.inria.fr 'uon ${r2labENB0Idx},${r2labENB1Idx}'"
@@ -415,9 +446,11 @@ pipeline {
post {
always {
script {
echo '\u2705 \u001B[32mShutdown every node\u001B[0m'
sh 'ssh -t inria_oaici@faraday.inria.fr "all-off"'
sh 'ssh -t inria_oaici@faraday.inria.fr "all-off"'
if (r2labDoAllOff) {
echo '\u2705 \u001B[32mShutdown every node\u001B[0m'
sh 'ssh -t inria_oaici@faraday.inria.fr "all-off"'
sh 'ssh -t inria_oaici@faraday.inria.fr "all-off"'
}
}
}
}

View File

@@ -266,6 +266,42 @@ pipeline {
}
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 (OAI UE - Build)') {
steps {
echo '\u2705 \u001B[32mLog Collection (OAI UE - Build)\u001B[0m'
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password']
]) {
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath}"
echo '\u2705 \u001B[32mLog Transfer (UE - Build)\u001B[0m'
sh "sshpass -p \'${UE_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${UE_Username}@${params.UE_IPAddress}:${UE_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([

229
ci-scripts/args_parse.py Normal file
View File

@@ -0,0 +1,229 @@
# * 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 Libs
#-----------------------------------------------------------
import sys # arg
import re # reg
import yaml
import constants as CONST
#-----------------------------------------------------------
# Parsing Command Line Arguements
#-----------------------------------------------------------
def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,HELP):
py_param_file_present = False
py_params={}
while len(argvs) > 1:
myArgv = argvs.pop(1) # 0th is this file's name
#--help
if re.match('^\-\-help$', myArgv, re.IGNORECASE):
HELP.GenericHelp(CONST.Version)
sys.exit(0)
#--apply=<filename> as parameters file, to replace inline parameters
elif re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE)
py_params_file = matchReg.group(1)
with open(py_params_file,'r') as file:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python dictionary format
py_params = yaml.load(file,Loader=yaml.FullLoader)
py_param_file_present = True #to be removed once validated
#AssignParams(py_params) #to be uncommented once validated
#consider inline parameters
elif re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE)
mode = matchReg.group(1)
elif re.match('^\-\-eNBRepository=(.+)$|^\-\-ranRepository(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ranRepository = matchReg.group(1)
RAN.ranRepository=matchReg.group(1)
HTML.ranRepository=matchReg.group(1)
ldpc.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)
else:
matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE)
doMerge = matchReg.group(1)
ldpc.ranAllowMerge=matchReg.group(1)
if ((doMerge == 'true') or (doMerge == 'True')):
CiTestObj.ranAllowMerge = True
RAN.ranAllowMerge=True
HTML.ranAllowMerge=True
elif re.match('^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ranBranch = matchReg.group(1)
RAN.ranBranch=matchReg.group(1)
HTML.ranBranch=matchReg.group(1)
ldpc.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)
else:
matchReg = re.match('^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE)
CiTestObj.ranCommitID = matchReg.group(1)
RAN.ranCommitID=matchReg.group(1)
HTML.ranCommitID=matchReg.group(1)
ldpc.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)
else:
matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
CiTestObj.ranTargetBranch = matchReg.group(1)
RAN.ranTargetBranch=matchReg.group(1)
HTML.ranTargetBranch=matchReg.group(1)
ldpc.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)
elif re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1IPAddress=matchReg.group(1)
elif re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2IPAddress=matchReg.group(1)
elif re.match('^\-\-eNBUserName=(.+)$|^\-\-eNB[1-2]UserName=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBUserName=matchReg.group(1)
ldpc.eNBUserName=matchReg.group(1)
elif re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1UserName=matchReg.group(1)
elif re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2UserName=matchReg.group(1)
elif re.match('^\-\-eNBPassword=(.+)$|^\-\-eNB[1-2]Password=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBPassword=matchReg.group(1)
ldpc.eNBPassWord=matchReg.group(1)
elif re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1Password=matchReg.group(1)
elif re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2Password=matchReg.group(1)
elif re.match('^\-\-eNBSourceCodePath=(.+)$|^\-\-eNB[1-2]SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBSourceCodePath=matchReg.group(1)
ldpc.eNBSourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1SourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2SourceCodePath=matchReg.group(1)
elif re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE)
EPC.IPAddress=matchReg.group(1)
elif re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE)
EPC.UserName=matchReg.group(1)
elif re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE)
EPC.Password=matchReg.group(1)
elif re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
EPC.SourceCodePath=matchReg.group(1)
elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE)
if re.match('OAI', matchReg.group(1), re.IGNORECASE) or re.match('ltebox', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-CUPS', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-Docker', matchReg.group(1), re.IGNORECASE):
EPC.Type=matchReg.group(1)
else:
sys.exit('Invalid EPC Type: ' + matchReg.group(1) + ' -- (should be OAI or ltebox or OAI-Rel14-CUPS or OAI-Rel14-Docker)')
elif re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE)
EPC.ContainerPrefix=matchReg.group(1)
elif re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBIPAddress = matchReg.group(1)
elif re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBUserName = matchReg.group(1)
elif re.match('^\-\-ADBType=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBType=(.+)$', myArgv, re.IGNORECASE)
if re.match('centralized', matchReg.group(1), re.IGNORECASE) or re.match('distributed', matchReg.group(1), re.IGNORECASE):
if re.match('distributed', matchReg.group(1), re.IGNORECASE):
CiTestObj.ADBCentralized = False
else:
CiTestObj.ADBCentralized = True
else:
sys.exit('Invalid ADB Type: ' + matchReg.group(1) + ' -- (should be centralized or distributed)')
elif re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBPassword = matchReg.group(1)
elif re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.testXMLfiles.append(matchReg.group(1))
HTML.testXMLfiles.append(matchReg.group(1))
HTML.nbTestXMLfiles=HTML.nbTestXMLfiles+1
elif re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEIPAddress = matchReg.group(1)
elif re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEUserName = matchReg.group(1)
elif re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEPassword = matchReg.group(1)
elif re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UESourceCodePath = matchReg.group(1)
elif re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE)
finalStatus = matchReg.group(1)
if ((finalStatus == 'true') or (finalStatus == 'True')):
CiTestObj.finalStatus = True
else:
HELP.GenericHelp(CONST.Version)
sys.exit('Invalid Parameter: ' + myArgv)
return py_param_file_present, py_params, mode

View File

@@ -110,7 +110,7 @@ MODIFIED_FILES=`git log $TARGET_INIT_COMMIT..$MERGE_COMMMIT --oneline --name-sta
NB_WARNINGS_FILES=0
# Retrieve list of warnings
LIST_WARNING_FILES=`egrep "error:|warning:" archives/*/*.Rel15.txt archives/*/basic_simulator_*txt | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | sed -e "s#^.*/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" -e "s#common/utils/.*/itti#common/utils/itti#" | awk -F ":" '{print $1}' | sort | uniq`
LIST_WARNING_FILES=`egrep "error:|warning:" archives/*/*.Rel15.txt | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | sed -e "s#^.*/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" -e "s#common/utils/.*/itti#common/utils/itti#" | awk -F ":" '{print $1}' | sort | uniq`
echo ""
echo "List of files that have been modified by the Merge Request AND"

View File

@@ -59,9 +59,33 @@ if [ $# -eq 0 ]
then
echo " ---- Checking the whole repository ----"
echo ""
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted `
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted || true`
echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT"
echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt
# Testing Circular Dependencies protection
awk '/#[ \t]*ifndef/ { gsub("^.*ifndef *",""); if (names[$1]!="") print "files with same {define ", FILENAME, names[$1]; names[$1]=FILENAME } /#[ \t]*define/ { gsub("^.*define *",""); if(names[$1]!=FILENAME) print "error in declaration", FILENAME, $1, names[$1]; nextfile }' `find openair* common targets executables -name *.h |grep -v LFDS` > header-files-w-incorrect-define.txt
# Testing if explicit GNU GPL license banner
egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "General Public License" . | egrep -v "openair3/NAS/COMMON/milenage.h" > files-w-gnu-gpl-license-banner.txt
# Looking at exotic/suspect banner
LIST_OF_FILES_W_BANNER=`egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "Copyright|copyleft" .`
if [ -f ./files-w-suspect-banner.txt ]; then rm -f ./files-w-suspect-banner.txt; fi
for FILE in $LIST_OF_FILES_W_BANNER
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`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
then
echo $FILE >> ./files-w-suspect-banner.txt
fi
fi
done
exit 0
fi
@@ -131,21 +155,66 @@ if [ -f oai_rules_result_list.txt ]
then
rm -f oai_rules_result_list.txt
fi
if [ -f header-files-w-incorrect-define.txt ]
then
rm -f header-files-w-incorrect-define.txt
fi
if [ -f files-w-gnu-gpl-license-banner.txt ]
then
rm -f files-w-gnu-gpl-license-banner.txt
fi
if [ -f files-w-suspect-banner.txt ]
then
rm -f files-w-suspect-banner.txt
fi
awk '/#[ \t]*ifndef/ { gsub("^.*ifndef *",""); if (names[$1]!="") print "files with same {define ", FILENAME, names[$1]; names[$1]=FILENAME } /#[ \t]*define/ { gsub("^.*define *",""); if(names[$1]!=FILENAME) print "error in declaration", FILENAME, $1, names[$1]; nextfile }' `find openair* common targets executables -name *.h |grep -v LFDS` > header-files-w-incorrect-define-tmp.txt
for FULLFILE in $MODIFIED_FILES
do
# sometimes, we remove files
if [ ! -f $FULLFILE ]; then continue; fi
filename=$(basename -- "$FULLFILE")
EXT="${filename##*.}"
if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ]
then
TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted `
TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted || true`
NB_TO_FORMAT=$((NB_TO_FORMAT + TO_FORMAT))
if [ $TO_FORMAT -ne 0 ]
then
echo $FULLFILE
echo $FULLFILE >> ./oai_rules_result_list.txt
fi
# Testing if explicit GNU GPL license banner
GNU_EXCEPTION=`echo $FULLFILE | egrep -c "openair3/NAS/COMMON/milenage.h" || true`
if [ $GNU_EXCEPTION -eq 0 ]
then
egrep -il "General Public License" $FULLFILE >> files-w-gnu-gpl-license-banner.txt
fi
# Looking at exotic/suspect banner
IS_BANNER=`egrep -i -c "Copyright|copyleft" $FULLFILE || true`
if [ $IS_BANNER -ne 0 ]
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`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
then
echo $FULLFILE >> ./files-w-suspect-banner.txt
fi
fi
fi
fi
# Testing Circular Dependencies protection
if [ $EXT = "h" ] || [ $EXT = "hpp" ]
then
grep $FULLFILE header-files-w-incorrect-define-tmp.txt >> header-files-w-incorrect-define.txt
fi
done
rm -f header-files-w-incorrect-define-tmp.txt
echo ""
echo " ----------------------------------------------------------"
echo "Nb Files that do NOT follow OAI rules: $NB_TO_FORMAT"

138
ci-scripts/cls_cots_ue.py Normal file
View File

@@ -0,0 +1,138 @@
# * 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 isfile
import os
import sys
#to use logging.info()
import logging
#to create a SSH object locally in the methods
import sshconnection
#time.sleep
import time
#to load cots_ue dictionary
import yaml
class CotsUe:
def __init__(self,ADBIPAddr,ADBUserName,ADBPassWord):
self.cots_id = '' #cots id from yaml oppo, s10 etc...
self.ADBIPAddr = ADBIPAddr
self.ADBUserName = ADBUserName
self.ADBPassWord = ADBPassWord
self.cots_run_mode = '' #on of off to toggle airplane mode on/off
self.__cots_cde_dict_file = 'cots_ue_ctl.yaml'
self.__SetAirplaneRetry = 3
#-----------------$
#PUBLIC Methods$
#-----------------$
def Check_Airplane(self):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
status=mySSH.cde_check_value('adb shell settings get global airplane_mode_on ', ['0','1'],5)
mySSH.close()
return status
#simply check if the device id exists in the dictionary
#returns true if it exists, false otherwise
def Check_Exists(self,target_id):
#load cots commands dictionary
if (os.path.isfile(self.__cots_cde_dict_file)):
yaml_file=self.__cots_cde_dict_file
elif (os.path.isfile('ci-scripts/'+self.__cots_cde_dict_file)):
yaml_file='ci-scripts/'+self.__cots_cde_dict_file
else:
logging.error("COTS UE dictionary yaml file cannot be found")
sys.exit("COTS UE dictionary yaml file cannot be found")
#load cots commands dictionary
with open(yaml_file,'r') as file:
cots_ue_ctl = yaml.load(file,Loader=yaml.FullLoader)
#check if ue id is in the dictionary
if target_id in cots_ue_ctl:
return True
else:
return False
def Set_Airplane(self, target_id, target_state_str):
#loading cots commands dictionary
if (os.path.isfile(self.__cots_cde_dict_file)):
yaml_file=self.__cots_cde_dict_file
elif (os.path.isfile('ci-scripts/'+self.__cots_cde_dict_file)):
yaml_file='ci-scripts/'+self.__cots_cde_dict_file
else:
logging.error("COTS UE dictionary yaml file cannot be found")
sys.exit("COTS UE dictionary yaml file cannot be found")
#load cots commands dictionary
with open(yaml_file,'r') as file:
cots_ue_ctl = yaml.load(file,Loader=yaml.FullLoader)
#check if ue id is in the dictionary
if target_id in cots_ue_ctl:
mySSH = sshconnection.SSHConnection()
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
logging.info(str(self.ADBIPAddr)+' '+str(self.ADBUserName)+' '+str(self.ADBPassWord))
mySSH.command('adb start-server','\$',5)
mySSH.command('adb devices','\$',5)
logging.info("Toggling COTS UE Airplane mode to : "+target_state_str)
#get current state
current_state = self.Check_Airplane()
if target_state_str.lower()=="on":
target_state=1
else:
target_state=0
if current_state != target_state:
#toggle state
retry = 0
while (current_state!=target_state) and (retry < self.__SetAirplaneRetry):
#loop over the command list from dictionary for the selected ue, to switch to required state
for i in range (0,len(cots_ue_ctl[target_id])):
mySSH.command(cots_ue_ctl[target_id][i], '\$', 5)
time.sleep(1)
current_state = self.Check_Airplane()
retry+=1
#could not toggle despite the retry
if current_state != target_state:
logging.error("ATTENTION : Could not toggle to : "+target_state_str)
logging.error("Current state is : "+ str(current_state))
else:
logging.info("Airplane mode is already "+ target_state_str)
mySSH.command('adb kill-server','\$',5)
mySSH.close()
#ue id is NOT in the dictionary
else:
logging.error("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)
sys.exit("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)

3188
ci-scripts/cls_oaicitest.py Normal file

File diff suppressed because it is too large Load Diff

191
ci-scripts/cls_physim.py Normal file
View File

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

View File

@@ -184,6 +184,8 @@ eNBs =
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -367,6 +367,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -105,6 +105,7 @@ eNBs =
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "DISABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -105,6 +105,8 @@ eNBs =
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "DISABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
@@ -187,6 +189,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
///M2
target_mce_m2_ip_address = ( { ipv4 = "127.0.0.7";
@@ -247,7 +251,6 @@ MCEs = (
);
NETWORK_INTERFACES :
{
MCE_INTERFACE_NAME_FOR_M2_ENB = "lo";
@@ -271,12 +274,12 @@ MCEs = (
mcch_update_time = 10;
mbms_area_config_list = (
{
common_sf_allocation_period = 2; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
common_sf_allocation_period = 1; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
mbms_area_id = 0;
pmch_config_list = (
{
allocated_sf_end=64;
data_mcs=10;
allocated_sf_end=40;
data_mcs=20;
mch_scheduling_period = 0; #rf8(0)
mbms_session_list = (
{
@@ -288,7 +291,7 @@ MCEs = (
mnc_length = 2;
}
service_id=0;
lcid=8; #this must be properly defined lcid:8+service:0 -> rab_id:8
lcid=5; #this must be properly defined lcid:8+service:0 -> rab_id:5 //with new RLC set lcid either 4 or 5
}
);
}
@@ -296,10 +299,10 @@ MCEs = (
mbms_sf_config_list = (
{
radioframe_allocation_period=1; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_allocation_period=0; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_alloocation_offset=0;
num_frame="oneFrame";
subframe_allocation=57; #xx100000
subframe_allocation=59; #xx111011 #57; #xx111001
//num_frame="fourFrame";
//subframe_allocation=14548987; #
}

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -145,6 +145,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -184,6 +184,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "CI_RCC_IP_ADDR";
ipv6 = "192:168:30::17";

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -192,6 +192,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -0,0 +1,288 @@
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
# real_time choice in {hard, rt-preempt, no}
real_time = "no";
////////// Identification parameters:
eNB_ID = 0xe01;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1;
plmn_list = (
{ mcc = 222; mnc = 01; mnc_length = 2; }
);
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
nb_antenna_ports = 1;
ue_TransmissionMode = 1;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2680000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
prach_root = 0;
tx_gain = 90;
rx_gain = 115;
pbch_repetition = "FALSE";
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/*
srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;
*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -96;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
rxPool_sc_Period = "sf40";
rxPool_data_CP_Len = "normal";
rxPool_ResourceConfig_prb_Num = 20;
rxPool_ResourceConfig_prb_Start = 5;
rxPool_ResourceConfig_prb_End = 44;
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
rxPool_ResourceConfig_offsetIndicator_choice = 0;
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
/*
rxPool_dataHoppingConfig_hoppingParameter = 0;
rxPool_dataHoppingConfig_numSubbands = "ns1";
rxPool_dataHoppingConfig_rbOffset = 0;
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
*/
// Parameters for SIB19
discRxPool_cp_Len = "normal"
discRxPool_discPeriod = "rf32"
discRxPool_numRetx = 1;
discRxPool_numRepetition = 2;
discRxPool_ResourceConfig_prb_Num = 5;
discRxPool_ResourceConfig_prb_Start = 3;
discRxPool_ResourceConfig_prb_End = 21;
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
//SSB central frequency of NR secondary cell group (for ENDC NSA)
nr_scg_ssb_freq = 641272;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
enable_measurement_reports = "yes";
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
///X2
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
ENB_PORT_FOR_X2C = 36422; # Spec 36422
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="high";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="debug";
rlc_log_verbosity ="high";
pdcp_log_level ="info";
pdcp_log_verbosity ="high";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
phy_test_mode = 0;
puSch10xSnr = 160;
puCch10xSnr = 160;
}
);
THREAD_STRUCT = (
{
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
worker_config = "ENABLE";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 118;
eNB_instances = [0];
clock_src = "external";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="high";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="high";
pdcp_log_level ="info";
pdcp_log_verbosity ="high";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -183,6 +183,8 @@ eNBs =
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "CI_RCC_IP_ADDR";
ipv6 = "192:168:30::17";

View File

@@ -45,8 +45,8 @@ gNBs =
dl_carrierBandwidth = 106;
#initialDownlinkBWP
#genericParameters
# this is RBstart=0,L=50 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 13475;
# this is RBstart=41,L=24 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 6366;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
@@ -59,7 +59,7 @@ gNBs =
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=2,L=3
#this is SS=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
@@ -71,6 +71,12 @@ gNBs =
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=5
initialDLBWPstartSymbolAndLength_3 = 57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
@@ -83,7 +89,7 @@ gNBs =
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 13475;
initialULBWPlocationAndBandwidth = 6366;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
@@ -105,8 +111,8 @@ gNBs =
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 4;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#0=oneeighth,1=onefourth,2=half,3=one,4=two,5=four,6=eight,7=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
@@ -114,8 +120,8 @@ gNBs =
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#0 = 839, 1 = 139
prach_RootSequenceIndex_PR = 1;
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 2;
prach_RootSequenceIndex = 1;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
@@ -125,16 +131,20 @@ gNBs =
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig = 0,
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0 = 2;
initialULBWPk2_0 = 6;
initialULBWPmappingType_0 = 1
# this is SS=0 L=11
initialULBWPstartSymbolAndLength_0 = 55;
initialULBWPk2_1 = 2;
initialULBWPk2_1 = 6;
initialULBWPmappingType_1 = 1;
# this is SS=0 L=12
initialULBWPstartSymbolAndLength_1 = 69;
initialULBWPk2_2 = 7;
initialULBWPmappingType_2 = 1;
# this is SS=10 L=4
initialULBWPstartSymbolAndLength_2 = 52;
msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90;
@@ -235,9 +245,11 @@ RUs = (
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
max_rxgain = 75;
eNB_instances = [0];
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
#beamforming 1x4 matrix:
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
clock_src = "external";
}
);

View File

@@ -0,0 +1,296 @@
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
gNBs =
(
{
////////// Identification parameters:
gNB_ID = 0xe00;
cell_type = "CELL_MACRO_GNB";
gNB_name = "gNB-Eurecom-5GNRBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1;
plmn_list = ({mcc = 222; mnc = 01; mnc_length = 2;});
tr_s_preference = "local_mac"
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
pdsch_AntennaPorts = 1;
servingCellConfigCommon = (
{
#spCellConfigCommon
physCellId = 0;
# downlinkConfigCommon
#frequencyInfoDL
# this is 3600 MHz + 84 PRBs@30kHz SCS (same as initial BWP)
absoluteFrequencySSB = 641272; //641032; #641968; 641968=start of ssb at 3600MHz + 82 RBs 641032=center of SSB at center of cell
dl_frequencyBand = 78;
# this is 3600 MHz
dl_absoluteFrequencyPointA = 640000;
#scs-SpecificCarrierList
dl_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing = 1;
dl_carrierBandwidth = 106;
#initialDownlinkBWP
#genericParameters
# this is RBstart=84,L=13 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero = 0;
initialDLBWPsearchSpaceZero = 0;
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0 = 0;
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
initialDLBWPmappingType_1 = 0;
#this is SS=2,L=12
initialDLBWPstartSymbolAndLength_1 = 53;
initialDLBWPk0_2 = 0;
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=4 //5 (4 is for 43, 5 is for 57)
initialDLBWPstartSymbolAndLength_3 = 57; //43; //57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
#scs-SpecificCarrierList
ul_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing = 1;
ul_carrierBandwidth = 106;
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
#rach-ConfigCommon
#rach-ConfigGeneric
prach_ConfigurationIndex = 98;
#prach_msg1_FDM
#0 = one, 1=two, 2=four, 3=eight
prach_msg1_FDM = 0;
prach_msg1_FrequencyStart = 0;
zeroCorrelationZoneConfig = 13;
preambleReceivedTargetPower = -100;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax = 6;
#powerRampingStep
# 0=dB0,1=dB2,2=dB4,3=dB6
powerRampingStep = 1;
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 5;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; //15;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 2;
prach_RootSequenceIndex = 1;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
msg1_SubcarrierSpacing = 1,
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig = 0,
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0 = 2;
initialULBWPmappingType_0 = 1
# this is SS=0 L=11
initialULBWPstartSymbolAndLength_0 = 55;
initialULBWPk2_1 = 2;
initialULBWPmappingType_1 = 1;
# this is SS=0 L=12
initialULBWPstartSymbolAndLength_1 = 69;
initialULBWPk2_2 = 7;
initialULBWPmappingType_2 = 1;
# this is SS=10 L=4
initialULBWPstartSymbolAndLength_2 = 52;
msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90;
# pucch-ConfigCommon setup :
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping = 0;
hoppingId = 40;
p0_nominal = -90;
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR = 2;
ssb_PositionsInBurst_Bitmap = 1; #0x80;
# ssb_periodicityServingCell
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
ssb_periodicityServingCell = 2;
# dmrs_TypeA_position
# 0 = pos2, 1 = pos3
dmrs_TypeA_Position = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing = 1;
#tdd-UL-DL-ConfigurationCommon
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
referenceSubcarrierSpacing = 1;
# pattern1
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity = 6;
nrofDownlinkSlots = 7; //8; //7;
nrofDownlinkSymbols = 6; //0; //6;
nrofUplinkSlots = 2;
nrofUplinkSymbols = 4; //0; //4;
ssPBCH_BlockPower = -25;
}
);
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
///X2
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "CI_FR1_CTL_ENB_IP_ADDR";
ipv6 = "192:168:30::17";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
GNB_IPV4_ADDRESS_FOR_S1_MME = "CI_GNB_IP_ADDR";
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
GNB_IPV4_ADDRESS_FOR_S1U = "CI_GNB_IP_ADDR";
GNB_PORT_FOR_S1U = 2152; # Spec 2152
GNB_IPV4_ADDRESS_FOR_X2C = "CI_GNB_IP_ADDR";
GNB_PORT_FOR_X2C = 36422; # Spec 36422
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
eNB_instances = [0];
clock_src = "external";
}
);
THREAD_STRUCT = (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
//parallel_config = "PARALLEL_SINGLE_THREAD";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_ENABLE";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
uicc: {
opc = "testopc";
};

View File

@@ -184,6 +184,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -0,0 +1,428 @@
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1;
plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2; } );
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "3GPP_eNODEB";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2680000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
pbch_repetition = "FALSE";
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -27;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "ENABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
rxPool_sc_Period = "sf40";
rxPool_data_CP_Len = "normal";
rxPool_ResourceConfig_prb_Num = 20;
rxPool_ResourceConfig_prb_Start = 5;
rxPool_ResourceConfig_prb_End = 44;
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
rxPool_ResourceConfig_offsetIndicator_choice = 0;
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
rxPool_dataHoppingConfig_numSubbands = "ns1";
rxPool_dataHoppingConfig_rbOffset = 0;
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
*/
// Parameters for SIB19
discRxPool_cp_Len = "normal"
discRxPool_discPeriod = "rf32"
discRxPool_numRetx = 1;
discRxPool_numRepetition = 2;
discRxPool_ResourceConfig_prb_Num = 5;
discRxPool_ResourceConfig_prb_Start = 3;
discRxPool_ResourceConfig_prb_End = 21;
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
enable_measurement_reports = "no";
///X2
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:
target_mce_m2_ip_address = ( { ipv4 = "127.0.0.7";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
///M2
enable_enb_m2 = "yes";
mbms_configuration_data_list = (
{
mbsfn_sync_area = 0x0001;
mbms_service_area_list=(
{
mbms_service_area=0x0001;
}
);
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
ENB_PORT_FOR_X2C = 36422; # Spec 36422
ENB_IPV4_ADDRESS_FOR_M2C = "127.0.0.2/24";
ENB_PORT_FOR_M2C = 36443; # Spec 36443
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
phy_test_mode = 0;
puSch10xSnr = 200;
puCch10xSnr = 200;
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
MCEs = (
{
MCE_ID = 0xe00;
MCE_name = "MCE-Vicomtech-LTEBox";
//M2
enable_mce_m2 = "yes";
//M3
enable_mce_m3 = "yes";
target_mme_m3_ip_address = ( { ipv4 = "127.0.0.18";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
MCE_INTERFACE_NAME_FOR_M2_ENB = "lo";
MCE_IPV4_ADDRESS_FOR_M2C = "127.0.0.7/24";
MCE_PORT_FOR_M2C = 36443; # Spec 36443
MCE_INTERFACE_NAME_FOR_M3_MME = "lo";
MCE_IPV4_ADDRESS_FOR_M3C = "127.0.0.3/24";
MCE_PORT_FOR_M3C = 36444; # Spec 36444
};
plnm:
{
mcc = 208;
mnc = 93;
mnc_length = 2;
};
mbms_sched_info :
{
mcch_update_time = 10;
mbms_area_config_list = (
{
common_sf_allocation_period = 1; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
mbms_area_id = 0;
pmch_config_list = (
{
allocated_sf_end=512;
data_mcs=15;
mch_scheduling_period = 0; #rf8(0) rf16(1) rf32(2) rf64(3) rf128(4) rf256(5) rf512(6) rf1024(7)
mbms_session_list = (
{
#plnm + service_id ->tmgi
plnm:
{
mcc = 208;
mnc = 93;
mnc_length = 2;
}
service_id=0; #keep this allways as 0 (workaround for TUN if)
lcid=5; #this must be properly defined lcid:6+service:0 -> rab_id:5 //with new RLC set lcid either 4 or 5
}
);
}
);
mbms_sf_config_list = (
{
radioframe_allocation_period=0; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_alloocation_offset=0;
num_frame="oneFrame";
subframe_allocation=57; #xx111001
//num_frame="fourFrame";
//subframe_allocation=14548987; #
}
);
}
);
};
mcch_config_per_mbsfn_area = (
{
mbsfn_area = 0;
pdcch_length = 1; #s1(0), s2(1)
repetition_period = 0; #rf32(0), rf64(1), rf128(2), rf256(3)
offset = 0;
modification_period = 0; #rf512(0; rf1024(1)
subframe_allocation_info = 32; #BITSTRING (6bits -> one frame) xx100000
mcs = 0; #n2(0), n7(1), n13(2), n19(3)
}
);
#); #end mbms_scheduling_info
}
);
MMEs = (
{
MME_ID = 0xe00;
MME_name = "MME-MBMS-Vicomtech-LTEBox";
//M3
enable_mme_m3 = "yes";
NETWORK_INTERFACES :
{
MME_INTERFACE_NAME_FOR_M3_MCE = "lo";
MME_IPV4_ADDRESS_FOR_M3C = "127.0.0.18/24";
MME_PORT_FOR_M3C = 36444; # Spec 36444
};
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 125;
eNB_instances = [0];
}
);
THREAD_STRUCT = (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config = "PARALLEL_SINGLE_THREAD";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_ENABLE";
}
);
NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "ens3";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
//rfsimulator :
//{
//options = ("chanmod");
//modelname = "AWGN";
//};

View File

@@ -102,6 +102,7 @@ eNBs =
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "DISABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
@@ -184,6 +185,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:
target_mce_m2_ip_address = ( { ipv4 = "127.0.0.7";
@@ -295,8 +298,8 @@ MCEs = (
pmch_config_list = (
{
allocated_sf_end=32;
data_mcs=14;
mch_scheduling_period = 0; #rf8(0)
data_mcs=15;
mch_scheduling_period = 0; #rf8(0) rf16(1) rf32(2) rf64(3) rf128(4) rf256(5) rf512(6) rf1024(7)
mbms_session_list = (
{
#plnm + service_id ->tmgi
@@ -337,7 +340,7 @@ MCEs = (
offset = 0;
modification_period = 0; #rf512(0; rf1024(1)
subframe_allocation_info = 32; #BITSTRING (6bits -> one frame) xx100000
mcs = 1; #n2(0), n7(1), n13(2), n19(3)
mcs = 0; #n2(0), n7(1), n13(2), n19(3)
}
);
@@ -416,3 +419,10 @@ NETWORK_CONTROLLER :
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
//rfsimulator :
//{
//options = ("chanmod");
//modelname = "AWGN";
//};

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -150,6 +150,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -150,6 +150,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -150,6 +150,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -187,6 +187,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -155,6 +155,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:

View File

@@ -155,6 +155,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:

View File

@@ -185,6 +185,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

72
ci-scripts/constants.py Normal file
View File

@@ -0,0 +1,72 @@
#/*
# * 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
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Version
#-----------------------------------------------------------
Version = '0.2'
#-----------------------------------------------------------
# Constants
#-----------------------------------------------------------
ALL_PROCESSES_OK = 0
ENB_PROCESS_FAILED = -1
ENB_PROCESS_OK = +1
ENB_PROCESS_SEG_FAULT = -11
ENB_PROCESS_ASSERTION = -12
ENB_PROCESS_REALTIME_ISSUE = -13
ENB_PROCESS_NOLOGFILE_TO_ANALYZE = -14
ENB_PROCESS_SLAVE_RRU_NOT_SYNCED = -15
HSS_PROCESS_FAILED = -2
HSS_PROCESS_OK = +2
MME_PROCESS_FAILED = -3
MME_PROCESS_OK = +3
SPGW_PROCESS_FAILED = -4
SPGW_PROCESS_OK = +4
UE_IP_ADDRESS_ISSUE = -5
OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE = -20
OAI_UE_PROCESS_COULD_NOT_SYNC = -21
OAI_UE_PROCESS_ASSERTION = -22
OAI_UE_PROCESS_FAILED = -23
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE = -24
OAI_UE_PROCESS_SEG_FAULT = -25
OAI_UE_PROCESS_NO_MBMS_MSGS = -26
OAI_UE_PROCESS_OK = +6
UE_STATUS_DETACHED = 0
UE_STATUS_DETACHING = 1
UE_STATUS_ATTACHING = 2
UE_STATUS_ATTACHED = 3
X2_HO_REQ_STATE__IDLE = 0
X2_HO_REQ_STATE__TARGET_RECEIVES_REQ = 1
X2_HO_REQ_STATE__TARGET_RRC_RECFG_COMPLETE = 2
X2_HO_REQ_STATE__TARGET_SENDS_SWITCH_REQ = 3
X2_HO_REQ_STATE__SOURCE_RECEIVES_REQ_ACK = 10

View File

@@ -0,0 +1,20 @@
9d690a12: #oppo
- adb shell input keyevent KEYCODE_POWER
- adb shell input swipe 300 700 300 0
- adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- adb shell input keyevent 20
- adb shell input tap 968 324
002: #s10
- adb shell input keyevent KEYCODE_POWER
- adb shell input swipe 200 900 200 300
- adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- adb shell input tap 968 324
003: #s20
- adb shell input keyevent KEYCODE_POWER
- adb shell input swipe 200 900 200 300
- adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- adb shell input tap 968 324
004: #xperia
- tbd
- tbd
- tbd

View File

@@ -37,6 +37,7 @@ memleak:openair2/UTIL/OMG/omg_hashtable.c
// _emm_as_encode function creates the encoded buffer
//
memleak:openair3/NAS/UE/EMM/SAP/emm_as.c
memleak:openair1/PHY/INIT/nr_init_ue.c
//-----------------------------------------------------------------------------
//*****************************************************************************
// section for files not used in oai exec's included in CI.
@@ -76,7 +77,16 @@ nullPointer:common/utils/T/local_tracer.c:243
// first iteration of the loop
nullPointer:common/utils/T/tracer/multi.c:264
nullPointer:common/utils/T/tracer/multi.c:265
//-----------------------------------------------------------------------------
// this file is used for testing the RLC V2 implementation, this error is
// not a problem, the programmer has to know what she does when writing
// the tests
arrayIndexOutOfBounds:openair2/LAYER2/rlc_v2/tests/test.c:401
//
//-----------------------------------------------------------------------------
// cppcheck does not understand the different lengths of arrays
arrayIndexOutOfBounds:openair1/SIMULATION/TOOLS/random_channel.c:705
arrayIndexOutOfBounds:openair1/SIMULATION/TOOLS/random_channel.c:706
//*****************************************************************************
//
// True problems we don't know how to fix, Suppression is commented out,

View File

@@ -38,7 +38,6 @@ Last point, this documentation is valid for all CI-supported branches:
* `master`
* `develop`
* `develop-nr`
But the feature set may not be aligned. **The principles still apply.**

468
ci-scripts/epc.py Normal file
View File

@@ -0,0 +1,468 @@
#/*
# * 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 sys # arg
import re # reg
import logging
import os
import time
import signal
from multiprocessing import Process, Lock, SimpleQueue
#-----------------------------------------------------------
# OAI Testing modules
#-----------------------------------------------------------
import sshconnection as SSH
import helpreadme as HELP
import constants as CONST
import html
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class EPCManagement():
def __init__(self):
self.IPAddress = ''
self.UserName = ''
self.Password = ''
self.SourceCodePath = ''
self.Type = ''
self.PcapFileName = ''
self.htmlObj = None
self.testCase_id = ''
self.MmeIPAddress = ''
self.containerPrefix = 'prod'
self.mmeConfFile = 'mme.conf'
#-----------------------------------------------------------
# EPC management functions
#-----------------------------------------------------------
def InitializeHSS(self):
if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '':
HELP.GenericHelp(CONST.Version)
HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.SourceCodePath, self.Type)
sys.exit('Insufficient EPC Parameters')
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 Cassandra-based HSS in Docker')
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-hss /bin/bash -c "nohup tshark -i eth0 -i eth1 -w /tmp/hss_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-hss /bin/bash -c "nohup ./bin/oai_hss -j ./etc/hss_rel14.json --reloadkey true > hss_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 Cassandra-based HSS')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
logging.debug('\u001B[1m Launching tshark on all interfaces \u001B[0m')
self.PcapFileName = 'epc_' + self.testCase_id + '.pcap'
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f ' + self.PcapFileName, '\$', 5)
mySSH.command('echo $USER; nohup sudo tshark -f "tcp port not 22 and port not 53" -i any -w ' + self.SourceCodePath + '/scripts/' + self.PcapFileName + ' > /tmp/tshark.log 2>&1 &', self.UserName, 5)
mySSH.command('echo ' + self.Password + ' | sudo -S mkdir -p logs', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f hss_' + self.testCase_id + '.log logs/hss*.*', '\$', 5)
mySSH.command('echo "oai_hss -j /usr/local/etc/oai/hss_rel14.json" > ./my-hss.sh', '\$', 5)
mySSH.command('chmod 755 ./my-hss.sh', '\$', 5)
mySSH.command('sudo daemon --unsafe --name=hss_daemon --chdir=' + self.SourceCodePath + '/scripts -o ' + self.SourceCodePath + '/scripts/hss_' + self.testCase_id + '.log ./my-hss.sh', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC HSS')
mySSH.command('cd ' + self.SourceCodePath, '\$', 5)
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./run_hss 2>&1 | stdbuf -o0 awk \'{ print strftime("[%Y/%m/%d %H:%M:%S] ",systime()) $0 }\' | stdbuf -o0 tee -a hss_' + self.testCase_id + '.log &', 'Core state: 2 -> 3', 35)
elif re.match('ltebox', self.Type, re.IGNORECASE):
logging.debug('Using the ltebox simulated HSS')
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('cd /opt/hss_sim0609', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f hss.log', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S echo "Starting sudo session" && sudo su -c "screen -dm -S simulated_hss ./starthss"', '\$', 5)
else:
logging.error('This option should not occur!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
def InitializeMME(self):
if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '':
HELP.GenericHelp(CONST.Version)
HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.SourceCodePath, self.Type)
sys.exit('Insufficient EPC Parameters')
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 MME in Docker')
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-mme /bin/bash -c "nohup tshark -i eth0 -i lo:s10 -w /tmp/mme_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-mme /bin/bash -c "nohup ./bin/oai_mme -c ./etc/' + self.mmeConfFile + ' > mme_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 MME')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f mme_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('echo "./run_mme --config-file /usr/local/etc/oai/mme.conf --set-virt-if" > ./my-mme.sh', '\$', 5)
mySSH.command('chmod 755 ./my-mme.sh', '\$', 5)
mySSH.command('sudo daemon --unsafe --name=mme_daemon --chdir=' + self.SourceCodePath + '/scripts -o ' + self.SourceCodePath + '/scripts/mme_' + self.testCase_id + '.log ./my-mme.sh', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE):
mySSH.command('cd ' + self.SourceCodePath, '\$', 5)
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd scripts', '\$', 5)
mySSH.command('stdbuf -o0 hostname', '\$', 5)
result = re.search('hostname\\\\r\\\\n(?P<host_name>[a-zA-Z0-9\-\_]+)\\\\r\\\\n', mySSH.getBefore())
if result is None:
logging.debug('\u001B[1;37;41m Hostname Not Found! \u001B[0m')
sys.exit(1)
host_name = result.group('host_name')
mySSH.command('echo ' + self.Password + ' | sudo -S ./run_mme 2>&1 | stdbuf -o0 tee -a mme_' + self.testCase_id + '.log &', 'MME app initialization complete', 100)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cd /opt/ltebox/tools', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./start_mme', '\$', 5)
else:
logging.error('This option should not occur!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
def SetMmeIPAddress(self):
# Not an error if we don't need an EPC
if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '':
return
if self.IPAddress == 'none':
return
# Only in case of Docker containers, MME IP address is not the EPC HOST IP address
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('docker inspect --format="MME_IP_ADDR = {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" ' + self.containerPrefix + '-oai-mme', '\$', 5)
result = re.search('MME_IP_ADDR = (?P<mme_ip_addr>[0-9\.]+)', mySSH.getBefore())
if result is not None:
self.MmeIPAddress = result.group('mme_ip_addr')
logging.debug('MME IP Address is ' + self.MmeIPAddress)
mySSH.close()
else:
self.MmeIPAddress = self.IPAddress
def InitializeSPGW(self):
if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '':
HELP.GenericHelp(CONST.Version)
HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.SourceCodePath, self.Type)
sys.exit('Insufficient EPC Parameters')
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 SPGW-CUPS in Docker')
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "nohup tshark -i eth0 -i lo:p5c -i lo:s5c -w /tmp/spgwc_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "nohup tshark -i eth0 -w /tmp/spgwu_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "nohup ./bin/oai_spgwc -o -c ./etc/spgw_c.conf > spgwc_check_run.log 2>&1"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "nohup ./bin/oai_spgwu -o -c ./etc/spgw_u.conf > spgwu_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 SPGW-CUPS')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f spgwc_' + self.testCase_id + '.log spgwu_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('echo "spgwc -c /usr/local/etc/oai/spgw_c.conf" > ./my-spgwc.sh', '\$', 5)
mySSH.command('chmod 755 ./my-spgwc.sh', '\$', 5)
mySSH.command('sudo daemon --unsafe --name=spgwc_daemon --chdir=' + self.SourceCodePath + '/scripts -o ' + self.SourceCodePath + '/scripts/spgwc_' + self.testCase_id + '.log ./my-spgwc.sh', '\$', 5)
time.sleep(5)
mySSH.command('echo "spgwu -c /usr/local/etc/oai/spgw_u.conf" > ./my-spgwu.sh', '\$', 5)
mySSH.command('chmod 755 ./my-spgwu.sh', '\$', 5)
mySSH.command('sudo daemon --unsafe --name=spgwu_daemon --chdir=' + self.SourceCodePath + '/scripts -o ' + self.SourceCodePath + '/scripts/spgwu_' + self.testCase_id + '.log ./my-spgwu.sh', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE):
mySSH.command('cd ' + self.SourceCodePath, '\$', 5)
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./run_spgw 2>&1 | stdbuf -o0 tee -a spgw_' + self.testCase_id + '.log &', 'Initializing SPGW-APP task interface: DONE', 30)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cd /opt/ltebox/tools', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./start_xGw', '\$', 5)
else:
logging.error('This option should not occur!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
def CheckHSSProcess(self, status_queue):
try:
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "ps aux | grep oai_hss"', '\$', 5)
else:
mySSH.command('stdbuf -o0 ps -aux | grep --color=never hss | grep -v grep', '\$', 5)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
result = re.search('oai_hss -j', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
elif re.match('ltebox', self.Type, re.IGNORECASE):
result = re.search('hss_sim s6as diam_hss', mySSH.getBefore())
else:
logging.error('This should not happen!')
if result is None:
logging.debug('\u001B[1;37;41m HSS Process Not Found! \u001B[0m')
status_queue.put(CONST.HSS_PROCESS_FAILED)
else:
status_queue.put(CONST.HSS_PROCESS_OK)
mySSH.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
def CheckMMEProcess(self, status_queue):
try:
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "ps aux | grep oai_mme"', '\$', 5)
else:
mySSH.command('stdbuf -o0 ps -aux | grep --color=never mme | grep -v grep', '\$', 5)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
result = re.search('oai_mme -c ', mySSH.getBefore())
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
result = re.search('mme -c', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
elif re.match('ltebox', self.Type, re.IGNORECASE):
result = re.search('mme', mySSH.getBefore())
else:
logging.error('This should not happen!')
if result is None:
logging.debug('\u001B[1;37;41m MME Process Not Found! \u001B[0m')
status_queue.put(CONST.MME_PROCESS_FAILED)
else:
status_queue.put(CONST.MME_PROCESS_OK)
mySSH.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
def CheckSPGWProcess(self, status_queue):
try:
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "ps aux | grep oai_spgwc"', '\$', 5)
result = re.search('oai_spgwc -o -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "ps aux | grep oai_spgwu"', '\$', 5)
result = re.search('oai_spgwu -o -c ', mySSH.getBefore())
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('stdbuf -o0 ps -aux | grep --color=never spgw | grep -v grep', '\$', 5)
result = re.search('spgwu -c ', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
mySSH.command('stdbuf -o0 ps -aux | grep --color=never spgw | grep -v grep', '\$', 5)
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('stdbuf -o0 ps -aux | grep --color=never xGw | grep -v grep', '\$', 5)
result = re.search('xGw', mySSH.getBefore())
else:
logging.error('This should not happen!')
if result is None:
logging.debug('\u001B[1;37;41m SPGW Process Not Found! \u001B[0m')
status_queue.put(CONST.SPGW_PROCESS_FAILED)
else:
status_queue.put(CONST.SPGW_PROCESS_OK)
mySSH.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateHSS(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "killall --signal SIGINT oai_hss tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "ps aux | grep oai_hss"', '\$', 5)
result = re.search('oai_hss -j ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "killall --signal SIGKILL oai_hss"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT oai_hss || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep hss | grep -v grep', '\$', 5)
result = re.search('oai_hss -j', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL oai_hss || true', '\$', 5)
mySSH.command('rm -f ' + self.SourceCodePath + '/scripts/my-hss.sh', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT run_hss oai_hss || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep hss | grep -v grep', '\$', 5)
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL run_hss oai_hss || true', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cd ' + self.SourceCodePath, '\$', 5)
mySSH.command('cd scripts', '\$', 5)
time.sleep(1)
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL hss_sim', '\$', 5)
else:
logging.error('This should not happen!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateMME(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "killall --signal SIGINT oai_mme tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "ps aux | grep oai_mme"', '\$', 5)
result = re.search('oai_mme -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "killall --signal SIGKILL oai_mme"', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT run_mme mme || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep mme | grep -v grep', '\$', 5)
result = re.search('mme -c', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL run_mme mme || true', '\$', 5)
mySSH.command('rm -f ' + self.SourceCodePath + '/scripts/my-mme.sh', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cd /opt/ltebox/tools', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./stop_mme', '\$', 5)
else:
logging.error('This should not happen!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateSPGW(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "killall --signal SIGINT oai_spgwc tshark"', '\$', 5)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "killall --signal SIGINT oai_spgwu tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "ps aux | grep oai_spgwc"', '\$', 5)
result = re.search('oai_spgwc -o -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "killall --signal SIGKILL oai_spgwc"', '\$', 5)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "ps aux | grep oai_spgwu"', '\$', 5)
result = re.search('oai_spgwu -o -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "killall --signal SIGKILL oai_spgwu"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT spgwc spgwu || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep spgw | grep -v grep', '\$', 5)
result = re.search('spgwc -c |spgwu -c ', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL spgwc spgwu || true', '\$', 5)
mySSH.command('rm -f ' + self.SourceCodePath + '/scripts/my-spgw*.sh', '\$', 5)
mySSH.command('stdbuf -o0 ps -aux | grep tshark | grep -v grep', '\$', 5)
result = re.search('-w ', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT tshark || true', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S chmod 666 ' + self.SourceCodePath + '/scripts/*.pcap', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT run_spgw spgw || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep spgw | grep -v grep', '\$', 5)
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGKILL run_spgw spgw || true', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cd /opt/ltebox/tools', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S ./stop_xGw', '\$', 5)
else:
logging.error('This should not happen!')
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def LogCollectHSS(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('rm -f hss.log.zip', '\$', 5)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker cp ' + self.containerPrefix + '-oai-hss:/openair-hss/hss_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-hss:/tmp/hss_check_run.pcap .', '\$', 60)
mySSH.command('zip hss.log.zip hss_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip hss.log.zip hss*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm hss*.log', '\$', 5)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip hss.log.zip logs/hss*.* *.pcap', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f logs/hss*.* *.pcap', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cp /opt/hss_sim0609/hss.log .', '\$', 60)
mySSH.command('zip hss.log.zip hss.log', '\$', 60)
else:
logging.error('This option should not occur!')
mySSH.close()
def LogCollectMME(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('rm -f mme.log.zip', '\$', 5)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker cp ' + self.containerPrefix + '-oai-mme:/openair-mme/mme_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-mme:/tmp/mme_check_run.pcap .', '\$', 60)
mySSH.command('zip mme.log.zip mme_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip mme.log.zip mme*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm mme*.log', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cp /opt/ltebox/var/log/*Log.0 .', '\$', 5)
mySSH.command('zip mme.log.zip mmeLog.0 s1apcLog.0 s1apsLog.0 s11cLog.0 libLog.0 s1apCodecLog.0', '\$', 60)
else:
logging.error('This option should not occur!')
mySSH.close()
def LogCollectSPGW(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('rm -f spgw.log.zip', '\$', 5)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwc:/openair-spgwc/spgwc_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwu-tiny:/openair-spgwu-tiny/spgwu_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwc:/tmp/spgwc_check_run.pcap .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwu-tiny:/tmp/spgwu_check_run.pcap .', '\$', 60)
mySSH.command('zip spgw.log.zip spgw*_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip spgw.log.zip spgw*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm spgw*.log', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
mySSH.command('cp /opt/ltebox/var/log/xGwLog.0 .', '\$', 5)
mySSH.command('zip spgw.log.zip xGwLog.0', '\$', 60)
else:
logging.error('This option should not occur!')
mySSH.close()

81
ci-scripts/helpreadme.py Normal file
View File

@@ -0,0 +1,81 @@
#/*
# * 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
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Functions Declaration
#-----------------------------------------------------------
def GenericHelp(vers):
print('----------------------------------------------------------------------------------------------------------------------')
print('main.py Ver: ' + vers)
print('----------------------------------------------------------------------------------------------------------------------')
print('python main.py [options]')
print(' --help Show this help.')
print(' --mode=[Mode]')
print(' TesteNB')
print(' InitiateHtml, FinalizeHtml')
print(' TerminateeNB, TerminateUE, TerminateHSS, TerminateMME, TerminateSPGW')
print(' LogCollectBuild, LogCollecteNB, LogCollectHSS, LogCollectMME, LogCollectSPGW, LogCollectPing, LogCollectIperf')
def GitSrvHelp(repository,branch,commit,mergeallow,targetbranch):
print(' --ranRepository=[OAI RAN Repository URL] -- ' + repository)
print(' --ranBranch=[OAI RAN Repository Branch] -- ' + branch)
print(' --ranCommitID=[OAI RAN Repository Commit SHA-1] -- ' + commit)
print(' --ranAllowMerge=[Allow Merge Request (with target branch) (true or false)] -- ' + mergeallow)
print(' --ranTargetBranch=[Target Branch in case of a Merge Request] -- ' + targetbranch)
def eNBSrvHelp(ipaddr, username, password, sourcepath):
print(' --eNBIPAddress=[eNB\'s IP Address] -- ' + ipaddr)
print(' --eNBUserName=[eNB\'s Login User Name] -- ' + username)
print(' --eNBPassword=[eNB\'s Login Password] -- ' + password)
print(' --eNBSourceCodePath=[eNB\'s Source Code Path] -- ' + sourcepath)
def OAIUESrvHelp(ipaddr, username, password, sourcepath):
print(' --UEIPAddress=[UE\'s IP Address] -- ' + ipaddr)
print(' --UEUserName=[UE\'s Login User Name] -- ' + username)
print(' --UEPassword=[UE\'s Login Password] -- ' + password)
print(' --UESourceCodePath=[UE\'s Source Code Path] -- ' + sourcepath)
def EPCSrvHelp(ipaddr, username, password, sourcepath, epctype):
print(' --EPCIPAddress=[EPC\'s IP Address] -- ' + ipaddr)
print(' --EPCUserName=[EPC\'s Login User Name] -- ' + username)
print(' --EPCPassword=[EPC\'s Login Password] -- ' + password)
print(' --EPCSourceCodePath=[EPC\'s Source Code Path] -- ' + sourcepath)
print(' --EPCType=[EPC\'s Type: OAI or ltebox or OAI-Rel14-CUPS] -- ' + epctype)
def ADBSrvHelp(ipaddr, username, password):
print(' --ADBIPAddress=[ADB\'s IP Address] -- ' + ipaddr)
print(' --ADBUserName=[ADB\'s Login User Name] -- ' + username)
print(' --ADBPassword=[ADB\'s Login Password] -- ' + password)
def XmlHelp(filename):
print(' --XMLTestFile=[XML Test File to be run] -- ' + filename)
print(' Note: multiple xml files can be specified (--XMLFile=File1 ... --XMLTestFile=FileN) when HTML headers are created ("InitiateHtml" mode)')

434
ci-scripts/html.py Normal file
View File

@@ -0,0 +1,434 @@
#/*
# * 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 sys # arg
import re # reg
import logging
import os
import time
import subprocess
from multiprocessing import Process, Lock, SimpleQueue
import constants as CONST
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class HTMLManagement():
def __init__(self):
self.htmlFile = ''
self.htmlHeaderCreated = False
self.htmlFooterCreated = False
self.ranRepository = ''
self.ranBranch = ''
self.ranCommitID = ''
self.ranAllowMerge = False
self.ranTargetBranch = ''
self.nbTestXMLfiles = 0
self.htmlTabRefs = []
self.htmlTabNames = []
self.htmlTabIcons = []
self.testXMLfiles = []
self.testUnstable = False
self.testMinStableId = '999999'
self.testStabilityPointReached = False
self.htmleNBFailureMsg = ''
self.htmlUEFailureMsg = ''
self.startTime = int(round(time.time() * 1000))
self.testCase_id = ''
self.desc = ''
self.OsVersion = ['', '']
self.KernelVersion = ['', '']
self.UhdVersion = ['', '']
self.UsrpBoard = ['', '']
self.CpuNb = ['', '']
self.CpuModel = ['', '']
self.CpuMHz = ['', '']
#-----------------------------------------------------------
# Setters and Getters
#-----------------------------------------------------------
def SethtmlUEConnected(self, nbUEs):
if nbUEs > 0:
self.htmlUEConnected = nbUEs
else:
self.htmlUEConnected = 1
#-----------------------------------------------------------
# HTML structure creation functions
#-----------------------------------------------------------
def CreateHtmlHeader(self, ADBIPAddress):
if (not self.htmlHeaderCreated):
logging.debug('\u001B[1m----------------------------------------\u001B[0m')
logging.debug('\u001B[1m Creating HTML header \u001B[0m')
logging.debug('\u001B[1m----------------------------------------\u001B[0m')
self.htmlFile = open('test_results.html', 'w')
self.htmlFile.write('<!DOCTYPE html>\n')
self.htmlFile.write('<html class="no-js" lang="en-US">\n')
self.htmlFile.write('<head>\n')
self.htmlFile.write(' <meta name="viewport" content="width=device-width, initial-scale=1">\n')
self.htmlFile.write(' <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">\n')
self.htmlFile.write(' <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>\n')
self.htmlFile.write(' <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>\n')
self.htmlFile.write(' <title>Test Results for TEMPLATE_JOB_NAME job build #TEMPLATE_BUILD_ID</title>\n')
self.htmlFile.write('</head>\n')
self.htmlFile.write('<body><div class="container">\n')
self.htmlFile.write(' <br>\n')
self.htmlFile.write(' <table style="border-collapse: collapse; border: none;">\n')
self.htmlFile.write(' <tr style="border-collapse: collapse; border: none;">\n')
self.htmlFile.write(' <td style="border-collapse: collapse; border: none;">\n')
self.htmlFile.write(' <a href="http://www.openairinterface.org/">\n')
self.htmlFile.write(' <img src="http://www.openairinterface.org/wp-content/uploads/2016/03/cropped-oai_final_logo2.png" alt="" border="none" height=50 width=150>\n')
self.htmlFile.write(' </img>\n')
self.htmlFile.write(' </a>\n')
self.htmlFile.write(' </td>\n')
self.htmlFile.write(' <td style="border-collapse: collapse; border: none; vertical-align: center;">\n')
self.htmlFile.write(' <b><font size = "6">Job Summary -- Job: TEMPLATE_JOB_NAME -- Build-ID: TEMPLATE_BUILD_ID</font></b>\n')
self.htmlFile.write(' </td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' </table>\n')
self.htmlFile.write(' <br>\n')
self.htmlFile.write(' <div class="alert alert-info"><strong> <span class="glyphicon glyphicon-dashboard"></span> TEMPLATE_STAGE_NAME</strong></div>\n')
self.htmlFile.write(' <table border = "1">\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-time"></span> Build Start Time (UTC) </td>\n')
self.htmlFile.write(' <td>TEMPLATE_BUILD_TIME</td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-cloud-upload"></span> GIT Repository </td>\n')
self.htmlFile.write(' <td><a href="' + self.ranRepository + '">' + self.ranRepository + '</a></td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-wrench"></span> Job Trigger </td>\n')
if (self.ranAllowMerge):
self.htmlFile.write(' <td>Merge-Request</td>\n')
else:
self.htmlFile.write(' <td>Push to Branch</td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
if (self.ranAllowMerge):
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-log-out"></span> Source Branch </td>\n')
else:
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-tree-deciduous"></span> Branch</td>\n')
self.htmlFile.write(' <td>' + self.ranBranch + '</td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
if (self.ranAllowMerge):
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-tag"></span> Source Commit ID </td>\n')
else:
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-tag"></span> Commit ID </td>\n')
self.htmlFile.write(' <td>' + self.ranCommitID + '</td>\n')
self.htmlFile.write(' </tr>\n')
if self.ranAllowMerge != '':
commit_message = subprocess.check_output("git log -n1 --pretty=format:\"%s\" " + self.ranCommitID, shell=True, universal_newlines=True)
commit_message = commit_message.strip()
self.htmlFile.write(' <tr>\n')
if (self.ranAllowMerge):
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-comment"></span> Source Commit Message </td>\n')
else:
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-comment"></span> Commit Message </td>\n')
self.htmlFile.write(' <td>' + commit_message + '</td>\n')
self.htmlFile.write(' </tr>\n')
if (self.ranAllowMerge):
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-log-in"></span> Target Branch </td>\n')
if (self.ranTargetBranch == ''):
self.htmlFile.write(' <td>develop</td>\n')
else:
self.htmlFile.write(' <td>' + self.ranTargetBranch + '</td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' </table>\n')
if (ADBIPAddress != 'none'):
self.htmlFile.write(' <h2><span class="glyphicon glyphicon-phone"></span> <span class="glyphicon glyphicon-menu-right"></span> ' + str(self.htmlNb_Smartphones) + ' UE(s) is(are) connected to ADB bench server</h2>\n')
self.htmlFile.write(' <h2><span class="glyphicon glyphicon-phone"></span> <span class="glyphicon glyphicon-menu-right"></span> ' + str(self.htmlNb_CATM_Modules) + ' CAT-M UE(s) is(are) connected to bench server</h2>\n')
else:
self.htmlUEConnected = 1
self.htmlFile.write(' <h2><span class="glyphicon glyphicon-phone"></span> <span class="glyphicon glyphicon-menu-right"></span> 1 OAI UE(s) is(are) connected to CI bench</h2>\n')
self.htmlFile.write(' <br>\n')
self.htmlFile.write(' <ul class="nav nav-pills">\n')
count = 0
while (count < self.nbTestXMLfiles):
pillMsg = ' <li><a data-toggle="pill" href="#'
pillMsg += self.htmlTabRefs[count]
pillMsg += '">'
pillMsg += '__STATE_' + self.htmlTabNames[count] + '__'
pillMsg += self.htmlTabNames[count]
pillMsg += ' <span class="glyphicon glyphicon-'
pillMsg += self.htmlTabIcons[count]
pillMsg += '"></span></a></li>\n'
self.htmlFile.write(pillMsg)
count += 1
self.htmlFile.write(' </ul>\n')
self.htmlFile.write(' <div class="tab-content">\n')
self.htmlFile.close()
def CreateHtmlTabHeader(self):
if (not self.htmlHeaderCreated):
if (not os.path.isfile('test_results.html')):
self.CreateHtmlHeader('none')
self.htmlFile = open('test_results.html', 'a')
if (self.nbTestXMLfiles == 1):
self.htmlFile.write(' <div id="' + self.htmlTabRefs[0] + '" class="tab-pane fade">\n')
self.htmlFile.write(' <h3>Test Summary for <span class="glyphicon glyphicon-file"></span> ' + self.testXMLfiles[0] + '</h3>\n')
else:
self.htmlFile.write(' <div id="build-tab" class="tab-pane fade">\n')
self.htmlFile.write(' <table class="table" border = "1">\n')
self.htmlFile.write(' <tr bgcolor = "#33CCFF" >\n')
self.htmlFile.write(' <th>Relative Time (ms)</th>\n')
self.htmlFile.write(' <th>Test Id</th>\n')
self.htmlFile.write(' <th>Test Desc</th>\n')
self.htmlFile.write(' <th>Test Options</th>\n')
self.htmlFile.write(' <th>Test Status</th>\n')
i = 0
while (i < self.htmlUEConnected):
self.htmlFile.write(' <th>UE' + str(i) + ' Status</th>\n')
i += 1
self.htmlFile.write(' </tr>\n')
self.htmlFile.close()
self.htmlHeaderCreated = True
def CreateHtmlTabFooter(self, passStatus):
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
testOkEvenIfUnstable = False
if self.testUnstable and not passStatus:
if self.testStabilityPointReached or self.testMinStableId == '999999':
testOkEvenIfUnstable = True
self.htmlFile = open('test_results.html', 'a')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <th bgcolor = "#33CCFF" colspan=3>Final Tab Status</th>\n')
if passStatus:
self.htmlFile.write(' <th bgcolor = "green" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">PASS <span class="glyphicon glyphicon-ok"></span> </font></th>\n')
else:
if testOkEvenIfUnstable:
self.htmlFile.write(' <th bgcolor = "orange" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">KNOWN UNSTABLE SCENARIO <span class="glyphicon glyphicon-exclamation-sign"></span> </font></th>\n')
else:
self.htmlFile.write(' <th bgcolor = "red" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">FAIL <span class="glyphicon glyphicon-remove"></span> </font></th>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' </table>\n')
self.htmlFile.write(' </div>\n')
self.htmlFile.close()
time.sleep(1)
if passStatus:
cmd = "sed -i -e 's/__STATE_" + self.htmlTabNames[0] + "__//' test_results.html"
subprocess.run(cmd, shell=True)
else:
if testOkEvenIfUnstable:
cmd = "sed -i -e 's/__STATE_" + self.htmlTabNames[0] + "__/<span class=\"glyphicon glyphicon-exclamation-sign\"><\/span>/' test_results.html"
else:
cmd = "sed -i -e 's/__STATE_" + self.htmlTabNames[0] + "__/<span class=\"glyphicon glyphicon-remove\"><\/span>/' test_results.html"
subprocess.run(cmd, shell=True)
self.htmlFooterCreated = False
def CreateHtmlFooter(self, passStatus):
if (os.path.isfile('test_results.html')):
self.htmlFile = open('test_results.html', 'a')
self.htmlFile.write('</div>\n')
self.htmlFile.write(' <p></p>\n')
self.htmlFile.write(' <table class="table table-condensed">\n')
machines = [ 'eNB', 'UE' ]
for machine in machines:
if machine == 'eNB':
idx = 0
else:
idx = 1
if self.OsVersion[idx] == '':
continue
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <th colspan=8>' + str(machine) + ' Server Characteristics</th>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td>OS Version</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.OsVersion[idx] + '</span></td>\n')
self.htmlFile.write(' <td>Kernel Version</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.KernelVersion[idx] + '</span></td>\n')
self.htmlFile.write(' <td>UHD Version</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.UhdVersion[idx] + '</span></td>\n')
self.htmlFile.write(' <td>USRP Board</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.UsrpBoard[idx] + '</span></td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td>Nb CPUs</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.CpuNb[idx] + '</span></td>\n')
self.htmlFile.write(' <td>CPU Model Name</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.CpuModel[idx] + '</span></td>\n')
self.htmlFile.write(' <td>CPU Frequency</td>\n')
self.htmlFile.write(' <td><span class="label label-default">' + self.CpuMHz[idx] + '</span></td>\n')
self.htmlFile.write(' <td></td>\n')
self.htmlFile.write(' <td></td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <th colspan=5 bgcolor = "#33CCFF">Final Status</th>\n')
if passStatus:
self.htmlFile.write(' <th colspan=3 bgcolor="green"><font color="white">PASS <span class="glyphicon glyphicon-ok"></span></font></th>\n')
else:
self.htmlFile.write(' <th colspan=3 bgcolor="red"><font color="white">FAIL <span class="glyphicon glyphicon-remove"></span> </font></th>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' </table>\n')
self.htmlFile.write(' <p></p>\n')
self.htmlFile.write(' <div class="well well-lg">End of Test Report -- Copyright <span class="glyphicon glyphicon-copyright-mark"></span> 2018 <a href="http://www.openairinterface.org/">OpenAirInterface</a>. All Rights Reserved.</div>\n')
self.htmlFile.write('</div></body>\n')
self.htmlFile.write('</html>\n')
self.htmlFile.close()
def CreateHtmlRetrySeparator(self, cntnumfails):
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
self.htmlFile = open('test_results.html', 'a')
self.htmlFile.write(' <tr bgcolor = "#F0F0F0" >\n')
self.htmlFile.write(' <td colspan=' + str(5+self.htmlUEConnected) + '><b> ---- Try Run #' + str(cntnumfails) + ' ---- </b></td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.close()
def CreateHtmlTestRow(self, options, status, processesStatus, machine='eNB'):
if (self.htmlFooterCreated or (not self.htmlHeaderCreated)):
return
self.htmlFile = open('test_results.html', 'a')
currentTime = int(round(time.time() * 1000)) - self.startTime
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + format(currentTime / 1000, '.1f') + '</td>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + self.testCase_id + '</td>\n')
self.htmlFile.write(' <td>' + self.desc + '</td>\n')
self.htmlFile.write(' <td>' + str(options) + '</td>\n')
if (str(status) == 'OK'):
self.htmlFile.write(' <td bgcolor = "lightgreen" >' + str(status) + '</td>\n')
elif (str(status) == 'KO'):
if (processesStatus == 0):
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_FAILED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - eNB process not found</td>\n')
elif (processesStatus == CONST.OAI_UE_PROCESS_FAILED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - OAI UE process not found</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_SEG_FAULT) or (processesStatus == CONST.OAI_UE_PROCESS_SEG_FAULT):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Segmentation Fault</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_ASSERTION) or (processesStatus == CONST.OAI_UE_PROCESS_ASSERTION):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Assertion</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_REALTIME_ISSUE):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process faced Real Time issue(s)</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE) or (processesStatus == CONST.OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE):
self.htmlFile.write(' <td bgcolor = "orange" >OK?</td>\n')
elif (processesStatus == CONST.ENB_PROCESS_SLAVE_RRU_NOT_SYNCED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' Slave RRU could not synch</td>\n')
elif (processesStatus == CONST.OAI_UE_PROCESS_COULD_NOT_SYNC):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - UE could not sync</td>\n')
elif (processesStatus == CONST.HSS_PROCESS_FAILED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - HSS process not found</td>\n')
elif (processesStatus == CONST.MME_PROCESS_FAILED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - MME process not found</td>\n')
elif (processesStatus == CONST.SPGW_PROCESS_FAILED):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - SPGW process not found</td>\n')
elif (processesStatus == CONST.UE_IP_ADDRESS_ISSUE):
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - Could not retrieve UE IP address</td>\n')
else:
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
else:
self.htmlFile.write(' <td bgcolor = "orange" >' + str(status) + '</td>\n')
if (len(str(self.htmleNBFailureMsg)) > 2):
cellBgColor = 'white'
result = re.search('ended with|faced real time issues', self.htmleNBFailureMsg)
if result is not None:
cellBgColor = 'red'
else:
result = re.search('showed|Reestablishment|Could not copy eNB logfile', self.htmleNBFailureMsg)
if result is not None:
cellBgColor = 'orange'
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmleNBFailureMsg + '</pre></td>\n')
self.htmleNBFailureMsg = ''
elif (len(str(self.htmlUEFailureMsg)) > 2):
cellBgColor = 'white'
result = re.search('ended with|faced real time issues', self.htmlUEFailureMsg)
if result is not None:
cellBgColor = 'red'
else:
result = re.search('showed|Could not copy UE logfile|oaitun_ue1 interface is either NOT mounted or NOT configured', self.htmlUEFailureMsg)
if result is not None:
cellBgColor = 'orange'
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmlUEFailureMsg + '</pre></td>\n')
self.htmlUEFailureMsg = ''
else:
i = 0
while (i < self.htmlUEConnected):
self.htmlFile.write(' <td>-</td>\n')
i += 1
self.htmlFile.write(' </tr>\n')
self.htmlFile.close()
def CreateHtmlTestRowQueue(self, options, status, ue_status, ue_queue):
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
self.htmlFile = open('test_results.html', 'a')
currentTime = int(round(time.time() * 1000)) - self.startTime
addOrangeBK = False
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + format(currentTime / 1000, '.1f') + '</td>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + self.testCase_id + '</td>\n')
self.htmlFile.write(' <td>' + self.desc + '</td>\n')
self.htmlFile.write(' <td>' + str(options) + '</td>\n')
if (str(status) == 'OK'):
self.htmlFile.write(' <td bgcolor = "lightgreen" >' + str(status) + '</td>\n')
elif (str(status) == 'KO'):
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
else:
addOrangeBK = True
self.htmlFile.write(' <td bgcolor = "orange" >' + str(status) + '</td>\n')
i = 0
while (i < self.htmlUEConnected):
if (i < ue_status):
if (not ue_queue.empty()):
if (addOrangeBK):
self.htmlFile.write(' <td bgcolor = "orange" >' + str(ue_queue.get()).replace('white', 'orange') + '</td>\n')
else:
self.htmlFile.write(' <td>' + str(ue_queue.get()) + '</td>\n')
else:
self.htmlFile.write(' <td>-</td>\n')
else:
self.htmlFile.write(' <td>-</td>\n')
i += 1
self.htmlFile.write(' </tr>\n')
self.htmlFile.close()

File diff suppressed because it is too large Load Diff

View File

@@ -197,7 +197,7 @@ function variant__v4__cppcheck {
}
function variant__v5__gnb_usrp {
VM_MEMORY=8192
VM_MEMORY=10240
VM_CPU=8
NB_PATTERN_FILES=9
BUILD_OPTIONS="--gNB -w USRP"

53
ci-scripts/py_params.yaml Normal file
View File

@@ -0,0 +1,53 @@
eNBRepository : b
ranRepository : c
eNB_AllowMerge :
ranAllowMerge :
eNBBranch : f
ranBranch : g
eNBCommitID :
ranCommitID : i
eNBTargetBranch : j
ranTargetBranch : k
nodes :
- type : eNB
IPAddress : 001.1.1
UserName : toto
Password : qwe
SourceCodePath : l
- type : gNB
IPAddress : 002.2.2
UserName : tata
Password : asd
SourceCodePath : m
- type : eNB
IPAddress : 003.3.3
UserName : titi
Password : zxc
SourceCodePath : n
- type : gNB
IPAddress : 004.4.4
UserName : caca
Password : pepe
SourceCodePath : o
EPCIPAddress : p
EPCUserName : q
EPCPassword : r
EPCSourceCodePath : s
EPCType : t
EPCContainerPrefix : u
ADBIPAddress : v
ADBUserName : w
ADBType : x
ADBPassword : y
XMLTestFile : z
UEIPAddress : qqq
UEUserName : www
UEPassword : eee
UESourceCodePath : yyy
finalStatus : bbb

View File

@@ -0,0 +1,97 @@
eNBRepository : b
ranRepository : c
eNB_AllowMerge :
ranAllowMerge :
eNBBranch : f
ranBranch : g
eNBCommitID :
ranCommitID : i
eNBTargetBranch : j
ranTargetBranch : k
RAN:
RAN_inst_0:
name : RAN_1
nodes :
- type : eNB
IPAddress : 001.1.1
UserName : toto
Password : qwe
SourceCodePath : l
- type : gNB
IPAddress : 002.2.2
UserName : tata
Password : asd
SourceCodePath : m
- type : eNB
IPAddress : 003.3.3
UserName : titi
Password : zxc
SourceCodePath : n
- type : gNB
IPAddress : 004.4.4
UserName : caca
Password : pepe
SourceCodePath : o
RAN_inst_1:
name : RAN_2
nodes :
- type : eNB
IPAddress : 101.1.1
UserName : toto
Password : qwe
SourceCodePath : l
- type : gNB
IPAddress : 102.2.2
UserName : zaza
Password : asd
SourceCodePath : m
- type : eNB
IPAddress : 103.3.3
UserName : zizi
Password : zxc
SourceCodePath : n
- type : gNB
IPAddress : 104.4.4
UserName : aaaa
Password : pepe
SourceCodePath : o
EPC:
EPC_inst_0:
EPCIPAddress : p
EPCUserName : q
EPCPassword : r
EPCSourceCodePath : s
EPCType : t
EPCContainerPrefix : u
ADB:
ADBIPAddress : v
ADBUserName : w
ADBType : x
ADBPassword : y
UE:
UE_inst_0:
name : UE_1
type :
UEIPAddress : qqq
UEUserName : www
UEPassword : eee
UESourceCodePath : yyy
UE_inst_1:
name : UE_2
type :
UEIPAddress : bloblob
UEUserName : gwou
UEPassword : zebu
UESourceCodePath : pop
XMLTestFile : z
finalStatus : bbb

994
ci-scripts/ran.py Normal file
View File

@@ -0,0 +1,994 @@
#/*
# * 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 sys # arg
import re # reg
import logging
import os
import time
from multiprocessing import Process, Lock, SimpleQueue
#-----------------------------------------------------------
# OAI Testing modules
#-----------------------------------------------------------
import sshconnection as SSH
import epc
import helpreadme as HELP
import constants as CONST
import html
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class RANManagement():
def __init__(self):
self.prematureExit = False
self.ranRepository = ''
self.ranBranch = ''
self.ranAllowMerge = False
self.ranCommitID = ''
self.ranTargetBranch = ''
self.eNBIPAddress = ''
self.eNBUserName = ''
self.eNBPassword = ''
self.eNBSourceCodePath = ''
self.eNB1IPAddress = ''
self.eNB1UserName = ''
self.eNB1Password = ''
self.eNB1SourceCodePath = ''
self.eNB2IPAddress = ''
self.eNB2UserName = ''
self.eNB2Password = ''
self.eNB2SourceCodePath = ''
self.Build_eNB_args = ''
self.backgroundBuild = False
self.backgroundBuildTestId = ['', '', '']
self.Build_eNB_forced_workspace_cleanup = False
self.Initialize_eNB_args = ''
self.air_interface = ['', '', ''] #changed from 'lte' to '' may lead to side effects in main
self.eNB_instance = 0
self.eNB_serverId = ''
self.eNBLogFiles = ['', '', '']
self.eNBOptions = ['', '', '']
self.eNBmbmsEnables = [False, False, False]
self.eNBstatuses = [-1, -1, -1]
self.flexranCtrlInstalled = False
self.flexranCtrlStarted = False
self.testCase_id = ''
self.epcPcapFile = ''
self.htmlObj = None
self.epcObj = None
self.runtime_stats= ''
#-----------------------------------------------------------
# RAN management functions
#-----------------------------------------------------------
def BuildeNB(self):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if self.eNB_serverId == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
# Check if we build an 5G-NR gNB or an LTE eNB or an OCP eNB
result = re.search('--eNBocp', self.Build_eNB_args)
if result is not None:
self.air_interface[self.eNB_instance] = 'ocp-enb'
else:
result = re.search('--gNB', self.Build_eNB_args)
if result is not None:
self.air_interface[self.eNB_instance] = 'nr-softmodem'
else:
self.air_interface[self.eNB_instance] = 'lte-softmodem'
# Worakround for some servers, we need to erase completely the workspace
if self.Build_eNB_forced_workspace_cleanup:
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
if self.htmlObj is not None:
self.testCase_id = self.htmlObj.testCase_id
else:
self.testCase_id = '000000'
# 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
else:
full_ran_repo_name = self.ranRepository + '.git'
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)
# Checking the BUILD INFO file
if not self.backgroundBuild:
mySSH.command('ls *.txt', '\$', 5)
result = re.search('LAST_BUILD_INFO', mySSH.getBefore())
if result is not None:
mismatch = False
mySSH.command('grep SRC_COMMIT LAST_BUILD_INFO.txt', '\$', 2)
result = re.search(self.ranCommitID, mySSH.getBefore())
if result is None:
mismatch = True
mySSH.command('grep MERGED_W_TGT_BRANCH LAST_BUILD_INFO.txt', '\$', 2)
if (self.ranAllowMerge):
result = re.search('YES', mySSH.getBefore())
if result is None:
mismatch = True
mySSH.command('grep TGT_BRANCH LAST_BUILD_INFO.txt', '\$', 2)
if self.ranTargetBranch == '':
result = re.search('develop', mySSH.getBefore())
else:
result = re.search(self.ranTargetBranch, mySSH.getBefore())
if result is None:
mismatch = True
else:
result = re.search('NO', mySSH.getBefore())
if result is None:
mismatch = True
if not mismatch:
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
return
mySSH.command('echo ' + lPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
# 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 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.debug('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('mkdir -p log', '\$', 5)
mySSH.command('chmod 777 log', '\$', 5)
# no need to remove in log (git clean did the trick)
if self.backgroundBuild:
mySSH.command('echo "./build_oai ' + self.Build_eNB_args + '" > ./my-lte-softmodem-build.sh', '\$', 5)
mySSH.command('chmod 775 ./my-lte-softmodem-build.sh', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S ls', '\$', 5)
mySSH.command('echo $USER; nohup sudo -E ./my-lte-softmodem-build.sh' + ' > ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ' + ' 2>&1 &', lUserName, 5)
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
self.backgroundBuildTestId[int(self.eNB_instance)] = self.testCase_id
return
mySSH.command('stdbuf -o0 ./build_oai ' + self.Build_eNB_args + ' 2>&1 | stdbuf -o0 tee compile_oai_enb.log', 'Bypassing the Tests|build have failed', 1500)
mySSH.close()
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.testCase_id)
def WaitBuildeNBisFinished(self):
if self.eNB_serverId == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
count = 40
buildOAIprocess = True
while (count > 0) and buildOAIprocess:
mySSH.command('ps aux | grep --color=never build_ | grep -v grep', '\$', 6)
result = re.search('build_oai', mySSH.getBefore())
if result is None:
buildOAIprocess = False
else:
count -= 1
time.sleep(30)
mySSH.close()
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)])
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId):
if self.htmlObj is not None:
self.htmlObj.testCase_id=testcaseId
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3)
#check if we have the build corresponding to the air interface keywords (nr-softmode, lte-softmodem, ocp-enb)
logging.info('CHECK Build with IP='+lIpAddr+' SourcePath='+lSourcePath)
result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
if result is None:
buildStatus = False #if not, build failed
else:
buildStatus = True
# Generating a BUILD INFO file
mySSH.command('echo "SRC_BRANCH: ' + self.ranBranch + '" > ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('echo "SRC_COMMIT: ' + self.ranCommitID + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
if (self.ranAllowMerge):
mySSH.command('echo "MERGED_W_TGT_BRANCH: YES" >> ../LAST_BUILD_INFO.txt', '\$', 2)
if self.ranTargetBranch == '':
mySSH.command('echo "TGT_BRANCH: develop" >> ../LAST_BUILD_INFO.txt', '\$', 2)
else:
mySSH.command('echo "TGT_BRANCH: ' + self.ranTargetBranch + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
else:
mySSH.command('echo "MERGED_W_TGT_BRANCH: NO" >> ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('mkdir -p build_log_' + testcaseId, '\$', 5)
mySSH.command('mv log/* ' + 'build_log_' + testcaseId, '\$', 5)
mySSH.command('mv compile_oai_enb.log ' + 'build_log_' + testcaseId, '\$', 5)
if self.eNB_serverId != '0':
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('if [ -e tmp_build' + testcaseId + '.zip ]; then rm -f tmp_build' + testcaseId + '.zip; fi', '\$', 5)
mySSH.command('zip -r -qq tmp_build' + testcaseId + '.zip build_log_' + testcaseId, '\$', 5)
mySSH.close()
if (os.path.isfile('./tmp_build' + testcaseId + '.zip')):
os.remove('./tmp_build' + testcaseId + '.zip')
mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/tmp_build' + testcaseId + '.zip', '.')
if (os.path.isfile('./tmp_build' + testcaseId + '.zip')):
mySSH.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, './tmp_build' + testcaseId + '.zip', self.eNBSourceCodePath + '/cmake_targets/.')
os.remove('./tmp_build' + testcaseId + '.zip')
mySSH.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
mySSH.command('cd ' + self.eNBSourceCodePath + '/cmake_targets', '\$', 5)
#-qq quiet / -u update orcreate files
mySSH.command('unzip -u -qq -DD tmp_build' + testcaseId + '.zip', '\$', 5)
mySSH.command('rm -f tmp_build' + testcaseId + '.zip', '\$', 5)
mySSH.close()
else:
mySSH.close()
#generate logging info depending on buildStatus and air interface
if buildStatus:
logging.info('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Pass\u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
else:
logging.error('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Failed\u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK)
self.htmlObj.CreateHtmlTabFooter(False)
sys.exit(1)
def InitializeeNB(self):
if self.eNB_serverId == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if self.htmlObj is not None:
self.testCase_id = self.htmlObj.testCase_id
else:
self.testCase_id = '000000'
mySSH = SSH.SSHConnection()
if (self.pStatus < 0):
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus)
self.htmlObj.CreateHtmlTabFooter(False)
sys.exit(1)
# If tracer options is on, running tshark on EPC side and capture traffic b/ EPC and eNB
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.IPAddress
localEpcUserName = self.epcObj.UserName
localEpcPassword = self.epcObj.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
mySSH.command('ip addr show | awk -f /tmp/active_net_interfaces.awk | egrep -v "lo|tun"', '\$', 5)
result = re.search('interfaceToUse=(?P<eth_interface>[a-zA-Z0-9\-\_]+)done', mySSH.getBefore())
if result is not None:
eth_interface = result.group('eth_interface')
logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + '\u001B[0m')
self.epcPcapFile = 'enb_' + self.testCase_id + '_s1log.pcap'
mySSH.command('echo ' + localEpcPassword + ' | sudo -S rm -f /tmp/' + self.epcPcapFile , '\$', 5)
mySSH.command('echo $USER; nohup sudo tshark -f "host ' + lIpAddr +'" -i ' + eth_interface + ' -w /tmp/' + self.epcPcapFile + ' > /tmp/tshark.log 2>&1 &', localEpcUserName, 5)
mySSH.close()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath, '\$', 5)
# Initialize_eNB_args usually start with -O and followed by the location in repository
full_config_file = self.Initialize_eNB_args.replace('-O ','')
extra_options = ''
extIdx = full_config_file.find('.conf')
if (extIdx > 0):
extra_options = full_config_file[extIdx + 5:]
# if tracer options is on, compiling and running T Tracer
result = re.search('T_stdout', str(extra_options))
if result is not None:
logging.debug('\u001B[1m Compiling and launching T Tracer\u001B[0m')
mySSH.command('cd common/utils/T/tracer', '\$', 5)
mySSH.command('make', '\$', 10)
mySSH.command('echo $USER; nohup ./record -d ../T_messages.txt -o ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '_record.raw -ON -off VCD -off HEAVY -off LEGACY_GROUP_TRACE -off LEGACY_GROUP_DEBUG > ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '_record.log 2>&1 &', lUserName, 5)
mySSH.command('cd ' + lSourcePath, '\$', 5)
full_config_file = full_config_file[:extIdx + 5]
config_path, config_file = os.path.split(full_config_file)
else:
sys.exit('Insufficient Parameter')
ci_full_config_file = config_path + '/ci-' + config_file
rruCheck = False
result = re.search('^rru|^rcc|^du.band', str(config_file))
if result is not None:
rruCheck = True
# do not reset board twice in IF4.5 case
result = re.search('^rru|^enb|^du.band', str(config_file))
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S uhd_find_devices', '\$', 60)
result = re.search('type: b200', mySSH.getBefore())
if result is not None:
logging.debug('Found a B2xx device --> resetting it')
mySSH.command('echo ' + lPassWord + ' | sudo -S b2xx_fx3_utils --reset-device', '\$', 10)
# Reloading FGPA bin firmware
mySSH.command('echo ' + lPassWord + ' | sudo -S uhd_find_devices', '\$', 60)
# Make a copy and adapt to EPC / eNB IP addresses
mySSH.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5)
if self.epcObj is not None:
localMmeIpAddr = self.epcObj.MmeIPAddress
mySSH.command('sed -i -e \'s/CI_MME_IP_ADDR/' + localMmeIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_ENB_IP_ADDR/' + lIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_GNB_IP_ADDR/' + lIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RCC_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RRU1_IP_ADDR/' + self.eNB1IPAddress + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RRU2_IP_ADDR/' + self.eNB2IPAddress + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_FR1_CTL_ENB_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
if self.flexranCtrlInstalled and self.flexranCtrlStarted:
mySSH.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "yes";/\' ' + ci_full_config_file, '\$', 2);
else:
mySSH.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "no";/\' ' + ci_full_config_file, '\$', 2);
self.eNBmbmsEnables[int(self.eNB_instance)] = False
mySSH.command('grep enable_enb_m2 ' + ci_full_config_file, '\$', 2);
result = re.search('yes', mySSH.getBefore())
if result is not None:
self.eNBmbmsEnables[int(self.eNB_instance)] = True
logging.debug('\u001B[1m MBMS is enabled on this eNB\u001B[0m')
result = re.search('noS1', str(self.Initialize_eNB_args))
eNBinNoS1 = False
if result is not None:
eNBinNoS1 = True
logging.debug('\u001B[1m eNB is in noS1 configuration \u001B[0m')
# Launch eNB with the modified config file
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
if self.air_interface == 'nr':
mySSH.command('if [ -e rbconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm rbconfig.raw; fi', '\$', 5)
mySSH.command('if [ -e reconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm reconfig.raw; fi', '\$', 5)
# NOTE: WE SHALL do a check if the executable is present (in case build went wrong)
mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface[self.eNB_instance] + ' -O ' + lSourcePath + '/' + ci_full_config_file + extra_options + '" > ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.command('chmod 775 ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf enb_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('echo $USER; nohup sudo -E ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh > ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '.log 2>&1 &', lUserName, 10)
self.eNBLogFiles[int(self.eNB_instance)] = 'enb_' + self.testCase_id + '.log'
if extra_options != '':
self.eNBOptions[int(self.eNB_instance)] = extra_options
time.sleep(6)
doLoop = True
loopCounter = 20
enbDidSync = False
while (doLoop):
loopCounter = loopCounter - 1
if (loopCounter == 0):
# In case of T tracer recording, we may need to kill it
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if result is not None:
mySSH.command('killall --signal SIGKILL record', '\$', 5)
mySSH.close()
doLoop = False
logging.error('\u001B[1;37;41m eNB/gNB/ocp-eNB logging system did not show got sync! \u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' -O ' + config_file + extra_options, 'KO', CONST.ALL_PROCESSES_OK)
# In case of T tracer recording, we need to kill tshark on EPC side
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.IPAddress
localEpcUserName = self.epcObj.UserName
localEpcPassword = self.epcObj.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
logging.debug('\u001B[1m Stopping tshark \u001B[0m')
mySSH.command('echo ' + localEpcPassword + ' | sudo -S killall --signal SIGKILL tshark', '\$', 5)
if self.epcPcapFile != '':
time.sleep(0.5)
mySSH.command('echo ' + localEpcPassword + ' | sudo -S chmod 666 /tmp/' + self.epcPcapFile, '\$', 5)
mySSH.close()
time.sleep(1)
if self.epcPcapFile != '':
copyin_res = mySSH.copyin(localEpcIpAddr, localEpcUserName, localEpcPassword, '/tmp/' + self.epcPcapFile, '.')
if (copyin_res == 0):
mySSH.copyout(lIpAddr, lUserName, lPassWord, self.epcPcapFile, lSourcePath + '/cmake_targets/.')
self.prematureExit = True
return
else:
mySSH.command('stdbuf -o0 cat enb_' + self.testCase_id + '.log | egrep --text --color=never -i "wait|sync|Starting"', '\$', 4)
if rruCheck:
result = re.search('wait RUs', mySSH.getBefore())
else:
result = re.search('got sync|Starting F1AP at CU', mySSH.getBefore())
if result is None:
time.sleep(6)
else:
doLoop = False
enbDidSync = True
time.sleep(10)
rruCheck = False
result = re.search('^rru|^du.band', str(config_file))
if result is not None:
rruCheck = True
if enbDidSync and eNBinNoS1 and not rruCheck:
mySSH.command('ifconfig oaitun_enb1', '\$', 4)
mySSH.command('ifconfig oaitun_enb1', '\$', 4)
result = re.search('inet addr:1|inet 1', mySSH.getBefore())
if result is not None:
logging.debug('\u001B[1m oaitun_enb1 interface is mounted and configured\u001B[0m')
else:
logging.error('\u001B[1m oaitun_enb1 interface is either NOT mounted or NOT configured\u001B[0m')
if self.eNBmbmsEnables[int(self.eNB_instance)]:
mySSH.command('ifconfig oaitun_enm1', '\$', 4)
result = re.search('inet addr', mySSH.getBefore())
if result is not None:
logging.debug('\u001B[1m oaitun_enm1 interface is mounted and configured\u001B[0m')
else:
logging.error('\u001B[1m oaitun_enm1 interface is either NOT mounted or NOT configured\u001B[0m')
if enbDidSync:
self.eNBstatuses[int(self.eNB_instance)] = int(self.eNB_serverId)
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' -O ' + config_file + extra_options, 'OK', CONST.ALL_PROCESSES_OK)
logging.debug('\u001B[1m Initialize eNB/gNB/ocp-eNB Completed\u001B[0m')
def CheckeNBProcess(self, status_queue):
try:
# At least the instance 0 SHALL be on!
if self.eNBstatuses[0] == 0:
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
elif self.eNBstatuses[0] == 1:
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
elif self.eNBstatuses[0] == 2:
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
else:
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface[self.eNB_instance] + ' | grep -v grep', '\$', 5)
result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
if result is None:
logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m')
status_queue.put(CONST.ENB_PROCESS_FAILED)
else:
status_queue.put(CONST.ENB_PROCESS_OK)
mySSH.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateeNB(self):
if self.eNB_serverId == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGINT -r .*-softmodem ocp-enb || true', '\$', 5)
time.sleep(10)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGKILL -r .*-softmodem ocp-enb || true', '\$', 5)
time.sleep(5)
mySSH.command('rm -f my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.close()
# If tracer options is on, stopping tshark on EPC side
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.IPAddress
localEpcUserName = self.epcObj.UserName
localEpcPassword = self.epcObj.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
logging.debug('\u001B[1m Stopping tshark \u001B[0m')
mySSH.command('echo ' + localEpcPassword + ' | sudo -S killall --signal SIGKILL tshark', '\$', 5)
time.sleep(1)
if self.epcPcapFile != '':
mySSH.command('echo ' + localEpcPassword + ' | sudo -S chmod 666 /tmp/' + self.epcPcapFile, '\$', 5)
mySSH.copyin(localEpcIpAddr, localEpcUserName, localEpcPassword, '/tmp/' + self.epcPcapFile, '.')
mySSH.copyout(lIpAddr, lUserName, lPassWord, self.epcPcapFile, lSourcePath + '/cmake_targets/.')
mySSH.close()
logging.debug('\u001B[1m Replaying RAW record file\u001B[0m')
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/common/utils/T/tracer/', '\$', 5)
enbLogFile = self.eNBLogFiles[int(self.eNB_instance)]
raw_record_file = enbLogFile.replace('.log', '_record.raw')
replay_log_file = enbLogFile.replace('.log', '_replay.log')
extracted_txt_file = enbLogFile.replace('.log', '_extracted_messages.txt')
extracted_log_file = enbLogFile.replace('.log', '_extracted_messages.log')
mySSH.command('./extract_config -i ' + lSourcePath + '/cmake_targets/' + raw_record_file + ' > ' + lSourcePath + '/cmake_targets/' + extracted_txt_file, '\$', 5)
mySSH.command('echo $USER; nohup ./replay -i ' + lSourcePath + '/cmake_targets/' + raw_record_file + ' > ' + lSourcePath + '/cmake_targets/' + replay_log_file + ' 2>&1 &', lUserName, 5)
mySSH.command('./textlog -d ' + lSourcePath + '/cmake_targets/' + extracted_txt_file + ' -no-gui -ON -full > ' + lSourcePath + '/cmake_targets/' + extracted_log_file, '\$', 5)
mySSH.close()
mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/' + extracted_log_file, '.')
logging.debug('\u001B[1m Analyzing eNB replay logfile \u001B[0m')
logStatus = self.AnalyzeLogFile_eNB(extracted_log_file)
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBLogFiles[int(self.eNB_instance)] = ''
else:
analyzeFile = False
if self.eNBLogFiles[int(self.eNB_instance)] != '':
analyzeFile = True
fileToAnalyze = self.eNBLogFiles[int(self.eNB_instance)]
self.eNBLogFiles[int(self.eNB_instance)] = ''
if analyzeFile:
copyin_res = mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/' + fileToAnalyze, '.')
if (copyin_res == -1):
logging.debug('\u001B[1;37;41m Could not copy ' + nodeB_prefix + 'NB logfile to analyze it! \u001B[0m')
if self.htmlObj is not None:
self.htmlObj.htmleNBFailureMsg='Could not copy ' + nodeB_prefix + 'NB logfile to analyze it!'
self.htmlObj.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
self.eNBmbmsEnables[int(self.eNB_instance)] = False
return
if self.eNB_serverId != '0':
mySSH.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, './' + fileToAnalyze, self.eNBSourceCodePath + '/cmake_targets/')
logging.debug('\u001B[1m Analyzing ' + nodeB_prefix + 'NB logfile \u001B[0m ' + fileToAnalyze)
logStatus = self.AnalyzeLogFile_eNB(fileToAnalyze)
if (logStatus < 0):
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'KO', logStatus)
self.preamtureExit = True
self.eNBmbmsEnables[int(self.eNB_instance)] = False
return
else:
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
else:
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBmbmsEnables[int(self.eNB_instance)] = False
self.eNBstatuses[int(self.eNB_instance)] = -1
def LogCollecteNB(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm -f enb.log.zip', '\$', 5)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S zip enb.log.zip enb*.log core* enb_*record.raw enb_*.pcap enb_*txt physim_*.log', '\$', 60)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log core* enb_*record.raw enb_*.pcap enb_*txt', '\$', 5)
mySSH.close()
def AnalyzeLogFile_eNB(self, eNBlogFile):
if (not os.path.isfile('./' + eNBlogFile)):
return -1
enb_log_file = open('./' + eNBlogFile, 'r')
exitSignalReceived = False
foundAssertion = False
msgAssertion = ''
msgLine = 0
foundSegFault = False
foundRealTimeIssue = False
rrcSetupComplete = 0
rrcReleaseRequest = 0
rrcReconfigRequest = 0
rrcReconfigComplete = 0
rrcReestablishRequest = 0
rrcReestablishComplete = 0
rrcReestablishReject = 0
rlcDiscardBuffer = 0
rachCanceledProcedure = 0
uciStatMsgCount = 0
pdcpFailure = 0
ulschFailure = 0
ulschAllocateCCEerror = 0
uplinkSegmentsAborted = 0
ulschReceiveOK = 0
gnbRxTxWakeUpFailure = 0
gnbTxWriteThreadEnabled = False
cdrxActivationMessageCount = 0
dropNotEnoughRBs = 0
mbmsRequestMsg = 0
htmleNBFailureMsg = ''
isRRU = False
isSlave = False
slaveReceivesFrameResyncCmd = False
X2HO_state = CONST.X2_HO_REQ_STATE__IDLE
X2HO_inNbProcedures = 0
X2HO_outNbProcedures = 0
global_status = CONST.ALL_PROCESSES_OK
# Runtime statistics
runTime = ''
userTime = ''
systemTime = ''
maxPhyMemUsage = ''
nbContextSwitches = ''
for line in enb_log_file.readlines():
# Runtime statistics
result = re.search('Run time:' ,str(line))
if result is not None:
runTime = str(line).strip()
if runTime != '':
result = re.search('Time executing user inst', str(line))
if result is not None:
fields=line.split(':')
userTime = 'userTime : ' + fields[1].replace('\n','')
result = re.search('Time executing system inst', str(line))
if result is not None:
fields=line.split(':')
systemTime = 'systemTime : ' + fields[1].replace('\n','')
result = re.search('Max. Phy. memory usage:', str(line))
if result is not None:
fields=line.split(':')
maxPhyMemUsage = 'maxPhyMemUsage : ' + fields[1].replace('\n','')
result = re.search('Number of context switch.*process origin', str(line))
if result is not None:
fields=line.split(':')
nbContextSwitches = 'nbContextSwitches : ' + fields[1].replace('\n','')
if X2HO_state == CONST.X2_HO_REQ_STATE__IDLE:
result = re.search('target eNB Receives X2 HO Req X2AP_HANDOVER_REQ', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__TARGET_RECEIVES_REQ
result = re.search('source eNB receives the X2 HO ACK X2AP_HANDOVER_REQ_ACK', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__SOURCE_RECEIVES_REQ_ACK
if X2HO_state == CONST.X2_HO_REQ_STATE__TARGET_RECEIVES_REQ:
result = re.search('Received LTE_RRCConnectionReconfigurationComplete from UE', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__TARGET_RRC_RECFG_COMPLETE
if X2HO_state == CONST.X2_HO_REQ_STATE__TARGET_RRC_RECFG_COMPLETE:
result = re.search('issue rrc_eNB_send_PATH_SWITCH_REQ', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__TARGET_SENDS_SWITCH_REQ
if X2HO_state == CONST.X2_HO_REQ_STATE__TARGET_SENDS_SWITCH_REQ:
result = re.search('received path switch ack S1AP_PATH_SWITCH_REQ_ACK', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__IDLE
X2HO_inNbProcedures += 1
if X2HO_state == CONST.X2_HO_REQ_STATE__SOURCE_RECEIVES_REQ_ACK:
result = re.search('source eNB receives the X2 UE CONTEXT RELEASE X2AP_UE_CONTEXT_RELEASE', str(line))
if result is not None:
X2HO_state = CONST.X2_HO_REQ_STATE__IDLE
X2HO_outNbProcedures += 1
if self.eNBOptions[int(self.eNB_instance)] != '':
res1 = re.search('max_rxgain (?P<requested_option>[0-9]+)', self.eNBOptions[int(self.eNB_instance)])
res2 = re.search('max_rxgain (?P<applied_option>[0-9]+)', str(line))
if res1 is not None and res2 is not None:
requested_option = int(res1.group('requested_option'))
applied_option = int(res2.group('applied_option'))
if requested_option == applied_option:
htmleNBFailureMsg += '<span class="glyphicon glyphicon-ok-circle"></span> Command line option(s) correctly applied <span class="glyphicon glyphicon-arrow-right"></span> ' + self.eNBOptions[int(self.eNB_instance)] + '\n\n'
else:
htmleNBFailureMsg += '<span class="glyphicon glyphicon-ban-circle"></span> Command line option(s) NOT applied <span class="glyphicon glyphicon-arrow-right"></span> ' + self.eNBOptions[int(self.eNB_instance)] + '\n\n'
result = re.search('Exiting OAI softmodem', str(line))
if result is not None:
exitSignalReceived = True
result = re.search('[Ss]egmentation [Ff]ault', str(line))
if result is not None and not exitSignalReceived:
foundSegFault = True
result = re.search('[Cc]ore [dD]ump', str(line))
if result is not None and not exitSignalReceived:
foundSegFault = True
result = re.search('./ran_build/build/lte-softmodem', str(line))
if result is not None and not exitSignalReceived:
foundSegFault = True
result = re.search('[Aa]ssertion', str(line))
if result is not None and not exitSignalReceived:
foundAssertion = True
result = re.search('LLL', str(line))
if result is not None and not exitSignalReceived:
foundRealTimeIssue = True
if foundAssertion and (msgLine < 3):
msgLine += 1
msgAssertion += str(line)
result = re.search('Setting function for RU', str(line))
if result is not None:
isRRU = True
if isRRU:
result = re.search('RU 0 is_slave=yes', str(line))
if result is not None:
isSlave = True
if isSlave:
result = re.search('Received RRU_frame_resynch command', str(line))
if result is not None:
slaveReceivesFrameResyncCmd = True
result = re.search('LTE_RRCConnectionSetupComplete from UE', str(line))
if result is not None:
rrcSetupComplete += 1
result = re.search('Generate LTE_RRCConnectionRelease|Generate RRCConnectionRelease', str(line))
if result is not None: rrcReleaseRequest += 1
result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line))
if result is not None:
rrcReconfigRequest += 1
result = re.search('LTE_RRCConnectionReconfigurationComplete from UE rnti', str(line))
if result is not None:
rrcReconfigComplete += 1
result = re.search('LTE_RRCConnectionReestablishmentRequest', str(line))
if result is not None:
rrcReestablishRequest += 1
result = re.search('LTE_RRCConnectionReestablishmentComplete', str(line))
if result is not None:
rrcReestablishComplete += 1
result = re.search('LTE_RRCConnectionReestablishmentReject', str(line))
if result is not None:
rrcReestablishReject += 1
result = re.search('CDRX configuration activated after RRC Connection', str(line))
if result is not None:
cdrxActivationMessageCount += 1
result = re.search('uci->stat', str(line))
if result is not None:
uciStatMsgCount += 1
result = re.search('PDCP.*Out of Resources.*reason', str(line))
if result is not None:
pdcpFailure += 1
result = re.search('could not wakeup gNB rxtx process', str(line))
if result is not None:
gnbRxTxWakeUpFailure += 1
result = re.search('tx write thread ready', str(line))
if result is not None:
gnbTxWriteThreadEnabled = True
result = re.search('ULSCH in error in round|ULSCH 0 in error', str(line))
if result is not None:
ulschFailure += 1
result = re.search('ERROR ALLOCATING CCEs', str(line))
if result is not None:
ulschAllocateCCEerror += 1
result = re.search('uplink segment error.*aborted [1-9] segments', str(line))
if result is not None:
uplinkSegmentsAborted += 1
result = re.search('ULSCH received ok', str(line))
if result is not None:
ulschReceiveOK += 1
result = re.search('BAD all_segments_received', str(line))
if result is not None:
rlcDiscardBuffer += 1
result = re.search('Canceled RA procedure for UE rnti', str(line))
if result is not None:
rachCanceledProcedure += 1
result = re.search('dropping, not enough RBs', str(line))
if result is not None:
dropNotEnoughRBs += 1
if self.eNBmbmsEnables[int(self.eNB_instance)]:
result = re.search('MBMS USER-PLANE.*Requesting.*bytes from RLC', str(line))
if result is not None:
mbmsRequestMsg += 1
enb_log_file.close()
logging.debug(' File analysis completed')
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
if self.air_interface[self.eNB_instance] == 'nr-softmodem':
if ulschReceiveOK > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if gnbRxTxWakeUpFailure > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(gnbRxTxWakeUpFailure) + ' "could not wakeup gNB rxtx process" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if gnbTxWriteThreadEnabled:
statMsg = nodeB_prefix + 'NB ran with TX Write thread enabled'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if uciStatMsgCount > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(uciStatMsgCount) + ' "uci->stat" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if pdcpFailure > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(pdcpFailure) + ' "PDCP Out of Resources" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if ulschFailure > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschFailure) + ' "ULSCH in error in round" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if ulschAllocateCCEerror > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschAllocateCCEerror) + ' "eNB_dlsch_ulsch_scheduler(); ERROR ALLOCATING CCEs" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if uplinkSegmentsAborted > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(uplinkSegmentsAborted) + ' "uplink segment error 0/2, aborted * segments" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if dropNotEnoughRBs > 0:
statMsg = 'eNB showed ' + str(dropNotEnoughRBs) + ' "dropping, not enough RBs" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if rrcSetupComplete > 0:
rrcMsg = nodeB_prefix + 'NB completed ' + str(rrcSetupComplete) + ' RRC Connection Setup(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
rrcMsg = ' -- ' + str(rrcSetupComplete) + ' were completed'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if rrcReleaseRequest > 0:
rrcMsg = nodeB_prefix + 'NB requested ' + str(rrcReleaseRequest) + ' RRC Connection Release(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if rrcReconfigRequest > 0 or rrcReconfigComplete > 0:
rrcMsg = nodeB_prefix + 'NB requested ' + str(rrcReconfigRequest) + ' RRC Connection Reconfiguration(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
rrcMsg = ' -- ' + str(rrcReconfigComplete) + ' were completed'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if rrcReestablishRequest > 0 or rrcReestablishComplete > 0 or rrcReestablishReject > 0:
rrcMsg = nodeB_prefix + 'NB requested ' + str(rrcReestablishRequest) + ' RRC Connection Reestablishment(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
rrcMsg = ' -- ' + str(rrcReestablishComplete) + ' were completed'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
rrcMsg = ' -- ' + str(rrcReestablishReject) + ' were rejected'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if self.eNBmbmsEnables[int(self.eNB_instance)]:
if mbmsRequestMsg > 0:
rrcMsg = 'eNB requested ' + str(mbmsRequestMsg) + ' times the RLC for MBMS USER-PLANE'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if X2HO_inNbProcedures > 0:
rrcMsg = 'eNB completed ' + str(X2HO_inNbProcedures) + ' X2 Handover Connection procedure(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if X2HO_outNbProcedures > 0:
rrcMsg = 'eNB completed ' + str(X2HO_outNbProcedures) + ' X2 Handover Release procedure(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if self.eNBOptions[int(self.eNB_instance)] != '':
res1 = re.search('drx_Config_present prSetup', self.eNBOptions[int(self.eNB_instance)])
if res1 is not None:
if cdrxActivationMessageCount > 0:
rrcMsg = 'eNB activated the CDRX Configuration for ' + str(cdrxActivationMessageCount) + ' time(s)'
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
else:
rrcMsg = 'eNB did NOT ACTIVATE the CDRX Configuration'
logging.debug('\u001B[1;37;43m ' + rrcMsg + ' \u001B[0m')
htmleNBFailureMsg += rrcMsg + '\n'
if rachCanceledProcedure > 0:
rachMsg = nodeB_prefix + 'NB cancelled ' + str(rachCanceledProcedure) + ' RA procedure(s)'
logging.debug('\u001B[1;30;43m ' + rachMsg + ' \u001B[0m')
htmleNBFailureMsg += rachMsg + '\n'
if isRRU:
if isSlave:
if slaveReceivesFrameResyncCmd:
rruMsg = 'Slave RRU received the RRU_frame_resynch command from RAU'
logging.debug('\u001B[1;30;43m ' + rruMsg + ' \u001B[0m')
htmleNBFailureMsg += rruMsg + '\n'
else:
rruMsg = 'Slave RRU DID NOT receive the RRU_frame_resynch command from RAU'
logging.debug('\u001B[1;37;41m ' + rruMsg + ' \u001B[0m')
htmleNBFailureMsg += rruMsg + '\n'
self.prematureExit = True
global_status = CONST.ENB_PROCESS_SLAVE_RRU_NOT_SYNCED
if foundSegFault:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB ended with a Segmentation Fault! \u001B[0m')
global_status = CONST.ENB_PROCESS_SEG_FAULT
if foundAssertion:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB ended with an assertion! \u001B[0m')
htmleNBFailureMsg += msgAssertion
global_status = CONST.ENB_PROCESS_ASSERTION
if foundRealTimeIssue:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB faced real time issues! \u001B[0m')
htmleNBFailureMsg += nodeB_prefix + 'NB faced real time issues!\n'
if rlcDiscardBuffer > 0:
rlcMsg = nodeB_prefix + 'NB RLC discarded ' + str(rlcDiscardBuffer) + ' buffer(s)'
logging.debug('\u001B[1;37;41m ' + rlcMsg + ' \u001B[0m')
htmleNBFailureMsg += rlcMsg + '\n'
global_status = CONST.ENB_PROCESS_REALTIME_ISSUE
if self.htmlObj is not None:
self.htmlObj.htmleNBFailureMsg=htmleNBFailureMsg
# Runtime statistics for console output and HTML
if runTime != '':
logging.debug(runTime)
logging.debug(userTime)
logging.debug(systemTime)
logging.debug(maxPhyMemUsage)
logging.debug(nbContextSwitches)
self.runtime_stats='<pre>'+runTime + '\n'+ userTime + '\n' + systemTime + '\n' + maxPhyMemUsage + '\n' + nbContextSwitches+'</pre>'
return global_status

View File

@@ -53,7 +53,7 @@ function details_table {
echo " <th>Message</th>" >> $3
echo " </tr>" >> $3
LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto"`
LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto|disabling jobserver mode"`
COMPLETE_MESSAGE="start"
for MESSAGE in $LIST_MESSAGES
do
@@ -146,7 +146,7 @@ function summary_table_row {
else
echo " <td bgcolor = \"red\" >$NB_ERRORS</th>" >> ./build_results.html
fi
NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | egrep -c "warning:"`
NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto|disabling jobserver mode" | egrep -c "warning:"`
if [ $NB_WARNINGS -eq 0 ]
then
echo " <td bgcolor = \"green\" >$NB_WARNINGS</th>" >> ./build_results.html
@@ -492,6 +492,77 @@ function report_build {
awk '{print " <tr><td>"$1"</td></tr>"}' ./oai_rules_result_list.txt >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " </div>" >> ./build_results.html
echo " <br>" >> ./build_results.html
fi
if [ -f ./header-files-w-incorrect-define.txt ]
then
NB_FILES_IN_ERROR=`wc -l ./header-files-w-incorrect-define.txt | sed -e "s@ .*@@"`
if [ $NB_FILES_IN_ERROR -eq 0 ]
then
echo " <div class=\"alert alert-success\">" >> ./build_results.html
if [ $MR_TRIG -eq 1 ]; then echo " <strong>No Issue for CIRCULAR DEPENDENCY PROTECTION in modified files</strong>" >> ./build_results.html; fi
if [ $PU_TRIG -eq 1 ]; then echo " <strong>No Issue for CIRCULAR DEPENDENCY PROTECTION in the whole repository</strong>" >> ./build_results.html; fi
echo " </div>" >> ./build_results.html
else
echo " <div class=\"alert alert-warning\">" >> ./build_results.html
if [ $MR_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} modified files MAY NOT HAVE CIRCULAR DEPENDENCY PROTECTION</strong>" >> ./build_results.html; fi
if [ $PU_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} files in repository MAY NOT HAVE CIRCULAR DEPENDENCY PROTECTION in the whole repository</strong>" >> ./build_results.html; fi
echo " </div>" >> ./build_results.html
echo " <button data-toggle=\"collapse\" data-target=\"#oai-circular-details\">More details on circular dependency protection check</button>" >> ./build_results.html
echo " <div id=\"oai-circular-details\" class=\"collapse\">" >> ./build_results.html
echo " <table border = 1>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <th bgcolor = \"lightcyan\" >Potential Issue</th>" >> ./build_results.html
echo " <th bgcolor = \"lightcyan\" >Impacted File</th>" >> ./build_results.html
echo " <th bgcolor = \"lightcyan\" >Incorrect Macro</th>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
awk '{if($0 ~/error in/){print " <tr><td>error in declaration</td><td>"$4"</td><td>"$5"</td></tr>"};if($0 ~/files with same/){print " <tr><td>files with same #define</td><td>"$5"</td><td>"$6"</td></tr>"}}' ./header-files-w-incorrect-define.txt >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " </div>" >> ./build_results.html
echo " <br>" >> ./build_results.html
fi
fi
if [ -f ./files-w-gnu-gpl-license-banner.txt ]
then
NB_FILES_IN_ERROR=`wc -l ./files-w-gnu-gpl-license-banner.txt | sed -e "s@ .*@@"`
if [ $NB_FILES_IN_ERROR -ne 0 ]
then
echo " <div class=\"alert alert-danger\">" >> ./build_results.html
if [ $MR_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} modified files HAVE a GNU GPL license banner</strong>" >> ./build_results.html; fi
if [ $PU_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} files in repository HAVE a GNU GPL license banner</strong>" >> ./build_results.html; fi
echo " </div>" >> ./build_results.html
echo " <button data-toggle=\"collapse\" data-target=\"#oai-license-gpl\">More details on GNU GPL license banner issue</button>" >> ./build_results.html
echo " <div id=\"oai-license-gpl\" class=\"collapse\">" >> ./build_results.html
echo " <table border = 1>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <th bgcolor = \"lightcyan\" >Filename</th>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
awk '{print " <tr><td>"$1"</td></tr>"}' ./files-w-gnu-gpl-license-banner.txt >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " </div>" >> ./build_results.html
echo " <br>" >> ./build_results.html
fi
fi
if [ -f ./files-w-suspect-banner.txt ]
then
NB_FILES_IN_ERROR=`wc -l ./files-w-suspect-banner.txt | sed -e "s@ .*@@"`
if [ $NB_FILES_IN_ERROR -ne 0 ]
then
echo " <div class=\"alert alert-warning\">" >> ./build_results.html
if [ $MR_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} modified files HAVE a suspect license banner</strong>" >> ./build_results.html; fi
if [ $PU_TRIG -eq 1 ]; then echo " <strong>${NB_FILES_IN_ERROR} files in repository HAVE a suspect license banner</strong>" >> ./build_results.html; fi
echo " </div>" >> ./build_results.html
echo " <button data-toggle=\"collapse\" data-target=\"#oai-license-suspect\">More details on suspect banner files</button>" >> ./build_results.html
echo " <div id=\"oai-license-suspect\" class=\"collapse\">" >> ./build_results.html
echo " <table border = 1>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <th bgcolor = \"lightcyan\" >Filename</th>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
awk '{print " <tr><td>"$1"</td></tr>"}' ././files-w-suspect-banner.txt >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " </div>" >> ./build_results.html
echo " <br>" >> ./build_results.html
fi
fi
fi

View File

@@ -470,7 +470,7 @@ function report_test {
then
NB_UE_TUNNEL_UP=`egrep -c "Interface oaitun_ue1 successfully configured" $UE_LOG`
else
NB_UE_TUNNEL_UP=`egrep -c "executing ifconfig oaitun_ue1" $UE_LOG`
NB_UE_TUNNEL_UP=`egrep -c "ip link set oaitun_ue1 up" $UE_LOG`
fi
if [ $NB_ENB_GOT_SYNC -gt 0 ] && [ $NB_UE_GOT_SYNC -gt 0 ] && [ $NB_ENB_SYNCED_WITH_UE -gt 0 ]
then
@@ -620,6 +620,101 @@ function report_test {
#IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_ul*client*txt | grep -v mbms 2> /dev/null`
#analyzeIperfFiles
done
# FeMBMS Case
CN_CONFIG="noS1"
TMODE="fdd"
BW_CASES=(05)
for BW in ${BW_CASES[@]}
do
echo " <tr bgcolor = \"#8FBC8F\" >" >> ./test_simulator_results.html
echo " <td align = \"center\" colspan = 4 >Test FeMBMS without EPC (aka noS1): ${TMODE} -- ${BW}MHz </td>" >> ./test_simulator_results.html
echo " </tr>" >> ./test_simulator_results.html
ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_enb_fembms.log
UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
then
NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
echo " <tr>" >> ./test_simulator_results.html
echo " <td>$NAME_ENB --- $NAME_UE</td>" >> ./test_simulator_results.html
echo " <td>N/A</td>" >> ./test_simulator_results.html
#NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
NB_ENB_TUNNEL_UP=`egrep -c "Interface oaitun_enb1 successfully configured" $ENB_LOG`
NB_ENB_MTUNNEL_UP=`egrep -c "Interface oaitun_enm1 successfully configured" $ENB_LOG`
#NB_UE_GOT_SYNC=`egrep -c "rfsimulator: Success" $UE_LOG`
#NB_ENB_SYNCED_WITH_UE=`egrep -c "Generating RRCConnectionReconfigurationComplete" $UE_LOG`
NB_UE_TUNNEL_UP=`egrep -c "Interface oaitun_ue1 successfully configured" $UE_LOG`
NB_UE_MTUNNEL_UP=`egrep -c "Interface oaitun_uem1 successfully configured" $UE_LOG`
NB_UE_MBMS_PUSH_MSG=`egrep -c "TRIED TO PUSH MBMS DATA TO" $UE_LOG`
#if [ $NB_ENB_GOT_SYNC -gt 0 ] && [ $NB_UE_GOT_SYNC -gt 0 ] && [ $NB_ENB_SYNCED_WITH_UE -gt 0 ] && [ $NB_UE_MBMS_PUSH_MSG -gt 0 ]
if [ $NB_UE_MBMS_PUSH_MSG -gt 0 ]
then
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
else
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
fi
echo " <td><pre>" >> ./test_simulator_results.html
#if [ $NB_ENB_GOT_SYNC -gt 0 ]
#then
# echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
#else
# echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
#fi
if [ $NB_ENB_TUNNEL_UP -gt 0 ]
then
echo "<font color = \"blue\">- eNB mounted oaitun_enb1 interface</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- eNB NEVER mounted oaitun_enb1 interface</b></font>" >> ./test_simulator_results.html
fi
if [ $NB_ENB_MTUNNEL_UP -gt 0 ]
then
echo "<font color = \"blue\">- eNB mounted oaitun_enm1 interface</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- eNB NEVER mounted oaitun_enm1 interface</b></font>" >> ./test_simulator_results.html
fi
#if [ $NB_UE_GOT_SYNC -gt 0 ]
#then
# echo "<font color = \"blue\">- LTE UE --> got sync</font>" >> ./test_simulator_results.html
#else
# echo "<font color = \"red\"><b>- LTE UE NEVER got sync</b></font>" >> ./test_simulator_results.html
#fi
#if [ $NB_ENB_SYNCED_WITH_UE -gt 0 ]
#then
# echo "<font color = \"blue\">- LTE UE attached to eNB</font>" >> ./test_simulator_results.html
#else
# echo "<font color = \"red\"><b>- LTE UE NEVER attached to eNB</b></font>" >> ./test_simulator_results.html
#fi
if [ $NB_UE_TUNNEL_UP -gt 0 ]
then
echo "<font color = \"blue\">- LTE UE mounted oaitun_ue1 interface</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- LTE UE NEVER mounted oaitun_ue1 interface</b></font>" >> ./test_simulator_results.html
fi
if [ $NB_UE_MTUNNEL_UP -gt 0 ]
then
echo "<font color = \"blue\">- LTE UE mounted oaitun_uem1 interface</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- LTE UE NEVER mounted oaitun_uem1 interface</b></font>" >> ./test_simulator_results.html
fi
if [ $NB_UE_MBMS_PUSH_MSG -gt 0 ]
then
echo "<font color = \"blue\">- LTE UE tried to push ${NB_UE_MBMS_PUSH_MSG} MBMS DATA</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- LTE UE NEVER pushed MBMS DATA</b></font>" >> ./test_simulator_results.html
fi
echo " </pre></td>" >> ./test_simulator_results.html
echo " </tr>" >> ./test_simulator_results.html
fi
#PING_LOGS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_ping*.log 2> /dev/null`
#analyzePingFiles
#IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_dl*client*txt | grep -v mbms 2> /dev/null`
#analyzeIperfFiles
#IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_ul*client*txt | grep -v mbms 2> /dev/null`
#analyzeIperfFiles
done
echo " </table>" >> ./test_simulator_results.html
echo " </div>" >> ./test_simulator_results.html
@@ -670,6 +765,52 @@ function report_test {
echo " <td align = \"center\" colspan = 4 >Test without EPC (aka noS1): ${TMODE} -- ${BW}PRB </td>" >> ./test_simulator_results.html
fi
echo " </tr>" >> ./test_simulator_results.html
#RA test (--do-ra option)
#build log files names
RA_ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_gnb_ra_test.log
RA_UE_LOG=$ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_ue_ra_test.log
if [ -f $RA_ENB_LOG ] && [ -f $RA_UE_LOG ]
then
#get rid of full path
NAME_ENB=`echo $RA_ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
NAME_UE=`echo $RA_UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
echo " <tr>" >> ./test_simulator_results.html
echo " <td>$NAME_ENB --- $NAME_UE</td>" >> ./test_simulator_results.html
echo " <td>Check if RA proc succeeded</td>" >> ./test_simulator_results.html
#gNB RA check
GNB_RECEIVED=`egrep -c "\[RAPROC\] PUSCH with TC_RNTI (.+) received correctly" $RA_ENB_LOG`
#UE RA check
UE_RA_PROC_OK=`egrep -c "\[RAPROC\] RA procedure succeeded" $RA_UE_LOG`
if [ $GNB_RECEIVED -gt 0 ] && [ $UE_RA_PROC_OK -gt 0 ]
then
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
else
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
fi
echo " <td><pre>" >> ./test_simulator_results.html
if [ $GNB_RECEIVED -gt 0 ]
then
echo "<font color = \"blue\">- gNB --> RA received</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- gNB RA NOT RECEIVED</b></font>" >> ./test_simulator_results.html
fi
if [ $UE_RA_PROC_OK -gt 0 ]
then
echo "<font color = \"blue\">- NR UE --> RA procedure succeded</font>" >> ./test_simulator_results.html
else
echo "<font color = \"red\"><b>- NR UE RA procedure failed</b></font>" >> ./test_simulator_results.html
fi
echo " </pre></td>" >> ./test_simulator_results.html
echo " </tr>" >> ./test_simulator_results.html
fi
#SYNC test
ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_gnb.log
UE_LOG=`echo $ENB_LOG | sed -e "s#gnb#ue#"`
if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
@@ -724,8 +865,8 @@ function report_test {
echo " </pre></td>" >> ./test_simulator_results.html
echo " </tr>" >> ./test_simulator_results.html
fi
#PING_LOGS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping*.log 2> /dev/null`
#analyzePingFiles
PING_LOGS=`ls $ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_ping*.log 2> /dev/null`
analyzePingFiles
IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_iperf_dl*client*txt 2> /dev/null`
analyzeIperfFiles

Binary file not shown.

Binary file not shown.

View File

@@ -89,6 +89,9 @@ function start_basic_sim_enb {
fi
done
ENB_SYNC=0
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -151,6 +154,9 @@ function start_basic_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
rm $1
if [ $i -lt 50 ]
then
@@ -270,6 +276,43 @@ function check_ping_result {
fi
}
function check_ra_result {
local LOC_GNB_LOG=$1
local LOC_UE_LOG=$2
#if log files exist
if [ -f $LOC_GNB_LOG ] && [ -f $LOC_UE_LOG ]
then
#gNB RA test
#console check
echo "Checking gNB Log for RA success"
egrep "\[RAPROC\] PUSCH with TC_RNTI (.+) received correctly" $1
#script check
local GNB_COMPLETE=`egrep -c "\[RAPROC\] PUSCH with TC_RNTI (.+) received correctly" $1`
#UE RA test
#console check
echo 'Checking UE Log for RA success'
egrep "\[RAPROC\] RA procedure succeeded" $2
#script check
local UE_COMPLETE=`egrep -c "\[RAPROC\] RA procedure succeeded" $2`
#generate status
if [ $GNB_COMPLETE -eq 0 ] || [ $UE_COMPLETE -eq 0 ]
then
RA_STATUS=-1
echo "RA test FAILED, could not find the markers"
fi
#case where log files do not exist
else
echo "RA test log files not present"
RA_STATUS=-1
fi
}
# In DL: iperf server should be on UE side
# -B oaitun_ue{j}-IP-Addr
# iperf client should be on EPC (S1) or eNB (noS1) side
@@ -342,34 +385,8 @@ function check_iperf {
local FILE_COMPLETE=`egrep -c "Server Report" ${LOC_BASE_LOG}_client.txt`
if [ $FILE_COMPLETE -eq 0 ]
then
# This part will become obsolete once we have UL
if [[ $LOC_IS_RF_SIM -eq 1 ]] && [[ $LOC_IS_NR -eq 1 ]]
then
echo "no UL integration right now --> normal to have no server report"
if [ -f ${LOC_BASE_LOG}_server.txt ]
then
local EFFECTIVE_BANDWIDTH=`tail -n1 ${LOC_BASE_LOG}_server.txt | sed -e "s#^.*MBytes *##" -e "s#^.*KBytes *##" -e "s#sec.*#sec#"`
if [[ $2 =~ .*K.* ]]
then
local BW_PREFIX="K"
else
local BW_PREFIX="M"
fi
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*${BW_PREFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*${BW_PREFIX}bits.* ]]
then
echo "got requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
else
echo "got LESS than requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
IPERF_STATUS=-1
fi
else
IPERF_STATUS=-1
echo "Server File Report not found"
fi
else
IPERF_STATUS=-1
echo "File Report not found"
fi
IPERF_STATUS=-1
echo "File Report not found"
else
if [ `egrep -c "Mbits/sec" ${LOC_BASE_LOG}_client.txt` -ne 0 ]
then
@@ -549,9 +566,9 @@ function install_epc_on_vm {
echo "############################################################"
echo "[ -f 01proxy ] && sudo cp 01proxy /etc/apt/apt.conf.d/" > $LOC_EPC_VM_CMDS
echo "touch /home/ubuntu/.hushlogin" >> $LOC_EPC_VM_CMDS
echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $LOC_EPC_VM_CMDS
echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev iperf\"" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get update > zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev iperf >> zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
# Installing HSS
echo "echo \"cd /opt\"" >> $LOC_EPC_VM_CMDS
@@ -614,8 +631,6 @@ function start_epc {
echo "echo \"cd /opt/hss_sim0609\"" > $LOC_EPC_VM_CMDS
echo "cd /opt/hss_sim0609" >> $LOC_EPC_VM_CMDS
echo "sudo rm -f hss.log" >> $LOC_EPC_VM_CMDS
#echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $LOC_EPC_VM_CMDS
#echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $LOC_EPC_VM_CMDS
echo "echo \"screen -dm -S simulated_hss ./starthss_real\"" >> $LOC_EPC_VM_CMDS
echo "sudo su -c \"screen -dm -S simulated_hss ./starthss_real\"" >> $LOC_EPC_VM_CMDS
@@ -682,8 +697,6 @@ function terminate_epc {
echo "cd /opt/ltebox/tools" >> $1
echo "echo \"sudo ./stop_ltebox\"" >> $1
echo "sudo ./stop_ltebox" >> $1
echo "echo \"sudo daemon --name=simulated_hss --stop\"" >> $1
echo "sudo daemon --name=simulated_hss --stop" >> $1
echo "echo \"sudo killall --signal SIGKILL hss_sim\"" >> $1
echo "sudo killall --signal SIGKILL hss_sim" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
@@ -790,6 +803,9 @@ function start_l2_sim_enb {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
rm $1
ENB_SYNC=1
if [ $i -lt 50 ]
@@ -898,6 +914,9 @@ function start_l2_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
rm $1
UE_SYNC=1
if [ $i -lt 50 ]
@@ -1011,6 +1030,9 @@ function start_rf_sim_enb {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -1140,6 +1162,9 @@ function start_rf_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -1184,11 +1209,19 @@ function start_rf_sim_gnb {
local LOC_CONF_FILE=$5
# 1 is with S1 and 0 without S1 aka noS1
local LOC_S1_CONFIGURATION=$6
#LOC_RA_TEST=1 will run the RA test check
local LOC_RA_TEST=$7
if [ -e rbconfig.raw ]; then rm -f rbconfig.raw; fi
if [ -e reconfig.raw ]; then rm -f reconfig.raw; fi
echo "cd /home/ubuntu/tmp" > $1
echo "echo \"sudo apt-get --yes --quiet install daemon \"" >> $1
echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
echo "echo \"source oaienv\"" >> $1
echo "source oaienv" >> $1
echo "echo \"export RFSIMULATOR=server\"" >> $1
echo "export RFSIMULATOR=server" >> $1
echo "cd ci-scripts/conf_files/" >> $1
echo "cp $LOC_CONF_FILE ci-$LOC_CONF_FILE" >> $1
#echo "sed -i -e 's#N_RB_DL.*=.*;#N_RB_DL = $LOC_NB_RBS;#' -e 's#CI_MME_IP_ADDR#$LOC_EPC_IP_ADDR#' -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
@@ -1197,9 +1230,15 @@ function start_rf_sim_gnb {
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo rm -f r*config.raw" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"RFSIMULATOR=server ./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test\" > ./my-nr-softmodem-run.sh " >> $1
if [ $LOC_RA_TEST -eq 0 ] #no RA test => use --phy-test option
then
echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test\" > ./my-nr-softmodem-run.sh " >> $1
else #RA test => use --do-ra option
echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --rfsim --do-ra\" > ./my-nr-softmodem-run.sh " >> $1
fi
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1209,6 +1248,7 @@ function start_rf_sim_gnb {
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR < $1
rm $1
local i="0"
echo "egrep -c \"got sync\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
while [ $i -lt 10 ]
@@ -1231,7 +1271,9 @@ function start_rf_sim_gnb {
GNB_SYNC=1
echo "RF-SIM gNB is sync'ed: waiting for UE(s) to connect"
fi
if [ $LOC_S1_CONFIGURATION -eq 0 ]
# check noS1 config only outside RA test (as it does not support noS1)
if [ $LOC_S1_CONFIGURATION -eq 0 ] && [ $LOC_RA_TEST -eq 0 ]
then
echo "ifconfig oaitun_enb1 | egrep -c \"inet addr\"" > $1
# Checking oaitun_enb1 interface has now an IP address
@@ -1256,7 +1298,16 @@ function start_rf_sim_gnb {
echo "RF-SIM gNB oaitun_enb1 is UP and CONFIGURED"
fi
fi
sleep 10
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR < $1
rm $1
# Copy the RAW files from the gNB run for the NR-UE
scp -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/ran_build/build/rbconfig.raw .
scp -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/ran_build/build/reconfig.raw .
}
function start_rf_sim_nr_ue {
@@ -1267,14 +1318,30 @@ function start_rf_sim_nr_ue {
local LOC_FREQUENCY=$6
# 1 is with S1 and 0 without S1 aka noS1
local LOC_S1_CONFIGURATION=$7
#LOC_RA_TEST=1 will run the RA test check
local LOC_RA_TEST=$8
# Copy the RAW files from the gNB run
scp -o StrictHostKeyChecking=no rbconfig.raw ubuntu@$LOC_NR_UE_VM_IP_ADDR:/home/ubuntu/tmp
scp -o StrictHostKeyChecking=no reconfig.raw ubuntu@$LOC_NR_UE_VM_IP_ADDR:/home/ubuntu/tmp
echo "echo \"sudo apt-get --yes --quiet install daemon \"" > $1
echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
echo "echo \"export RFSIMULATOR=${LOC_GNB_VM_IP_ADDR}\"" >> $1
echo "export RFSIMULATOR=${LOC_GNB_VM_IP_ADDR}" >> $1
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo cp /home/ubuntu/tmp/r*config.raw /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo chmod 666 /home/ubuntu/tmp/cmake_targets/ran_build/build/r*config.raw" >> $1
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"RFSIMULATOR=${LOC_GNB_VM_IP_ADDR} ./nr-uesoftmodem --nokrnmod 1 --rfsim --phy-test --rrc_config_path /home/ubuntu/tmp/ci-scripts/rrc-files --log_config.global_log_options level,nocolor --noS1\" > ./my-nr-softmodem-run.sh " >> $1
if [ $LOC_RA_TEST -eq 0 ] #no RA test => use --phy-test option
then
echo "echo \"./nr-uesoftmodem --nokrnmod 1 --rfsim --phy-test --rrc_config_path /home/ubuntu/tmp/cmake_targets/ran_build/build/ --log_config.global_log_options level,nocolor --noS1\" > ./my-nr-softmodem-run.sh " >> $1
else #RA test => use --do-ra option
echo "echo \"./nr-uesoftmodem --rfsim --do-ra --log_config.global_log_options level,nocolor --rrc_config_path /home/ubuntu/tmp/cmake_targets/ran_build/build/\" > ./my-nr-softmodem-run.sh " >> $1
fi
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1307,11 +1374,13 @@ function start_rf_sim_nr_ue {
else
echo "RF-SIM NR-UE is sync'ed w/ gNB"
fi
# Checking oaitun_ue1 interface has now an IP address
i="0"
echo "ifconfig oaitun_ue1 | egrep -c \"inet addr\"" > $1
while [ $i -lt 10 ]
do
# Checking oaitun_ue1 interface has now an IP address (only outside RA test)
if [ $LOC_RA_TEST -eq 0 ]
then
i="0"
echo "ifconfig oaitun_ue1 | egrep -c \"inet addr\"" > $1
while [ $i -lt 10 ]
do
sleep 5
CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_NR_UE_VM_IP_ADDR < $1`
if [ $CONNECTED -eq 1 ]
@@ -1320,16 +1389,20 @@ function start_rf_sim_nr_ue {
else
i=$[$i+1]
fi
done
rm $1
if [ $i -lt 50 ]
then
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_NR_UE_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
NR_UE_SYNC=0
echo "RF-SIM NR-UE oaitun_ue1 is DOWN or NOT CONFIGURED"
else
else
echo "RF-SIM NR-UE oaitun_ue1 is UP and CONFIGURED"
fi
sleep 10
fi
sleep 10
fi
}
@@ -2017,6 +2090,70 @@ function run_test_on_vm {
done
####################
## FeMBMS CASE noS1 ##
####################
CONF_FILE=lte-fdd-fembms-basic-sim.conf
CN_CONFIG="noS1"
S1_NOS1_CFG=0
LTEBOX=0
TMODE="fdd"
FREQUENCY=2680
BW_CASES=(05)
FeMBMS_STATUS=0
for BW in ${BW_CASES[@]}
do
if [[ $BW =~ .*05.* ]]; then PRB=25; fi
if [[ $BW =~ .*10.* ]]; then PRB=50; fi
if [[ $BW =~ .*20.* ]]; then PRB=100; fi
echo "############################################################"
echo "${CN_CONFIG} : Starting the eNB with MSMS in ${TMODE}-${BW}MHz mode"
echo "############################################################"
CURRENT_ENB_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_enb_fembms.log
start_rf_sim_enb $ENB_VM_CMDS "$ENB_VM_IP_ADDR" "$EPC_VM_IP_ADDR" $CURRENT_ENB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
echo "############################################################"
echo "${CN_CONFIG} : Starting the UE"
echo "############################################################"
CURRENT_UE_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_ue_fembms.log
start_rf_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 1
if [ $UE_SYNC -eq 0 ]
then
echo "Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
STATUS=-1
break
fi
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- UE is server and eNB is client"
echo "############################################################"
get_enb_mbms_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
IPERF_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_dl_fembms
get_ue_mbms_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
THROUGHPUT=2
generic_iperf $UE_VM_CMDS $UE_VM_IP_ADDR $UE_IP_ADDR $ENB_VM_CMDS $ENB_VM_IP_ADDR $ENB_IP_ADDR $THROUGHPUT $IPERF_LOG_FILE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_server.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_client.txt $ARCHIVES_LOC
#check_iperf $ARCHIVES_LOC/$IPERF_LOG_FILE $THROUGHPUT
echo "############################################################"
echo "${CN_CONFIG} : Terminate enb/ue simulators"
echo "############################################################"
terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
NB_UE_FeMBMS_MESSAGES=`egrep -c "TRIED TO PUSH MBMS DATA TO" $ARCHIVES_LOC/$CURRENT_UE_LOG_FILE`
if [ $NB_UE_FeMBMS_MESSAGES -eq 0 ]; then FeMBMS_STATUS=-1; fi
done
full_l2_sim_destroy
echo "############################################################"
@@ -2032,6 +2169,13 @@ function run_test_on_vm {
echo "LTE MBMS RFSIM seems to FAIL"
STATUS=-1
fi
if [ $FeMBMS_STATUS -eq 0 ]
then
echo "LTE FeMBMS RFSIM seems OK"
else
echo "LTE FeMBMS RFSIM seems to FAIL"
STATUS=-1
fi
if [ $STATUS -eq 0 ]
then
echo "LTE RFSIM seems OK"
@@ -2040,85 +2184,200 @@ function run_test_on_vm {
echo "LTE RFSIM seems to FAIL"
echo "LTE: TEST_KO" > $ARCHIVES_LOC/test_final_status.log
fi
fi
if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-rf-sim.* ]]
then
NR_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
CN_CONFIG="noS1"
CONF_FILE=gnb.band78.tm1.106PRB.usrpn300.conf
S1_NOS1_CFG=0
PRB=106
FREQUENCY=3510
######### start of loop
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "############################################################"
CURRENT_GNB_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_gnb.log
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ue.log
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG
if [ $NR_UE_SYNC -eq 0 ]
if [ ! -d $ARCHIVES_LOC ]
then
echo "Problem w/ gNB and NR-UE not syncing"
mkdir --parents $ARCHIVES_LOC
fi
local try_cnt="0"
NR_STATUS=0
######### start of RA TEST loop
while [ $try_cnt -lt 5 ] #5 because it hardly succeed within CI
do
SYNC_STATUS=0
RA_STATUS=0
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}*ra_test.log
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "############################################################"
CURRENT_GNB_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_gnb_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 1
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ue_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 1
if [ $NR_UE_SYNC -eq 0 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
SYNC_STATUS=-1
try_cnt=$[$try_cnt+1]
continue
fi
echo "############################################################"
echo "${CN_CONFIG} : Terminate gNB/NR-UE simulators"
echo "############################################################"
sleep 20
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
echo "5G-NR RFSIM seems to FAIL"
echo "5G-NR: TEST_KO" >> $ARCHIVES_LOC/test_final_status.log
STATUS=-1
return
fi
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- NR-UE is server and gNB is client"
echo "############################################################"
THROUGHPUT="30K"
CURR_IPERF_LOG_BASE=tdd_${PRB}prb_${CN_CONFIG}_iperf_dl
get_enb_noS1_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR
get_ue_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 1
generic_iperf $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $UE_IP_ADDR $GNB_VM_CMDS $GNB_VM_IP_ADDR $ENB_IP_ADDR $THROUGHPUT $CURR_IPERF_LOG_BASE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE $THROUGHPUT
#check RA markers in gNB and NR UE log files
echo "############################################################"
echo "${CN_CONFIG} : Checking RA on gNB / NR-UE"
echo "############################################################"
echo "############################################################"
echo "${CN_CONFIG} : iperf UL -- gNB is server and NR-UE is client"
echo "############################################################"
THROUGHPUT="30K"
CURR_IPERF_LOG_BASE=tdd_${PRB}prb_${CN_CONFIG}_iperf_ul
get_enb_noS1_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR
get_ue_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 1
generic_iperf $GNB_VM_CMDS $GNB_VM_IP_ADDR $ENB_IP_ADDR $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $UE_IP_ADDR $THROUGHPUT $CURR_IPERF_LOG_BASE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE $THROUGHPUT
# Proper check to be done when RA test is working!
check_ra_result $ARCHIVES_LOC/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC/$CURRENT_NR_UE_LOG_FILE
if [ $RA_STATUS -ne 0 ]
then
echo "RA test NOT OK"
try_cnt=$[$try_cnt+1]
else
try_cnt=$[$try_cnt+10]
fi
done
########### end RA test
sleep 30
echo "############################################################"
echo "${CN_CONFIG} : Terminate gNB/NR-UE simulators"
echo "############################################################"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
######### start of PHY TEST loop
try_cnt="0"
while [ $try_cnt -lt 4 ]
do
SYNC_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_gnb.log $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ue.log
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ping_gnb_from_nrue.log $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ping_from_gnb_nrue.log
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_iperf_dl*txt $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_iperf_ul*txt
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "############################################################"
CURRENT_GNB_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_gnb.log
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 0
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ue.log
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 0
if [ $NR_UE_SYNC -eq 0 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
SYNC_STATUS=-1
try_cnt=$[$try_cnt+1]
continue
fi
echo "############################################################"
echo "${CN_CONFIG} : Pinging the gNB from NR-UE"
echo "############################################################"
get_enb_noS1_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR
PING_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ping_gnb_from_nrue.log
ping_epc_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $ENB_IP_ADDR $PING_LOG_FILE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
echo "############################################################"
echo "${CN_CONFIG} : Pinging the NR-UE from gNB"
echo "############################################################"
get_ue_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 1
PING_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ping_from_gnb_nrue.log
ping_enb_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- NR-UE is server and gNB is client"
echo "############################################################"
THROUGHPUT="30K"
CURR_IPERF_LOG_BASE=tdd_${PRB}prb_${CN_CONFIG}_iperf_dl
get_enb_noS1_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR
get_ue_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 1
generic_iperf $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $UE_IP_ADDR $GNB_VM_CMDS $GNB_VM_IP_ADDR $ENB_IP_ADDR $THROUGHPUT $CURR_IPERF_LOG_BASE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE $THROUGHPUT
if [ $IPERF_STATUS -ne 0 ]
then
echo "DL test not OK"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
try_cnt=$[$try_cnt+1]
continue
fi
echo "############################################################"
echo "${CN_CONFIG} : iperf UL -- gNB is server and NR-UE is client"
echo "############################################################"
THROUGHPUT="30K"
CURR_IPERF_LOG_BASE=tdd_${PRB}prb_${CN_CONFIG}_iperf_ul
get_enb_noS1_ip_addr $GNB_VM_CMDS $GNB_VM_IP_ADDR
get_ue_ip_addr $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 1
generic_iperf $GNB_VM_CMDS $GNB_VM_IP_ADDR $ENB_IP_ADDR $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $UE_IP_ADDR $THROUGHPUT $CURR_IPERF_LOG_BASE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE $THROUGHPUT
echo "############################################################"
echo "${CN_CONFIG} : Terminate gNB/NR-UE simulators"
echo "############################################################"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
if [ $IPERF_STATUS -ne 0 ]
then
echo "UL test not OK"
try_cnt=$[$try_cnt+1]
else
try_cnt=$[$try_cnt+10]
fi
done
######### end of loop
full_l2_sim_destroy
echo "############################################################"
echo "Checking run status"
echo "############################################################"
if [ $RA_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $SYNC_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $PING_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $IPERF_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $NR_STATUS -eq 0 ]

233
ci-scripts/sshconnection.py Normal file
View File

@@ -0,0 +1,233 @@
#/*
# * 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 pexpect # pexpect
import logging
import time # sleep
import re
import sys
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class SSHConnection():
def __init__(self):
self.ssh = ''
self.picocom_closure = False
def disablePicocomClosure(self):
self.picocom_closure = False
def enablePicocomClosure(self):
self.picocom_closure = True
def open(self, ipaddress, username, password):
extraSshOptions = ''
count = 0
connect_status = False
if ipaddress == '192.168.18.197':
extraSshOptions = ' -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
while count < 4:
self.ssh = pexpect.spawn('ssh', [username + '@' + ipaddress + extraSshOptions], timeout = 5)
self.sshresponse = self.ssh.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', 'Last login', pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
self.ssh.sendline('yes')
self.sshresponse = self.ssh.expect(['password:', username + '@'])
if self.sshresponse == 0:
self.ssh.sendline(password)
self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
count = 10
connect_status = True
else:
logging.debug('self.sshresponse = ' + str(self.sshresponse))
elif self.sshresponse == 1:
self.ssh.sendline(password)
self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
count = 10
connect_status = True
else:
logging.debug('self.sshresponse = ' + str(self.sshresponse))
elif self.sshresponse == 2:
# Checking if we are really on the remote client defined by its IP address
self.command('stdbuf -o0 ifconfig | egrep --color=never "inet addr:|inet "', '\$', 5)
result = re.search(str(ipaddress), str(self.ssh.before))
if result is None:
self.close()
else:
count = 10
connect_status = True
else:
# debug output
logging.debug(str(self.ssh.before))
logging.debug('self.sshresponse = ' + str(self.sshresponse))
# adding a tempo when failure
if not connect_status:
time.sleep(1)
count += 1
if connect_status:
pass
else:
sys.exit('SSH Connection Failed')
def cde_check_value(self, commandline, expected, timeout):
logging.debug(commandline)
self.ssh.timeout = timeout
self.ssh.sendline(commandline)
expected.append(pexpect.EOF)
expected.append(pexpect.TIMEOUT)
self.sshresponse = self.ssh.expect(expected)
return self.sshresponse
def command(self, commandline, expectedline, timeout):
logging.debug(commandline)
self.ssh.timeout = timeout
self.ssh.sendline(commandline)
self.sshresponse = self.ssh.expect([expectedline, pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
return 0
elif self.sshresponse == 1:
logging.debug('\u001B[1;37;41m Unexpected EOF \u001B[0m')
logging.debug('Expected Line : ' + expectedline)
logging.debug(str(self.ssh.before))
sys.exit(self.sshresponse)
elif self.sshresponse == 2:
logging.debug('\u001B[1;37;41m Unexpected TIMEOUT \u001B[0m')
logging.debug('Expected Line : ' + expectedline)
result = re.search('ping |iperf |picocom', str(commandline))
if result is None:
logging.debug(str(self.ssh.before))
sys.exit(self.sshresponse)
else:
return -1
else:
logging.debug('\u001B[1;37;41m Unexpected Others \u001B[0m')
logging.debug('Expected Line : ' + expectedline)
sys.exit(self.sshresponse)
def close(self):
self.ssh.timeout = 5
self.ssh.sendline('exit')
self.sshresponse = self.ssh.expect([pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
pass
elif self.sshresponse == 1:
if not self.picocom_closure:
logging.debug('\u001B[1;37;41m Unexpected TIMEOUT during closing\u001B[0m')
else:
logging.debug('\u001B[1;37;41m Unexpected Others during closing\u001B[0m')
def copyin(self, ipaddress, username, password, source, destination):
count = 0
copy_status = False
logging.debug('scp '+ username + '@' + ipaddress + ':' + source + ' ' + destination)
while count < 10:
scp_spawn = pexpect.spawn('scp '+ username + '@' + ipaddress + ':' + source + ' ' + destination, timeout = 100)
scp_response = scp_spawn.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0:
scp_spawn.sendline('yes')
scp_spawn.expect('password:')
scp_spawn.sendline(password)
scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0:
count = 10
copy_status = True
else:
logging.debug('1 - scp_response = ' + str(scp_response))
elif scp_response == 1:
scp_spawn.sendline(password)
scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0 or scp_response == 3:
count = 10
copy_status = True
else:
logging.debug('2 - scp_response = ' + str(scp_response))
elif scp_response == 2:
count = 10
copy_status = True
else:
logging.debug('3 - scp_response = ' + str(scp_response))
# adding a tempo when failure
if not copy_status:
time.sleep(1)
count += 1
if copy_status:
return 0
else:
return -1
def copyout(self, ipaddress, username, password, source, destination):
count = 0
copy_status = False
logging.debug('scp ' + source + ' ' + username + '@' + ipaddress + ':' + destination)
while count < 4:
scp_spawn = pexpect.spawn('scp ' + source + ' ' + username + '@' + ipaddress + ':' + destination, timeout = 100)
scp_response = scp_spawn.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0:
scp_spawn.sendline('yes')
scp_spawn.expect('password:')
scp_spawn.sendline(password)
scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0:
count = 10
copy_status = True
else:
logging.debug('1 - scp_response = ' + str(scp_response))
elif scp_response == 1:
scp_spawn.sendline(password)
scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if scp_response == 0 or scp_response == 3:
count = 10
copy_status = True
else:
logging.debug('2 - scp_response = ' + str(scp_response))
elif scp_response == 2:
count = 10
copy_status = True
else:
logging.debug('3 - scp_response = ' + str(scp_response))
# adding a tempo when failure
if not copy_status:
time.sleep(1)
count += 1
if copy_status:
pass
else:
sys.exit('SCP failed')
def getBefore(self):
return str(self.ssh.before)

34
ci-scripts/xml_class_list.yml Executable file
View File

@@ -0,0 +1,34 @@
- Build_PhySim
- Run_PhySim
- Build_eNB
- WaitEndBuild_eNB
- Initialize_eNB
- Terminate_eNB
- Initialize_UE
- Terminate_UE
- Attach_UE
- Detach_UE
- Build_OAI_UE
- Initialize_OAI_UE
- Terminate_OAI_UE
- DataDisable_UE
- DataEnable_UE
- CheckStatusUE
- Ping
- Iperf
- Reboot_UE
- Initialize_FlexranCtrl
- Terminate_FlexranCtrl
- Initialize_HSS
- Terminate_HSS
- Initialize_MME
- Terminate_MME
- Initialize_SPGW
- Terminate_SPGW
- Initialize_CatM_module
- Terminate_CatM_module
- Attach_CatM_module
- Detach_CatM_module
- Ping_CatM_module
- IdleSleep
- Perform_X2_Handover

View File

@@ -0,0 +1,147 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>test-05-tm1</htmlTabRef>
<htmlTabName>Test-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>4</repeatCount>
<TestCaseRequestedList>
030201
040101
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize OCP-eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate OCP-eNB</desc>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="040101">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="040201">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="040301">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="040401">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="040501">
<class>Ping</class>
<desc>ping (5MHz - 20 sec)</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
<testCase id="040603">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040604">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>unbalanced</iperf_profile>
</testCase>
<testCase id="040606">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040607">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040641">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040642">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040643">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040644">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,38 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>build-tab</htmlTabRef>
<htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010101">
<class>Build_eNB</class>
<desc>Build eNB OCP (USRP)</desc>
<Build_eNB_args>-w USRP -c --eNBocp --ninja</Build_eNB_args>
</testCase>
</testCaseList>

View File

@@ -25,23 +25,10 @@
<htmlTabName>EPC-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList>
010101 090101
050101 060101 070101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010101">
<class>Build_eNB</class>
<desc>Build eNB (USRP)</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
</testCase>
<testCase id="090101">
<class>Build_OAI_UE</class>
<desc>Build OAI UE</desc>
<Build_OAI_UE_args>-w USRP --UE</Build_OAI_UE_args>
</testCase>
<testCase id="050101">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>

View File

@@ -0,0 +1,82 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>test-05-tm1-fembms-nos1-tunnel</htmlTabRef>
<htmlTabName>Test-05MHz-FEMBMS-TM1-noS1-tunnel</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
030201 090109
030104 000001 090104 000002 040605 000001 090109 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>15</idle_sleep_time_in_sec>
</testCase>
<testCase id="000003">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
</testCase>
<testCase id="030104">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz/MBMS)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band17.tm1.mbms.25PRB.usrpb210.conf --noS1 --eNBs.[0].rrc_inactivity_threshold 0 --nokrnmod 1 --eNBs.[0].component_carriers.[0].eutra_band 7 --eNBs.[0].component_carriers.[0].downlink_frequency 2680000000 --eNBs.[0].component_carriers.[0].uplink_frequency_offset -120000000 --eNBs.[0].component_carriers.[0].mbms_dedicated_serving_cell ENABLE --MCEs.[0].mbms_sched_info.mbms_area_config_list.[0].pmch_config_list.[0].allocated_sf_end 512</Initialize_eNB_args>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
</testCase>
<testCase id="090104">
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE (FDD/Band7/5MHz/MBMS)</desc>
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1 --noS1</Initialize_OAI_UE_args>
</testCase>
<testCase id="090109">
<class>Terminate_OAI_UE</class>
<desc>Terminate OAI UE</desc>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/1.5Mbps/UDP/MBMS-sink)(20 sec)</desc>
<iperf_args>-c 10.0.2.2 -u -b 1.5M -t 20 -i 1 -fm -B 10.0.2.1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_options>sink</iperf_options>
</testCase>
</testCaseList>

View File

@@ -24,7 +24,8 @@
<htmlTabRef>test-lte-m-10-tm1</htmlTabRef>
<htmlTabName>Test-LTE-M-10MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<repeatCount>1</repeatCount>
<TestUnstable>True</TestUnstable>
<TestCaseRequestedList>
030201
040102

View File

@@ -25,7 +25,9 @@
<htmlTabRef>test-05-tm2</htmlTabRef>
<htmlTabName>Test-05MHz-TM2</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>3</repeatCount>
<repeatCount>2</repeatCount>
<TestUnstable>True</TestUnstable>
<TestMinId>040608</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

@@ -24,6 +24,8 @@
<htmlTabRef>test-10-tm1</htmlTabRef>
<htmlTabName>Test-10MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestUnstable>True</TestUnstable>
<TestMinId>040615</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

@@ -25,6 +25,8 @@
<htmlTabName>Test-20MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>4</repeatCount>
<TestUnstable>True</TestUnstable>
<TestMinId>040623</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

@@ -24,6 +24,8 @@
<htmlTabRef>test-20-tm1-defSched</htmlTabRef>
<htmlTabName>Test-20MHz-TM1-default-scheduler</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestUnstable>True</TestUnstable>
<TestMinId>040522</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

@@ -24,6 +24,7 @@
<htmlTabRef>test-05-tm1-rrc-no-flex</htmlTabRef>
<htmlTabName>Test-05MHz-TM1-RRC-Inactivity</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
030201
040101
@@ -33,8 +34,8 @@
<testCase id="000001">
<class>IdleSleep</class>
<desc>Waiting for 35 seconds</desc>
<idle_sleep_time_in_sec>35</idle_sleep_time_in_sec>
<desc>Waiting for 55 seconds</desc>
<idle_sleep_time_in_sec>55</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">

View File

@@ -36,8 +36,8 @@
<testCase id="000001">
<class>IdleSleep</class>
<desc>Waiting for 45 seconds</desc>
<idle_sleep_time_in_sec>45</idle_sleep_time_in_sec>
<desc>Waiting for 55 seconds</desc>
<idle_sleep_time_in_sec>55</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">

View File

@@ -0,0 +1,47 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>epc-closure</htmlTabRef>
<htmlTabName>EPC-Closure</htmlTabName>
<htmlTabIcon>log-out</htmlTabIcon>
<TestCaseRequestedList>
060000 060001 060002
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="060000">
<class>Terminate_HSS</class>
<desc>Terminate HSS</desc>
</testCase>
<testCase id="060001">
<class>Terminate_MME</class>
<desc>Terminate MME</desc>
</testCase>
<testCase id="060002">
<class>Terminate_SPGW</class>
<desc>Terminate SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,48 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>epc-start-tab</htmlTabRef>
<htmlTabName>EPC-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList>
000100 000101 000102
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="000100">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="000101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
</testCase>
<testCase id="000102">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,49 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>epc-start-tab</htmlTabRef>
<htmlTabName>EPC-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList>
000100 000101 000102
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="000100">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="000101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
<option>mme-verizon.conf</option>
</testCase>
<testCase id="000102">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,66 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>build-tab</htmlTabRef>
<htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
000001 000002
000003 000004
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>Build_eNB</class>
<desc>Build eNB</desc>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<backgroundBuild>True</backgroundBuild>
</testCase>
<testCase id="000004">
<class>WaitEndBuild_eNB</class>
<desc>Wait for end of Build eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="000002">
<class>Build_eNB</class>
<desc>Build gNB</desc>
<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<backgroundBuild>True</backgroundBuild>
</testCase>
<testCase id="000003">
<class>WaitEndBuild_eNB</class>
<desc>Wait for end of Build gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,77 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>test-fr1-tm1</htmlTabRef>
<htmlTabName>Test-FR1-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
030000
040000
000001
070001
070000
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="030000">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.fr1.25PRB.usrpb210.conf</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="040000">
<class>Initialize_eNB</class>
<desc>Initialize gNB (3/4 sampling rate)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf -E</Initialize_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>30</idle_sleep_time_in_sec>
</testCase>
<testCase id="070000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="070001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,117 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>TEST-FR1-TM1</htmlTabRef>
<htmlTabName>FR1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
010000
030000
040000
010001
000001
050000
050001
070001
070000
010002
010003
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="010003">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="010002">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="030000">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.fr1.25PRB.usrpb210.conf</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="040000">
<class>Initialize_eNB</class>
<desc>Initialize gNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf -E</Initialize_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20pings in 20sec</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 5pings in 1sec</desc>
<ping_args>-c 5 -i 0.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
<testCase id="070000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="070001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,151 @@
<!--
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
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
-->
<testCaseList>
<htmlTabRef>test-05-tm1</htmlTabRef>
<htmlTabName>Test-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
030201
040101
030101 040301 000001 040501 040603 040401 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].plmn_list.[0].mcc 311 --eNBs.[0].plmn_list.[0].mnc 480 --eNBs.[0].plmn_list.[0].mnc_length 3 --eNBs.[0].component_carriers.[0].Nid_cell 10</Initialize_eNB_args>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
</testCase>
<testCase id="040101">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="040201">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="040301">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="040401">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="040501">
<class>Ping</class>
<desc>ping (5MHz - 20 sec)</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
<testCase id="040603">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040604">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>unbalanced</iperf_profile>
</testCase>
<testCase id="040606">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040607">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040641">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040642">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040643">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040644">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
</testCaseList>

View File

@@ -52,7 +52,7 @@
<testCase id="090102">
<class>Initialize_OAI_UE</class>
<desc>Initialize NR UE USRP</desc>
<Initialize_OAI_UE_args>--phy-test --usrp-args "addr=192.168.30.2,second_addr=192.168.50.2,clock_source=external,time_source=external" --threadoffset 16 --rrc_config_path ci-scripts/rrc-files</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>--phy-test --usrp-args "addr=192.168.30.2,second_addr=192.168.50.2,clock_source=external,time_source=external" --ue-rxgain 75 --threadoffset 16 --rrc_config_path .</Initialize_OAI_UE_args>
<air_interface>NR</air_interface>
</testCase>

View File

@@ -0,0 +1,71 @@
<!--
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
-->
<testCaseList>
<htmlTabRef>run-oai-gnb-nr-ue-tx-write-thread</htmlTabRef>
<htmlTabName>Run-gNB-and-NR-UE-TX-Write-Thread</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
090103 000001 090104 000002 090108 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="090103">
<class>Initialize_eNB</class>
<desc>Initialize gNB USRP (Tx-Write-Threading enabled)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf --phy-test --usrp-tx-thread-config 1</Initialize_eNB_args>
<air_interface>NR</air_interface>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Waiting for NR UE to synchronize w/ gNB</desc>
<idle_sleep_time_in_sec>180</idle_sleep_time_in_sec>
</testCase>
<testCase id="090104">
<class>Initialize_OAI_UE</class>
<desc>Initialize NR UE USRP</desc>
<Initialize_OAI_UE_args>--phy-test --usrp-args "addr=192.168.30.2,second_addr=192.168.50.2,clock_source=external,time_source=external" --ue-rxgain 75 --threadoffset 16 --rrc_config_path .</Initialize_OAI_UE_args>
<air_interface>NR</air_interface>
</testCase>
<testCase id="090108">
<class>Terminate_OAI_UE</class>
<desc>Terminate NR UE</desc>
<air_interface>NR</air_interface>
</testCase>
<testCase id="090109">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<air_interface>NR</air_interface>
</testCase>
</testCaseList>

View File

@@ -24,6 +24,7 @@
<htmlTabRef>gnb-build-tab</htmlTabRef>
<htmlTabName>Build-gNB</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<repeatCount>4</repeatCount>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
@@ -33,7 +34,7 @@
<mode>TesteNB</mode>
<class>Build_eNB</class>
<desc>Build gNB (USRP)</desc>
<Build_eNB_args>--gNB -w USRP</Build_eNB_args>
<Build_eNB_args>--gNB -w USRP --ninja</Build_eNB_args>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
</testCase>

View File

@@ -24,6 +24,9 @@
<htmlTabRef>test-10</htmlTabRef>
<htmlTabName>Test-10MHz</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestUnstable>True</TestUnstable>
<TestMinId>040612</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

@@ -46,7 +46,7 @@
<testCase id="030102">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --THREAD_STRUCT.[0].parallel_config PARALLEL_RU_L1_TRX_SPLIT</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95</Initialize_eNB_args>
</testCase>
<testCase id="030201">

View File

@@ -52,7 +52,7 @@
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --noS1 --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --THREAD_STRUCT.[0].parallel_config PARALLEL_RU_L1_TRX_SPLIT</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --noS1 --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95</Initialize_eNB_args>
</testCase>
<testCase id="030201">

View File

@@ -93,7 +93,7 @@
<testCase id="030103">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --THREAD_STRUCT.[0].parallel_config PARALLEL_RU_L1_TRX_SPLIT</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95</Initialize_eNB_args>
</testCase>
<testCase id="030201">

View File

@@ -64,7 +64,7 @@
<testCase id="030104">
<class>Initialize_eNB</class>
<desc>Initialize eNB #0 (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --THREAD_STRUCT.[0].parallel_config PARALLEL_RU_L1_TRX_SPLIT --eNBs.[0].enable_measurement_reports yes --eNBs.[0].enable_x2 yes --eNBs.[0].nr_cellid 123456</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --eNBs.[0].enable_measurement_reports yes --eNBs.[0].enable_x2 yes --eNBs.[0].nr_cellid 123456</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
@@ -72,7 +72,7 @@
<testCase id="030105">
<class>Initialize_eNB</class>
<desc>Initialize eNB #1 (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.slave.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --THREAD_STRUCT.[0].parallel_config PARALLEL_RU_L1_TRX_SPLIT --eNBs.[0].enable_measurement_reports yes --eNBs.[0].enable_x2 yes --eNBs.[0].nr_cellid 98765</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.slave.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 --RUs.[0].max_rxgain 120 --eNBs.[0].component_carriers.[0].pusch_p0_Nominal -90 --eNBs.[0].component_carriers.[0].pucch_p0_Nominal -96 --eNBs.[0].tracking_area_code 600 --eNBs.[0].plmn_list.[0].mnc 95 --eNBs.[0].enable_measurement_reports yes --eNBs.[0].enable_x2 yes --eNBs.[0].nr_cellid 98765</Initialize_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>

View File

@@ -0,0 +1,161 @@
<!--
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
030105 040301 040502 040606 040601 040603 040608 040605 040646 040641 040643 040648 040645 040401 040201 030201
-->
<testCaseList>
<htmlTabRef>test-ldpc-gpu</htmlTabRef>
<htmlTabName>Test-ldpc-GPU</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 000011 000012 000013 000014 000015 000016 000017 000018 000019 000020 000021</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>Build_PhySim</class>
<desc>Build for physical simulator</desc>
<physim_build_args>--phy_simulators --ninja</physim_build_args>
<forced_workspace_cleanup>FALSE</forced_workspace_cleanup>
</testCase>
<testCase id="000002">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 3872 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000003">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 3872 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000004">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 4224 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000005">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 4224 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000006">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 4576 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000007">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 4576 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000008">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 4928 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000009">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 4928 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000010">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 5280 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000011">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 5280 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000012">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 5632 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000013">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 5632 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000014">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 6336 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000015">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 6336 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000016">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 7040 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000017">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 7040 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000018">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 7744 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000019">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 7744 -s10 -n100 -G 1</physim_run_args>
</testCase>
<testCase id="000020">
<class>Run_PhySim</class>
<desc>Run LDPC Test with CPU</desc>
<physim_run_args>-l 8448 -s10 -n100</physim_run_args>
</testCase>
<testCase id="000021">
<class>Run_PhySim</class>
<desc>Run LDPC Test with GPU</desc>
<physim_run_args>-l 8448 -s10 -n100 -G 1</physim_run_args>
</testCase>
</testCaseList>

View File

@@ -33,7 +33,7 @@
<testCase id="010101">
<class>Build_eNB</class>
<desc>Build RCC</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<backgroundBuild>True</backgroundBuild>
@@ -42,7 +42,7 @@
<testCase id="000101">
<class>WaitEndBuild_eNB</class>
<desc>Wait for end of Build RCC</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
@@ -50,7 +50,7 @@
<testCase id="010102">
<class>Build_eNB</class>
<desc>Build Master RRU</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<backgroundBuild>True</backgroundBuild>
@@ -59,7 +59,7 @@
<testCase id="000102">
<class>WaitEndBuild_eNB</class>
<desc>Wait for end of Build Master RRU</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>
@@ -67,7 +67,7 @@
<testCase id="010103">
<class>Build_eNB</class>
<desc>Build Slave RRU</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>2</eNB_instance>
<eNB_serverId>2</eNB_serverId>
<backgroundBuild>True</backgroundBuild>
@@ -76,7 +76,7 @@
<testCase id="000103">
<class>WaitEndBuild_eNB</class>
<desc>Wait for end of Build Slave RRU</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
<eNB_instance>2</eNB_instance>
<eNB_serverId>2</eNB_serverId>
</testCase>

View File

@@ -24,7 +24,7 @@
<htmlTabRef>test-multi-rru-10</htmlTabRef>
<htmlTabName>Test-Multi-RRU-10MHz</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>4</repeatCount>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
030211 030212 030213
030111 030112 030113

View File

@@ -24,6 +24,7 @@
<htmlTabRef>nr-ue-build-tab</htmlTabRef>
<htmlTabName>Build-NR-UE</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
010102
</TestCaseRequestedList>
@@ -33,7 +34,7 @@
<mode>TestUE</mode>
<class>Build_OAI_UE</class>
<desc>Build NR UE (USRP)</desc>
<Build_OAI_UE_args>--nrUE -w USRP</Build_OAI_UE_args>
<Build_OAI_UE_args>--nrUE -w USRP --ninja</Build_OAI_UE_args>
<clean_repository>false</clean_repository>
</testCase>

View File

@@ -26,6 +26,7 @@
<htmlTabName>Test-X2-HO-FDD-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestUnstable>True</TestUnstable>
<TestCaseRequestedList>
030201 030202
040101

File diff suppressed because it is too large Load Diff

View File

@@ -1036,7 +1036,9 @@
<testCase id="015103">
<class>execution</class>
<desc>polartest Test cases. (Test1: PBCH polar test),
(Test2: DCI polar test)</desc>
(Test2: DCI polar test),
(Test3: UCI polar test,6-bit CRC),
(Test4: UCI polar test,11-bit CRC)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1044,8 +1046,10 @@
<pre_exec_args></pre_exec_args>
<main_exec> $OPENAIR_DIR/targets/bin/polartest.Rel15</main_exec>
<main_exec_args>-q -s-10 -f0
-q -s-10 -f0 -m1</main_exec_args>
<tags>polartest.test1 polartest.test2</tags>
-q -s-10 -f0 -m1
-q -s-2 -f2 -m2 -k12
-q -s-2 -f2 -m2 -k20</main_exec_args>
<tags>polartest.test1 polartest.test2 polartest.test3 polartest.test4</tags>
<search_expr_true>BLER= 0.000000</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1067,9 +1071,9 @@
<main_exec> $OPENAIR_DIR/targets/bin/nr_pbchsim.Rel15</main_exec>
<main_exec_args>-s0 -S1 -n1000 -R106
-s0 -S1 -n10 -I -R106
-s0 -S1 -n1000 -R217
-s0 -S1 -n1000 -R217
-s0 -S1 -n10 -I -R217
-s0 -S1 -n1000 -R273
-s0 -S1 -n1000 -R273
-s0 -S1 -n10 -I -R273</main_exec_args>
<tags>nr_pbchsim.test1 nr_pbchsim.test2 nr_pbchsim.test3 nr_pbchsim.test4 nr_pbchsim.test5 nr_pbchsim.test6</tags>
<search_expr_true>PBCH test OK</search_expr_true>
@@ -1087,8 +1091,11 @@
(Test6: 217 PRB 100 PDSCH-PRBs),
(Test7: 217 PRB 80 PDSCH-Offset),
(Test8: 217 PRB 100 PDSCH-PRBs 110 PDSCH-Offset),
(Test9: 106 PRBs 50 PDSCH-PRBs MCS Index 27)
(Test10: 106 PRBs 50 PDSCH-PRBs MCS Index 16)</desc>
(Test9: 106 PRBs 50 PDSCH-PRBs MCS Index 27),
(Test10: 106 PRBs 50 PDSCH-PRBs MCS Index 16),
(Test11: HARQ test 25% TP (4 rounds),
(Test12: HARQ test 33% TP (3 rounds),
(Test13: HARQ test 50% TP (2 rounds)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1104,8 +1111,11 @@
-n100 -R217 -a80 -s5
-n100 -R217 -a110 -s5 -b100
-n100 -e27 -s30
-n100 -e16 -s10</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10</tags>
-n100 -e16 -s10
-n100 -s1 -t25
-n100 -s1 -t33
-n100 -s1 -t50</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13</tags>
<search_expr_true>PDSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1177,17 +1187,46 @@
<testCase id="015109">
<class>execution</class>
<desc>nr_pucchsim Test cases. (Test1: Format 0 1-bit ACK miss 106 PRB),
(Test2: Format 0 2-bit ACK miss 106 PRB)</desc>
(Test2: Format 0 2-bit ACK miss 106 PRB),
(Test3: Format 0 2-bit ACK miss, 1-bit SR 106 PRB),
(Test4: Format 2 3-bit 2/106 PRB),
(Test5: Format 2 4-bit 2/106 PRB),
(Test6: Format 2 5-bit 2/106 PRB),
(Test7: Format 2 6-bit 2/106 PRB),
(Test8: Format 2 7-bit 2/106 PRB),
(Test9: Format 2 8-bit 2/106 PRB),
(Test10: Format 2 9-bit 2/106 PRB),
(Test11: Format 2 10-bit 2/106 PRB),
(Test12: Format 2 11-bit 2/106 PRB),
(Test13: Format 2 12-bit 8/106 PRB),
(Test14: Format 2 19-bit 8/106 PRB),
(Test15: Format 2 32-bit 8/106 PRB),
(Test16: Format 2 32-bit 16/106 PRB),
(Test17: Format 2 64-bit 16/106 PRB)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
<pre_exec_args></pre_exec_args>
<main_exec> $OPENAIR_DIR/targets/bin/nr_pucchsim.Rel15</main_exec>
<main_exec_args>-R 106 -i 1 -P 0 -b 1 -s-7 -n1000
-R 106 -i 1 -P 0 -b 2 -s-7 -n1000
</main_exec_args>
<tags>nr_pucchsim.test1 nr_pucchsim.test2 </tags>
<main_exec_args>-R 106 -i 1 -P 0 -b 1 -s-2 -n1000
-R 106 -i 1 -P 0 -b 2 -s-2 -n1000
-R 106 -i 1 -P 0 -b 2 -s-2 -c -n1000
-R 106 -i 1 -P 2 -b 3 -s0 -n1000
-R 106 -i 1 -P 2 -b 4 -s0 -n1000
-R 106 -i 1 -P 2 -b 5 -s1 -n1000
-R 106 -i 1 -P 2 -b 6 -s2 -n1000
-R 106 -i 1 -P 2 -b 7 -s3 -n1000
-R 106 -i 1 -P 2 -b 8 -s4 -n1000
-R 106 -i 1 -P 2 -b 9 -s5 -n1000
-R 106 -i 1 -P 2 -b 10 -s6 -n1000
-R 106 -i 1 -P 2 -b 11 -s6 -n1000
-R 106 -i 1 -P 2 -q8 -b 12 -s-3 -n1000
-R 106 -i 1 -P 2 -q8 -b 19 -s-3 -n1000
-R 106 -i 1 -P 2 -q8 -b 32 -s-3 -n1000
-R 106 -i 1 -P 2 -q16 -b 32 -s-3 -n1000
-R 106 -i 1 -P 2 -q16 -b 64 -s-3 -n1000</main_exec_args>
<tags>nr_pucchsim.test1 nr_pucchsim.test2 nr_pucchsim.test3 nr_pucchsim.test4 nr_pucchsim.test5 nr_pucchsim.test6 nr_pucchsim.test7 nr_pucchsim.test8 nr_pucchsim.test9 nr_pucchsim.test10 nr_pucchsim.test11 nr_pucchsim.test12 nr_pucchsim.test13 nr_pucchsim.test14 nr_pucchsim.test15 nr_pucchsim.test16 nr_pucchsim.test17</tags>
<search_expr_true>PUCCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1237,7 +1276,10 @@
(Test2: MCS 16 50 PRBs),
(Test3: MCS 28 50 PRBs),
(Test4: MCS 9 217 PRBs),
(Test5: MCS 9 273 PRBs)</desc>
(Test5: MCS 9 273 PRBs),
(Test6: DMRS Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols),
(Test7: DMRS Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols),
(Test8: DMRS Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1248,8 +1290,11 @@
-n100 -m16 -s10
-n100 -m28 -s20
-n100 -m9 -R217 -r217 -s5
-n100 -m9 -R273 -r273 -s5</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5</tags>
-n100 -m9 -R273 -r273 -s5
-n100 -s5 -T 2 1 2 -U 2 0 2
-n100 -s5 -T 2 2 2 -U 2 1 2
-n100 -s5 -a4 -b8 -T 2 1 2 -U 2 1 3</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1257,19 +1302,21 @@
<testCase id="015112">
<class>execution</class>
<desc>nr_prachsim Test cases. (Test1: 106 PRBs),
(Test2: 217 PRBs),
(Test3: 273 PRBs)</desc>
<desc>nr_prachsim Test cases. (Test1: 106 PRBs - Prach format A2),
(Test2: 217 PRBs - Prach format A2),
(Test3: 273 PRBs - Prach format A2),
(Test4: 106 PRBs - Prach format 0)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
<pre_exec_args></pre_exec_args>
<main_exec> $OPENAIR_DIR/targets/bin/nr_prachsim.Rel15</main_exec>
<main_exec_args>-a -s -30 -n 100 -p 16 -R 106
-a -s -30 -n 100 -p 16 -R 217
-a -s -30 -n 100 -p 16 -R 273</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3</tags>
<main_exec_args>-a -s -30 -n 100 -p 63 -R 106
-a -s -30 -n 100 -p 63 -R 217
-a -s -30 -n 100 -p 63 -R 273
-a -s -30 -n 100 -p 63 -R 106 -c 4</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4</tags>
<search_expr_true>PRACH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -147,6 +147,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

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