Compare commits

..

1070 Commits

Author SHA1 Message Date
Florian Kaltenberger
0124e5378c adding possibility to read rx signal from file 2020-06-06 22:55:13 +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
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
Florian Kaltenberger
f6b83fd925 adding frequency offset to prachsim 2020-06-03 11:52:20 +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
Francesco Mani
cf5bc231ec scheduling dl in both half frames 2020-05-29 16:44:26 +02:00
Francesco Mani
4e12c39471 static bitmap to schedule dl slots (also to test phone) 2020-05-28 17:56:42 +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
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
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
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
Francesco Mani
2f4f90ba24 bugfix 2020-05-20 15:49:43 +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
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
Francesco Mani
49991e100b bugfix for 2 acknacks in pucch0 2020-05-19 19:09:29 +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
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
Francesco Mani
0add4fdb55 bugfix in pucch timing indicator selection 2020-05-15 09:14:30 +02:00
Francesco Mani
1c7ee3caba using num_dmrs_cdm_grps_no_data for PUSCH in PHY 2020-05-13 18:05:15 +02:00
Francesco Mani
6f0e4fe149 using numDmrsCdmGrpsNoData for PDSCH in PHY 2020-05-13 16:22:05 +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
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
Francesco Mani
88e5203dfa bugfix in dci1_1 size 2020-05-08 17:19:31 +02:00
Francesco Mani
185477dc9f fix for ULSCH ok when PRBs are empty 2020-05-08 15:29:28 +02:00
Francesco Mani
927d97fa3f Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-08 15:27:10 +02:00
Raymond Knopp
160fef9a2d fix after merge 2020-05-08 10:25:06 +02:00
Raymond Knopp
afa7ef9afe Merge branch 'NR_RRC_harq_hacks' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq_hacks 2020-05-08 10:17:18 +02:00
Raymond Knopp
70dff719e2 pusch dmrs rx fix, added comp file dump to ulsim 2020-05-08 10:16:30 +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
Ahmed Hussein
6a32e60a4f 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-05-07 14:41:19 +02:00
Ahmed Hussein
589801f620 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-05-07 14:39:28 +02:00
Francesco Mani
014e045ba6 bugfix in dmrs offset for pusch 2020-05-07 09:44:07 +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
Sakthivel Velumani
7746421192 Merge branch 'develop' into NR_RRC_harq_b 2020-05-05 16:32:37 +02:00
Sakthivel Velumani
64808859b9 updated CI test list with harq test 2020-05-04 15:42:15 +02:00
Raymond Knopp
042aac3d4f reverted handling of transform_precoding variable in NR FAPI. Added correct handling of this in ulsim.c 2020-05-04 09:49:18 +02:00
Sakthivel Velumani
7655123997 included throughput print 2020-05-04 09:29:36 +02:00
Raymond Knopp
2f9bf0d84c added file reading for ulsim 2020-05-04 08:19:48 +02:00
laurent
da54778c4a fix warnings 2020-05-03 18:27:07 +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
Francesco Mani
86bc794518 bugfix in dmrs reception for pusch 2020-04-29 14:00:32 +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
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
Francesco Mani
5cbb380efb almost empty function to handle uci indication 2020-04-28 14:08:19 +02:00
Francesco Mani
46a7b6c742 bugfix in dci size for RA 2020-04-24 18:59:59 +02:00
cig
bfe580bd41 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-24 13:31:52 +02:00
Francesco Mani
111ea68f63 fix for scrambling rnti and dci format 2020-04-24 11:42:50 +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
Francesco Mani
b6ba07af14 fix in dlsim 2020-04-23 09:43:25 +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
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
Francesco Mani
a66f6907de bufix in calling phy pucch function 2020-04-22 11:11:22 +02:00
Francesco Mani
80571bb81e fapi functions for pucch 2020-04-22 09:54:56 +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
Francesco Mani
48325d58e5 some logs for phytest scheduling DL with phone 2020-04-21 09:58:53 +02:00
Cedric Roux
456e90e25d rlc v2: bugfixes for mbms 2020-04-20 16:28:20 +02:00
Francesco Mani
3c5b6368f1 bugfix for numdldci for RA 2020-04-20 13:19:10 +02:00
Cedric Roux
baa9cd0140 rlc v2: mbms support 2020-04-19 13:44:15 +02:00
Francesco Mani
4b0ddb81d5 scheduling one pdcch+pdsch after RA procedure 2020-04-18 10:52:49 +02:00
Francesco Mani
ddf4ca87d2 [gNB] taking into account preamble set at RRC and finalization of RA procedures 2020-04-17 19:07:47 +02:00
Javier Morgade
72cba28436 Add UE MCH NFAPI 2020-04-17 18:50:55 +02:00
laurent
3c4cafa1cd fix L2 sim issue (bad manual merge) 2020-04-17 12:58:46 +02:00
Francesco Mani
b51beff901 Merge branch 'NR_gNB_SCF_Indication' into NR_RRC_harq_hacks 2020-04-17 11:13:27 +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
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
Francesco Mani
c4e284a3e1 fix in CCEs function 2020-04-16 15:54:27 +02:00
Francesco Mani
2ae14a66d8 adding conf file to test with phone 2020-04-16 12:54:00 +02:00
Francesco Mani
fd237596cf uncommenting in cce function 2020-04-16 12:08:16 +02:00
laurent
71cbb7e894 dirty workaround if4p5 bug 2020-04-16 10:40:33 +02:00
Cedric Roux
7f196b11f6 5g nsa: hacks for eurecom testing 2020-04-15 17:06:59 +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
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
Sakthivel Velumani
ccb7d693f4 Merge branch 'NR_RRC_harq' of remote into NR_RRC_harq 2020-04-14 15:03:52 +02:00
laurent
58e973409a small compilation details 2020-04-14 11:25:59 +02:00
Sakthivel Velumani
745d8a3876 setting dmrs type for 1_1 dci 2020-04-14 01:30:35 +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
Francesco Mani
478a3f73e2 bugfix for coreset id 2020-04-13 15:29:40 +02:00
Francesco Mani
ecb81ef995 Merge branch 'NR_RRC_PRACH_procedures' into NR_RRC_harq 2020-04-13 15:15:48 +02:00
Francesco Mani
042e4e5c77 reworking of nr_configure_pdcch 2020-04-13 09:18:48 +02:00
Sakthivel Velumani
181e59db96 fixing bugs in 1_1 dci 2020-04-10 17:54:23 +02:00
Florian Kaltenberger
6ae7548291 updating doc/RUNMODEM.md 2020-04-10 14:21:03 +02:00
Florian Kaltenberger
e197824e20 updating targets/ARCH/rfsimulator/README.md 2020-04-10 14:16:15 +02:00
Raymond Knopp
b6ce8ed962 ENDC S1-U gNB support: Separate some GTP functions between eNB and gNB. Downlink traffic from SGW arrives properly at gNB now after path switch 2020-04-10 12:15:52 +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
Francesco Mani
221e152653 one file left behind 2020-04-10 10:43:44 +02:00
Francesco Mani
ffc0dc377e Merge branch 'NR_RRC_harq' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq 2020-04-10 10:02:38 +02:00
Francesco Mani
6237ba3735 Merge branch 'nr_pucch' into NR_RRC_harq 2020-04-10 10:02:21 +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
Sakthivel Velumani
1c3c5c772f allocating memory to UL_INFO pdus 2020-04-09 19:22:26 +02:00
Francesco Mani
9296949906 fix for dlschsim for no data in dmrs symbol 2020-04-09 17:25:24 +02:00
Raymond Knopp
786be88101 fixed unitary simulation issue for nr_ulsim and removed broken pucch1 tests 2020-04-09 15:52:19 +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
Sakthivel Velumani
9e8e7de10a using same dci_pdu_rel15 for UE also 2020-04-08 22:24:08 +02:00
Sakthivel Velumani
e0acce65c4 dci 1_1 bit decoding 2020-04-08 22:22:52 +02:00
Francesco Mani
def0450b4a Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-04-08 17:57:45 +02:00
Francesco Mani
b9d80576aa patch for no data in dmrs symbol for pusch tx 2020-04-08 17:32:19 +02:00
Raymond Knopp
c8ac5d56bf compilation of NR executables with MAC 2020-04-08 12:47:34 +02:00
matzakos
732081dd22 ENDC testing: Remove some remaining modifications used only for testing 2020-04-08 11:17:44 +02:00
Francesco Mani
2de42fcf0c increasing snr in ulsim mcs9 2020-04-08 09:02:32 +02:00
Francesco Mani
17e3f2857c possible fix for ghost dlsim in ci? 2020-04-08 09:02:19 +02:00
Raymond Knopp
1c16705355 pucch receiver for format 0 reworked without floating point and no generation of sequences for each decoding attempt, SR detection integrated 2020-04-08 00:03:44 +02:00
Gabriele Perrone
d15d86cf0c Update README.md 2020-04-07 19:20:30 +02:00
Sakthivel Velumani
6f3934acc0 moved dci_pdu_rel15_t to mac_common 2020-04-07 18:09:07 +02:00
Sakthivel Velumani
3053f37dec added NR_CellGroupConfig to mac in UE 2020-04-07 18:08:22 +02:00
Francesco Mani
ac2d1d79d7 minor fixes 2020-04-07 17:38:31 +02:00
Francesco Mani
20f5e27e50 filling dci pdu 2020-04-07 17:24:55 +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
Thomas Schlichter
690176821d make mac_sdus an array instead of a pointer 2020-04-07 13:31:14 +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
Raymond Knopp
ea951f0db9 Merge remote-tracking branch 'origin/develop' into nr_pucch 2020-04-07 12:17:06 +02:00
Raymond Knopp
dcf7678fef Merge remote-tracking branch 'origin/develop' into nr_pucch
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
2020-04-07 12:11:48 +02:00
cig
1e63219bbf Fixed bugs in UE RA procedures:
- number or RA preambles unitialised
- power ramp counter not incrementing
- segmentation fault due to wrong pointer initialisation
2020-04-07 11:07:41 +02:00
matzakos
c8f2b4e035 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-04-06 19:07:12 +02:00
matzakos
3b6b6d0671 Fix ULSCH traffic generation at UE side. Still not received at gNB 2020-04-06 19:06:58 +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
Francesco Mani
b29d270708 Merge branch 'NR_RRC_harq_newdcipdu' into NR_RRC_harq 2020-04-06 15:30:10 +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
Thomas Schlichter
40bd00aa4b Add nr_prachsim to CI 2020-04-06 12:47:37 +02:00
Gabriele Perrone
2ea0070d4d further cleanup 2020-04-06 12:04:07 +02:00
Francesco Mani
bfaa037e83 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-04-06 11:05:27 +02:00
Francesco Mani
614c4ab6bd adding do_ra flag into new statement 2020-04-06 10:53:48 +02:00
Francesco Mani
c9d1fe85fe Merge branch 'NR_RRC_PRACH_procedures_todevelop' into NR_RRC_PRACH_procedures 2020-04-06 09:21:01 +02:00
matzakos
374610dbe2 ENDC path switch procedures: Small correction 2020-04-06 09:20:25 +02:00
Gabriele Perrone
9eab72b2bf aligning remote repository with local on starsky 2020-04-06 09:18:42 +02:00
matzakos
cd843860a8 Fix RFSIMULATOR issues (gNB side) after merge of NR_test_S1U_RRC_PRACH_procedures into NR_RRC_PRACH_procedures 2020-04-04 11:56:06 +02:00
Francesco Mani
8892d00693 flag do_ra alternative to phy_test to perform RA procedures 2020-04-04 10:32:07 +02:00
Sakthivel Velumani
7846132e1c updated dci_pdu_rel15_t
moved nr_dci_size out of scheduler_phytest
2020-04-03 19:12:06 +02:00
Gabriele Perrone
b36d40d4a5 Update README.md 2020-04-03 18:38:42 +02:00
Francesco Mani
f72259de8e reactivating phytest schedulers 2020-04-03 16:58:08 +02:00
Francesco Mani
f73dd0742e Revert "ENDC path switch S1-U: Bugfixes at eNB side. Problem at S1AP E-RAB-Modification-Indication message encoding to be resolved"
This reverts commit f895c4d929.
2020-04-03 14:19:28 +02:00
Francesco Mani
448cae257d Revert "ENDC path switch S1-U: Bugfixes at gNB side"
This reverts commit 1462f0e659.
2020-04-03 13:41:23 +02:00
Francesco Mani
b651cae0ee increasing snr in ulsim mcs9 2020-04-03 09:15:10 +02:00
Francesco Mani
98a9af4f47 possible fix for ghost dlsim in ci? 2020-04-02 19:38:41 +02:00
Francesco Mani
fbf74bc395 setting type 1 dl freq resource allocation in rrc 2020-04-02 18:48:02 +02:00
Raymond Knopp
f9fc712a9b Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-04-02 17:44:08 +02:00
cig
6e404180f7 Fixed compilation warnings 2020-04-02 17:24:33 +02:00
cig
0366be797f Prach_start adjustment for both HW and simulation 2020-04-02 16:09:15 +02:00
cig
cf47f059eb Restored preamble index configuration in PRACH UE 2020-04-02 16:09:15 +02:00
cig
8c68f37450 Prachsim compilation and NR PRACH UE fixes 2020-04-02 16:09:07 +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
frtabu
0518ced81f dft/idft in shared lib 2020-04-02 12:11:21 +02:00
Sakthivel Velumani
684dec16c1 Merge branch 'NR_RRC_harq' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_harq 2020-04-02 03:00:12 +02:00
Sakthivel Velumani
bf819df6e3 changed dci_pdu_rel15 struct to hold bitwidth for each dci field 2020-04-02 02:54:29 +02:00
Sakthivel Velumani
b4d273d63b added remaining fields in 1_1 DCI pdu fill 2020-04-01 21:30:34 +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
Francesco Mani
cff21926e8 Merge branch 'nr_pucch' into NR_RRC_harq 2020-04-01 17:22:44 +02:00
Raymond Knopp
72d76c7585 dft-based pucch0 receiver 2020-04-01 16:52:56 +02:00
Gabriele Perrone
36bf56d410 Update README.md 2020-04-01 14:59:09 +02:00
Gabriele Perrone
1cb14c3d9c Update README.md 2020-04-01 13:26:26 +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
Sakthivel Velumani
bb3883bff0 1_1 DCI encoding - added checks from RRC IEs 2020-04-01 01:26:02 +02:00
Sakthivel Velumani
f404f29e2f added some fields in 1_1 DCI bit encoder 2020-03-31 15:27:41 +02:00
Raymond Knopp
e9ff6bad2e Merge with branch NR_RRC_PRACH_procedures 2020-03-31 15:25:42 +02:00
Francesco Mani
1ada5382c8 ulsch rx measurements in dlsim 2020-03-31 12:31:06 +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
Raymond Knopp
2378b73b1e ENDC path switch procedures: E-RAB Modification Confirm message successfully received at the eNB from the MME now 2020-03-30 14:38:42 +02:00
cig
7f00dbc53c Const prachfmt in nr_mac_common 2020-03-30 12:03:31 +02:00
Francesco Mani
6f001d3e5b adapting handle rach function 2020-03-30 11:38:07 +02:00
Francesco Mani
0ca708d55b making ulsim compile 2020-03-28 10:53:44 +01:00
Francesco Mani
88aad7cbf2 num_cb in indication taken from pusch pdu 2020-03-28 10:05:25 +01:00
Francesco Mani
aad29b208a first version of gNB indication structures from SCF 2020-03-27 18:27:49 +01:00
cig
2b3446ed15 Hardcoded PRACH tx_amp to AMP 2020-03-27 17:09:50 +01:00
cig
cca28a0abd Moved PRACH PDU struct to NR_UE_PRACH in PHY_VARS_NR_UE:
- now the FAPI interface copies the struct directly to NR_UE_PRACH
- NR_PRACH_CONFIG_COMMON and NR_PRACH_CONFIG_INFO have been removed from FP
2020-03-27 17:09:50 +01:00
cig
6d413e2c57 Bugfix returning null pointer to prach resources 2020-03-27 17:09:50 +01:00
cig
3bb1407e54 NR PRACH generation fixes for correct reception of msg1 2020-03-27 17:09:43 +01:00
cig
6982e6f443 Code cleanup and formatting 2020-03-26 18:54:58 +01:00
cig
2c6e49c0da Enabled timing offset compensation in RFSIM 2020-03-26 18:54:58 +01:00
cig
453d574433 Temporary set condition on slot 19 to enter PHY PRACH procedures 2020-03-26 18:54:57 +01:00
cig
ae5f30ec8d Set flag to generate PRACH only on PRACH slot 2020-03-26 18:54:57 +01:00
cig
3bb82a02ee UE: N_TA_offset configuration depending on SCS and N_RB_DL 2020-03-26 18:54:57 +01:00
cig
04a9c72de3 Bugfix in selection of dual format A3/B3 2020-03-26 18:54:57 +01:00
cig
01b3038d77 Check on dlsch0_harq to avoid segmentation fault 2020-03-26 18:54:57 +01:00
cig
63d6b59f9d Enabled check on UE mode to start either ULSCH and PRACH procedures:
- ULSCH is temporary disabled
2020-03-26 18:54:50 +01:00
cig
d6f597cefe Commented out code for contention resolution at UE side 2020-03-26 18:27:13 +01:00
cig
eb7f3193aa Enabled compute_nr_prach_seq to be used at both gNB and UE side:
- now the function gets more input arguments but can be used from both UE and gNB
- this change was needed because the prach fapi of UE differs from the gNB one
2020-03-26 18:27:13 +01:00
cig
4e38ea2367 Set UE mode to NOT_SYNCHED by default 2020-03-26 18:27:13 +01:00
cig
ae9303bd52 Implemented dft/idft 36864 2020-03-26 18:27:13 +01:00
cig
924d361ded Enabled NR UE PRACH scheduler 2020-03-26 18:27:13 +01:00
Raymond Knopp
fa3f461783 ENDC path switch procedures: Remove some IEs from E-RAB Modification Indication message which finally appear to be not mandatory 2020-03-26 18:20:05 +01:00
Francesco Mani
076e7c8e53 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-03-26 12:50:46 +01:00
Francesco Mani
666adcc37e Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-03-26 12:50:17 +01:00
Francesco Mani
4c30e6d3a5 new file for prach dummy functions to avoid compilation failures on physim 2020-03-26 12:29:20 +01:00
Thomas Schlichter
ce923e59ed fix critical "assignment from incompatible pointer type" warnings 2020-03-26 09:55:22 +01:00
Francesco Mani
e451ff54ef fixing compilation errors and one file left behind 2020-03-26 09:34:07 +01:00
Francesco Mani
d320fa13b3 Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-03-25 18:45:00 +01:00
Raymond Knopp
48a61ab598 ENDC path switch procedures: Small modification at generation of E-RAB Modification Indication message 2020-03-25 16:03:43 +01:00
Raphael Defosseux
b630a983ec Merge branch 'NR_RRCConfiguration' into 'develop'
Nr rrc configuration

See merge request oai/openairinterface5g!738
2020-03-25 09:43:34 +01: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
Robert Schmidt
8a47fa484c Handle residual MAC PDU < 0 gracefully 2020-03-24 17:54:08 +01:00
Robert Schmidt
daefb67c82 Fix: correct check for dummy-traffic 2020-03-24 17:54:08 +01:00
Robert Schmidt
69c16efe07 Fix: check that UE RRC config files are found 2020-03-24 17:54:08 +01:00
Robert Schmidt
2c21e8229c Fix: correctly set context before calling pdcp_run() 2020-03-24 17:54:08 +01:00
Francesco Mani
817afd999b fixing reference point for k in pusch dmrs 2020-03-24 16:00:52 +01:00
Robert Schmidt
8a589f5b08 Fix: rx_indication length is in bytes 2020-03-24 15:54:45 +01:00
Robert Schmidt
df0bc30e28 Make function static inline, not inline
inline alone does only define a function without a corresponding
declaration. static solves this problem
2020-03-24 15:41:54 +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
Cedric Roux
d6ce3a5a31 fix compilation of ldpc libraries - T must be processed before 2020-03-23 17:47:43 +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
Florian Kaltenberger
e21d6efaf5 CI: adding --phy-test command line option to gNB real-time test 2020-03-23 16:33:35 +01:00
Sakthivel Velumani
d90f8da364 avoiding code duplication 2020-03-21 18:43:50 +01:00
Raymond Knopp
39ab08b6b3 Merge branch 'NR_test_S1U_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_test_S1U_RRC_PRACH_procedures 2020-03-20 22:55:22 +01:00
Raymond Knopp
1462f0e659 ENDC path switch S1-U: Bugfixes at gNB side 2020-03-20 22:55:17 +01:00
Raymond Knopp
f895c4d929 ENDC path switch S1-U: Bugfixes at eNB side. Problem at S1AP E-RAB-Modification-Indication message encoding to be resolved 2020-03-20 22:48:09 +01:00
Sakthivel Velumani
c71edc21db Fixed the assertion in ulsch pdu header
rfsim works
2020-03-20 17:08:30 +01:00
Francesco Mani
f508f310cc fix in rbs extract for dmrs 2020-03-20 14:24:40 +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
Sakthivel Velumani
1c2f9bb618 Fixed some bug in pusch dmrs
an assertion fails in gnb (need to be fixed)
2020-03-20 13:59:40 +01:00
Francesco Mani
447c470626 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-03-20 11:16:59 +01:00
Francesco Mani
b904161f87 removing is_dmrs_symbol function from pusch in gNB 2020-03-20 11:15:43 +01:00
Cedric Roux
ad1a102f08 fix for CU/DU split 2020-03-20 11:13:51 +01:00
Francesco Mani
6d058d306a SCF FAPI structures for PUSCH at gNB 2020-03-19 18:07:12 +01:00
Francesco Mani
57c993ce26 fix for some warnings 2020-03-18 10:03:41 +01:00
Sakthivel Velumani
07a48f87e4 loading LDPC libs for UE 2020-03-17 19:06:22 +01:00
Francesco Mani
5ef2af1cce minor changes 2020-03-17 16:27:08 +01:00
Gabriele Perrone
6aa64bd286 to switch to develop 2020-03-17 08:24:13 +01:00
matzakos
cbba3da30b ENDC path switch S1-U: Remove warnings 2020-03-16 21:20:00 +01:00
Cedric Roux
9bbb12f7ae nr-gnb: configure contention-free random access for the UE 2020-03-16 09:37:40 +01:00
Raymond Knopp
1ddd729044 bring back recent changes in ldpc encoder after merge with dynamic library implementation 2020-03-16 09:32:50 +01:00
Raymond Knopp
e9fad18540 temporary changes for nr_ulsim. To be removed when new branch with SCF NR FAPI for PUSCH is merged in. 2020-03-16 01:26:12 +01:00
Raymond Knopp
93b4211d02 merge conflict removal 2020-03-15 19:16:30 +01:00
Raymond Knopp
7491e23dbd Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration 2020-03-15 18:13:11 +01:00
Raymond Knopp
6dff674302 testing after merge with develo 2020-03-15 18:03:42 +01:00
matzakos
cb0b736993 ENDC path switch S1-U: Modifications to avoid linking errors for lte-softmodem 2020-03-15 16:23:18 +01:00
Gabriele Perrone
82e97fce59 Merge branch 'develop_integration_w11' into 'develop'
Develop integration 2020 week 11

See merge request oai/openairinterface5g!787
2020-03-15 12:10:33 +01:00
Raymond Knopp
fc54cbf4d2 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-03-14 13:50:37 +01:00
Raymond Knopp
9cf9ea7c99 remainder of merge 2020-03-14 13:50:07 +01:00
Raymond Knopp
914e17b57b Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration
Conflicts:
	executables/nr-softmodem.c
	executables/nr-ue.c
	executables/softmodem-common.c
	openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/LAYER2/NR_MAC_UE/mac_proto.h
	openair2/NR_PHY_INTERFACE/NR_IF_Module.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/nr_rrc_config.c
	openair2/RRC/NR/nr_rrc_defs.h
	openair2/RRC/NR/nr_rrc_proto.h
	openair2/RRC/NR/rrc_gNB.c
2020-03-14 12:45:02 +01:00
Francesco Mani
abddce1dc7 bugfix in computation of B 2020-03-13 18:23:27 +01:00
matzakos
7408ddb2c3 ENDC path switch S1-U: Adding GTP-U tunnel related functionality at gNB 2020-03-13 12:55:49 +01:00
magounak
7b9be8744d bug fix ue dlsch thread 2020-03-13 10:46:40 +01:00
Hongzhi Wang
d4a81bcc0f update dlsch multi thread 2020-03-13 10:41:50 +01:00
Francesco Mani
ab39b74ca1 bugfix in pusch dmrs reception 2020-03-13 10:19:24 +01:00
matzakos
c56075928a ENDC path switch S1-U: Bugfixes 2020-03-12 19:56:15 +01:00
Gabriele Perrone
73ac675869 Merge remote-tracking branch 'origin/extend_sharedlibusage' into develop_integration_w11 2020-03-12 18:32:39 +01:00
Gabriele Perrone
a653034fbc Merge remote-tracking branch 'origin/generate_push_ptrs' into develop_integration_w11 2020-03-12 18:31:23 +01:00
Gabriele Perrone
4e5234853f Merge branch 'dreibh/device-load-fix-develop-branch' into 'develop'
Fix for Issue #494: check and handle return value of openair0_device_load()  (develop branch)

See merge request oai/openairinterface5g!780
2020-03-12 15:22:50 +01:00
Gabriele Perrone
a1b9bebf72 Merge branch 'fix-l2-sim' into 'develop'
Fix l2 sim

See merge request oai/openairinterface5g!781
2020-03-12 15:20:56 +01:00
Cedric Roux
143fd5ea5a bugfix 2020-03-12 14:50:02 +01:00
Cedric Roux
86dc600cd9 bugfix 2020-03-12 14:33:47 +01:00
Francesco Mani
18c8a4a4e6 taking into account n_ta_offset in slot fep ul 2020-03-12 14:09:41 +01:00
frtabu
4ce46e7488 Add LDPC shared lib doc 2020-03-11 18:18:19 +01:00
frtabu
3b3d232214 move ldpc coder/decoder into a shared lib dymically loaded. Also fix a record player bug 2020-03-11 17:41:38 +01:00
frtabu
8928cfe57d move ldpc coder/decoder into a shared lib dymically loaded. Also fix a record player bug 2020-03-11 17:32:13 +01:00
matzakos
b7524052e8 Merge branch 'NR_test_S1U_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_test_S1U_RRC_PRACH_procedures 2020-03-11 16:08:19 +01:00
matzakos
0564357e33 ENDC path switch S1-U: Minor correction 2020-03-11 16:07:02 +01:00
adk
c15fb8c7a4 PUSCH DMRS mapping type B start symbol fix 2020-03-11 14:45:14 +01:00
Raymond Knopp
de34a2ff28 Update gNB configuration file used for ENDC 2020-03-11 12:02:55 +01:00
matzakos
07a2a095d3 ENDC path switch S1-U: Integrated S1AP E-RAB-Modification indication message at eNB, interfacing with RRC and X2AP to get proper configuration of E-RABs to be modified and GTP-U configuration at gNB 2020-03-11 10:37:48 +01:00
Robert Schmidt
0de3c73475 Place MBMS tun fd into single int 2020-03-10 17:38:24 +01:00
Sakthivel Velumani
c6182d3ee2 updated frame_idx in UE 2020-03-10 12:26:00 +01:00
Raymond Knopp
e7c5bc55c4 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures
Conflicts:
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
2020-03-10 08:24:45 +01:00
Raymond Knopp
47e0d056be Merge branch 'NR_RRCConfiguration' into NR_RRC_PRACH_procedures
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_dci.c
	openair1/PHY/NR_TRANSPORT/nr_prach.c
	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
	openair1/PHY/defs_nr_common.h
	openair1/SIMULATION/NR_PHY/nr_unitary_defs.h
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
2020-03-09 21:14:32 +01:00
Francesco Mani
2ada0eddc5 fix for no data in dmrs in ulsch procedures 2020-03-09 17:35:30 +01:00
Francesco Mani
f9ca54e9a1 crc and tbs fixes in ulsch 2020-03-09 12:05:45 +01:00
Francesco Mani
631d345df8 fix indentation and removing an if in scheduler 2020-03-09 10:03:54 +01:00
Raphael Defosseux
3f803ae7f9 CI: adding back more testing (ping and iperf) to L2 simulator
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-03-08 20:34:20 +01:00
Robert Schmidt
84482489e4 Reformat phy_stub_UE.c with clang-format 2020-03-08 20:34:20 +01:00
Robert Schmidt
fa7ace4b1d Reimplement dl_config_req_UE_MAC() more concisely 2020-03-08 18:34:00 +01:00
Robert Schmidt
34e7952944 CI: Multi. UEs handled by 1 thread (no races) in l2sim 2020-03-08 18:33:34 +01:00
Robert Schmidt
719667895c Prevent memory leak in L2 sim due to NFAPI 2020-03-08 18:33:34 +01:00
Robert Schmidt
6ec6c8b261 Request CQI in all NFAPI modes (i.e., also for L2 sim) 2020-03-08 18:33:34 +01:00
Robert Schmidt
6866be7175 Trigger ULSCH CQI ind only when instructed 2020-03-08 18:33:34 +01:00
Robert Schmidt
943f907ae1 Send correct ULSCH CQI indication message in L2 sim 2020-03-08 18:33:34 +01:00
Raymond Knopp
2b944d175a commit before merge 2020-03-07 15:24:51 +01:00
Francesco Mani
98714f3138 using SCF fapi structure for PUSCH and initialization of pusch dmrs sequences at nr_init 2020-03-06 18:05:12 +01:00
Raymond Knopp
fcb211b014 Fixing FO compensation in UE
Actually there was a bug in FO compensation which I overlooked in last commit.
2020-03-06 17:15:28 +01:00
Sakthivel Velumani
c85d0878c1 Reverting the changes made in fo calculation
While fixing bug in PSS index calculation in 334519d16a, I made changes in FO calculation as well. This is not nedeed and caused the FO to misbehave. Hence, reverting it.
2020-03-06 13:40:03 +01:00
Robert Schmidt
b34a0e2f54 Increase (fixed) PHR for UE phy stub mode (L2 sim) 2020-03-05 16:06:02 +01:00
Robert Schmidt
8af8836c4b Call oai_nfapi_cqi_indication() to send cqi_indications 2020-03-05 16:04:44 +01:00
Robert Schmidt
15a2767562 Don't call fill_ulsch_cqi_indication_UE_MAC()
This functions fills the ULSCH CQI indication message incorrectly. Also,
it should only be triggered when the eNB requests CSI. We disable it
here and a subsequent commit enables it again.
2020-03-05 16:04:44 +01:00
Robert Schmidt
c321f9b5a3 Make UE mem alloc for UL_INFO only once in PHY stub mode 2020-03-05 16:04:44 +01:00
Robert Schmidt
5f851d45b3 Fill UE RX Indication Rel9 to prevent error message 2020-03-05 16:04:44 +01:00
Francesco Mani
e33dea5f38 fix prb mapping according to bwps 2020-03-05 12:19:15 +01:00
Cedric Roux
0ecc3149ba bugfix: ul grant is 27 bits, does not fit into uint16_t 2020-03-05 11:16:46 +01:00
Thomas Schlichter
8fbdfa39ec disable PUSCH PTRS for now
As adding PTRS leads to shortening of the coded data, redudandency is removed and the performance decreases on a pure AWGN channel.
So PTRS should only be enabled if phase noise is present.
2020-03-05 10:27:35 +01:00
Sakthivel Velumani
f2bc346ab7 Fixed bad array length for thread ID 2020-03-05 10:14:46 +01:00
Francesco Mani
f62d94c76f correct scheduling of msg3 reception 2020-03-05 09:59:59 +01:00
Francesco Mani
94b7d132c5 fix for tpc command 2020-03-04 17:56:37 +01:00
Francesco Mani
444442d3e3 mac scheduling of msg3 at gnb 2020-03-04 16:58:49 +01:00
Gabriele Perrone
9afdaf0244 pushing for debugging 2020-03-04 15:13:07 +01:00
adk
00ff5e8a5c PUSCH PTRS extraction and fixing nr_ulsim 2020-03-04 14:45:05 +01:00
adk
505d06e945 PUSCH PTRS generation 2020-03-04 14:45:05 +01:00
adk
e72e1d87f2 added PUSCH PTRS structs (UE + gNB) and parameters initialization 2020-03-04 14:37:05 +01:00
Robert Schmidt
05577be422 Reduce logging verbosity and levels 2020-03-04 13:38:04 +01:00
Robert Schmidt
a51dc94e8b Set correct UE ID in Kenb Refresh Req
NAS triggered the Kenb Refresh Req always for (hardcoded) UE 0. This
fixes this by setting the correct UE ID.

An effect of this was that the Kenb would always be set for UE 0,
regardless for which UE it was actually intended. This led for integrity
check failures for every UE with ID > 0.
2020-03-04 13:38:04 +01:00
laurent
756ac05e4d merge develop,fix basic sim and warnings 2020-03-04 13:32:03 +01:00
Sakthivel Velumani
fbe0695b21 some rfsim fixes 2020-03-04 12:41:56 +01:00
Sakthivel Velumani
df8e9ddbb3 update to the fix for initial sync 2020-03-04 11:21:14 +01:00
Raphael Defosseux
6c8938d584 Merge branch 'develop_integration_w08' into 'develop'
Develop integration 2020 week 08

The following Merge Requests have been included :

* MR771: Nr IP uplink traffic in noS1 mode
* MR772: Tools 5 gadapt
* MR773: Using "--allow-unauthenticated" with apt-get disables package verification,...
* MR776: Docupdate( MR 772)
2020-03-04 07:13:47 +01:00
Francesco Mani
cbbfbca5fb another fix in RE computation for no data in dmrs symbol in phy 2020-03-03 15:22:03 +01:00
Francesco Mani
595e9c6f74 RE computation for no data in dmrs symbol in phy fixed 2020-03-03 14:28:45 +01:00
Thomas Dreibholz
34c118c03e Error should create a log entry, not use printf(). 2020-03-03 11:33:10 +01:00
Thomas Dreibholz
04789ff9f5 Made error message more informative. 2020-03-03 11:33:10 +01:00
Thomas Dreibholz
a07a830a0f Check result of openair0_device_load() and exit when loading the device fails. 2020-03-03 11:33:10 +01:00
laurent
44167f0119 Fix phy simulators 2020-03-02 19:15:44 +01:00
Sakthivel Velumani
52fa969730 fixing wrong writeBlockSize in UE 2020-03-02 18:29:52 +01:00
Sakthivel Velumani
66555e18c7 setting sf_ahead depending on slots duration 2020-03-02 18:29:05 +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
Francesco Mani
e21900bb0a no data in dmrs symbol (hardcoded) 2020-03-02 15:31:30 +01:00
Raphael Defosseux
795f25bb17 CI: new new method to run simulated HSS
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-03-02 14:38:26 +01:00
Sakthivel Velumani
bc1e62dd7e Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-28 18:23:27 +01:00
Sakthivel Velumani
b4f46144fe Fixed bugs in frame sync for UE
UE is a bit more stable now
2020-02-28 18:23:15 +01:00
Francesco Mani
19a1affc68 some change in pdsch configuration for msg2 2020-02-28 17:49:00 +01:00
Raphael Defosseux
bf3621c5a8 CI: needs to append CI workspace path to UE RRC conf files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-28 11:53:25 +01:00
Gabriele Perrone
acced8faf1 Merge branch 'develop_integration_w08' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop_integration_w08 2020-02-28 10:30:07 +01:00
Gabriele Perrone
99c113e402 Merge remote-tracking branch 'origin/docupdate_tools' into develop_integration_w08 2020-02-28 10:11:08 +01:00
Gabriele Perrone
abf4d82586 Merge remote-tracking branch 'origin/dreibh/apt-auth-fix' into develop_integration_w08 2020-02-28 10:09:50 +01:00
Florian Kaltenberger
5c041cc153 removing deprecated nr-uesoftmodem command line parameters from CI test 2020-02-27 18:06:10 +01:00
Sakthivel Velumani
172cd2b981 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-27 17:32:47 +01:00
Raymond Knopp
e417fdfe20 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-27 17:10:21 +01:00
Raymond Knopp
f54175c9a0 fix for test_case_list.xml file w.r.t. nr_dlsim tests. Still a few tests failing, but .xml syntax errors are fixed 2020-02-27 17:09:24 +01:00
Raphael Defosseux
4bfcef6e16 CI: fixing the infinite loop w/ UE crashes before "got sync" message
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-27 16:46:41 +01:00
Sakthivel Velumani
a8301b9aac More fixes for FR2 2020-02-27 15:50:53 +01:00
cig
22d43925e0 Changes to the logic in nr_ue_dl_indication and nr_ue_prach_scheduler 2020-02-27 15:23:40 +01:00
cig
0d6e8ea0fb Interface MAC-PHY for RA: passing FAPI PRACH PDU params to PHY 2020-02-27 15:23:40 +01:00
cig
8ed99c28cf Fixes UE RA procedures:
- using NR RACH config common from scc
- fixed return type RA preamble target power functions
- retrieving PRACH format from PRACH resources
2020-02-27 15:23:40 +01:00
cig
b5bb01d4a6 Cleanup and formatting nr_ue_scheduled_response 2020-02-27 15:23:39 +01:00
cig
3c16ad5643 NR UE PRACH scheduler to fill up UL config request with PRACH PDU
- takes in input configuration index and TS 38.211 PRACH tables (6.3.3.2.x)
- using FAPI NR UL config request struct, derived from SCF standard for gNB
2020-02-27 15:23:39 +01:00
cig
f1e6a34f76 Add common mac functions declarations to nr_mac_common.h 2020-02-27 15:23:39 +01:00
Francesco Mani
80d286b637 removing 6db power boost of pdcch dmrs 2020-02-27 10:19:34 +01:00
Sakthivel Velumani
f59f8032f5 Removed DEFAULT_DLF from UE 2020-02-26 15:43:47 +01:00
Francesco Mani
5a9329d1d9 bugfix in filling dci for rar 2020-02-26 14:10:57 +01:00
Sakthivel Velumani
334519d16a Fixed several bugs in UE initial sync procedures
Now UE gets sync all time in rfsimulator. Yet to be tested with hardware.
2020-02-26 12:52:40 +01:00
Francois TABURET
dd7e48ca69 Fixes typo discovered when reviewing from gitlab 2020-02-25 16:06:37 +01:00
frtabu
2c35740122 telnet server and iq record player documentation update 2020-02-25 11:31:40 +01:00
Francesco Mani
63cf2ffa9a fixing the fix 2020-02-24 17:51:33 +01:00
Francesco Mani
d113daeb3a scrambling rnti fix in nr_dci 2020-02-24 17:46:19 +01:00
Raphael Defosseux
e454e59f61 CI: fixing the report on 5G NR RF simulation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-24 15:21:37 +01:00
Raymond Knopp
e2ee13e9ce modifications for DCI size of format 1_0 for RAR and filling of FAPI for RAR according to special RAR-related configuration 2020-02-24 11:25:07 +01:00
Raymond Knopp
eb9d37f6a3 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-22 15:06:28 +01:00
Raymond Knopp
b232be94ed dlsim/ulsim updated to generate configuration without need for external pre-generated file. 2020-02-22 15:01:55 +01:00
laurent
3d15918c14 merge again with develop, compiles only 2020-02-22 14:19:18 +01:00
Francesco Mani
edeb9ea77c Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-02-21 16:40:37 +01:00
Francesco Mani
6ff42815eb scheduling of msg2 and filling of fapi structures 2020-02-21 16:40:15 +01:00
Cedric Roux
85176d7203 remove compilation warnings 2020-02-21 11:09:28 +01:00
Cedric Roux
f829970085 improve NR UE capabilities request
Seems like the UEs in the CI don't like when asked to report NR UE
capabilities. So let's first ask for eutra capabilities and then
dig into them to check for en-dc support and only then ask for
NR capabilities. We chose to ask for NR capabilities after receiving
RRCConnectionReconfigurationComplete. That may not be the best thing
to do.

Today, we do nothing with those capabilities. We could completely skip
asking them to the UE, but since the code is there and since it may be
useful in the future, let's do it. Hopefully, it should not hurt too much.
2020-02-20 15:18:50 +01:00
Cedric Roux
eb18a90b7f bugfix: correct X_u computation for both 839 and 139 cases 2020-02-19 14:37:07 +01:00
Cedric Roux
669ba2fafe minor typo fix 2020-02-19 14:29:42 +01:00
Sakthivel Velumani
a3f9a72092 pbchsim works for FR2 2020-02-19 14:07:22 +01:00
Gabriele Perrone
5ef412ec8a Merge remote-tracking branch 'origin/tools_5Gadapt' into develop_integration_w08 2020-02-19 13:24:31 +01:00
Florian Kaltenberger
d59d2fe2bd CI: adding rrc_config_path to nr-uesofrmodem run on caracal 2020-02-19 11:59:46 +01:00
Sakthivel Velumani
6ea69740ba added 50KHz FR2 sample rate in UE 2020-02-19 10:00:36 +01:00
Raymond Knopp
3520166644 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-02-19 08:35:52 +01:00
Raymond Knopp
dd2cefa457 added longer prefix in PRACH symbol zero period for 15/30 kHz SCS. Both gNB and UE processing is modified. prachsim is functional again with new FAPI interfaces. 2020-02-19 08:34:03 +01:00
Raymond Knopp
27266ddc9a adding config file for band n261 2020-02-18 16:55:44 +01:00
cig
398a5e9063 Bugfix in RAR MAC PDU: set correct fields order for little endian machine 2020-02-18 16:13:56 +01:00
cig
6cd7e61163 UL grant tx and rx in RAR PDU. TS 38.213 ch 8.2, TS 38.321 ch 6.2.3 2020-02-18 15:17:50 +01:00
Francesco Mani
7bd76fda53 prach config common in UE 2020-02-18 14:57:14 +01:00
Florian Kaltenberger
a3d1a70925 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-18 14:28:01 +01:00
Florian Kaltenberger
99cd73cd0d previously comitted reconfig.raw was wrong (not sure why).
fixing test_case_list.xml
2020-02-18 14:26:40 +01:00
Sakthivel Velumani
04cd9ee3d3 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-18 12:24:43 +01:00
Sakthivel Velumani
04b64f84a1 set ue dl carrier from cmdline 2020-02-18 12:21:44 +01:00
Francesco Mani
e2178b3339 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-18 11:00:20 +01:00
Francesco Mani
37bbfc0945 fixes for polartest and ulschsim 2020-02-18 11:00:02 +01:00
Cedric Roux
ac28136a78 fix: use dftlen instead of N_ZC 2020-02-18 10:26:51 +01:00
Florian Kaltenberger
ad99f473f4 CI: fix 5G NR rfsimulator synch check 2020-02-18 09:40:31 +01:00
Florian Kaltenberger
1b1bbd2849 config files update for rfsimulator CI 2020-02-18 09:25:56 +01:00
Florian Kaltenberger
c691f9b601 a few fixes for FR2.
fixing beam to boresight for testing
2020-02-18 09:23:23 +01:00
Raymond Knopp
46c2c11952 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-02-17 18:10:40 +01:00
Raymond Knopp
5fa07571ec N_ZC -> dftlen in nr_prach.c:nr_rx_prach_ru() 2020-02-17 18:09:47 +01:00
Cedric Roux
c46615dc8d fix: add cast to int32_t before mul for prach_ifft_tmp 2020-02-17 17:47:10 +01:00
Raymond Knopp
87a019a114 bug fixing in nr_rx_prach_ru 2020-02-17 16:09:41 +01:00
Francesco Mani
1ff025a4a1 fix for pbchsim that works also for -I 2020-02-17 15:20:50 +01:00
Francesco Mani
8dac1f134d fix for pbchsim 2020-02-17 14:31:11 +01:00
Raymond Knopp
fe20c53ee1 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-02-17 14:20:49 +01:00
Raymond Knopp
844da79531 added handling for N_TA_OFFSET computation and changed some use of FAPI configuration in RU (used ru->config instead of ru->gNB_list[0]->config) 2020-02-17 14:19:42 +01:00
Cedric Roux
b12ca2eba1 fix prach2 value 2020-02-17 12:43:11 +01:00
Cedric Roux
bb3bee9f23 fix dftlen computation 2020-02-17 12:22:19 +01:00
Cedric Roux
fd81b1ec89 fix 2020-02-17 12:02:28 +01:00
Sakthivel Velumani
f3f3dff1be fixed physim compile errors 2020-02-17 11:33:03 +01:00
Francesco Mani
3c4ac034a5 small fixes 2020-02-17 09:24:25 +01:00
Raymond Knopp
456d1f9df9 added scheduling of PRACH RX procedures in gNB and RU entities. Initialization of prach sequences added to nr_init.c 2020-02-16 22:48:53 +01:00
Francesco Mani
a248c44d31 computation nb of root sequences in mac (plus some clean up in prach_common.c 2020-02-14 18:57:04 +01:00
Florian Kaltenberger
47d4d0b7ec Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration 2020-02-14 17:08:23 +01:00
Florian Kaltenberger
0f46f7ee9c Merge branch 'NR_RRCConfiguration_merge_develop' into NR_RRCConfiguration 2020-02-14 17:07:58 +01:00
frtabu
e0fd2de76d replacing phy_test local variable from nr_dlsim.c and nr_ulsim.c with get_softmodem_params()->phy_test 2020-02-14 16:50:09 +01:00
Raphael Defosseux
0d6fabb9b6 CI: fixed the iperf analysis in 5G-RF-SIM now that we have UL
also added the UL test for 5G-RF-SIM

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-14 15:46:40 +01:00
Sakthivel Velumani
b7b29aed18 Merge branch 'NR_RRCConfiguration' into NR_RRC_CP_bugfix 2020-02-14 11:52:29 +01:00
Sakthivel Velumani
cc9d513649 fixed txslot issue in realtime 2020-02-14 11:51:19 +01:00
Raymond Knopp
5eeb25e290 integration of remaining FAPI PRACH interfaces in L1 along with list handling for PRACH RX requests 2020-02-14 09:58:36 +01:00
Raymond Knopp
7c9372d761 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2020-02-14 05:49:06 +01:00
Raymond Knopp
e8834e9620 added FAPI interfaces int gNB prach receiver functions (rx_nr_prach,rx_nr_prach_ru) and in indication to MAC. 2020-02-14 05:44:12 +01:00
Francesco Mani
0a2e033253 max ack bits in mac_proto.h 2020-02-13 17:18:20 +01:00
frtabu
b3334dbc2e A fix proposal for phy simulators compilation Pb. 2020-02-13 15:53:54 +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
Francesco Mani
f8523b6c87 Merge branch 'NR_RRC_PRACH_procedures' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PRACH_procedures 2020-02-13 14:24:33 +01:00
Francesco Mani
a7ab50e874 scheduling PRACH and filling fapi PRACH PDU 2020-02-13 13:50:44 +01:00
matzakos
9f1350805c nr-ip-ul-nos1: Resolve some dependency issues to make the phy simulators compile 2020-02-13 13:25:23 +01:00
Thomas Dreibholz
1e38ef5fde Using "--allow-unauthenticated" with apt-get disables package verification, allowing to install untrusted/modified packages into the development system. Fixed calls to apt-get to make sure that packages are verified. 2020-02-13 11:33:46 +01:00
Francesco Mani
eda3a76e13 fix in function to read prach tables 2020-02-13 09:12:02 +01:00
frtabu
ff4829284b --amend 2020-02-12 20:29:51 +01:00
frtabu
e091f94ae7 fix T_IDs.h build problem 2020-02-12 19:29:53 +01:00
frtabu
6014ca42ac ENABLE_ITTI macro removal, modified telnet server to support all executables, modified record player to finalize switch to run-time option and allow usage with any device 2020-02-12 19:05:44 +01:00
Francesco Mani
f7611d12a2 prach tables in mac_common and function to read them 2020-02-12 18:06:30 +01:00
matzakos
295923d540 nr-ip-ul-nos1: Logs cleanup and some code rearrangement 2020-02-12 17:58:06 +01:00
cig
fdaf4ff92c Fixed warnings gNB compilation 2020-02-12 17:32:08 +01:00
cig
3341846d4c Handled uninitialised return value in get_tx_amp_prach 2020-02-12 17:32:08 +01:00
matzakos
4e51e1ea10 nr-ip-ul-nos1: Merge with develop 2020-02-12 16:45:22 +01:00
Cedric Roux
9a91fe96c3 update configuration file for gnb band 78 106 PRBs 2020-02-12 10:12:58 +01:00
Francesco
f086c07cfe Merge remote-tracking branch 'origin/NR_RRCConfiguration' into NR_RRC_CP_bugfix 2020-02-12 09:58:59 +01:00
Francesco Mani
57a612c52d update of pucch scheduler 2020-02-12 09:34:07 +01:00
matzakos
9e6b6ef965 nr-ip-ul-nos1: Remove warnings 2020-02-11 18:45:35 +01:00
Raphael Defosseux
f8037ab61e DOC: added link to feature list in README
align folder structure in README w/ 5G-NR new folders

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-11 16:59:43 +01:00
cig
498ce5fede Fixed wanrnings nrUE compilation 2020-02-11 16:41:59 +01:00
Sakthivel Velumani
ef0aad0de7 fixed bug from provious commits 2020-02-11 16:37:31 +01:00
cig
794348e0b9 Removed unnecessary return in gnb phytest scheduler (was followed by assert on same condition) 2020-02-11 14:50:22 +01:00
cig
9c79e7e353 Fixed compilation after rebase 2020-02-11 14:45:44 +01:00
Thomas Dreibholz
0b4726751e Added missing file targets/DOCS/openair_header.tex. 2020-02-11 11:52:05 +01:00
Raphael Defosseux
3a10c5ca65 DOC: adding contributor and separate readme/changelog
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-11 11:51:40 +01:00
Sakthivel Velumani
9a7daded2e Updated ofdm fep in gNB 2020-02-11 10:56:15 +01:00
Raymond Knopp
9c75cda863 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-10 23:18:58 +01:00
Raymond Knopp
064b7f23aa generation of CCEIndex > 0 in gNodeB and modification of unscrambling procedure for PDCCH in UE RX. 2020-02-10 23:17:27 +01:00
cig
7e25d85f5c Cleanup code, comments 2020-02-10 20:02:16 +01:00
cig
98480e7102 RA, Updated nr_ue_get_rach:
- using LTE function mac_rrc_nr_data_req_ue in noS1 mode
- cleanup code, comments
- fixes RA procedure
- Processing UL MAC PDU according to TS 38.321 ch 6.1:
- introduced function for gNB side UL PDU processing
- fixed bug in nr_ue_process_mac_pdu
2020-02-10 20:02:16 +01:00
cig
6c61fef362 Added RA_SUCCEEDED to RA_state_t 2020-02-10 20:01:39 +01:00
cig
99256c24ce MAC CE contention resolution reception 2020-02-10 20:01:39 +01:00
cig
bbc0d1deeb Adapted get_nr_PL to be used in RA MAC procedures 2020-02-10 20:01:39 +01:00
cig
9653b954d3 Contention resolution TS 38.321 ch 5.1.5 2020-02-10 20:01:39 +01:00
cig
6149d825e2 Msg3 transmitted, flush Msg3 buffer when RA is not active 2020-02-10 20:01:39 +01:00
cig
a70fa82ad8 Removed phy vars members from ue mac inst struct 2020-02-10 20:01:39 +01:00
cig
156defcd0b Fixes RAR generation, reception 2020-02-10 20:01:39 +01:00
cig
986b5fb247 Integrated nfapi_nr_dl_dci_pdu_t in DL DCI 2020-02-10 20:01:39 +01:00
cig
ffa5911dc1 RA fixes 2020-02-10 20:01:39 +01:00
cig
903a1ec6a8 Cleanup code, removed gNB headers in UE files 2020-02-10 20:01:39 +01:00
cig
36195ec31a RA fixes and additions:
- RA resource selection and transmission
- MAC header structs for RA
- RA procedure msg1 fixes
- code cleanup
2020-02-10 20:01:39 +01:00
cig
e01dd43b7b Cleanup comments, removed UE files from gNB MAC library 2020-02-10 19:59:36 +01:00
cig
083234133a Hardcoded prach config common parameters 2020-02-10 19:59:36 +01:00
Guido Casati
e0e8bbcfdb RACH MAC procedure (RA initiation and Preamble selection)
- Updated PRACH procedures and general code formatting
- gNB msg1 handling and RAR generation
- general bug fixing
- formatting
- missing headers
- RAR handling.
2020-02-10 19:59:36 +01:00
Bo Zhao
5aec9ab505 Solve the uninitialized conditional jump and invalid read/write errors from the valgrind log 2020-02-10 19:56:39 +01:00
Bo Zhao
7ea608720f Extend the length of the channel processing to 32 bits 2020-02-10 19:56:39 +01:00
Bo Zhao
ac12245252 Bugfix: 1. fix the initial memory allocation; 2. correct the generation of the prach signal according to specs 2020-02-10 19:53:29 +01:00
Bo Zhao
f2eb214156 1. assertion relax for preamble format 3; 2. memset bugfix for RB=106; 3. repetition bugfix for format A3 and B3 2020-02-10 19:53:29 +01:00
Bo Zhao
2cd49c3e24 Bug fix: remove the hardcoded tx preamble index 2020-02-10 19:53:29 +01:00
Bo Zhao
0ae6685dbb Bug fix: use NR prach table init function 2020-02-10 19:53:29 +01:00
Bo Zhao
42c698fd93 Bug fix: preamble energy and delay used in the peak detection should be scalar instead of array 2020-02-10 19:50:23 +01:00
Bo Zhao
21bb011b7a Conversion from the peak detection to the TA value, considering the numerology, N_RB and the sampling rate 2020-02-10 19:50:23 +01:00
Bo Zhao
1996bdaa34 Fix for DFT of different preamble formats according to specifications 2020-02-10 19:50:23 +01:00
Francesco Mani
795ed9a814 fix in pucch configuration 2020-02-10 16:39:50 +01:00
Sakthivel Velumani
5c0a817f23 FR1 works fine in rfsimulator
Initial sync not happening fot FR2
2020-02-10 15:45:00 +01:00
Sakthivel Velumani
e1647ac620 fixed the issue with wrong PDSCH slots 2020-02-10 15:34:11 +01:00
Raphael Defosseux
f1a8620515 CI: fixes in python framework
-- fromdos was to be called from python executor and not from ADB server
 -- doing a power-cycle on CAT-M module at start of test

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-10 13:29:32 +01:00
Raymond Knopp
69721198af nr MAC uplink: aDD identification of MAC uplink PDU CEs at gNB (receiver) side 2020-02-10 12:54:00 +01:00
Francesco Mani
3e5682d8bb including uci indication 2020-02-10 10:11:45 +01:00
Florian Kaltenberger
87d4443c0b adding support for beamforming (control of GPIO) for FR2 2020-02-10 09:23:24 +01:00
frtabu
2520a92211 modify telnet serveur build to support all exec's 2020-02-10 09:00:38 +01:00
Florian Kaltenberger
a01e93be0c Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration 2020-02-09 21:38:04 +01:00
matzakos
626daecfa5 nr-ip-UL-nos1: Fix packet corruption issue appearing with larger packet sizes based on iperf testing for the uplink 2020-02-07 19:51:19 +01:00
Sakthivel Velumani
be09a9b0ba applying laurent's patch for rfsim. Missed in the RRC_FR2 branch
2 issues at this point:
1.rfsim for FR1 works sometimes. other times 100 consec PBCH errors.(this commit)
2.PDCCH and PDSCH are not transmitted in correct slots. problem might be with sf_ahead.
2020-02-07 18:22:32 +01:00
Raphael Defosseux
f761479e40 Develop integration 2020 week 06
See merge request oai/openairinterface5g!769

The following Merge Requests have been included :

* MR 767: fix compilation error for Lime driver
* MR 768: Softmodem cleanup
2020-02-07 17:14:26 +01:00
Florian Kaltenberger
12b38431dc PUSCH start symbol should be 0 2020-02-07 16:58:31 +01:00
Francesco Mani
7134468cde adapting FR2 absolutefrequencySSB to new code 2020-02-07 15:46:32 +01:00
Francesco Mani
5f3b997789 added assertion for absolutefrequencySSB 2020-02-07 14:42:26 +01:00
Sakthivel Velumani
7f4b6a2986 updated slot fep for numerology 0
fixed a bug in UE
2020-02-07 12:41:45 +01:00
Florian Kaltenberger
b6a063a77b fixing a typo 2020-02-07 10:55:18 +01:00
matzakos
93ac6bd426 nr-ip-UL-nos1: Substitute LTE macros in new NR functions and data structures + logs cleanup 2020-02-06 18:21:12 +01:00
Gabriele Perrone
f543244e7f Merge remote-tracking branch 'origin/softmodem_cleanup' into limedrv-sftmdmclean
Merge softmodem_cleanup (MR768) and  fix-limeSDR-compile (MR767) into a third branch before creating a new MR (limedrv-sftmdmclean to develop)
2020-02-06 18:10:25 +01:00
Florian Kaltenberger
86670eccb4 forcing rnti to 4660 in nr_dlsim, as otherwise CCE allocation does not work (to be fixed) 2020-02-06 15:49:33 +01:00
Florian Kaltenberger
239c30d92a updating gNB config file for CI 2020-02-06 15:49:33 +01:00
Francesco Mani
c5f05b3a21 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-06 14:59:15 +01:00
Florian Kaltenberger
debe10c296 fixing a bad merge, removing a log, resetting MAX_LDPC_ITERATIONS=5 2020-02-06 14:57:16 +01:00
Francesco Mani
d22c0f720d fix for ssb bitmap endian (to be checked with FSW) 2020-02-06 14:33:38 +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
Florian Kaltenberger
e4d8dd1e66 ulsim working again. added error count and adapted test_case_list 2020-02-05 22:57:24 +01:00
matzakos
bb7a788809 nr-ip-UL-nos1: Integrate NR MAC PDU structures for the Uplink. Currently supporting only data SDUs, Control Elements to be added. 2020-02-05 18:47:02 +01:00
Sakthivel Velumani
4d33b341c2 updated phy simulators 2020-02-05 18:13:11 +01:00
Francesco Mani
5320469402 scheduling of PUCCH on MAC, passing PUCCH FAPI down to PHY (to be finished), filling DCI structures according to PUCCH (to be finished) 2020-02-05 18:05:18 +01:00
Florian Kaltenberger
16d8248c8b removing logs 2020-02-05 15:09:32 +01:00
Florian Kaltenberger
fcecbff7d4 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-02-05 15:03:22 +01:00
Florian Kaltenberger
1905611d25 making ulsim run again, nr_dlsim should run again in CI 2020-02-05 15:02:05 +01:00
Sakthivel Velumani
30750781f1 Merge branch 'NR_RRCConfiguration' into NR_RRC_CP_bugfix 2020-02-05 12:38:56 +01:00
Sakthivel Velumani
da71b97908 updated to slot_fep 2020-02-05 11:51:55 +01:00
Francesco Mani
607f561efa changes for no coreset0 k_ssb (ssb_SubcarrierOffset from config file not working) 2020-02-05 10:28:35 +01:00
Sakthivel Velumani
d8ee1189d6 More updates
gNB and UE runs without crashing; PBCH not decoding though
2020-02-04 18:17:43 +01:00
frtabu
64e4826c81 add softmodem-common.c and common error handler 2020-02-04 17:39:36 +01:00
Florian Kaltenberger
8f14c0fe17 Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration
Conflicts:
	executables/nr-gnb.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2020-02-04 15:38:33 +01:00
Francesco Mani
b1d259663e configuration of pucch0 rx from fapi structure 2020-02-04 15:36:47 +01:00
Florian Kaltenberger
2027942710 Merge remote-tracking branch 'origin/NR_RRC_TA' into NR_RRCConfiguration 2020-02-04 15:33:57 +01:00
Sakthivel Velumani
460a75dbdf Merge branch 'NR_RRCConfiguration' into NR_RRC_CP_bugfix 2020-02-04 14:33:56 +01:00
Raphael Defosseux
cae94677f8 CI: adding a EPC lockable resource to pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-02-04 14:17:32 +01:00
matzakos
9367bad1a4 Disable X2AP at gNB 217 PRBs config file to prevent segfault when there is no X2 link 2020-02-04 13:38:07 +01:00
matzakos
fa09fbcf12 Small fix to be able to parse ue capabilities and add NSA user when running in phytest mode 2020-02-04 13:21:02 +01:00
Francesco Mani
59fc607c4e mac function to configure fapi for pucch updated (not yet called) 2020-02-04 12:33:54 +01:00
Sakthivel Velumani
9ea4ebdc5f more updates on samples_per_slot 2020-02-04 11:09:19 +01:00
cig
980407a1df Fixed conflicts after merge 2020-02-03 17:13:05 +01:00
laurent
10b046f5b8 merge continue: take develop latest commits, fix compilation for test tools 2020-02-03 15:25:50 +01:00
laurent
cd20e9083a fix compilation error for Lime driver 2020-02-03 13:48:17 +01:00
Francesco Mani
1b8e18e05b absoluteFrequencySSB is the center of SSB (correction of 10 RB in ref to point A needed) 2020-02-03 12:30:45 +01:00
Francesco Mani
c36636be95 function to configure scf fapi for pucch (not yet called) 2020-02-03 11:53:05 +01:00
cig
7344d87567 Merge branch 'fhg-ta' into fhg-ra 2020-02-03 10:45:29 +01:00
frtabu
101a55e332 commit before rebasing onto develop 2020-02-03 10:37:46 +01:00
laurent
4abaa55949 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into merged4g5g 2020-02-01 18:06:18 +01:00
Sakthivel Velumani
bc38ec6b29 Updated samples per slot as per specs.
gNB runs fine. UE yet to be tested.
2020-01-31 18:16:17 +01:00
Sakthivel Velumani
0bb1bcc0bb Updated CP length as per spec for FR2 2020-01-31 18:15:32 +01:00
Francesco Mani
06e700a048 bitmap for scheduling dlsch and ulsch in UE list 2020-01-31 16:32:49 +01:00
Francesco Mani
cef2ed8dda bugfix in nr_dlsch_encoding 2020-01-31 09:07:56 +01:00
Raphael Defosseux
aa8f04e3b1 Merge branch 'develop_integration_2020_w05' into 'develop'
Develop Integration Branch : 2020 week 05

The following Merge Requests have been included :

* MR[702] : Add PUSCH-based TA updates (5G-NR)
* MR[764] : fix segv in drs_modulation.c (4G-LTE-UE)
* CI Python Framework improvement (X2 OpenAirCn Handover)
* Some Compilation warnings fixed
2020-01-30 20:27:59 +01:00
laurent
8d9d80ee37 very big merge with merged develop, basic test done 2020-01-30 17:10:36 +01:00
Raphael Defosseux
5e9b64c0d3 Proper patch on the waitret for warning compilation 2020-01-30 17:08:26 +01:00
Francesco Mani
84bed899cb bitmap for scheduling dlsch and ulsch in phytest and a bugfix in dlsch coding 2020-01-30 16:49:13 +01:00
Raphael Defosseux
f8a8f054b9 Merge remote-tracking branch 'origin/develop_inria_ci_deployment' into develop_integration_2020_w05 2020-01-30 15:14:28 +01:00
Raphael Defosseux
9331d38d85 CI: fixing a few compilation warnings
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-30 15:10:35 +01:00
Raphael Defosseux
71ff9f8bb7 Merge remote-tracking branch 'origin/ue-segv-drs_modulation.c' into develop_integration_2020_w05 2020-01-30 11:51:23 +01:00
Florian Kaltenberger
5006aa0291 harmonizing TDD configuration for 106 with the one for 217 PRB 2020-01-29 22:06:28 +01:00
Florian Kaltenberger
538e08d0a5 Revert "adding support for beam selection in usrp_lib"
This reverts commit 615f365b37.
2020-01-29 22:05:54 +01:00
laurent
0f77c961b5 fix segv in drs_modulation.c 2020-01-29 18:56:20 +01:00
Thomas Schlichter
cfced70bda Merge remote-tracking branch 'develop' 2020-01-29 13:15:42 +01:00
Francesco Mani
51f5a5b30c scs parameters from BW not from RB 2020-01-29 12:25:37 +01:00
cig
e21b00adab Bugfix - missing call to mac_rlc_data_ind in the noS1 mode:
- now the UE is passing again data to the upper layers in noS1 mode
- minor cleanups
2020-01-28 17:47:15 +01:00
Francesco Mani
cdde88302c completing previous fix 2020-01-28 16:38:02 +01:00
Francesco Mani
0e550ff2f5 fix for pucch0 resource allocation 2020-01-28 16:13:46 +01:00
Cedric Roux
9e1c94835c fix for lte UE compilation 2020-01-28 14:39:50 +01:00
Francesco Mani
b2765ac23a some changes in pucchsim 2020-01-28 13:41:59 +01:00
Cedric Roux
1c026a0b32 Merge remote-tracking branch 'origin/nr-dual-connectivity' into NR_RRCConfiguration 2020-01-28 12:28:26 +01:00
Cedric Roux
f594ae8b82 release DRB1 on LTE side of things to configure UE for endc 2020-01-28 12:24:48 +01:00
Cedric Roux
6970bea679 fix value in fill_default_secondaryCellGroup 2020-01-28 12:20:08 +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
Florian Kaltenberger
615f365b37 adding support for beam selection in usrp_lib 2020-01-27 11:13:06 +01:00
Cedric Roux
1d4d8d685f add drb 1 with nea0
phone was not happy with other settings
2020-01-27 10:13:16 +01:00
Raphael Defosseux
4eaadf8d82 CI: fixing slave pipelines
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-26 13:41:36 +01:00
Raphael Defosseux
893e19fa16 Merge branch 'develop_integration_2020_w04' into 'develop'
Develop integration 2020 week 04

See merge request oai/openairinterface5g!763

The following MRs have been included:

* MR [726] : Flexran improvements
* MR [756] : remove uhd_set_thread_priority function
* MR [757] : HOTFIX: After develop/develop-nr merge UE was crashing with MBMS U-Plane traffic running
* MR [758] : Improve build after nr lte merge
* MR [759] : Doc update after 5g lte merge and latest build procedure modifications
* MR [761] : fixes for mutex lock for wake up signal
* MR [761] : CI: count ULSCH received ok messages
2020-01-26 00:20:19 +01:00
matzakos
8a6f346ec4 nr-ip-ul nos1: Small modification to be able to block the random traffic (which is generated when there is no Uplink IP traffic at the UE) at the MAC layer of the gNB 2020-01-24 20:04:00 +01:00
Raphael Defosseux
44cfdab5b7 CI: fix the missing 5G-NR UE build report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-24 17:53:18 +01:00
Raphael Defosseux
9078a01e35 CI: adding FDD-10MHz to RFSIM
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-24 16:03:42 +01:00
Florian Kaltenberger
8dac3a46c9 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into NR_RRC_PUSCH 2020-01-24 15:22:14 +01:00
Florian Kaltenberger
9624fb0183 reactivating phy scope gNB 2020-01-24 15:08:32 +01:00
Raphael Defosseux
fd865ea06d CI: doing the check only in NR
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-24 12:05:58 +01:00
Raphael Defosseux
9ca17fd3e7 Merge remote-tracking branch 'origin/ci-scripts-cleanup' into develop_integration_2020_w04 2020-01-24 12:02:59 +01:00
Raphael Defosseux
8c6ac1092e Merge remote-tracking branch 'origin/ci_check_ulsch' into develop_integration_2020_w04 2020-01-24 12:02:45 +01:00
Raphael Defosseux
7a6b857953 Merge remote-tracking branch 'origin/mutex_fix' into develop_integration_2020_w04 2020-01-24 12:02:31 +01:00
Raphael Defosseux
01470da96b Merge remote-tracking branch 'origin/doc_update_5GLTE' into develop_integration_2020_w04 2020-01-24 12:01:05 +01:00
Raphael Defosseux
5c80ef080c Merge remote-tracking branch 'origin/improve_build_nr_lte_merge' into develop_integration_2020_w04 2020-01-24 12:00:49 +01:00
Raphael Defosseux
7d26df6ecf Merge remote-tracking branch 'origin/mbms-fix-develop-nr' into develop_integration_2020_w04 2020-01-24 12:00:31 +01:00
Raphael Defosseux
0b75b75132 Merge remote-tracking branch 'origin/uhd_priority_set_cleanup' into develop_integration_2020_w04 2020-01-24 12:00:16 +01:00
Raphael Defosseux
5162f0c4ef CI: fix the missing 5G-NR UE build report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-24 11:22:14 +01:00
Raphael Defosseux
855752f4d2 Fix a few warnings
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-24 11:20:10 +01:00
Cedric Roux
74762762db Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr-dual-connectivity 2020-01-24 11:10:55 +01:00
Cedric Roux
1ce8540d6d fix lte softmodem compilation 2020-01-24 11:09:30 +01:00
Cedric Roux
49d27bdf11 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr-dual-connectivity 2020-01-23 16:37:21 +01:00
Francesco Mani
6a356e3b69 few warnings 2020-01-23 16:36:23 +01:00
Cedric Roux
51ab31a3b9 trigger NR activation based on RRC measurements
An NR-capable UE will transmit some NR measurements.
Once received, the whole process on nr-cell addition is started.
It will fail quickly.

Many things are still missing.

What is not handled properly with this commit:
- in x2ap_eNB_handle_sgNB_add_req we hardcode the gNB ID
- nr triggering is done if we receive a measurement but this measurement is
  not analyzed at all
- no timers (T_dc_overall, T_dc_prep) and as is the code fails and then the
  next triggering after UE reconnection will not work (x2 ID are not well
  handled here and there in the code)

Note also that the gNB part has not been looked at all for this commit.

This is work in progress...
2020-01-23 16:10:29 +01:00
Thomas Schlichter
d3b19823f0 CI: count ULSCH received ok messages 2020-01-23 15:54:19 +01:00
Francesco Mani
cf51fff79f another fix for transmitting SSB with shorter TDD periodicity 2020-01-23 14:55:33 +01:00
WANG Tsu-Han
b7a027f905 fixes for mutex lock for wake up signal 2020-01-23 14:52:30 +01:00
Francesco Mani
9ca3f75464 fix for 5ms SSB periodicity 2020-01-23 13:48:54 +01:00
Raymond Knopp
0a136997d3 nr-ip-UL noS1: Merge with develop branch 2020-01-23 12:35:01 +01:00
Florian Kaltenberger
932b4e0d71 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into NR_RRC_PUSCH
Conflicts:
	executables/nr-ue.c
2020-01-23 12:09:56 +01:00
Florian Kaltenberger
00f0e0ccb8 UL is now being scheduled but not decoded ok yet 2020-01-23 12:07:47 +01:00
Raphael Defosseux
4a2abc03b5 CI: splitting build xml files into build and epc-start XML files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-23 11:05:08 +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
Francesco Mani
82ab85ec51 bugfix for MIB 2020-01-23 09:58:53 +01:00
Raphael Defosseux
9b920255b3 DOC: added kernel headers install guidelines for CentOS / RHEL
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-22 22:53:34 +01:00
Raphael Defosseux
009c75d60b CI: removed obsolete python obsolete options
split the RRC inactivity scenarios

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-22 22:43:38 +01:00
Raphael Defosseux
b723418c33 CI: fix RF simulator hyperlinks in HTML report
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-22 21:36:58 +01:00
Javier Morgade
fb57ef2fd4 patch from Robert Schmidt <robert.schmidt@eurecom.fr>
-BUGFIX: CD/DU F1 split
2020-01-22 20:18:51 +01:00
Raphael Defosseux
b85731f4a9 CI: Add LTE RF Simulator test (normal and with MBMS)
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-22 17:59:21 +01:00
Francesco Mani
e29d1789df fix for long SSB bitmap in config file 2020-01-22 17:38:34 +01:00
Raymond Knopp
2ebc75b9a2 fixes for the thread blocking problem 2020-01-22 15:09:32 +01:00
matzakos
99fce8a359 nr-ip noS1 uplink: Uplink IP traffic successfully received at the IP TUN interface of the gNB now. Logs cleanup. 2020-01-22 13:05:10 +01:00
Francesco Mani
63866165ee fixing some warnings 2020-01-22 09:50:57 +01:00
frtabu
22e45b8adf update doc/BUILD.md and doc/RUNMODEM.md to reflect develop/develop-nr merge and latest merge requests affecting the build procedure 2020-01-21 18:01:50 +01:00
Francesco Mani
a82300d78a some modifications in nr_parms 2020-01-21 17:45:36 +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
Sakthivel Velumani
908ef67eeb fixed PRB 66 bug 2020-01-21 12:33:58 +01:00
Francesco Mani
624aa3c2fd option for 50MHz FR2 in dlsim 2020-01-21 11:19:54 +01:00
frtabu
6cdac7e12f fix config lib and config sources usage in CmakeList.txt 2020-01-20 19:45:21 +01:00
frtabu
61f6af80ad build improvements: allow build mode selection (-g -G options) allow all exec build in one pass, remove remaining USE_MME macros in nr code 2020-01-20 19:06:15 +01:00
matzakos
5b5a25a932 nr-ip noS1 uplink integration (testing with RFSIMULATOR only): Uplink IP packets received at the gNB and reaching at pdcp layer. Asserion error at pdcp_fifo_flush_sdus when trying to write on the nas socket 2020-01-20 17:55:16 +01:00
Thomas Schlichter
50cfaf7fff Merge remote-tracking branch 'develop' 2020-01-20 15:34:12 +01:00
Sakthivel Velumani
b9e66e19d0 Merge branch 'NR_RRCConfiguragion_FR2' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguragion_FR2 2020-01-20 15:26:41 +01:00
Sakthivel Velumani
f0b8dbd7ad small update in fep 2020-01-20 15:25:56 +01:00
Francesco Mani
7674317ea1 fix compilation errors in phy simulators 2020-01-20 14:40:19 +01:00
Sakthivel Velumani
29a725fe3b Merge branch 'NR_RRCConfiguragion_FR2' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguragion_FR2 2020-01-20 14:30:18 +01:00
Sakthivel Velumani
5ab4044613 included numerology as cmdline parm 2020-01-20 14:29:12 +01:00
Robert Schmidt
dabe2ae7ab FlexRAN: remove unused import in protocol def 2020-01-20 14:05:05 +01:00
Robert Schmidt
1c8c839f65 FlexRAN: Reformat code for X2 HO NetControl activation 2020-01-20 14:05:05 +01:00
Robert Schmidt
e33be3ccd3 FlexRAN: Re-enable the soft-restart, it works 2020-01-20 14:05:05 +01:00
Robert Schmidt
c6e389ed4c FlexRAN: assert if out of memory 2020-01-20 14:05:05 +01:00
Robert Schmidt
a87220d376 Add S1AP control module for FlexRAN with status monitoring support 2020-01-20 14:05:05 +01:00
cig
ef0a45325b Split configure_fapi_dl_tx function into two functions:
- configure_fapi_dl_pdu is handling the nfapi_nr_dl_config_request_pdu
 - while configure_fapi_dl_Tx is now handling the nfapi_tx_request_pdu

this was necessary because the computation of the TBS size is needed in the phytest scheduler
before even knowing if there is any data to transmit. The tx_request_pdu must be handled instead
only when there is data to transmit.
2020-01-20 12:57:41 +01:00
Robert Schmidt
44fdb23f15 FlexRAN: fix RRC protobuf definition 2020-01-20 11:35:35 +01:00
Robert Schmidt
6a581d903b Add FlexRAN protobuf definition for S1AP 2020-01-20 11:35:35 +01:00
Robert Schmidt
d2b1e6aa9a FlexRAN: report employed splits to controller 2020-01-20 11:35:35 +01:00
Robert Schmidt
a8b4a62b82 Read RU config before FlexRAN to allow split identification 2020-01-20 11:35:35 +01:00
Robert Schmidt
f87c1cbb92 FlexRAN refactor+format MAC stats function 2020-01-20 11:35:35 +01:00
Robert Schmidt
b6d466d772 FlexRAN: reimplement timers without ITTI
The timer code used to trigger periodic statistics message sending used
ITTI. Together with a high frequency reporting (e.g. 1ms), this resulted
in high CPU usage. This commit reimplements this:
* using a thread that is synchronized to the RU (if there is no MAC, we
  assume there is no RU generating a tick so we create the tick source
  ourselves)
* no RB trees but plain arrays
* smaller interface for users
* slight user interface changes
* remove stopped timer state: such timer might be simply removed
* remove one-shot timers
2020-01-20 11:35:35 +01:00
Robert Schmidt
233affc9dd FlexRAN: include header, not C file 2020-01-20 11:34:54 +01:00
Robert Schmidt
5c4aa309eb FlexRAN: helper function to get No. UEs 2020-01-20 11:34:54 +01:00
Robert Schmidt
7415d08138 FlexRAN: Simplify stats request handling
* only set up timer for sending requests
* simplify interface for timer setup
* on timer expiry, do not pass through stats request function but
  directly send the reply
* Remove whatever report structure and use stats request directly for
  inferring the data to send
2020-01-20 11:34:54 +01:00
Robert Schmidt
a21c1b1f73 Remove unused sleep function() 2020-01-20 11:33:32 +01:00
Francesco Mani
ec416c88b0 option for FR2 and 50MHz 2020-01-20 11:02:53 +01:00
Javier Morgade
dff766ae15 *HOTFIX: After develop/develop-nr merge UE was crashing with MBMS U-Plane traffic running
-New MAC SDU integrity check in ue_procedures .c introduced for MCH channels.
	-This SDU behavior didn’t show up with former develop
	-TOCHECK whether NFAPI was properly merged on the eNB side.
	-eNB_scheduler_mch has been slightly rearranged.

	*BUGFIX:
	-In dlsch_demodulation.c  “ rxF_comp_d.m” was continuously being written to disk

	*New reference config file added (lte-fdd-mbms-basic-sim.conf) for rfsim environment
2020-01-20 10:34:41 +01:00
Raphael Defosseux
979fa3a659 DOC: added hyper links to new sections
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-17 21:42:14 +01:00
Dr.-Ing. Javier Morgade
954c9d4173 Update FEATURE_SET.md with MBMS features 2020-01-17 21:41:08 +01:00
Dr.-Ing. Javier Morgade
0ec5db48d3 Update README.txt with MBMS features 2020-01-17 21:41:00 +01:00
Raphael Defosseux
c383b5e696 CI: prepare release notes for release 1.2.0
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-17 21:40:49 +01:00
Raphael Defosseux
f2d90e79e3 CI: fix the git clone extension when creating the UE workspace
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-17 21:39:34 +01:00
Raphael Defosseux
0e3401829f Merge branch 'integration-develop-nr-2020w03' into 'develop-nr'
Integration develop-nr 2020 week 03

See merge request oai/openairinterface5g!755

This integration branch includes the following MRs:

- MR 745 : Add support for different PUSCH DMRS modes
- MR 748 : Nr dlsch multi threading
- MR 752 : Merging develop tag 2019.w51 to develop-nr
- MR 753 : RedHat Entreprise 7.7 build support

IMPORTANT: This should be the last integration branch to develop-nr as the result of this MR will become develop
2020-01-17 21:37:28 +01:00
Francesco Mani
98c66bab40 config file also for x300 2020-01-17 18:11:17 +01:00
Francesco Mani
8e7b12257c first version of config file for FR2 (I changed only few parameters) 2020-01-17 18:09:51 +01:00
Cedric Roux
ad5706c88d activate NR measurements for NR capable UEs
many things hardcoded, to be refined
2020-01-17 16:56:57 +01:00
Francesco Mani
dc6b0b15f7 option to have an IF frequency set from config file for FR2 2020-01-17 16:30:15 +01:00
Raymond Knopp
41b739ebff ENDC X2AP: Add handling of sGNB Reconfiguration Complete message at gNB side 2020-01-17 13:09:07 +01:00
Raymond Knopp
1493b7cb55 Merge branch 'nr-dual-connectivity' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr-dual-connectivity 2020-01-17 12:52:24 +01:00
matzakos
e52f8b7ad7 Merge branch 'nr-dual-connectivity' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr-dual-connectivity 2020-01-17 12:43:29 +01:00
matzakos
2865eb95a6 ENDC X2AP: Add generation of X2 sGNB Reconfiguration Complete message 2020-01-17 12:43:07 +01:00
Francesco Mani
24740eb2f2 Merge branch 'NR_RRCConfiguration' into NR_RRCConfiguragion_FR2 2020-01-17 12:12:31 +01:00
Cedric Roux
5930acaca6 harmonize calloc parameters
use:
     type *x = calloc(1, sizeof(*x));
everywhere to avoid bad types inside the sizeof.
2020-01-17 12:08:41 +01:00
Cedric Roux
1f92529452 harmonize calloc parameters
use:
     type *x = calloc(1, sizeof(*x));
everywhere to avoid bad types inside the sizeof.
2020-01-17 12:05:25 +01:00
Francesco Mani
40c06a843e taking into account raster step size in nrarfcn functions 2020-01-17 11:24:52 +01:00
Francesco Mani
9901cd4266 adding all NR FR2 bands in table 2020-01-16 18:15:06 +01:00
Francesco Mani
7769d19449 compilation errors solved 2020-01-16 18:00:42 +01:00
Francesco Mani
0c6b51015f merge between FR2 and RRC branches 2020-01-16 17:20:56 +01:00
cig
e41204899c Cleanup commented code and old lte code 2020-01-16 14:04:36 +01:00
WANG Tsu-Han
92c100bb5a remove uhd_set_thread_priority function 2020-01-16 11:30:27 +01:00
Raymond Knopp
18d717ea26 removal of several warnings. Still lots left. dlsim functional after some recent modifications broke it. New memory leak in dlsch decoding for low mcs high TBS fixed. 2020-01-15 22:58:46 +01:00
cig
17090f22c1 Fixed sdu initialization: this was causing assertion failure at UE side 2020-01-15 15:56:21 +01:00
Francesco Mani
6906d8a33f Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-15 14:20:25 +01:00
Francesco Mani
06fa8e3699 frame number synchronization at UE 2020-01-15 14:19:17 +01:00
Raymond Knopp
7d9a839e61 Merge branch 'nr-dual-connectivity' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr-dual-connectivity 2020-01-14 15:49:47 +01:00
matzakos
3552b8e4d3 Fix conflict on platform_constants 2020-01-14 15:47:24 +01:00
matzakos
4472e6d041 ENDC: Modifications at the gNB slave conf. file used for ENDC 2020-01-14 15:33:40 +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
Cedric Roux
fb9db399ae hotfix: fix value of MAX_MOBILES_PER_ENB
set MAX_MOBILES_PER_ENB to 4, to be same value as NUMBER_OF_UE_MAX.
Maybe we should set NUMBER_OF_UE_MAX to 16 instead?
2020-01-14 15:11:26 +01:00
Raymond Knopp
3a52199351 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr-dual-connectivity 2020-01-14 14:57:10 +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
matzakos
198ac105f1 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr-dual-connectivity 2020-01-14 14:36:06 +01:00
matzakos
8f46241522 ENDC: Merge NR_RRCConfiguration into nr-dual-connectivity branch 2020-01-14 12:57:35 +01:00
Florian Kaltenberger
2605e3f18a Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-14 10:13:42 +01:00
Florian Kaltenberger
400dc82191 initializing missing frame parmameter 2020-01-14 10:13:01 +01:00
Francesco Mani
bbfa23e9cc fix for carrier frequency (now according to number of PRBs 2020-01-14 10:07:36 +01:00
Florian Kaltenberger
d25a13fadd fixing a typo 2020-01-14 09:27:09 +01:00
Florian Kaltenberger
d576dd4ac3 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-13 22:21:29 +01:00
Florian Kaltenberger
db0901f421 initializing mod_id and cc_id 2020-01-13 22:21:01 +01:00
Francesco Mani
ade0db6424 some fixes in config files 2020-01-13 17:44:56 +01:00
Francesco Mani
c5282fb2bb Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-13 15:43:16 +01:00
Francesco Mani
c1d62a3006 some fixes including for ssb periodicity (decoded frame still wrongly taken from proc) 2020-01-13 15:42:12 +01:00
Gabriele Perrone
ba9786dfea review of modified main.py and sshconnection.py 2020-01-13 15:12:33 +01:00
Cedric Roux
e2db89de9c fix config file 2020-01-13 10:46:49 +01:00
Francesco Mani
afd578a094 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-13 10:31:39 +01:00
Francesco Mani
e640af84ca UE PHY parameters configured from fapi config req (UE is running, to be verified with gNB) 2020-01-13 10:29:56 +01:00
Raymond Knopp
c90c6ffa02 added new configuration file for 40 MHz band 78. Some parameters to be checked. 2020-01-10 17:12:36 +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
Francesco Mani
2c108cf8f4 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-10 10:35:53 +01:00
Francesco Mani
1fb763264f removing pbch_config structure 2020-01-10 10:35:47 +01:00
Florian Kaltenberger
911319fac6 completing merge 2020-01-10 09:49:08 +01:00
Florian Kaltenberger
84428359a0 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-10 09:28:59 +01:00
Francesco Mani
f7778f8f4a Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-10 09:27:39 +01:00
Florian Kaltenberger
6b792001ed preparing l2_init_ue and l3_init_ue to make sure parameters are passed down. To be merged with Francesco's changes and tested. 2020-01-10 09:26:45 +01:00
Raymond Knopp
b8c7dc8eb1 Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_dlsch.h
	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
	openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
	openair1/SIMULATION/NR_PHY/dlschsim.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair2/COMMON/platform_constants.h
	openair2/LAYER2/NR_MAC_UE/mac_defs.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2020-01-09 20:30:56 +01:00
matzakos
c134529484 ENDC: Code cleanup and logs rearrangements 2020-01-09 18:08:46 +01:00
Raymond Knopp
74eabdb02e logging removal/modification 2020-01-09 16:37:44 +01:00
Francesco Mani
8d26807648 definition of config request fapi structures in UE and acquisition from rrc of config data (work in progress) 2020-01-09 14:58:42 +01:00
Raymond Knopp
7639d9a1c2 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-08 15:50:50 +01:00
Raymond Knopp
cf4df7266c fix rate-matching receiver and mappings in nr_dlsch_decoding.c and nr_ulsch_decoding.c. Performance with dlschsim and ulschsim seem correct. Code written for all RV_IDX but only rv_idx=0 tested. ulschsim performance seems a bit too good. 2020-01-08 15:48:46 +01:00
Raphael Defosseux
34c9aec59e CI: simplification of the X2 HO scenario. But sill failing!
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-08 14:31:54 +01:00
Florian Kaltenberger
886d742325 transmitting dummy samples even in UL slots for use with rfsimulator 2020-01-07 22:17:11 +01:00
Gabriele Perrone
4d57f1bda8 class name changed from SSH to CiTestObj 2020-01-07 14:43:49 +01:00
Raymond Knopp
d401b50fd3 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-07 13:26:32 +01:00
Raymond Knopp
273c45fdcf RNTI for phy_test in rrc_gNB_reconfig.c. parametrization in dlschsim 2020-01-07 13:25:36 +01:00
Raymond Knopp
c94d7632e0 debugging of nr_dlschsim, rate matching optimization 2020-01-06 23:04:52 +01:00
Francesco Mani
ab3b6c88fa Merge branch 'nr_segmentation_fixes' into NR_RRCConfiguration 2020-01-06 10:59:37 +01:00
Florian Kaltenberger
d27a8f0778 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2020-01-03 22:19:44 +01:00
Florian Kaltenberger
6c30c04eec adding rcc config files to rfsimulator UE for CI 2020-01-03 22:18:37 +01:00
Florian Kaltenberger
f774034039 increasing nb expected files for physim to 13 (for prachsim) 2020-01-03 22:17:53 +01:00
Florian Kaltenberger
5ef27f4c21 adding --rrc_config_path command line option to UE 2020-01-03 21:40:27 +01:00
Francesco Mani
7dbda3a470 a couple of bugfixes in physical simulators 2020-01-03 17:52:18 +01:00
Raymond Knopp
2efa277990 added missing file 2020-01-03 15:10:02 +01:00
Raymond Knopp
603b4f5f10 fill FAPI antenna parameters for unitary simulators 2020-01-03 13:38:49 +01:00
Raymond Knopp
a4d0e5e779 small modification in pucchsim to pass the basic test 2020-01-03 12:53:23 +01:00
Raymond Knopp
7e560fbd95 modifications for nr-uesoftmodem with RRC configuration 2020-01-03 10:36:14 +01:00
Raymond Knopp
303bdc804f testing nr-softmodem with 1 antenna port configuration 2020-01-03 01:37:07 +01:00
Raymond Knopp
c956d0516d added logical antenna port parameter to configuration file (RRC section) 2020-01-03 00:23:29 +01:00
Raymond Knopp
20484b5cd7 NR PDCSH scrambling optimization (factor 10 reduction) 2020-01-02 17:47:30 +01:00
Francesco Mani
ebcbad62d2 Merge branch 'develop-nr' into nr_segmentation_fixes 2020-01-02 11:05:32 +01:00
Raymond Knopp
1a83cc2f3b fixes for full-bandwidth testing in dlsim 2020-01-02 10:10:09 +01:00
Raymond Knopp
0da351e017 added missing file 2020-01-01 21:36:57 +01:00
Raymond Knopp
fae5a3ab9c added default NR Serving Cell Configuration 2020-01-01 21:23:38 +01:00
Raymond Knopp
ad2667fbd5 Testing of NR PDCCH/PDSCH with RRC Configuration. added RRC configuration to NR UE. Updates to UE DCI procedures (moved to MAC) and updates to FAPI interfaces for UE. nr_dlsim is functional, added profiling information for gNB TX. 2020-01-01 21:16:56 +01:00
laurent
c8d28f5254 fix LimeSDR board API, merge develop 2019-12-23 15:38:36 +01:00
Raphael Defosseux
45aa72f2be CI: improvements
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
e88dc61965 CI: some fixes
Signed-off-by: Raphael Defosseux <rapahel.defosseux@openairinterface.org>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
11f4d2ae01 CI: finalizing offline the X2 handover scenario at inria --> to be tested
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
3775404a6b CI: add initial support to do X2 HO at Inria
Signed-off-by: Raphael Defosseux <raphael.defosseux@openairinterface.org>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
1813af8beb CI: fix UL iperf in distributed env
Signed-off-by: Raphael Defosseux <raphael.defosseux@openairinterface.org>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
68dc0d00a1 CI: fix in looping attach / ping / detach
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
45f71211c0 CI: looping on attach/ping/detach sequences
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-12-23 13:49:16 +01:00
Raphael Defosseux
02f16d5530 CI: increasing the repeat count since the 1st try will always fail
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2019-12-23 13:49:16 +01:00
Raymond Knopp
6bf81627e0 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-12-21 06:50:59 +01:00
Raymond Knopp
a712940898 debugging with dlsim 2019-12-21 06:50:20 +01:00
Francesco Mani
6f242bc061 Merge branch 'develop-nr' into NR_RRCConfiguration 2019-12-20 14:31:37 +01:00
Francesco Mani
3a514bd499 bugfix for ghost mixed slot 2019-12-20 10:19:51 +01:00
Raymond Knopp
8911335fc3 Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration 2019-12-20 02:01:39 +01:00
Raymond Knopp
05f68321ec Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration
Conflicts:
	openair1/SCHED_NR/phy_frame_config_nr.c
2019-12-20 02:01:22 +01:00
Raymond Knopp
98e15dc5fa debugging for nr_dlsim 2019-12-20 02:00:05 +01:00
Francesco Mani
9662363db1 allowing no mixed slot and astyle of phy_frame_config_nr.c 2019-12-19 14:39:28 +01:00
Florian Kaltenberger
9f0be015a9 Merge remote-tracking branch 'origin/develop-nr' into 459-pusch-based-ta-updates 2019-12-19 13:33:41 +01:00
Florian Kaltenberger
db6eeb2773 fixing mac pdu generation. to be checked by fraunhofer 2019-12-19 13:32:53 +01:00
WANG Tsu-Han
b2b5148923 adding txdataF offset for gNB switch buffer 2019-12-19 12:06:35 +01:00
Florian Kaltenberger
b1f224d11e should not use LTE UE list in NR MAC as sizes are different and causes segfaults 2019-12-18 21:51:46 +01:00
Francesco Mani
272140cd5d Merge remote-tracking branch 'origin/ru-parallel-beamforming-fix' into NR_RRCConfiguration 2019-12-18 17:27:42 +01:00
Francesco Mani
971821a5bb minor fixes 2019-12-18 16:21:14 +01:00
Raymond Knopp
d831180c7a Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-12-17 19:13:01 +01:00
Raymond Knopp
56c6c3ee42 unitary simulators all compile 2019-12-17 19:12:29 +01:00
Francesco Mani
38eddb5dd7 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-12-17 11:07:05 +01:00
Francesco Mani
91ff8bc15e bugfix for slot select function 2019-12-17 10:02:50 +01:00
Raymond Knopp
6b8c8a3ba5 small update to pbchsim (ssb_pdu pointer to non-pointer in PHY_VARS_gNB) 2019-12-17 09:30:05 +01:00
Francesco Mani
f88dd725b2 Merge branch 'nr_tdd_configuration' into NR_RRCConfiguration 2019-12-17 09:28:04 +01:00
Francesco Mani
32f4c11b96 adapting to this branch some other config files 2019-12-16 16:34:52 +01:00
Cedric Roux
35fda01e86 nr-rlc: fix some compilation warnings 2019-12-16 16:19:23 +01:00
Cedric Roux
9a4d1e81d7 nr-rlc: add function mac_rlc_get_buffer_occupancy_ind
Fix also value passed to buffer_status in mac_rlc_status_ind
to be aligned with 38.321 (instead of 36.321).
2019-12-16 16:17:35 +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
Rakesh
c53a3f3524 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration 2019-12-16 15:52:56 +01:00
Rakesh
4510cd5f87 bug fix 2019-12-16 15:51:09 +01:00
Francesco Mani
972b6b8ec7 mib byte reversal ok 2019-12-16 15:30:10 +01:00
Rakesh
5c2decfc0a Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration 2019-12-16 14:02:00 +01:00
Rakesh
40ecb3f72b first test to replicate to transmmit as same as NR_RRCConfiguration branch 2019-12-16 13:07:08 +01:00
Raymond Knopp
c8e37d6ebc memcpy of ssb_pdu to L1 instead of pointer exchange 2019-12-16 12:48:06 +01:00
Rakesh
9c45661215 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration
resolving merge conflicts
2019-12-16 12:01:36 +01:00
projetstc
ae3a540f40 scope autoscale 2019-12-16 11:37:51 +01:00
Francesco Mani
dfa603c440 segmentation fault and a couple of warnings fixed 2019-12-16 11:06:11 +01:00
Raymond Knopp
52b3fd46b8 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-12-15 22:22:52 +01:00
Raymond Knopp
d63b569e61 check if UL_tti_req is non-null in fapi_nr_l1.c 2019-12-15 22:22:01 +01:00
Raymond Knopp
e30ab2d0c6 Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-ru.c
	executables/nr-softmodem.c
	openair1/PHY/INIT/nr_parms.c
	openair1/PHY/INIT/phy_init.h
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
	openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
	openair1/PHY/NR_UE_TRANSPORT/dci_tools_nr.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR/nr_ru_procedures.c
	openair1/SCHED_NR/phy_procedures_nr_common.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SCHED_NR/sched_nr.h
	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/nr_rrc_defs.h
2019-12-15 22:04:40 +01:00
Rakesh
46431b0701 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration 2019-12-13 22:28:48 +01:00
Francesco Mani
d1dc15f3c0 SSB correctly demodulated at FSW, CRC passes, but payload is wrong 2019-12-13 18:07:03 +01:00
Raymond Knopp
6637415ba3 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-12-13 17:08:12 +01:00
Francesco Mani
ac092841dd some updates on SSB and a couple of fixes on warnings 2019-12-13 17:07:09 +01:00
Raymond Knopp
7580b4b2f5 added simple CCE allocation in MAC scheduler 2019-12-13 07:42:39 +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
Rakesh
b398103be9 Fix for dlulperiodicity 2019-12-11 20:45:44 +01:00
Gabriele Perrone
581e46f1d3 introduced a class object FailRepeatCnt in place of a static counter 2019-12-11 14:28:14 +01:00
Rakesh
088652557d removing unused variable 2019-12-11 14:04:21 +01:00
Rakesh
a4b0c8edd0 Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration
resolving merge conflicts
2019-12-11 13:13:10 +01:00
Rakesh
af471c5c3e reworked as per the new fapi structures 2019-12-11 12:59:38 +01:00
matzakos
b106fb1c21 ENDC LTE-RRC: Add processing of Addition Response information elements, to be used for RRCConnectionReconfiguration 2019-12-10 19:39:47 +01:00
Francesco Mani
decf6ed0e5 pbchsim works again 2019-12-10 14:36:54 +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
matzakos
62fb80e6de ENDC X2AP: Implementation of SgNB Addition Response handler 2019-12-06 19:15:08 +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
Raymond Knopp
ad82602e9a ENDC X2AP: Implementation of SgNB Addition Request ACK 2019-12-06 14:16:43 +01:00
Francesco Mani
b61a80baf1 fix on ru procedures for slot select 2019-12-06 12:48:44 +01:00
Thomas Schlichter
7bdff76ff3 Fix autotest tags for nr_dlsim and polartest 2019-12-06 10:46:51 +01:00
Thomas Schlichter
7e738c2c39 Further fix segmentation fault by also initializing the allocated memory 2019-12-06 10:46:51 +01:00
Guido Casati
030fc5a2f5 Bugfix segmentation fault in dlsim for missing memory allocation 2019-12-06 10:46:51 +01:00
Florian Kaltenberger
d34d269d70 reducing the use of rand() which takes too long 2019-12-06 10:46:51 +01:00
cig
361446fda5 Consolidation of TA updates changes in the noS1 mode:
- merged nr-schedule_ue_spec into nr_schedule_uss_dlsch_phytest
- enabled nr_ue_send_sdu for S1 mode
- increased ta_timer to 100
- restored NR_UPLINK_SLOT to 2 (as it was in develop-nr)
- fixed logic for S1 and noS1 modes
- code cleanup and formatting
2019-12-06 10:46:51 +01:00
Guido Casati
98d2caf59f Added compilation option to skip build for already built libraries:
- the new option -k allows to skip the built of shared libraries, rfsimulator
  basicsimulator and transport protocol libraries
- default compilation remains untouched as is still building all libraries
- this option allows to save a massive amount of time when compiling
  repeatedly for debugging purposes
2019-12-06 10:46:51 +01:00
Guido Casati
cfbe18c9ed Adaptation of MAC TA procedures to the design of handle_dlsch
- introduced new parameter in nr_ue_dl_indication for UL time alignment
- moved TA timer logic one level up so that now is executed every slot
- set timer value to 80 slots to cope with the sl_ahead design
- introduced new TA-related members to gNB MAC instance struct
2019-12-06 10:46:51 +01:00
Guido Casati
a0cd44947e Bugfix uninitialised vars and conflicting types in simulators after merge 2019-12-06 10:46:51 +01:00
Guido Casati
0b873bb620 Time Alignment procedure with time adjustment as per TS 38.213 section 4.2
- UE processing capability 1
- Setting the TA update to be applied after the reception of the TA command
- Durations of N1 and N2 symbols corresponding to PDSCH and PUSCH are
  computed according to sections 5.3 and 6.4 of TS 38.214
- Introduced tables 5.3-1, 5.3-2, 6.4-1, 6.4-2 from TS 38.214
2019-12-06 10:46:51 +01:00
Guido Casati
c6855cb8d2 Maintenance of Uplink Time Alignment. Introduced control on TA transmission and TA update application.
- ta_timer at gNB side to control the transmission of TA to the UE. This is now happening every 20 slots.
- when the timer resets gNB is now transmitting the TA whether it is zero or not.
- introduced struct NR_UL_TIME_ALIGNMENT_t to handle configuration of time alignment related parameters.
- UE PHY RX: is now triggered through a flag when to store the TA command, the frame and slot
  when the application should occur.
- UE PHY TX: when the tx frame and slot match the time alignment configuration, it process the TA command and applies the
  TA update
2019-12-06 10:46:51 +01:00
Ahmed Hussein
5ac8b6f34d TA implementation complete and tested in rfsimulator 2019-12-06 10:46:51 +01:00
Guido Casati
0492f7eb7e Fix TBS condition in to schedule ue spec procedures 2019-12-06 10:46:51 +01:00
Guido Casati
825ae3c06d Integration PHY and MAC procedures for Timing Advance updates. Compilation and run is OK. TA updates need further fixes as not working as expected.
- "nr_process_timing_advance": TA to be applied is commented out, need to be uncommented
- with introduced delay of 50 in rx_rf, TA update should be 34 in MAC CE
  but this does not occur when ta is applied at UE side according to standard
- introduced ULSCH scheduler and NR RX SDU functions
- fixes to logic in UL fill RX indication
- added crc indication in UL RX
- temporary hardcoded UE_id to 0, rnti not considered in the logic
2019-12-06 10:46:51 +01:00
Guido Casati
6ec89bec1f Bugfix: header from NR included in LTE UE PHY procedures 2019-12-06 10:46:51 +01:00
Guido Casati
310efee7f2 Implementation of TA procedures at MAC layer for gNB and UE
- Initial gNB DLSCH and UE spec scheduling implentation
- MAC PDU generation (including header as per TS 38.321)
- MAC PDU processing at UE side with extracion of TA updates
- General code cleanup
- Introduced NR MAC COMMON folder, moved common files here
2019-12-06 10:46:51 +01:00
Guido Casati
f0b7debefc Extraction of common NR MAC data structures from NR_MAC_UE/mac.h and definition of MAC CE struct 2019-12-06 10:46:51 +01:00
Francesco Mani
dd789dc7ba make pbchsim compile again 2019-12-05 18:23:53 +01:00
Rakesh
0b3c92207b Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration
resolving merge conflicts
2019-12-05 12:59:54 +01:00
Raymond Knopp
99e41d9730 DL and UL DCI separation in MAC, initial handling of UL DCI in L1. 2019-12-05 01:51:57 +01:00
Raymond Knopp
094d1f5a31 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration
Conflicts:
	nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
2019-12-04 16:55:16 +01:00
Sakthivel Velumani
5bda11024d Enabling ITTI interactions between RRC and X2AP for the generation of sgb addition request ACK message at the gNB side 2019-12-04 15:30:17 +01:00
Francesco Mani
ab2be445ce ssb offset scs scalling in config.c now 2019-12-04 14:29:12 +01:00
Francesco Mani
598a101860 bugfix (nr-softmodem run again) 2019-12-04 14:06:54 +01:00
Francesco Mani
c6ec207487 adapting config_request to scf nfapi (compiling ok but still not running) 2019-12-04 13:41:13 +01:00
Raymond Knopp
fa7c143b70 nr=softmodem compiles. 2019-12-03 22:32:29 +01:00
Francesco Mani
17c15f5064 bugfix in nr_ru_procedures 2019-12-02 10:10:25 +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
Sakthivel Velumani
2892445095 nr-softmodem compiles (after adding UL DCI) 2019-11-28 18:14:52 +01:00
Sakthivel Velumani
4ff96a45a5 Added UL DCI to gNB MAC 2019-11-28 13:37:30 +01:00
Raymond Knopp
f3a27d762a Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-gnb.c
	openair1/PHY/defs_gNB.h
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR/phy_procedures_nr_common.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair2/COMMON/platform_constants.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	targets/COMMON/openairinterface5g_limits.h
2019-11-28 06:35:31 +01:00
Rakesh
1aea23d35e nr tdd config 2019-11-27 16:31:44 +01:00
Raymond Knopp
ccaf52200c gNB runs with rfsimulator. 2019-11-27 07:54:40 +01:00
Raymond Knopp
d4fe5b504d Added NR FAPI for PDCCH and moved DCI filling to MAC accordingly.
compiles, still needs to be tested gNB alone with rf-simulator / RF bench.
2019-11-26 21:14:46 +01:00
Raymond Knopp
b6246f7717 debugged DCI and PDSCH interfaces based on full RRC configuration
Still need to update PDCCH configuration with NR FAPI specifications
2019-11-21 20:43:00 +01:00
Francesco Mani
053914d502 dynamic allocation also for w vectors at decoding sides 2019-11-20 17:44:43 +01:00
Francesco Mani
94b7762b56 dynamic allocation of e and f vectors 2019-11-20 16:48:48 +01:00
Raymond Knopp
b1573edb7e fixed rnti usage in phytest scheduler 2019-11-20 12:45:49 +01:00
magounak
e8b6932310 initialization of UL_RB in frame parameters 2019-11-20 10:05:36 +01:00
Raymond Knopp
9d5df6c0ac nr-softmodem, nr-uesoftmodem compile 2019-11-20 00:43:09 +01:00
Raymond Knopp
75158a5865 nr_dlsim compiles 2019-11-19 21:44:50 +01:00
Raymond Knopp
bc580bd6be ENDC: Correction at processing Addition request information 2019-11-19 16:45:04 +01:00
Raymond Knopp
96006201b9 ENDC: Minor correction 2019-11-19 15:15:25 +01:00
matzakos
7e1607bcca ENDC X2AP: Small modification at generation of SgNB Addition Request. 2019-11-19 14:22:54 +01:00
Raymond Knopp
50509dfc32 ENDC: Enable transfer and handling of SgNB Addition request elements from X2AP to RRC of gNB. 2019-11-19 14:05:14 +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
Francesco Mani
0b066b52e3 bugfix 2019-11-18 17:23:29 +01:00
Francesco Mani
a51fa4f3a7 changing segments and sch bytes allocation in coding/decoding 2019-11-18 17:13:07 +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
matzakos
266926307d ENDC X2AP: Implementation of handler function for SgNB addition request message 2019-11-07 17:00:03 +01:00
Francesco Mani
0c408e9681 adopting NR values for DLSCH/ULSCH segments 2019-11-05 15:37:06 +01:00
laurent
e8091083b0 restore ue compilation with ocp-softmodem, some RF simulator improvement 2019-11-04 16:11:09 +01:00
Raymond Knopp
930e1fde33 Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-ru.c
	executables/nr-softmodem.c
	nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
	openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
	openair1/SCHED_NR/nr_ru_procedures.c
	openair1/SCHED_NR/phy_procedures_nr_common.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/pbchsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/COMMON/rrc_messages_types.h
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
2019-11-02 01:12:15 +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
matzakos
587f9f63d0 ENDC X2AP: Corrections on the generation of x2_sGNB_AdditionRequest message 2019-10-25 19:20:34 +02:00
matzakos
4e64a34ada ENDC: Basic implementation of x2ap_eNB_generate_ENDC_x2_SgNB_addition_request() 2019-10-25 14:13:49 +02:00
matzakos
cc8be29a8d ENDC: Restore X2AP initial configuration after merge with NR_RRCConfiguration branch 2019-10-21 17:29:21 +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
matzakos
5cfcc415fc Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr-dual-connectivity 2019-10-18 17:01: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
Raymond Knopp
868b673915 removed NUMBER_NR_UE_MAX 2019-10-18 09:00:39 +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
Raymond Knopp
71c0224eff configuration of search spaces fixed. 2019-10-16 23:43:32 +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
Raymond Knopp
cb399c8858 added coreset and search configuration MAC from CellGroupConfig. 2019-10-14 01:44:02 +02:00
Raymond Knopp
0b4da47131 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface4g into NR_RRCConfiguration 2019-10-13 21:34:06 +02:00
Raymond Knopp
b0e97865d5 commit before merge 2019-10-13 21:33:56 +02:00
Raymond Knopp
b273d8ce79 testing on caracal 2019-10-13 21:33:08 +02:00
Raymond Knopp
3433d1b329 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-10-13 11:30:34 +02:00
Raymond Knopp
af9fca14f7 added prototypes to new functions in mac_proto.h 2019-10-13 11:30:01 +02:00
Raymond Knopp
57bc468d41 Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-10-13 11:01:37 +02:00
Raymond Knopp
2b93fddf62 modification in uecap.raw 2019-10-13 11:00:49 +02:00
Raymond Knopp
44d4a705cf Merge branch 'NR_RRCConfiguration' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration 2019-10-13 10:22:34 +02:00
Raymond Knopp
ff508f1d96 added MAC configuration for secondaryCellGroup and addition of UE context in MAC 2019-10-13 10:13:03 +02:00
laurent
708076f6ad documentation, bug in UDP timeout, merge develop 2019-10-11 16:43:50 +02:00
Raymond Knopp
d554707919 Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
Conflicts:
	cmake_targets/CMakeLists.txt
	executables/nr-gnb.c
	nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
	openair1/PHY/INIT/nr_init_ue.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
	openair2/COMMON/rrc_messages_types.h
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/NR_PHY_INTERFACE/NR_IF_Module.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/nr_rrc_defs.h
	openair2/RRC/NR/rrc_gNB.c
2019-10-10 12:29:20 +02:00
matzakos
7916e17666 ENDC: Add X2AP initial configuration and X2AP task in nr-softmodem. Small issue with parsing NRCCPARAMS_DESC from RCconfig_NR_X2() needs to be resolved 2019-10-08 18:48:39 +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
matzakos
2e8b93ef8b ENDC: Reverse the role of eNB and gNB for the ENDC X2 setup procedure. Currently, gNB: slave sending the setup request, eNB:master. 2019-10-03 18:11:58 +02:00
Cedric Roux
0017316554 Merge remote-tracking branch 'origin/develop-nr' into nr-dual-connectivity
Conflicts:
	openair2/RRC/LTE/MESSAGES/asn1_msg.c
2019-10-03 15:18:44 +02:00
Cedric Roux
dd760540ea hacks for NR
- send RRC Connection Reconfiguration with dummy ENDC data by doing:
  telnet localhost 9001
  and press enter when the ENDC UE is connected to the eNB to send it
2019-10-03 15:14:26 +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
Raymond Knopp
db8822a8d8 UE-Capability parsing for NR components. Emulate CG-ConfigInfo generation for phy-test mode. This version is ready for X2 EN-DC integration 2019-09-26 22:17:48 +02:00
laurent
733d1292c6 small fixes 2019-09-25 08:28:02 +02:00
Raymond Knopp
3aec31fddc allocation of null pointers 2019-09-23 16:51:12 +02:00
Raymond Knopp
becbb0a45f added UE reading of configuration files (RRCReconfiguration,RadioBearerConfig) for static NSA without LTE 2019-09-23 15:26:32 +02:00
Raymond Knopp
4b5ad6a9c4 ASN.1 encoding of EN-DC RRC messages functional (run with --phy-test) 2019-09-22 22:28:01 +02:00
Raymond Knopp
287c4c07c6 memory leaks and corrections in ASN.1 encoding of secondaryCellGroupConfig 2019-09-22 18:32:26 +02:00
Raymond Knopp
5d0e54c86b more memory leaks, debugging of ASN.1 encoding of servingCellGroupConfig 2019-09-21 09:01:06 +02:00
Cedric Roux
ff379fe08c get NR UE capabilities (hardcoded bands) 2019-09-20 17:29:54 +02:00
Raymond Knopp
79bd161d41 missing file 2019-09-20 13:43:18 +02:00
Raymond Knopp
25f49631ff more memory leaks 2019-09-20 13:40:46 +02:00
Raymond Knopp
ae726696e4 fixing some memory leaks 2019-09-20 09:25:54 +02:00
Raymond Knopp
686d68a826 initial RRC for NSA 2019-09-20 08:49:04 +02:00
Cedric Roux
6f12c99131 minor: change output directory's name for NR RRC
it was 'NR_Rel15' and now it is 'RRC_NR_Rel15'
2019-09-19 15:44:59 +02:00
laurent
0e9c068aad merge develop, add example config file 2019-09-16 12:40:54 +02:00
Raymond Knopp
b2bdf7eb9a temporary commit 2019-09-11 10:57:31 +02:00
Raymond Knopp
adf76a5f51 Merge remote-tracking branch 'origin/develop-nr' into nr_prach
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/build_oai
	executables/nr-ru.c
	executables/nr-softmodem.c
	nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
	openair1/PHY/TOOLS/Makefile
	openair1/PHY/TOOLS/lte_dfts.c
	openair1/PHY/TOOLS/nr_phy_scope.c
	openair1/SCHED_NR/phy_procedures_nr_common.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/NR_PHY/dlschsim.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/pbchsim.c
	openair1/SIMULATION/NR_PHY/pucchsim.c
	openair1/SIMULATION/NR_PHY/ulschsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/COMMON/rrc_messages_types.h
	openair2/GNB_APP/RRC_nr_paramsvalues.h
	openair2/GNB_APP/gnb_config.c
	openair2/GNB_APP/gnb_paramdef.h
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/NR_PHY_INTERFACE/NR_IF_Module.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
2019-09-05 05:01:26 +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
Raymond Knopp
c4b2eeb2d4 intermediate commit before merge 2019-08-27 09:43:47 +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
Raymond Knopp
6fed116b33 adding nr_common.c 2019-08-06 08:48:01 +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
Raymond Knopp
56d7f6fcaf Merge remote-tracking branch 'origin/develop-nr' into nr_prach
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/build_oai
	executables/nr-ue.c
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_TRANSPORT/nr_dlsch.h
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
	openair1/PHY/defs_gNB.h
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SCHED_NR_UE/defs.h
	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/pucchsim.c
	openair1/SIMULATION/NR_PHY/ulschsim.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2019-07-29 15:48:26 +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
Raymond Knopp
2850def8b7 compilation of all targets ok. 2019-07-28 08:02:49 +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
Raymond Knopp
408422ef7b Merge branch 'nr_prach' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr_prach 2019-07-16 06:28:20 +02:00
Raymond Knopp
90e6a90e53 commit prior to merge 2019-07-16 06:28:10 +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
Francesco Mani
d342e2d12b fix for ssb periodicity 2019-06-28 10:12:00 +02:00
Francesco Mani
62dd59d868 attempt to solve a couple of segmentation faults 2019-06-25 17:28:09 +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
Florian Kaltenberger
bcfa6f2cd4 Merge branch 'nr_ue_prach_procedures' into 'nr_prach'
added PRACH UE Procedures into prachsim

See merge request oai/openairinterface5g!616
2019-06-21 11:11:42 +02:00
Srushti
dcf25f35c7 added PRACH UE Procedures into prachsim 2019-06-21 11:11:42 +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
Raymond Knopp
5eb919e9fe added handling of time resources for CSS scheduling. 2019-06-14 00:02:59 +02:00
laurent
7653b79f31 Merge remote-tracking branch 'origin/develop' into ocpgit/fs6 2019-06-13 10:51:39 +02:00
Raymond Knopp
07ac703fec removal of mobipass 2019-06-05 08:31:44 +02:00
Raymond Knopp
012c2dc82b fixed residual error in dlschsim.c after change of RAN_context_t structure changed. 2019-06-04 18:46:37 +02:00
Raymond Knopp
0cfb6c232d Merge remote-tracking branch 'origin/develop-nr' into nr_prach 2019-06-04 06:19:19 +02:00
Raymond Knopp
cdb38930ac compilation of unitary FFT tests 2019-06-04 06:11:12 +02:00
Raymond Knopp
83bdc96928 nr-softmodem compilation ok 2019-06-03 15:45:00 +02:00
Raymond Knopp
ace24c8919 unitary simulation compilation and simple testing 2019-06-03 15:31:01 +02:00
Raymond Knopp
34a7bdd3bb finishing merge with develop-nr 2019-06-03 15:05:21 +02:00
Raymond Knopp
97cd210514 Merge remote-tracking branch 'origin/develop-nr' into nr_prach
Conflicts:
	cmake_targets/build_oai
	executables/nr-gnb.c
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/defs_gNB.h
	openair1/SCHED_NR/fapi_nr_l1.c
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/RRC/NR/rrc_gNB.c
2019-06-03 14:31:32 +02:00
Raymond Knopp
1f228ee4d1 - reworked configuration file and configuration for gNB (write directly to ASN1 structure from config module instead of passing intermediate structures)
- added prach procedures for gNB with configuration of PRACH L1/L2 parameters
2019-06-02 23:40:57 +02:00
laurent
4bf5f598fb begining functional split 6 2019-06-02 16:59:32 +02:00
Raymond Knopp
a8d8b590c7 added missing files for nr_prach with respect to previous commit. Added nr_prachsim to build_oai. 2019-05-28 13:16:56 +02:00
Raymond Knopp
48c24e5f4d testing successful with 122.88 Ms/s, format A2, NCS 13 2019-05-26 23:05:12 +02:00
Raymond Knopp
ef27c8ce04 initial prach implementation. Splitting of components for RU (FFTs) and L1 (detection). Update of UE to include all formats (for 30 kHz SCS case on initial BWP) 2019-05-26 09:55:54 +02:00
Raymond Knopp
a66c297a84 Merge branch 'develop-nr' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-nr 2019-05-18 12:28:46 +02:00
Raymond Knopp
f71c2e0830 initial commit of gNB prach processing 2019-05-14 11:42:17 +02:00
3478 changed files with 70786 additions and 44814 deletions

0
.gitignore vendored Executable file → Normal file
View File

0
.vscode/launch.json vendored Executable file → Normal file
View File

96
CHANGELOG.md Normal file
View File

@@ -0,0 +1,96 @@
# RELEASE NOTES: #
## [v1.2.1](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.2.1) -> February 2020. ##
* Bug fix for mutex lock for wake-up signal
## [v1.2.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.2.0) -> January 2020. ##
This version adds the following implemented features:
* LTE-M : eNB support for Mode A repetitions
- PUSCH CE - 8 Repetitions
* Improved CDRX implementation for monolithic eNB
* Experimental eMBMS support (now also on eNB side)
* Experimental MCE - Multicast Coordination Entity
* Bug fixes
This version also has an improved code quality:
* Better Test Coverage in Continuous Integration:
- Initial framework to do long-run testing at R2LAB
## [v1.1.1](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.1.1) -> November 2019. ##
- Bug fix in the TDD Fair Round-Robin scheduler
## [v1.1.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.1.0) -> July 2019. ##
This version adds the following implemented features:
* Experimental support of LTE-M
- Single LTE-M UE attachment, legacy-LTE UE attachment is disabled
* X2 interface and handover (also X2-U interface)
- In FDD and TDD
* CU/DU split (F1 interface)
- Tested only in FDD
* CDRX
- Tested only in FDD
* Experimental eMBMS support (only on UE side)
* Experimental multi-RRU support
- Tested only in TDD
This version has an improved code quality:
* Simplification of the Build System
- A single build includes all full-stack simulators, S1/noS1 modes and one HW platform (such as USRP, BladeRF, ...)
* TUN interface is now used as default for the data plane
- for UE, eNB-noS1 and UE-noS1
* Code Cleanup
* Better Static Code Analysis:
- Limited number of errors in cppcheck
- Important Decrease on high Impact errors in CoverityScan
* Better Test Coverage in Continuous Integration:
- TM2, CDRX, IF4.5, F1
- OAI UE is tested in S1 and noS1 modes with USRP board
- Multi-RRU TDD mode
- X2 Handover in FDD mode
## [v1.0.3](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.0.3) -> June 2019. ##
- Bug fix for LimeSuite v19.04.0 API
## [v1.0.2](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.0.2) -> February 2019. ##
- Full OAI support for 3.13.1 UHD
## [v1.0.1](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.0.1) -> February 2019. ##
- Bug fix for the UE L1 simulator.
## [v1.0.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.0.0) -> January 2019. ##
This version first implements the architectural split described in the following picture.
![Block Diagram](./doc/images/oai_lte_enb_func_split_arch.png)
* Only FAPI, nFAPI and IF4.5 interfaces are implemented.
* Repository tree structure prepares future integrations of features such as LTE-M, nbIOT or 5G-NR.
* Preliminary X2 support has been implemented.
* S1-flex has been introduced.
* New tools: config library, telnet server, ...
* A lot of bugfixes and a proper automated Continuous Integration process validates contributions.
Old Releases:
* v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.
* v0.6 -> RRH functionality, UE greatly improved, better TDD support, a lot of bugs fixed.
- WARNING: oaisim in PHY abstraction mode does not work, you need to use v0.5.2 for that.
* v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
* v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB
* v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
* v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
* v0.3 -> Last stable commit on develop branch before the merge of feature-131-new-license. This is the last commit with GPL License
* v0.2 -> Merge of enhancement-10-harmony to include NGFI RRH + New Interface for RF/BBU
* v0.1 -> Last stable commit on develop branch before enhancement-10-harmony

23
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,23 @@
# Contributing to OpenAirInterface #
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.
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.
- 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.
- All merge requests SHALL have `develop` branch as target branch.
## Coding Styles ##
There are described [here](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/guidelines/guidelines-home)
## License ##
By contributing to OpenAirInterface, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.

0
LICENSE Executable file → Normal file
View File

23
NOTICE.md Normal file
View File

@@ -0,0 +1,23 @@
The source code of openairinterface5g is distributed under **OAI Public License V1.1**.
For more details of the license, refer to [LICENSE](LICENSE) file in the same directory.
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/ ##
See on [liblfds website](https://liblfds.org/) the license section.
<pre>
"There is no license. You are free to use this software in any way, for any purpose. Go forth and create wealth!
If however for legal reasons a licence is required, the license of your choice will be granted."
</pre>
## Credits for source code common/utils/collection/queue.h: ##
The Regents of the University of California: BSD 3-Clause Licence.
## Credits for source code common/utils/collection/tree.h: ##
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.

View File

@@ -1,21 +0,0 @@
The source code of openairinterface5g is distributed under OAI Public License V1.0.
For more details of the license, refer to LICENSE file in the same directory.
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/
http://liblfds.org/.
Extract from http://liblfds.org/pages/downloads_and_license.html:
"There is no license. You are free to use this software in any way, for any purpose. Go forth and create wealth!
If however for legal reasons a licence is required, the license of your choice will be granted."
Credits for source code common/utils/collection/queue.h:
The Regents of the University of California: BSD 3-Clause Licence.
Credits for source code common/utils/collection/tree.h:
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.

73
README.md Normal file
View File

@@ -0,0 +1,73 @@
# OpenAirInterface License #
OpenAirInterface is under OpenAirInterface Software Alliance license.
* [OAI License Model](http://www.openairinterface.org/?page_id=101)
* [OAI License v1.1 on our website](http://www.openairinterface.org/?page_id=698)
It is distributed under **OAI Public License V1.1**.
The license information is distributed under [LICENSE](LICENSE) file in the same directory.
Please see [NOTICE](NOTICE.md) file for third party software that is included in the sources.
# Where to Start #
* [The implemented features](./doc/FEATURE_SET.md)
* [How to build](./doc/BUILD.md)
* [How to run the modems](./doc/RUNMODEM.md)
# RAN repository structure #
The OpenAirInterface (OAI) software is composed of the following parts:
<pre>
openairinterface5g
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common : Some common OAI utilities, other tools can be found at openair2/UTILS.
├── doc : Contains an up-to-date feature set list and starting tutorials.
├── executables : Top-level executable source files.
├── LICENSE : License file.
├── maketags : Script to generate emacs tags.
├── nfapi : Contains the NFAPI code. A local Readme file provides more details.
├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
│   ├── PHY
│   ├── SCHED
│   ├── SCHED_NBIOT
│   ├── SCHED_NR
│   ├── SCHED_NR_UE
│   ├── SCHED_UE
│   └── SIMULATION : PHY RF simulation.
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│   ├── COMMON
│   ├── DOCS
│   ├── ENB_APP
│   ├── F1AP
│   ├── GNB_APP
│   ├── LAYER2/RLC/ : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
│   ├── LAYER2/PDCP/PDCP_v10.1.0
│   ├── M2AP
│   ├── MCE_APP
│   ├── NETWORK_DRIVER
│   ├── NR_PHY_INTERFACE
│   ├── NR_UE_PHY_INTERFACE
│   ├── PHY_INTERFACE
│   ├── RRC
│   ├── UTIL
│   └── X2AP
├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│   ├── COMMON
│   ├── DOCS
│   ├── GTPV1-U
│   ├── M3AP
│   ├── MME_APP
│   ├── NAS
│   ├── S1AP
│   ├── SCTP
│   ├── SECU
│   ├── TEST
│   ├── UDP
│   └── UTILS
└── targets : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
</pre>

View File

@@ -1,96 +0,0 @@
OpenAirInterface is under OpenAirInterface Software Alliance license.
├── http://www.openairinterface.org/?page_id=101
├── http://www.openairinterface.org/?page_id=698
It is distributed under OAI Public License V1.1.
The license information is distributed under LICENSE file in the same directory.
Please see NOTICE.txt for third party software that is included in the sources.
The OpenAirInterface (OAI) software is composed of the following parts:
openairinterface5g
├── ci-scripts: Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── cmake_targets: Build utilities to compile (simulation, emulation and real-time platforms), and generated build files
├── common : Some common OAI utilities, other tools can be found at openair2/UTILS
├── doc : Contains an up-to-date feature set list
├── LICENSE
├── maketags : Script to generate emacs tags
├── nfapi : Contains the NFAPI code. A local Readme file provides more details.
├── openair1 : 3GPP LTE Rel-10/12 PHY layer + PHY RF simulation. A local Readme file provides more details.
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation.
├── COMMON
├── DOCS
├── ENB_APP
├── LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
├── LAYER2/PDCP/PDCP_v10.1.0.
├── NETWORK_DRIVER
├── PHY_INTERFACE
├── RRC/LITE
├── UTIL
├── X2AP
├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
├── COMMON
├── DOCS
├── GTPV1-U
├── NAS
├── S1AP
├── SCTP
├── SECU
├── UDP
├── UTILS
└── targets: Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
RELEASE NOTES:
v1.1.1 -> November 2019. Bug fix in the TDD Fair Round-Robin scheduler
v1.1.0 -> July 2019. This version adds the following implemented features:
* Experimental support of LTE-M
- Single LTE-M UE attachment, legacy-LTE UE attachment is disabled
* X2 interface and handover (also X2-U interface)
- In FDD and TDD
* CU/DU split (F1 interface)
- Tested only in FDD
* CDRX
- Tested only in FDD
* Experimental eMBMS support (only on UE side)
* Experimental multi-RRU support
- Tested only in TDD
This version has an improved code quality:
* Simplification of the Build System
- A single build includes all full-stack simulators, S1/noS1 modes and one HW platform (such as USRP, BladeRF, ...)
* TUN interface is now used as default for the data plane
- for UE, eNB-noS1 and UE-noS1
* Code Cleanup
* Better Static Code Analysis:
- Limited number of errors in cppcheck
- Important Decrease on high Impact errors in CoverityScan
* Better Test Coverage in Continuous Integration:
- TM2, CDRX, IF4.5, F1
- OAI UE is tested in S1 and noS1 modes with USRP board
- Multi-RRU TDD mode
- X2 Handover in FDD mode
v1.0.3 -> June 2019: Bug fix for LimeSuite v19.04.0 API
v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD
v1.0.1 -> February 2019: Bug fix for the UE L1 simulator.
v1.0.0 -> January 2019. This version first implements the architectural split described in doc/oai_lte_enb_func_split_arch.png picture.
Only FAPI, nFAPI and IF4.5 interfaces are implemented.
Repository tree structure prepares future integrations of features such as LTE-M, nbIOT or 5G-NR.
Preliminary X2 support has been implemented.
S1-flex has been introduced.
New tools: config library, telnet server, ...
A lot of bugfixes and a proper automated Continuous Integration process validates contributions.
v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.
v0.6 -> RRH functionality, UE greatly improved, better TDD support,
a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not
work, you need to use v0.5.2 for that.
v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB
v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
v0.3 -> Last stable commit on develop branch before the merge of feature-131-new-license. This is the last commit with GPL License
v0.2 -> Merge of enhancement-10-harmony to include NGFI RRH + New Interface for RF/BBU
v0.1 -> Last stable commit on develop branch before enhancement-10-harmony

2
ci-scripts/.gitignore vendored Executable file → Normal file
View File

@@ -5,3 +5,5 @@ iperf_*.*
phones_list.txt
modules_list.txt
test_results*.html
pMain*
__pycache__

8
ci-scripts/Jenkinsfile-gitlab Executable file → Normal file
View File

@@ -55,6 +55,8 @@ pipeline {
"Analysis with cppcheck",
"Test phy-sim",
"Test basic-sim",
"Test L1-sim",
"Test RF-sim",
"Test L2-sim",
"Test-Mono-FDD-Band7",
"Test-Mono-TDD-Band40",
@@ -340,7 +342,11 @@ pipeline {
always {
script {
dir ('archives') {
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nrue_usrp red_hat"
if (fileExists('red_hat')) {
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nr_ue_usrp red_hat"
} else {
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nr_ue_usrp"
}
}
if(fileExists('archives/vm_build_logs.zip')) {
archiveArtifacts artifacts: 'archives/vm_build_logs.zip'

57
ci-scripts/Jenkinsfile-inria-r2lab Executable file → Normal file
View File

@@ -59,6 +59,9 @@ def r2labEPC0IpAddr = r2labBaseIpAddr + r2labEPC0Idx
def r2labUE0Idx = '6'
def r2labUE0 = 'fit0' + r2labUE0Idx
def r2labUE0IpAddr = r2labBaseIpAddr + r2labUE0Idx
def r2labENB1Idx = '16'
def r2labENB1 = 'fit' + r2labENB1Idx
def r2labENB1IpAddr = r2labBaseIpAddr + r2labENB1Idx
pipeline {
agent {
@@ -131,7 +134,7 @@ pipeline {
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.R2LAB_Credentials}", usernameVariable: 'r2labuser', passwordVariable: 'r2labpassword']
]) {
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}"
sh "python3 /home/eurecom/inria-scripts/booking-lease.py --get-leases ${r2labuser} ${r2labpassword} | grep -v nightly"
}
}
}
@@ -139,25 +142,55 @@ pipeline {
stage ("Load Images") {
steps {
script {
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}'"
// Adding a tempo after booking leases
sh "sleep 10"
sh "ssh -t inria_oaici@faraday.inria.fr 'rleases --check'"
sh "ssh -t inria_oaici@faraday.inria.fr 'all-off'"
sh "sleep 10"
echo '\u2705 \u001B[32mLoad Image for one eNB\u001B[0m'
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labENB0Idx} > /dev/null 2>&1'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labENB0Idx}'"
sh "ssh -t inria_oaici@faraday.inria.fr 'uon ${r2labENB0Idx}'"
echo '\u2705 \u001B[32mLoad Image for Python Executor\u001B[0m'
try {
//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 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labPythonExeIdx}'"
} 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'
try {
//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 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labENB0Idx},${r2labENB1Idx}"
} catch (Exception e) {
echo "Why is it wrong?"
}
try {
//sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labENB0Idx},${r2labENB1Idx}'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait ${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}'"
echo '\u2705 \u001B[32mLoad Image for one OAI UE\u001B[0m'
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-enb-ue ${r2labUE0Idx} > /dev/null 2>&1'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labUE0Idx}'"
sh "ssh -t inria_oaici@faraday.inria.fr 'uon ${r2labUE0Idx}'"
sh "sleep 5"
sh "ssh -t inria_oaici@faraday.inria.fr 'uon ${r2labUE0Idx}'"
echo '\u2705 \u001B[32mLoad Image for one EPC\u001B[0m'
sh "ssh -t inria_oaici@faraday.inria.fr 'rload -i oai-ci-cd-u18-lowlatency-epc ${r2labEPC0Idx} > /dev/null 2>&1'"
sh "ssh -t inria_oaici@faraday.inria.fr 'rwait --silent ${r2labEPC0Idx}'"
sh "ssh -t inria_oaici@faraday.inria.fr 'nodes ${r2labUE0Idx},${r2labPythonExeIdx},${r2labEPC0Idx},${r2labENB0Idx} && st'"
sh "ssh -t inria_oaici@faraday.inria.fr 'nodes ${r2labUE0Idx},${r2labPythonExeIdx},${r2labEPC0Idx},${r2labENB0Idx},${r2labENB1Idx} && st'"
}
}
}
@@ -183,7 +216,6 @@ pipeline {
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:m11 172.16.1.102 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:m10 192.168.10.110 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:sxu 172.55.55.102 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:s1u 192.168.248.159 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:sxc 172.55.55.101 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:s5c 172.58.58.102 up\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ifconfig control:p5c 172.58.58.101 up\"'"
@@ -195,9 +227,6 @@ pipeline {
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ip rule add from 12.0.0.0/8 table lte\"'"
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labEPC0} \"echo ${fitpasswd} | sudo -S ip rule add from 12.1.1.0/8 table lte\"'"
// Adding a route on the eNB for the S1U interface
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labENB0} \"echo ${fitpasswd} | sudo -S ip route add 192.168.248.0/24 via ${r2labEPC0IpAddr} dev control\"'"
// For the moment, simple way to route traffic from python executor to any UEs
sh "ssh -t inria_oaici@faraday.inria.fr 'ssh -t -b 192.168.3.100 ${fituser}@${r2labPythonExe} \"echo ${fitpasswd} | sudo -S ip route add 12.1.1.0/24 via ${r2labEPC0IpAddr} dev control\"'"
}
@@ -214,7 +243,7 @@ pipeline {
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
try {
sh "ssh -t -t inria_oaici@faraday.inria.fr 'ssh -t -t -b 192.168.3.100 ${fituser}@${r2labPythonExe} \"cd openairinterface5g/ci-scripts && python3 main.py --mode=TesteNB --ranRepository=https://gitlab.eurecom.fr/oai/openairinterface5g --ranBranch=${ranRepoBranch} --ranCommitID=${GIT_COMMIT_TO_RUN} --ranAllowMerge=false --eNBIPAddress=${r2labENB0IpAddr} --eNBUserName=${fituser} --eNBPassword=${fitpasswd} --eNBSourceCodePath=/home/${fituser}/openairinterface5g --UEIPAddress=${r2labUE0IpAddr} --UEUserName=${fituser} --UEPassword=${fitpasswd} --UESourceCodePath=/home/${fituser}/openairinterface5g --EPCIPAddress=${r2labEPC0IpAddr} --EPCType=OAI-Rel14-CUPS --EPCUserName=${fituser} --EPCPassword=${fitpasswd} --EPCSourceCodePath=/home/${fituser}/openair-cn --ADBIPAddress=${r2labEPC0IpAddr} --ADBUserName=${fituser} --ADBPassword=${fitpasswd} --ADBType=distributed --XMLTestFile=${xmlFile}\"'"
sh "ssh -t -t inria_oaici@faraday.inria.fr 'ssh -t -t -b 192.168.3.100 ${fituser}@${r2labPythonExe} \"cd openairinterface5g/ci-scripts && python3 main.py --mode=TesteNB --ranRepository=https://gitlab.eurecom.fr/oai/openairinterface5g --ranBranch=${ranRepoBranch} --ranCommitID=${GIT_COMMIT_TO_RUN} --ranAllowMerge=false --eNBIPAddress=${r2labENB0IpAddr} --eNBUserName=${fituser} --eNBPassword=${fitpasswd} --eNBSourceCodePath=/home/${fituser}/openairinterface5g --eNB1IPAddress=${r2labENB1IpAddr} --eNB1UserName=${fituser} --eNB1Password=${fitpasswd} --eNB1SourceCodePath=/home/${fituser}/openairinterface5g --UEIPAddress=${r2labUE0IpAddr} --UEUserName=${fituser} --UEPassword=${fitpasswd} --UESourceCodePath=/home/${fituser}/openairinterface5g --EPCIPAddress=${r2labEPC0IpAddr} --EPCType=OAI-Rel14-CUPS --EPCUserName=${fituser} --EPCPassword=${fitpasswd} --EPCSourceCodePath=/home/${fituser}/openair-cn --ADBIPAddress=${r2labEPC0IpAddr} --ADBUserName=${fituser} --ADBPassword=${fitpasswd} --ADBType=distributed --XMLTestFile=${xmlFile}\"'"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false

0
ci-scripts/Jenkinsfile-poll-gNB-UE Executable file → Normal file
View File

4
ci-scripts/Jenkinsfile-tmp-full-ran Executable file → Normal file
View File

@@ -208,12 +208,12 @@ pipeline {
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
]) {
sh "python3 main.py --mode=InitiateHtml --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
sh "python3 main.py --mode=TesteNB --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
sh "python3 main.py --mode=TesteNB --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false

0
ci-scripts/Jenkinsfile-tmp-multi-enb Executable file → Normal file
View File

9
ci-scripts/Jenkinsfile-tmp-ran Executable file → Normal file
View File

@@ -36,6 +36,9 @@ def testStageName = params.pipelineTestStageName
// Name of the phone resource
def ciSmartPhoneResource = params.smartphonesResource
// Name of the phone resource
def ciEpcResource = params.epcResource
// Terminate Status
def termUE = 0
def termENB = 1
@@ -64,7 +67,7 @@ pipeline {
options {
disableConcurrentBuilds()
ansiColor('xterm')
lock (ciSmartPhoneResource)
lock(extra: [[resource: ciEpcResource]], resource: ciSmartPhoneResource)
}
// the following parameter options are commented out so it shows the ones
// that you SHALL have to run the job.
@@ -217,12 +220,12 @@ pipeline {
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
]) {
sh "python3 main.py --mode=InitiateHtml --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false

4
ci-scripts/Jenkinsfile-tmp-ue Executable file → Normal file
View File

@@ -187,12 +187,12 @@ pipeline {
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
]) {
sh "python3 main.py --mode=InitiateHtml --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
sh "python3 main.py --mode=TestUE --UEIPAddress=${params.UE_IPAddress} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
sh "python3 main.py --mode=TestUE --UEIPAddress=${params.UE_IPAddress} --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
} catch (Exception e) {
currentBuild.result = 'FAILURE'
buildStageStatus = false

0
ci-scripts/active_net_interfaces.awk Executable file → Normal file
View File

0
ci-scripts/add_user_to_conf_file.awk Executable file → Normal file
View File

0
ci-scripts/add_user_to_subscriber_list.awk Executable file → Normal file
View File

0
ci-scripts/astyle-options.txt Executable file → Normal file
View File

View File

@@ -62,6 +62,30 @@ then
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted `
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" . > 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"`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FILE`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FILE`
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"`
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,8 +155,25 @@ 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" ]
@@ -144,8 +185,32 @@ do
echo $FULLFILE
echo $FULLFILE >> ./oai_rules_result_list.txt
fi
# Testing if explicit GNU GPL license banner
egrep -i "General Public License" $FULLFILE >> files-w-gnu-gpl-license-banner.txt
# Looking at exotic/suspect banner
IS_BANNER=`egrep -i -c "Copyright|copyleft" $FULLFILE`
if [ $IS_BANNER -ne 0 ]
then
IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FULLFILE`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FULLFILE`
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"`
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
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"

0
ci-scripts/conf_files/cu.band7.tm1.100PRB.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/cu.band7.tm1.25PRB.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/cu.band7.tm1.50PRB.conf Executable file → Normal file
View File

View File

0
ci-scripts/conf_files/du.band7.tm1.25PRB.usrpb210.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/du.band7.tm1.50PRB.usrpb210.conf Executable file → Normal file
View File

View File

0
ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf Executable file → Normal file
View File

View File

View File

@@ -288,7 +288,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
}
);
}

View File

View File

View File

View File

View File

@@ -0,0 +1,279 @@
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe10;
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 = 92; mnc_length = 2; } );
tr_s_preference = "local_mac"
// In seconds
rrc_inactivity_threshold = 30;
////////// 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 = 10;
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 = -25;
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;
//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 */
target_enb_x2_ip_address = (
{ ipv4 = "CI_RCC_IP_ADDR";
ipv6 = "192:168:30::17";
preference = "ipv4";
}
);
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
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
phy_test_mode = 0;
puSch10xSnr = 160;
puCch10xSnr = 160;
}
);
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 = 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 = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_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";
};

View File

View File

View File

View File

339
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf Executable file → Normal file
View File

@@ -21,183 +21,166 @@ gNBs =
////////// Physical parameters:
component_carriers = (
{
node_function = "3GPP_gNODEB";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "TDD";
DL_prefix_type = "NORMAL";
UL_prefix_type = "NORMAL";
eutra_band = 78;
downlink_frequency = 3510000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 106;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
MIB_subCarrierSpacingCommon = 30;
MIB_ssb_SubcarrierOffset = 0;
MIB_dmrs_TypeA_Position = 2;
pdcch_ConfigSIB1 = 0;
SIB1_frequencyOffsetSSB = "khz5";
SIB1_ssb_PeriodicityServingCell = 5;
SIB1_ss_PBCH_BlockPower = -60;
absoluteFrequencySSB = 0;
DL_FreqBandIndicatorNR = 15;
DL_absoluteFrequencyPointA = 15;
DL_offsetToCarrier = 15;
DL_SCS_SubcarrierSpacing = "kHz30";
DL_SCS_SpecificCarrier_k0 = 0;
DL_carrierBandwidth = 15;
DL_locationAndBandwidth = 15;
DL_BWP_SubcarrierSpacing = "kHz30";
DL_BWP_prefix_type = "NORMAL";
UL_FreqBandIndicatorNR = 15;
UL_absoluteFrequencyPointA = 13;
UL_additionalSpectrumEmission = 3;
UL_p_Max = -1;
UL_frequencyShift7p5khz = "TRUE";
UL_offsetToCarrier = 10;
UL_SCS_SubcarrierSpacing = "kHz30";
UL_SCS_SpecificCarrier_k0 = 0;
UL_carrierBandwidth = 15;
UL_locationAndBandwidth = 15;
UL_BWP_SubcarrierSpacing = "kHz30";
UL_BWP_prefix_type = "NORMAL";
UL_timeAlignmentTimerCommon = "infinity";
ServingCellConfigCommon_n_TimingAdvanceOffset = "n0"
ServingCellConfigCommon_ssb_PositionsInBurst_PR = 0x01;
ServingCellConfigCommon_ssb_periodicityServingCell = 10;
ServingCellConfigCommon_dmrs_TypeA_Position = 2;
NIA_SubcarrierSpacing = "kHz15";
ServingCellConfigCommon_ss_PBCH_BlockPower = -60;
referenceSubcarrierSpacing = "kHz15";
dl_UL_TransmissionPeriodicity = "ms0p5";
nrofDownlinkSlots = 10;
nrofDownlinkSymbols = 10;
nrofUplinkSlots = 10;
nrofUplinkSymbols = 10;
rach_totalNumberOfRA_Preambles = 63;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = "oneEighth";
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 4;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 8;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 16;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 24;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 32;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 8;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 4;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 2;
rach_groupBconfigured = "ENABLE";
rach_ra_Msg3SizeGroupA = 56;
rach_messagePowerOffsetGroupB = "dB0";
rach_numberOfRA_PreamblesGroupA = 32;
rach_ra_ContentionResolutionTimer = 8;
rsrp_ThresholdSSB = 64;
rsrp_ThresholdSSB_SUL = 64;
prach_RootSequenceIndex_choice = "l839";
prach_RootSequenceIndex_l839 = 0;
prach_RootSequenceIndex_l139 = 0;
prach_msg1_SubcarrierSpacing = "kHz30";
restrictedSetConfig = "unrestrictedSet";
msg3_transformPrecoding = "ENABLE";
prach_ConfigurationIndex = 10;
prach_msg1_FDM = "one";
prach_msg1_FrequencyStart = 10;
zeroCorrelationZoneConfig = 10;
preambleReceivedTargetPower = -150;
preambleTransMax = 6;
powerRampingStep = "dB0";
ra_ResponseWindow = 8;
groupHoppingEnabledTransformPrecoding = "ENABLE";
msg3_DeltaPreamble = 0;
p0_NominalWithGrant = 0;
PUSCH_TimeDomainResourceAllocation_k2 = 0;
PUSCH_TimeDomainResourceAllocation_mappingType = "typeA";
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength = 0;
pucch_ResourceCommon = 0;
pucch_GroupHopping = "neither";
hoppingId = 0;
p0_nominal = -30;
PDSCH_TimeDomainResourceAllocation_k0 = 2;
PDSCH_TimeDomainResourceAllocation_mappingType = "typeA";
PDSCH_TimeDomainResourceAllocation_startSymbolAndLength = 0;
rateMatchPatternId = 0;
RateMatchPattern_patternType = "bitmaps";
symbolsInResourceBlock = "oneSlot";
periodicityAndPattern = 2;
RateMatchPattern_controlResourceSet = 5;
RateMatchPattern_subcarrierSpacing = "kHz30";
RateMatchPattern_mode = "dynamic";
controlResourceSetZero = 0;
searchSpaceZero = 0;
searchSpaceSIB1 = 10;
searchSpaceOtherSystemInformation = 10;
pagingSearchSpace = 10;
ra_SearchSpace = 10;
PDCCH_common_controlResourceSetId = 5;
PDCCH_common_ControlResourceSet_duration = 2;
PDCCH_cce_REG_MappingType = "nonInterleaved";
PDCCH_reg_BundleSize = 3;
PDCCH_interleaverSize = 3;
PDCCH_shiftIndex = 10;
PDCCH_precoderGranularity = "sameAsREG-bundle";
PDCCH_TCI_StateId = 32;
tci_PresentInDCI = "ENABLE";
PDCCH_DMRS_ScramblingID = 0;
SearchSpaceId = 10;
commonSearchSpaces_controlResourceSetId = 5;
SearchSpace_monitoringSlotPeriodicityAndOffset_choice = "sl1";
SearchSpace_monitoringSlotPeriodicityAndOffset_value = 0;
SearchSpace_duration = 2;
SearchSpace_nrofCandidates_aggregationLevel1 = 0;
SearchSpace_nrofCandidates_aggregationLevel2 = 0;
SearchSpace_nrofCandidates_aggregationLevel4 = 0;
SearchSpace_nrofCandidates_aggregationLevel8 = 0;
SearchSpace_nrofCandidates_aggregationLevel16 = 0;
SearchSpace_searchSpaceType = "common";
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 1;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 1;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 1;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 1;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 1;
Common_dci_Format2_3_monitoringPeriodicity = 1;
Common_dci_Format2_3_nrofPDCCH_Candidates = 1;
ue_Specific__dci_Formats = "formats0-0-And-1-0";
RateMatchPatternLTE_CRS_carrierFreqDL = 6;
RateMatchPatternLTE_CRS_carrierBandwidthDL = 6;
RateMatchPatternLTE_CRS_nrofCRS_Ports = 1;
RateMatchPatternLTE_CRS_v_Shift = 0;
RateMatchPatternLTE_CRS_radioframeAllocationPeriod = 1;
RateMatchPatternLTE_CRS_radioframeAllocationOffset = 0;
RateMatchPatternLTE_CRS_subframeAllocation_choice = "oneFrame";
}
);
srb1_parameters :
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts = 1;
servingCellConfigCommon = (
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
#spCellConfigCommon
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
physCellId = 0;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# downlinkConfigCommon
#frequencyInfoDL
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
absoluteFrequencySSB = 641032;
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=0,L=50 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 13475;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero = 12;
initialDLBWPsearchSpaceZero = 0;
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0 = 0;
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=2,L=3
initialDLBWPstartSymbolAndLength_0 = 40;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
initialDLBWPk0_1 = 0;
initialDLBWPmappingType_1 = 0;
#this is SS=2,L=12
initialDLBWPstartSymbolAndLength_1 = 53;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
initialDLBWPk0_2 = 0;
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
#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 = 13475;
# 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 = -118;
#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 = 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;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#0 = 839, 1 = 139
prach_RootSequenceIndex_PR = 1;
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;
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;
# 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;
nrofDownlinkSymbols = 6;
nrofUplinkSlots = 2;
nrofUplinkSymbols = 4;
ssPBCH_BlockPower = 10;
}
);
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
@@ -254,8 +237,8 @@ RUs = (
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
eNB_instances = [0];
sdr_addrs = "addr=192.168.20.2,second_addr=192.168.10.2,mgmt_addr=192.168.20.2,clock_source=external,time_source=external";
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
clock_src = "external";
}
);
@@ -268,16 +251,6 @@ THREAD_STRUCT = (
}
);
NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";
};
log_config :
{
global_log_level ="info";

0
ci-scripts/conf_files/lte-fdd-basic-sim.conf Executable file → Normal file
View File

View File

@@ -0,0 +1,418 @@
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;
//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 */
////////// 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=32;
data_mcs=14;
mch_scheduling_period = 0; #rf8(0)
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 = 1; #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";
};

0
ci-scripts/conf_files/lte-tdd-basic-sim.conf Executable file → Normal file
View File

View File

View File

View File

View File

View File

View File

View File

View File

0
ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/rru.band38.tm1.master.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/rru.band38.tm1.slave.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/rru.fdd.band7.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/rru.tdd.band40.conf Executable file → Normal file
View File

0
ci-scripts/conf_files/ue.nfapi.conf Executable file → Normal file
View File

71
ci-scripts/constants.py Normal file
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
# */
#---------------------------------------------------------------------
# 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_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

5
ci-scripts/cppcheck_suppressions.list Executable file → Normal file
View File

@@ -76,6 +76,11 @@ 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
//
//*****************************************************************************
//

0
ci-scripts/doc/ci_dev_home.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_build.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_check_build.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_create.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_destroy.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_env.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_main_scripts.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_sources.md Executable file → Normal file
View File

0
ci-scripts/doc/vm_based_simulator_test.md Executable file → Normal file
View File

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

@@ -0,0 +1,400 @@
#/*
# * 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 = ''
#-----------------------------------------------------------
# Setter and Getters on Public Members
#-----------------------------------------------------------
def SetIPAddress(self, ipaddress):
self.IPAddress = ipaddress
def GetIPAddress(self):
return self.IPAddress
def SetUserName(self, username):
self.UserName = username
def GetUserName(self):
return self.UserName
def SetPassword(self, password):
self.Password = password
def GetPassword(self):
return self.Password
def SetSourceCodePath(self, sourcecodepath):
self.SourceCodePath = sourcecodepath
def GetSourceCodePath(self):
return self.SourceCodePath
def SetType(self, kind):
self.Type = kind
def GetType(self):
return self.Type
def SetHtmlObj(self, obj):
self.htmlObj = obj
def SetTestCase_id(self, idx):
self.testCase_id = idx
#-----------------------------------------------------------
# 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-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-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 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-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)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never hss | grep -v grep', '\$', 5)
if re.match('OAI-Rel14-CUPS', 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)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never mme | grep -v grep', '\$', 5)
if 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-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-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', 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-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', 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', 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', 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)')

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

@@ -0,0 +1,479 @@
#/*
# * 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.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 SethtmlUEFailureMsg(self,huefa):
self.htmlUEFailureMsg = huefa
def GethtmlUEFailureMsg(self):
return self.htmlUEFailureMsg
def SetHmleNBFailureMsg(self, msg):
self.htmleNBFailureMsg = msg
def Setdesc(self, dsc):
self.desc = dsc
def SetstartTime(self, sttime):
self.startTime = sttime
def SettestCase_id(self, tcid):
self.testCase_id = tcid
def GettestCase_id(self):
return self.testCase_id
def SetranRepository(self, repository):
self.ranRepository = repository
def SetranAllowMerge(self, merge):
self.ranAllowMerge = merge
def SetranBranch(self, branch):
self.ranBranch = branch
def SetranCommitID(self, commitid):
self.ranCommitID = commitid
def SetranTargetBranch(self, tbranch):
self.ranTargetBranch = tbranch
def SethtmlUEConnected(self, nbUEs):
if nbUEs > 0:
self.htmlUEConnected = nbUEs
else:
self.htmlUEConnected = 1
def SethtmlNb_Smartphones(self, nbUEs):
self.htmlNb_Smartphones = nbUEs
def SethtmlNb_CATM_Modules(self, nbUEs):
self.htmlNb_CATM_Modules = nbUEs
def SetnbTestXMLfiles(self, nb):
self.nbTestXMLfiles = nb
def GetnbTestXMLfiles(self):
return self.nbTestXMLfiles
def SettestXMLfiles(self, xmlFile):
self.testXMLfiles.append(xmlFile)
def SethtmlTabRefs(self, tabRef):
self.htmlTabRefs.append(tabRef)
def SethtmlTabNames(self, tabName):
self.htmlTabNames.append(tabName)
def SethtmlTabIcons(self, tabIcon):
self.htmlTabIcons.append(tabIcon)
def SetOsVersion(self, version, idx):
self.OsVersion[idx] = version
def SetKernelVersion(self, version, idx):
self.KernelVersion[idx] = version
def SetUhdVersion(self, version, idx):
self.UhdVersion[idx] = version
def SetUsrpBoard(self, version, idx):
self.UsrpBoard[idx] = version
def SetCpuNb(self, nb, idx):
self.CpuNb[idx] = nb
def SetCpuModel(self, model, idx):
self.CpuModel[idx] = model
def SetCpuMHz(self, freq, idx):
self.CpuMHz[idx] = freq
#-----------------------------------------------------------
# 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)):
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:
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:
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('eNB') + ' 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()

3708
ci-scripts/main.py Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -182,11 +182,11 @@ function variant__v2__basic_sim {
}
function variant__v3__phy_sim {
NB_PATTERN_FILES=12
NB_PATTERN_FILES=13
BUILD_OPTIONS="--phy_simulators"
VM_MEMORY=8192
VM_DISK=20
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510* 015111\" -q -np -b"
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510* 015111 015112\" -q -np -b"
}
function variant__v4__cppcheck {

1051
ci-scripts/ran.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -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
@@ -509,7 +580,7 @@ function report_build {
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
summary_table_header "OAI Build eNB -- USRP option" ./archives/enb_usrp
summary_table_header "OAI Build: 4G LTE eNB -- USRP option" ./archives/enb_usrp
summary_table_row "LTE SoftModem - Release 15" ./archives/enb_usrp/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_row1.html
summary_table_row "Coding - Release 15" ./archives/enb_usrp/coding.Rel15.txt "Built target coding" ./enb_usrp_row2.html
summary_table_row "OAI USRP device if - Release 15" ./archives/enb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
@@ -521,7 +592,7 @@ function report_build {
summary_table_row "TCP Bridge - Release 15" ./archives/enb_usrp/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_usrp_row9.html
summary_table_footer
summary_table_header "OAI Build basic simulator option" ./archives/basic_sim
summary_table_header "OAI Build: 4G LTE basic simulator option" ./archives/basic_sim
summary_table_row "LTE SoftModem - Release 15" ./archives/basic_sim/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./basic_sim_row1.html
summary_table_row "LTE UE SoftModem - Release 15" ./archives/basic_sim/lte-uesoftmodem.Rel15.txt "Built target lte-uesoftmodem" ./basic_sim_row2.htm
summary_table_row "Coding - Release 15" ./archives/basic_sim/coding.Rel15.txt "Built target coding" ./basic_sim_row3.html
@@ -537,7 +608,7 @@ function report_build {
summary_table_row "NVRAM - Release 15" ./archives/basic_sim/nvram.Rel15.txt "Built target nvram" ./basic_sim_row13.html
summary_table_footer
summary_table_header "OAI Build Physical simulators option" ./archives/phy_sim
summary_table_header "OAI Build: 4G LTE / 5G NR Physical simulators option" ./archives/phy_sim
summary_table_row "LTE DL Simulator - Release 15" ./archives/phy_sim/dlsim.Rel15.txt "Built target dlsim" ./phy_sim_row1.html
summary_table_row "LTE UL Simulator - Release 15" ./archives/phy_sim/ulsim.Rel15.txt "Built target ulsim" ./phy_sim_row2.html
summary_table_row "Coding - Release 15" ./archives/phy_sim/coding.Rel15.txt "Built target coding" ./phy_sim_row3.html
@@ -581,7 +652,7 @@ function report_build {
if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
then
summary_table_header "OAI Build gNB -- USRP option" ./archives/gnb_usrp
summary_table_header "OAI Build: 5G NR gNB -- USRP option" ./archives/gnb_usrp
summary_table_row "5G NR SoftModem - Release 15" ./archives/gnb_usrp/nr-softmodem.Rel15.txt "Built target nr-softmodem" ./gnb_usrp_row1.html
summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
@@ -592,20 +663,20 @@ function report_build {
summary_table_footer
fi
if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
if [ -f archives/nr_ue_usrp/nr-uesoftmodem.Rel15.txt ]
then
summary_table_header "OAI Build 5G NR UE -- USRP option" ./archives/nrue_usrp
summary_table_row "5G NR UE SoftModem - Release 15" ./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt "Built target nr-uesoftmodem" ./nrue_usrp_row1.html
summary_table_row "Coding - Release 15" ./archives/nrue_usrp/coding.Rel15.txt "Built target coding" ./nrue_usrp_row2.html
summary_table_row "OAI USRP device if - Release 15" ./archives/nrue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nrue_usrp_row3.html
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/nrue_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./nrue_usrp_row4.html
summary_table_row "NASMESH - Release 15" ./archives/nrue_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./nrue_usrp_row5.html
summary_table_row "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row6.html
summary_table_row "RB Tool - Release 15" ./archives/nrue_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./nrue_usrp_row7.html
summary_table_header "OAI Build: 5G NR UE -- USRP option" ./archives/nr_ue_usrp
summary_table_row "5G NR UE SoftModem - Release 15" ./archives/nr_ue_usrp/nr-uesoftmodem.Rel15.txt "Built target nr-uesoftmodem" ./nr_ue_usrp_row1.html
summary_table_row "Coding - Release 15" ./archives/nr_ue_usrp/coding.Rel15.txt "Built target coding" ./nr_ue_usrp_row2.html
summary_table_row "OAI USRP device if - Release 15" ./archives/nr_ue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nr_ue_usrp_row3.html
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/nr_ue_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./nr_ue_usrp_row4.html
summary_table_row "NASMESH - Release 15" ./archives/nr_ue_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./nr_ue_usrp_row5.html
summary_table_row "Parameters Lib Config - Release 15" ./archives/nr_ue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nr_ue_usrp_row6.html
summary_table_row "RB Tool - Release 15" ./archives/nr_ue_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./nr_ue_usrp_row7.html
summary_table_footer
fi
summary_table_header "OAI Build eNB -- ETHERNET transport option" ./archives/enb_eth
summary_table_header "OAI Build: 4G LTE eNB -- ETHERNET transport option" ./archives/enb_eth
summary_table_row "LTE SoftModem - Release 15" ./archives/enb_eth/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_eth_row1.html
summary_table_row "Coding - Release 15" ./archives/enb_eth/coding.Rel15.txt "Built target coding" ./enb_eth_row2.html
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
@@ -614,7 +685,7 @@ function report_build {
summary_table_row "TCP OAI Bridge - Release 15" ./archives/enb_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_eth_row6.html
summary_table_footer
summary_table_header "OAI Build UE -- ETHERNET transport option" ./archives/ue_eth
summary_table_header "OAI Build: 4G LTE UE -- ETHERNET transport option" ./archives/ue_eth
summary_table_row "LTE UE SoftModem - Release 15" ./archives/ue_eth/lte-uesoftmodem.Rel15.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
summary_table_row "Coding - Release 15" ./archives/ue_eth/coding.Rel15.txt "Built target coding" ./ue_eth_row2.html
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/ue_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
@@ -631,7 +702,7 @@ function report_build {
then
echo " <h2>Red Hat Enterprise Linux Server release 7.6) -- Summary</h2>" >> ./build_results.html
summary_table_header "Red Hat -- OAI Build eNB -- USRP option" ./archives/red_hat
summary_table_header "OAI Build: 4G LTE eNB -- USRP option (RHEL)" ./archives/red_hat
summary_table_row "LTE SoftModem - Release 15" ./archives/red_hat/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
summary_table_row "Coding - Release 15" ./archives/red_hat/coding.Rel15.txt "Built target coding" ./enb_usrp_rh_row2.html
summary_table_row "OAI USRP device if - Release 15" ./archives/red_hat/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
@@ -671,9 +742,9 @@ function report_build {
cat $DETAILS_TABLE >> ./build_results.html
done
fi
if [ -f ./nrue_usrp_row1.html ] || [ -f ./nrue_usrp_row2.html ] || [ -f ./nrue_usrp_row3.html ] || [ -f ./nrue_usrp_row4.html ]
if [ -f ./nr_ue_usrp_row1.html ] || [ -f ./nr_ue_usrp_row2.html ] || [ -f ./nr_ue_usrp_row3.html ] || [ -f ./nr_ue_usrp_row4.html ]
then
for DETAILS_TABLE in `ls ./nrue_usrp_row*.html`
for DETAILS_TABLE in `ls ./nr_ue_usrp_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done

View File

@@ -112,7 +112,7 @@ function analyzeIperfFiles {
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
fi
else
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "bits/sec" | sed -e "s#^.*Bytes *##" -e "s#sec.*#sec#"`
if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
then
EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Kbits/sec.*##"`
@@ -136,9 +136,9 @@ function analyzeIperfFiles {
else
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
fi
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "bits/sec" | sed -e "s#^.*Bytes *##" -e "s#sec.*#sec#"`
JITTER=`tail -n3 $IPERF_CASE | egrep "bits/sec" | sed -e "s#^.*bits/sec *##" -e "s#ms.*#ms#"`
PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "bits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
fi
echo " <td>" >> ./test_simulator_results.html
echo " <pre>" >> ./test_simulator_results.html
@@ -253,7 +253,7 @@ function report_test {
ARCHIVES_LOC=archives/basic_sim/test
if [ -d $ARCHIVES_LOC ]
then
echo " <h3>Basic Simulator Check</h3>" >> ./test_simulator_results.html
echo " <h3>4G LTE Basic Simulator Check</h3>" >> ./test_simulator_results.html
if [ -f $ARCHIVES_LOC/test_final_status.log ]
then
@@ -373,7 +373,7 @@ function report_test {
if [ -e $JENKINS_WKSP/flexran/flexran_build_complete.txt ]
then
echo " <h3>Basic Simulator + FlexRan Controller Check</h3>" >> ./test_simulator_results.html
echo " <h3>4G LTE Basic Simulator + FlexRan Controller Check</h3>" >> ./test_simulator_results.html
echo " <div class=\"alert alert-success\">" >> ./test_simulator_results.html
echo " <strong>TEST was SUCCESSFUL <span class=\"glyphicon glyphicon-ok-circle\"></span></strong>" >> ./test_simulator_results.html
echo " </div>" >> ./test_simulator_results.html
@@ -403,11 +403,11 @@ function report_test {
ARCHIVES_LOC=archives/rf_sim/test
if [ -d $ARCHIVES_LOC ]
then
echo " <h3>5G NR RF Simulator Check</h3>" >> ./test_simulator_results.html
echo " <h3>4G LTE RF Simulator Check</h3>" >> ./test_simulator_results.html
if [ -f $ARCHIVES_LOC/test_final_status.log ]
then
if [ `grep -c TEST_OK $ARCHIVES_LOC/test_final_status.log` -eq 1 ]
if [ `egrep -c "LTE: TEST_OK" $ARCHIVES_LOC/test_final_status.log` -eq 1 ]
then
echo " <div class=\"alert alert-success\">" >> ./test_simulator_results.html
echo " <strong>TEST was SUCCESSFUL <span class=\"glyphicon glyphicon-ok-circle\"></span></strong>" >> ./test_simulator_results.html
@@ -423,8 +423,228 @@ function report_test {
echo " </div>" >> ./test_simulator_results.html
fi
echo " <button data-toggle=\"collapse\" data-target=\"#oai-rf-sim-test-details\">More details on 5G RF Simulator test results</button>" >> ./test_simulator_results.html
echo " <div id=\"oai-rf-sim-test-details\" class=\"collapse\">" >> ./test_simulator_results.html
echo " <button data-toggle=\"collapse\" data-target=\"#oai-lte-rf-sim-test-details\">More details on 4G LTE RF Simulator test results</button>" >> ./test_simulator_results.html
echo " <div id=\"oai-lte-rf-sim-test-details\" class=\"collapse\">" >> ./test_simulator_results.html
echo " <table border = \"1\">" >> ./test_simulator_results.html
echo " <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
echo " <th>Log File Name</th>" >> ./test_simulator_results.html
echo " <th>Command</th>" >> ./test_simulator_results.html
echo " <th>Status</th>" >> ./test_simulator_results.html
echo " <th>Statistics</th>" >> ./test_simulator_results.html
echo " </tr>" >> ./test_simulator_results.html
EPC_CONFIGS=("wS1 noS1")
TRANS_MODES=("fdd")
BW_CASES=(05 10)
for CN_CONFIG in ${EPC_CONFIGS[@]}
do
for TMODE in ${TRANS_MODES[@]}
do
for BW in ${BW_CASES[@]}
do
echo " <tr bgcolor = \"#8FBC8F\" >" >> ./test_simulator_results.html
if [[ $CN_CONFIG =~ .*wS1.* ]]
then
echo " <td align = \"center\" colspan = 4 >Test with EPC (aka withS1): ${TMODE} -- ${BW}MHz </td>" >> ./test_simulator_results.html
else
echo " <td align = \"center\" colspan = 4 >Test without EPC (aka noS1): ${TMODE} -- ${BW}MHz </td>" >> ./test_simulator_results.html
fi
echo " </tr>" >> ./test_simulator_results.html
ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_${CN_CONFIG}_enb.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`
if [[ $CN_CONFIG =~ .*noS1.* ]]
then
NB_ENB_TUNNEL_UP=`egrep -c "Interface oaitun_enb1 successfully configured" $ENB_LOG`
fi
NB_UE_GOT_SYNC=`egrep -c "rfsimulator: Success" $UE_LOG`
NB_ENB_SYNCED_WITH_UE=`egrep -c "Generating RRCConnectionReconfigurationComplete" $UE_LOG`
if [[ $CN_CONFIG =~ .*noS1.* ]]
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`
fi
if [ $NB_ENB_GOT_SYNC -gt 0 ] && [ $NB_UE_GOT_SYNC -gt 0 ] && [ $NB_ENB_SYNCED_WITH_UE -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 [[ $CN_CONFIG =~ .*noS1.* ]]
then
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
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
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
done
done
# MBMS 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 MBMS 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_mbms.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 ]
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
echo " <h3>5G NR RF Simulator Check</h3>" >> ./test_simulator_results.html
if [ -f $ARCHIVES_LOC/test_final_status.log ]
then
if [ `egrep -c "5G-NR: TEST_OK" $ARCHIVES_LOC/test_final_status.log` -eq 1 ]
then
echo " <div class=\"alert alert-success\">" >> ./test_simulator_results.html
echo " <strong>TEST was SUCCESSFUL <span class=\"glyphicon glyphicon-ok-circle\"></span></strong>" >> ./test_simulator_results.html
echo " </div>" >> ./test_simulator_results.html
else
echo " <div class=\"alert alert-danger\">" >> ./test_simulator_results.html
echo " <strong>TEST was a FAILURE! <span class=\"glyphicon glyphicon-ban-circle\"></span></strong>" >> ./test_simulator_results.html
echo " </div>" >> ./test_simulator_results.html
fi
else
echo " <div class=\"alert alert-danger\">" >> ./test_simulator_results.html
echo " <strong>COULD NOT DETERMINE TEST FINAL STATUS! <span class=\"glyphicon glyphicon-ban-circle\"></span></strong>" >> ./test_simulator_results.html
echo " </div>" >> ./test_simulator_results.html
fi
echo " <button data-toggle=\"collapse\" data-target=\"#oai-nr-rf-sim-test-details\">More details on 5G NR RF Simulator test results</button>" >> ./test_simulator_results.html
echo " <div id=\"oai-nr-rf-sim-test-details\" class=\"collapse\">" >> ./test_simulator_results.html
echo " <table border = \"1\">" >> ./test_simulator_results.html
echo " <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
echo " <th>Log File Name</th>" >> ./test_simulator_results.html
@@ -510,8 +730,8 @@ function report_test {
IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_iperf_dl*client*txt 2> /dev/null`
analyzeIperfFiles
#IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_iperf_ul*client*txt 2> /dev/null`
#analyzeIperfFiles
IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}prb_${CN_CONFIG}_iperf_ul*client*txt 2> /dev/null`
analyzeIperfFiles
done
done
done
@@ -523,7 +743,7 @@ function report_test {
ARCHIVES_LOC=archives/l2_sim/test
if [ -d $ARCHIVES_LOC ]
then
echo " <h3>L2-NFAPI Simulator Check</h3>" >> ./test_simulator_results.html
echo " <h3>4G LTE L2-NFAPI Simulator Check</h3>" >> ./test_simulator_results.html
if [ -f $ARCHIVES_LOC/test_final_status.log ]
then

Binary file not shown.

Binary file not shown.

View File

@@ -169,6 +169,14 @@ function get_ue_ip_addr {
rm $1
}
function get_ue_mbms_ip_addr {
local LOC_IF_ID=$3
echo "ifconfig oaitun_uem${LOC_IF_ID} | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $1
UE_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
echo "Test UE${LOC_IF_ID} MBMS IP Address is : $UE_IP_ADDR"
rm $1
}
function get_enb_noS1_ip_addr {
echo "ifconfig oaitun_enb1 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $1
ENB_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
@@ -176,6 +184,13 @@ function get_enb_noS1_ip_addr {
rm $1
}
function get_enb_mbms_noS1_ip_addr {
echo "ifconfig oaitun_enm1 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $1
ENB_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
echo "Test eNB MBMS IP Address is : $ENB_IP_ADDR"
rm $1
}
function ping_ue_ip_addr {
local LOC_FG_OR_BG=$5
echo "echo \"COMMAND IS: ping -c 20 $3\" > $4" > $1
@@ -327,38 +342,22 @@ function check_iperf {
local FILE_COMPLETE=`egrep -c "Server Report" ${LOC_BASE_LOG}_client.txt`
if [ $FILE_COMPLETE -eq 0 ]
then
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_SUFFIX="K"
else
local BW_SUFFIX="M"
fi
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*${BW_SUFFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*${BW_SUFFIX}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
local EFFECTIVE_BANDWIDTH=`tail -n3 ${LOC_BASE_LOG}_client.txt | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
if [ `egrep -c "Mbits/sec" ${LOC_BASE_LOG}_client.txt` -ne 0 ]
then
local EFFECTIVE_BANDWIDTH=`tail -n3 ${LOC_BASE_LOG}_client.txt | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
local BW_PREFIX="M"
fi
if [ `egrep -c "Kbits/sec" ${LOC_BASE_LOG}_client.txt` -ne 0 ]
then
local EFFECTIVE_BANDWIDTH=`tail -n3 ${LOC_BASE_LOG}_client.txt | egrep "Kbits/sec" | sed -e "s#^.*KBytes *##" -e "s#sec.*#sec#"`
local BW_PREFIX="K"
fi
if [ $LOC_IS_DL -eq 1 ] && [ $LOC_IS_BASIC_SIM -eq 1 ]
then
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*Mbits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*Mbits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_TWO}.*Mbits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_THREE}.*Mbits.* ]]
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*${BW_PREFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*${BW_PREFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_TWO}.*${BW_PREFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_THREE}.*${BW_PREFIX}bits.* ]]
then
echo "got requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
else
@@ -366,7 +365,7 @@ function check_iperf {
IPERF_STATUS=-1
fi
else
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*Mbits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*Mbits.* ]]
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*${BW_PREFIX}bits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*${BW_PREFIX}bits.* ]]
then
if [ $LOC_IS_DL -eq 1 ]
then
@@ -375,7 +374,7 @@ function check_iperf {
echo "got requested UL bandwidth: $EFFECTIVE_BANDWIDTH"
fi
else
echo "not basic-sim got LESS than requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
echo "got LESS than requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
IPERF_STATUS=-1
fi
fi
@@ -588,8 +587,11 @@ function start_epc {
echo "############################################################"
echo "echo \"cd /opt/hss_sim0609\"" > $LOC_EPC_VM_CMDS
echo "cd /opt/hss_sim0609" >> $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 "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
echo "echo \"cd /opt/ltebox/tools/\"" >> $LOC_EPC_VM_CMDS
echo "cd /opt/ltebox/tools/" >> $LOC_EPC_VM_CMDS
@@ -845,9 +847,9 @@ function start_l2_sim_ue {
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread $LOC_NB_UES --nokrnmod 1 --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread 1 --nokrnmod 1 --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
else
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread $LOC_NB_UES --nokrnmod 1 --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread 1 --nokrnmod 1 --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
fi
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
echo "cat ./my-lte-softmodem-run.sh" >> $1
@@ -880,8 +882,9 @@ function start_l2_sim_ue {
else
echo "L2-SIM UE is sync'ed w/ eNB"
fi
local max_interfaces_to_check=1
if [ $LOC_S1_CONFIGURATION -eq 0 ]; then max_interfaces_to_check=$LOC_NB_UES; fi
local max_interfaces_to_check=$LOC_NB_UES
#local max_interfaces_to_check=1
#if [ $LOC_S1_CONFIGURATION -eq 0 ]; then max_interfaces_to_check=$LOC_NB_UES; fi
local j="1"
while [ $j -le $max_interfaces_to_check ]
do
@@ -957,9 +960,9 @@ function start_rf_sim_enb {
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor --noS1 --eNBs.[0].rrc_inactivity_threshold 0\" > ./my-lte-softmodem-run.sh " >> $1
else
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor \" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor --eNBs.[0].rrc_inactivity_threshold 0 --eNBs.[0].plmn_list.[0].mnc 93\" > ./my-lte-softmodem-run.sh " >> $1
fi
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
echo "cat ./my-lte-softmodem-run.sh" >> $1
@@ -1015,6 +1018,31 @@ function start_rf_sim_enb {
else
echo "RF-SIM eNB oaitun_enb1 is UP and CONFIGURED"
fi
if [[ $LOC_CONF_FILE =~ .*mbms.* ]]
then
echo "ifconfig oaitun_enm1 | egrep -c \"inet addr\"" > $1
# Checking oaitun_enm1 interface has now an IP address
i="0"
while [ $i -lt 10 ]
do
CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1`
if [ $CONNECTED -eq 1 ]
then
i="100"
else
i=$[$i+1]
sleep 5
fi
done
rm $1
if [ $i -lt 50 ]
then
ENB_SYNC=0
echo "RF-SIM eNB oaitun_enm1 is DOWN or NOT CONFIGURED"
else
echo "RF-SIM eNB oaitun_enm1 is UP and CONFIGURED"
fi
fi
fi
sleep 10
}
@@ -1027,6 +1055,7 @@ function start_rf_sim_ue {
local LOC_FREQUENCY=$6
# 1 is with S1 and 0 without S1 aka noS1
local LOC_S1_CONFIGURATION=$7
local LOC_MBMS_CONFIGURATION=$8
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_ENB_VM_IP_ADDR}\"" >> $1
@@ -1036,9 +1065,9 @@ function start_rf_sim_ue {
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
else
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
fi
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
echo "cat ./my-lte-softmodem-run.sh" >> $1
@@ -1093,6 +1122,31 @@ function start_rf_sim_ue {
else
echo "RF-SIM UE oaitun_ue1 is UP and CONFIGURED"
fi
if [ $LOC_MBMS_CONFIGURATION -eq 1 ]
then
# Checking oaitun_uem1 interface has now an IP address
i="0"
echo "ifconfig oaitun_uem1 | egrep -c \"inet addr\"" > $1
while [ $i -lt 10 ]
do
sleep 5
CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
if [ $CONNECTED -eq 1 ]
then
i="100"
else
i=$[$i+1]
fi
done
rm $1
if [ $i -lt 50 ]
then
UE_SYNC=0
echo "RF-SIM UE oaitun_uem1 is DOWN or NOT CONFIGURED"
else
echo "RF-SIM UE oaitun_uem1 is UP and CONFIGURED"
fi
fi
sleep 10
}
@@ -1119,7 +1173,7 @@ function start_rf_sim_gnb {
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $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\" > ./my-nr-softmodem-run.sh " >> $1
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
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1194,7 +1248,7 @@ function start_rf_sim_nr_ue {
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 --numerology 1 -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-nr-softmodem-run.sh " >> $1
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
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1205,7 +1259,7 @@ function start_rf_sim_nr_ue {
rm $1
local i="0"
echo "egrep -c \"rfsimulator: Success\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
echo "egrep -c \"Initial sync: pbch decoded sucessfully\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
while [ $i -lt 10 ]
do
sleep 5
@@ -1668,7 +1722,7 @@ function run_test_on_vm {
fi
fi
if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-ru-sim.* ]]
if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-rf-sim.* ]]
then
PING_STATUS=0
IPERF_STATUS=0
@@ -1686,13 +1740,12 @@ function run_test_on_vm {
install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
fi
# withS1 configuration is not working
#EPC_CONFIGS=("wS1" "noS1")
#TRANS_MODES=("fdd" "tdd")
#BW_CASES=(05 10 20)
EPC_CONFIGS=("noS1" "wS1")
EPC_CONFIGS=("wS1" "noS1")
TRANS_MODES=("fdd")
BW_CASES=(05)
BW_CASES=(05 10)
for CN_CONFIG in ${EPC_CONFIGS[@]}
do
if [[ $CN_CONFIG =~ .*wS1.* ]]
@@ -1754,7 +1807,7 @@ function run_test_on_vm {
echo "${CN_CONFIG} : Starting the UE"
echo "############################################################"
CURRENT_UE_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_ue.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
start_rf_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 0
if [ $UE_SYNC -eq 0 ]
then
echo "Problem w/ eNB and UE not syncing"
@@ -1762,13 +1815,13 @@ function run_test_on_vm {
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
if [ $S1_NOS1_CFG -eq 1 ]
then
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
fi
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
#if [ $S1_NOS1_CFG -eq 1 ]
#then
# terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
#fi
# Now we keep running
STATUS=-1
return
break
fi
if [ $S1_NOS1_CFG -eq 1 ]
@@ -1814,15 +1867,37 @@ function run_test_on_vm {
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
fi
if [ $S1_NOS1_CFG -eq 0 ]
if [ $S1_NOS1_CFG -eq 1 ]
then
get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- UE is server and eNB is client"
echo "${CN_CONFIG} : iperf DL -- UE is server and EPC is client"
echo "############################################################"
IPERF_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_dl
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
THROUGHPUT=4
THROUGHPUT=10
generic_iperf $UE_VM_CMDS $UE_VM_IP_ADDR $UE_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR $REAL_EPC_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@$EPC_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_client.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$IPERF_LOG_FILE $THROUGHPUT
echo "############################################################"
echo "${CN_CONFIG} : iperf UL -- EPC is server and UE is client"
echo "############################################################"
IPERF_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_ul
THROUGHPUT=2
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
generic_iperf $EPC_VM_CMDS $EPC_VM_IP_ADDR $REAL_EPC_IP_ADDR $UE_VM_CMDS $UE_VM_IP_ADDR $UE_IP_ADDR $THROUGHPUT $IPERF_LOG_FILE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_server.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_client.txt $ARCHIVES_LOC
check_iperf $ARCHIVES_LOC/$IPERF_LOG_FILE $THROUGHPUT
else
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- UE is server and eNB is client"
echo "############################################################"
get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
IPERF_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_dl
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
THROUGHPUT=10
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
@@ -1852,6 +1927,70 @@ function run_test_on_vm {
done
done
####################
## MSMS CASE noS1 ##
####################
CONF_FILE=lte-fdd-mbms-basic-sim.conf
CN_CONFIG="noS1"
S1_NOS1_CFG=0
LTEBOX=0
TMODE="fdd"
FREQUENCY=2680
BW_CASES=(05)
MBMS_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_mbms.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_mbms.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_mbms
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_MBMS_MESSAGES=`egrep -c "TRIED TO PUSH MBMS DATA TO" $ARCHIVES_LOC/$CURRENT_UE_LOG_FILE`
if [ $NB_UE_MBMS_MESSAGES -eq 0 ]; then MBMS_STATUS=-1; fi
done
full_l2_sim_destroy
echo "############################################################"
@@ -1860,89 +1999,146 @@ function run_test_on_vm {
if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
if [ $MBMS_STATUS -eq 0 ]
then
echo "LTE MBMS RFSIM seems OK"
else
echo "LTE MBMS RFSIM seems to FAIL"
STATUS=-1
fi
if [ $STATUS -eq 0 ]
then
echo "TEST_OK" > $ARCHIVES_LOC/test_final_status.log
echo "LTE RFSIM seems OK"
echo "LTE: TEST_OK" > $ARCHIVES_LOC/test_final_status.log
else
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
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
PING_STATUS=0
IPERF_STATUS=0
if [ -d $ARCHIVES_LOC ]
then
rm -Rf $ARCHIVES_LOC
fi
mkdir --parents $ARCHIVES_LOC
CN_CONFIG="noS1"
CONF_FILE=gnb.band78.tm1.106PRB.usrpn300.conf
S1_NOS1_CFG=0
PRB=106
FREQUENCY=3510
local try_cnt="0"
NR_STATUS=0
######### start of loop
while [ $try_cnt -lt 5 ]
do
SYNC_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
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 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 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
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 ]
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
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
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
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
STATUS=-1
return
fi
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- UE is server and eNB 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
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 [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
if [ $STATUS -eq 0 ]
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 ]
then
echo "TEST_OK" > $ARCHIVES_LOC/test_final_status.log
echo "5G-NR RFSIM seems OK"
echo "5G-NR: TEST_OK" >> $ARCHIVES_LOC/test_final_status.log
else
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
echo "5G-NR RFSIM seems to FAIL"
echo "5G-NR: TEST_KO" >> $ARCHIVES_LOC/test_final_status.log
STATUS=-1
fi
fi
@@ -2032,15 +2228,41 @@ function run_test_on_vm {
if [ $S1_NOS1_CFG -eq 1 ]
then
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
echo "############################################################"
echo "${CN_CONFIG} : Pinging the EPC from UE(s)"
echo "############################################################"
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_epc.log
ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
echo " --- Sequentially ---"
local j="1"
while [ $j -le $INT_NB_UES ]
do
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_epc_seq_from_ue${j}.log
ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE ${j} 0
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
j=$[$j+1]
done
if [ $INT_NB_UES -gt 1 ]
then
echo " --- In parallel ---"
j="1"
while [ $j -le $INT_NB_UES ]
do
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_epc_para_from_ue${j}.log
ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE ${j} 1
j=$[$j+1]
done
sleep 25
j="1"
while [ $j -le $INT_NB_UES ]
do
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_epc_para_from_ue${j}.log
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
tail -3 $ARCHIVES_LOC/$PING_LOG_FILE
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
j=$[$j+1]
done
fi
else
get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
@@ -2085,10 +2307,38 @@ function run_test_on_vm {
echo "############################################################"
echo "${CN_CONFIG} : Pinging the UE(s) from EPC"
echo "############################################################"
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_ue.log
ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
echo " --- Sequentially ---"
local j="1"
while [ $j -le $INT_NB_UES ]
do
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $j
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_from_epc_seq_ue${j}.log
ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
j=$[$j+1]
done
if [ $INT_NB_UES -gt 1 ]
then
echo " --- In parallel ---"
j="1"
while [ $j -le $INT_NB_UES ]
do
get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $j
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_from_epc_para_ue${j}.log
ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 1
j=$[$j+1]
done
sleep 25
j="1"
while [ $j -le $INT_NB_UES ]
do
PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_from_epc_para_ue${j}.log
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
j=$[$j+1]
done
fi
else
echo "############################################################"
echo "${CN_CONFIG} : Pinging the UE(s) from eNB"
@@ -2128,7 +2378,7 @@ function run_test_on_vm {
fi
fi
if [ $S1_NOS1_CFG -eq 2 ]
if [ $S1_NOS1_CFG -eq 0 ]
then
get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
echo "############################################################"

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

@@ -0,0 +1,217 @@
#/*
# * 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):
count = 0
connect_status = False
while count < 4:
self.ssh = pexpect.spawn('ssh', [username + '@' + ipaddress], 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.ssh.expect('password:')
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 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)

0
ci-scripts/tcp_iperf_stats.awk Executable file → Normal file
View File

0
ci-scripts/template-host.xml Executable file → Normal file
View File

0
ci-scripts/template.xsl Executable file → Normal file
View File

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 (USRP)</desc>
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
</testCase>
</testCaseList>

View File

View File

View File

View File

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>oai-ue-build-tab</htmlTabRef>
<htmlTabName>OAI-UE-Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
090101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<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>
</testCaseList>

16
ci-scripts/xml_files/enb_usrp210_band13_build.xml Executable file → Normal file
View File

@@ -26,7 +26,6 @@
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
010101
050101 060101 070101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
@@ -37,19 +36,4 @@
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
</testCase>
<testCase id="050101">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="060101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
</testCase>
<testCase id="070101">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

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>
050101 060101 070101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="050101">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="060101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
</testCase>
<testCase id="070101">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

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

16
ci-scripts/xml_files/enb_usrp210_band40_build.xml Executable file → Normal file
View File

@@ -26,7 +26,6 @@
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
010101
050101 060101 070101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
@@ -36,19 +35,4 @@
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
</testCase>
<testCase id="050101">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="060101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
</testCase>
<testCase id="070101">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

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