Compare commits

...

2961 Commits

Author SHA1 Message Date
masayuki.harada
387821d2b6 Fix PDCP and RLC reestablishment function. 2021-03-29 23:07:23 +09:00
masayuki.harada
f3d8f56590 Merge remote-tracking branch 'remotes/oai/develop' into fix_reestablishment 2021-03-29 16:44:16 +09:00
Remi Hardy
c5546228f4 Integration 2021 wk12
MR !1037: 5G NR DL MIMO

MR !1089: Fixes two issues that we encountered with the new Quectel modules (RM500Q-GL)
-make LTE RRC buffers large enough
-fix initial{D,U}LBWPlocationAndBandwidth in NR config file so that all accept it
2021-03-29 06:24:49 +00:00
hardy
a84b1b4340 Merge remote-tracking branch 'origin/fix-quectel' into integration_2021_wk12_b 2021-03-28 21:36:45 +02:00
hardy
ede67ce2ed Merge remote-tracking branch 'origin/NR_DL_MIMO' into integration_2021_wk12_b 2021-03-28 21:36:25 +02:00
hardy
b28ac6d982 Merge remote-tracking branch 'origin/ci_benetel_test' into develop 2021-03-23 13:44:25 +01:00
masayuki.harada
da870143f6 Fix nr-softmodem compile error. 2021-03-23 16:10:13 +09:00
masayuki.harada
3a1252a8f6 Add PDCP reestablishment and RLC reestablishment. 2021-03-23 05:13:50 +09:00
sfn
e7da2c88b3 skip the precoding lines of the code if there is no precoding info from nfapi 2021-03-22 18:23:06 +01:00
hardy
e419ae05bd adding benetel to overnight trig 2021-03-22 10:23:11 +01:00
Raphael Defosseux
fe330f7b5e Merge branch 'ci-new-docker-pipeline' into 'develop'
Ci new docker pipeline

See merge request oai/openairinterface5g!1095
2021-03-21 11:04:48 +01:00
Raphael Defosseux
6f2622900e [CI] renaming the scenario
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-20 21:20:30 +01:00
Thomas Schlichter
bc041092c8 NR_UE: always break out of MAC PDU processing after pdu_len Bytes
In case of false positive PDSCH CRC check, a random MAC PDU is processed.
Currently pdu_len is unsigned 16 Bit, so we did break out of the processing loop only if we _exactly_ hit a residual pdu_len of 0, or we hit a LCID of DL_SCH_LCID_PADDING.
If we didn't hit either of these, pdu_len wrapped to a very positive value, and we continued processing the PDU even beyond its bounds!
This behavior was observed with SNR 1 dB and MCS 9.

So better make pdu_len signed and break out of the loop after processing at max. pdu_len Bytes!
2021-03-19 17:45:14 +01:00
Raphael Defosseux
13a204f027 [CI][DOCKER] handle build failure, and Merge Requests do not build shared image to speed up process
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-19 17:32:53 +01:00
Raphael Defosseux
144457c258 [CI][DOCKER] fix indentation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-19 14:34:42 +01:00
Raphael Defosseux
76638ec283 [CI][DOCKER] handling the case of build not successful
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-19 13:55:01 +01:00
hardy
677172f205 Merge remote-tracking branch 'origin/develop' into ci_benetel_test 2021-03-19 13:23:29 +01:00
hardy
38f3ca2b35 fix workspace corruption issue 2021-03-19 13:04:10 +01:00
Thomas Schlichter
14f3d6a77a gNB: fix memory allocations in fix_scc() and prepare_scd()
issues found by valgrind
2021-03-19 11:40:21 +01:00
Thomas Schlichter
dade64ea43 Merge remote-tracking branch 'develop' into NR_DL_MIMO 2021-03-19 11:18:02 +01:00
Raphael Defosseux
a2fc1a5d3b [CI][DOCKER] display intermediate logs for CI purpose
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-19 11:10:24 +01:00
Remi Hardy
3dc0a09878 Integration 2021 wk11
MR !1071 : rohan_ulsim2RxFix
-Support added for 2RX antennas case in ulsim
-fixed indexing issue in gNB RX chain 

MR !1086 : fix-nr-pdcp-timer
-The discard timer (set to infinity) is used by the PDCP layer to discard packets that were not transmitted to RLC after some time.

MR !995 : NR_MAC_TCI_UCI_GlobalEdge
TCI:
-Activation of PDSCH TCI states, Activation of PDCCH TCI state
-Construction of the codepoint, Updating nFAPI DCI1_1 (tci_field)
-SSB Beam switching on basis of CSI MeasReport(SSB RSRP) 
-Added get_measured_rsrp and get_diff_rsrp API’s to get SSB RSRP’s. 
UCI:
-Bit length calculation for the scheduled UCI Reporting for CSI-RS and SSB 
-Extraction of received CSI Report (L1-RSRP) when according to the calculated bit lengths and processing it.

MR !1082 : NR_10MHz
-Support of 10MHz BW for 5G NR

MR !1013 : ptrs_rrc_config
-Remove hardcoding of DL and UL PTRS parameters at gNB and NR UE
2021-03-19 06:34:41 +01:00
hardy
5b8e2734e2 updating xNB start detection for Benetel 2021-03-18 21:46:56 +01:00
Raphael Defosseux
4a68d007aa [DOCKER] force copy for workspace in each child dockerfiles
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 16:11:45 +01:00
hardy
b5192b6b12 fixing gNB init 2021-03-18 15:33:21 +01:00
hardy
ee8cfe0e0e fix dependency path for dpdk lib
increasing timeout for command related to waitbuild

debug

removing parallel build of xNB

updating test xml with benetel conf files
2021-03-18 15:33:21 +01:00
Raphael Defosseux
71538abf1c [CI][DOCKER] real fix on RHEL build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 15:13:03 +01:00
Raphael Defosseux
0973cb879d [CI][DOCKER] fix RHEL8 build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 14:36:14 +01:00
Thomas Schlichter
ccee372aa5 NR: don't enable PRINT_CRC_CHECK by default in nr_ulsch_decoding.c 2021-03-18 14:06:51 +01:00
Thomas Schlichter
2a73b2d0c4 NR_UE: fix typo in nr_dlsch_decoding() 2021-03-18 14:02:22 +01:00
Raphael Defosseux
bbb7489983 CI: better reporting
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 13:51:40 +01:00
hardy
710fcba5b9 fixing CI NSA Jenkins allow merge
add new nsa reference test
2021-03-18 13:39:24 +01:00
Thomas Schlichter
58af72a640 fix nr_dlsim for CI: use AWGN instead of Rayleigh1 channel by default 2021-03-18 13:27:56 +01:00
Thomas Schlichter
62a1cf49ab NR: initialize t_nrLDPC_time_stats structure 2021-03-18 13:25:18 +01:00
Thomas Schlichter
d7f89ae686 NR: allocate memory for 2 slots of OFDM symbols in txdataF_precoding 2021-03-18 13:23:37 +01:00
Raphael Defosseux
6d028fb180 CI: podman3 cannot run rootless and some little fixes in pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 12:15:27 +01:00
Raphael Defosseux
00a7060184 CI: adding comments
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 11:18:21 +01:00
Raphael Defosseux
43b867c55e CI: adding child jobs trigger => Building U18 and RHEL8 images
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-18 11:10:47 +01:00
Robert Schmidt
decd654ad0 Change initial{D,U}LBWPlocationAndBandwidth for quectel to connect in testing_gnb.conf files 2021-03-18 09:16:36 +01:00
Remi Hardy
149785740d update of the CI NSA reference test 2021-03-18 09:10:42 +01:00
Thomas Schlichter
5d6863ddd2 NR_UE: fix memory allocations in phy_init_nr_ue__PDSCH() 2021-03-17 17:01:42 +01:00
Raphael Defosseux
d4cd65f6c6 CI: initial draft for new container pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-17 14:31:38 +01:00
hardy
9abc8a6425 Merge remote-tracking branch 'origin/ptrs_rrc_config' into integration_2021_wk11 2021-03-16 16:28:31 +01:00
hardy
d12aaf98e8 Merge remote-tracking branch 'origin/NR_10MHz' into integration_2021_wk11 2021-03-16 16:27:42 +01:00
hardy
dc60f04a46 Merge remote-tracking branch 'origin/NR_MAC_TCI_UCI_GlobalEdge' into integration_2021_wk11 2021-03-16 16:26:41 +01:00
Thomas Schlichter
b7ef903cb4 Merge remote-tracking branch 'develop' into NR_10MHz 2021-03-16 16:13:17 +01:00
hardy
d6c07d81a8 Merge remote-tracking branch 'origin/rh_ci_nsa2jenkins' into develop 2021-03-16 16:07:28 +01:00
hardy
6fc492819e dummy test files cleanup 2021-03-16 15:28:19 +01:00
Remi Hardy
32cdc2703c nsa test integration into jenkins
dummy files cleanup
2021-03-16 15:27:46 +01:00
sfn
f1083dc14a Extend nr_dlsim to simulate performance over MIMO Rayleigh1 fading for MIMO test 2021-03-16 14:32:12 +01:00
Thomas Schlichter
8768deaf74 Merge remote-tracking branch 'develop' into ptrs_rrc_config 2021-03-16 14:01:32 +01:00
Thomas Schlichter
3152df445e Merge remote-tracking branch 'develop' into NR_DL_MIMO 2021-03-16 13:37:07 +01:00
masayuki.harada
a72e6ed627 Fix Reconfiguration message after Reestablishment. 2021-03-16 17:18:10 +09:00
francescomani
5eb86207db Merge remote-tracking branch 'origin/develop' into NR_MAC_TCI_UCI_GlobalEdge 2021-03-16 08:49:54 +01:00
sfn
1c2cbc76dc review pdsch precoding 2021-03-15 21:43:04 +01:00
hardy
25bba6d068 update benetel test = nsa test 2021-03-15 16:37:40 +01:00
Florian Kaltenberger
544f47bdb0 increasing initial[DL|UL]BWPlocationAndBandwidth for benetel config file to support newer handsets 2021-03-15 15:00:34 +01:00
Robert Schmidt
9dd8572359 Change initial{D,U}LBWPlocationAndBandwidth for quectel to connect 2021-03-15 15:00:34 +01:00
Robert Schmidt
8307d79929 Make RRC buffer sufficiently large 2021-03-15 15:00:34 +01:00
guhan
92c9d80ce0 Reverted the changes as same as develop 2021-03-15 17:47:04 +05:30
hardy
cf864cbb59 updaing ci files for benetel test 2021-03-15 11:00:22 +01:00
hardy
de32d6d555 Merge remote-tracking branch 'origin/rohan_ulsim2RxFix' into integration_2021_wk11 2021-03-15 09:31:57 +01:00
hardy
ca3aaf700f Merge remote-tracking branch 'origin/fix-nr-pdcp-timer' into integration_2021_wk11 2021-03-15 09:31:40 +01:00
masayuki.harada
71c0544eda Fix Reconfiguration message after Reestablishment. 2021-03-15 17:01:10 +09:00
Remi Hardy
fe49a22572 Integration 2021 wk10
MR !1054 : gNB_multi-threading_rework
-Replacing the existing multi-threading pipeline with threadPool library, simpler and more robust
-Updated dlsim to print stats to matlab file.
-Small fix for UE Ulsch coding.


MR !1063 : T_tracer__add_gnb_tracer
Minimalist gnb tracer to trace (for the moment) rxdataF when some decoding for PUCCH or PUSCH has been done

MR !1070 : nr_pdcp_improvements
Implement data transfer (38.331 5.2): - transmit operation (in nr_pdcp_entity_recv_sdu) - receive operation (in nr_pdcp_entity_recv_pdu) - t-Reordering expiration

MR !1076 : PBCHNRTCFIX
Issue Details: If bchPayload is changed to non-zero value, then the test case used to fail.
Solution: While final check against UE decoded bchpayload and input bchpayload, the AND operation with 0xff is missing along with RIGHT SHIFT operation for input bchpayload.


MR !973 : s1_subnormal
LTE update in S1 functions from Fujitsu.
-NNSF
-S1AP auto recovery.
-Handling unexpected messages.
-Fix memory leak.


MR !1048 : develop_SA_RA
-Draft and initial trigger of RA procedures upon SIB1 reception. 
-Improvements on SA SIB1 reception.
-Get Msg3 from RRC to MAC layer (this fixes random Msg3). 
-Fix Tables 7.4.1.1.2-1/2 from 38.211.
2021-03-15 07:16:26 +01:00
masayuki.harada
093e194bf3 Merge remote-tracking branch 'remotes/oai/develop' into fix_reestablishment 2021-03-15 13:42:53 +09:00
Florian Kaltenberger
fc4e1a4f1e adding Benetel RRUs to build script. 2021-03-14 23:17:11 +01:00
hardy
73e609db40 adding benetel conf files for ci 2021-03-12 14:07:39 +01:00
hardy
70b7284581 adding xml files for benetel build and test 2021-03-12 13:31:01 +01:00
rohan
eaed521bec Update test_case_list.xml with test14 tag for nr_ulsim 2021-03-12 13:07:21 +01:00
sfn
7dc97108e1 Fix indentation issues in nr_dlsch_demodulation.c 2021-03-12 13:04:14 +01:00
rohan
6d195d7399 Updated nr_ulsim to support 2 RX Antenna.
(Test14: MCS 16 50 PRBs 2 RX_Antenna)
2021-03-12 11:15:05 +01:00
Remi Hardy
de9c8634ad Merge remote-tracking branch 'origin/s1_subnormal' into integration_2021_wk10 2021-03-12 11:08:09 +01:00
Remi Hardy
17e10eb2a6 Merge remote-tracking branch 'origin/PBCHNRTCFIX' into integration_2021_wk10 2021-03-12 11:07:58 +01:00
Remi Hardy
c775073aad Merge remote-tracking branch 'origin/nr-pdcp-improvements' into integration_2021_wk10 2021-03-12 11:07:44 +01:00
Remi Hardy
c12dd11d6e Merge remote-tracking branch 'origin/develop-SA-RA' into integration_2021_wk10 2021-03-12 11:07:25 +01:00
sfn
3a83e8df03 Fix pdsch UE variables memory allocation 2021-03-12 09:19:44 +01:00
Raphael Defosseux
3f6df6b9ad CI: try to optimize the file system usage when building in the CI VM env. Increased the VM memory of one to allow linking
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-11 16:13:13 +01:00
Robert Schmidt
43f6e2f0de Shorten RSRP meas print, avoid SIGFPE 2021-03-11 12:22:32 +01:00
Robert Schmidt
9e707bb2d6 Remove uselessly added code 2021-03-11 12:12:35 +01:00
Robert Schmidt
6274348dfb Remove redundant code 2021-03-11 12:12:35 +01:00
Shweta Shrivastava
95df7843f3 Fix issues with NSA mode 2021-03-11 00:11:16 -06:00
Shweta Shrivastava
a0fa146e04 Merge branch 'ptrs_rrc_config' of https://gitlab.eurecom.fr/oai/openairinterface5g into ptrs_rrc_config 2021-03-10 22:58:06 -06:00
Shweta Shrivastava
7eec3e3bcc Merge branch 'develop' into ptrs_rrc_config 2021-03-10 22:37:44 -06:00
rmagueta
8cec7f7171 Revert commit b6ab1eb9 2021-03-10 20:04:14 +00:00
Turker YILMAZ
c56a7e2037 Very minor update to test git on new the machine 2021-03-10 19:30:23 +01:00
masayuki.harada
535efa0fd2 Remove s1ap_eNB_timer.c and s1ap_eNB_timer.h 2021-03-10 23:16:12 +09:00
francescomani
c05b62d620 including measured rsrp in mac stats 2021-03-10 15:05:26 +01:00
Thomas Schlichter
4e87bc3c96 add missing parameter 'pusch_proc_threads' to configuration files
also harmonize configuration files some more
2021-03-10 10:45:31 +01:00
Cedric Roux
4ff8f8832e NR: fix: set PDCP discard timer to infinity
The discard timer is used by the PDCP layer to discard packets that were not
transmitted to RLC after some time.

We don't really need it for the moment, maybe never for the default
bearer which is a best-effort bearer passing all kind of IP traffic.
Maybe for voice over IP kind of traffic it's important, or realtime
applications.

I ran an iperf UDP uplink test and saw no error on the PHY layer but still
lots of packets lost in the iperf logs, which was very surprising. By
analyzing the logs in wireshark I saw that, with the current scheduler,
an IP packet sent by the UE took 40ms to be sent piece by piece to the
gNB, and then the next uplink IP packet was never sent at all because
the discard timer was expired, leading to the high count of packets lost
in the iperf logs.

So let's put infinity for the moment for the discard timer. From my
understanding of the moment it's not a problem. If for some reason we
should set it to some non-infinity value, then we can change later.
2021-03-10 10:30:23 +01:00
Remi Hardy
51c55f6f6a Merge remote-tracking branch 'origin/gnb-threadpool' into integration_2021_wk10 2021-03-09 16:13:09 +01:00
Remi Hardy
1142acf0fe Merge remote-tracking branch 'origin/t-gnb-tracer' into integration_2021_wk10 2021-03-09 16:12:52 +01:00
Remi Hardy
e78d6e97bb Merge remote-tracking branch 'origin/NR_FDD_FIX' into integration_2021_wk10 2021-03-09 16:12:24 +01:00
francescomani
3cfc9ae93c fix in handling csi meas report on pucch 2021-03-09 14:32:40 +01:00
Thomas Schlichter
82cd7c44da nr_ulsim: whitespace cleanup 2021-03-09 13:11:16 +01:00
rohan
7da57e7608 Update ulsim.c, whitespace error corrected. 2021-03-09 12:04:42 +01:00
Thomas Schlichter
2cf4daefa8 NR: move nr_bandtable from nr_mac_common.c to nr_common.c so PHY can use it, too 2021-03-09 11:56:06 +01:00
francescomani
feaccd964c change a log to D from I 2021-03-09 11:12:16 +01:00
cig
443a449119 Fix after review MR 1039
- FAPI structures not to be used as config_req at MAC since that FAPI is
  just for communication between MAC and PHY
- additional frame_type member added to the FAPI struct
2021-03-09 10:36:27 +01:00
cig
a2e2968244 Fix after review MR 1039
- use LOG_D for debug logging
2021-03-09 10:06:33 +01:00
masayuki.harada
969425f6a8 Replace to itti timer.
Fix nnsf selection.
Fix indentation and opening brace.
2021-03-09 03:25:00 +09:00
Thomas Schlichter
681c03667d NR: fix init_symbol_rotation() for UL 2021-03-08 16:23:20 +01:00
Thomas Schlichter
606fa3c3aa fix nr_prachsim: 3.5 GHz is _not_ a valid DL frequency for 30 kHz SCS, so change it to 3.6 GHz 2021-03-08 10:59:43 +01:00
masayuki.harada
ff994453a4 Merge remote-tracking branch 'remotes/oai/develop' into HEAD
# Conflicts:
#	openair3/S1AP/s1ap_eNB.c
#	openair3/S1AP/s1ap_eNB_handlers.c
2021-03-08 14:51:11 +09:00
Raphael Defosseux
ea3f924632 Merge branch 'ci-reduce-nb-vms' into 'develop'
CI: removing 1 VM in the pipeline

See merge request oai/openairinterface5g!1078
2021-03-07 18:09:03 +01:00
Raphael Defosseux
11755fc473 CI: remove --mu option
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-06 10:50:49 +01:00
Thomas Schlichter
2411743f44 gNB: move get_band() to its only user in nr_init.c 2021-03-05 17:27:45 +01:00
Thomas Schlichter
2266d4611a NR_UE: move OFDM symbol cut position handling to nr_slot_fep()
this slightly cleans up nr_initial_sync() and UE_thread()
2021-03-05 15:02:18 +01:00
Thomas Schlichter
dd275d0148 improve nr_slot_fep() and variants 2021-03-05 15:01:19 +01:00
Raphael Defosseux
7c6213ba47 CI: increase timeout for wait stages and fix wait on v1
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-05 14:47:26 +01:00
Thomas Schlichter
eab6379bff gNB: cut OFDM symbol for PUSCH reception within 1/8th of CP to avoid ISI 2021-03-05 14:06:09 +01:00
Raphael Defosseux
2f23751a88 CI: try some sleeps
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-05 13:57:57 +01:00
Raphael Defosseux
7cb8acf6ca CI: removing 1 VM in the pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-03-05 10:50:53 +01:00
Sakthivel Velumani
62a7165c5a Adding thread count parameter to ci-scripts config file 2021-03-04 22:15:56 +01:00
Laurent THOMAS
a0922cef2f merge develop 2021-03-04 14:49:38 +01:00
Laurent THOMAS
6c7dc65981 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into gnb-threadpool 2021-03-04 12:05:01 +01:00
Rohan Patil
06b368914b PBCH test case support for non-zero bchpyload 2021-03-04 15:19:22 +05:30
rohan
bae3bebdeb Update ulsim.c, build issue resolved. 2021-03-04 08:02:48 +01:00
Thomas Schlichter
62612feebf change get_band() to take the duplex spacing into account 2021-03-03 18:02:10 +01:00
Thomas Schlichter
7a6f789aed Merge remote-tracking branch 'develop' into NR_FDD_FIX 2021-03-03 17:59:17 +01:00
cig
222933a59b Updated arbitrary frequencies section in RUNMODEM.md file 2021-03-03 17:58:07 +01:00
cig
f2bc1012be Minor cleanup UE
- removed commented out code
- improved logging in UL channel estimation
- minor fixes according to OAI coding guidelines
- moving fetching TDD configuration parameters in nr-ue.c only in TDD case
2021-03-03 17:58:07 +01:00
Thomas Schlichter
01645168f0 NR_UE: handle initial TA the same way as TA updates, independent of the UE_mode
In FDD mode, the UE_mode switches to PUSCH mode before the initial TA value was applied.
Because of this, the ta_command was misinterpreted.
Fix this by adding 31 to the initial TA comamnd and handle it the same as TA updates.
2021-03-03 17:58:07 +01:00
Cedric Roux
9edc8cce0a nr pdcp: improvements
Implement data transfer (38.331 5.2):
    - transmit operation (in nr_pdcp_entity_recv_sdu)
    - receive operation (in nr_pdcp_entity_recv_pdu)
    - t-Reordering expiration

To keep track of time the function nr_pdcp_wakeup_timer_thread has been
added and is called by the gNB's MAC scheduler via nr_pdcp_tick.

(The UE has not been modified.)

A thread has been introduced to set time of all the existing PDCP
entities in the system. This probably does not scale well with many
PDCP entities (many UEs connected to the gNB). To be changed at some
point when needed. Hopefully, with a few UEs this mechanism won't be
too problematic (ie. won't cause realtime problems).

The problem with time in PDCP is that SDUs are kept if some are
missing, to do reordering. A timer is started and when it expires
we have to transmit the SDUs even if some are still missing. We
want to do that as soon as possible. So we have to check timers
often (every millisecond).

In RLC the time is set when there is some activity (SDU or PDU
received). In PDCP we cannot wait for this kind of activity. We
would keep packets longer than necessary, which may disturb
upper layers (think: TCP). That is why we introduced the thread,
as a simple mechanism to keep packets no longer than necessary.

The locking done by this thread may create realtime issues.

The whole logic of time keeping can be changed later if it turns
out that it is not efficient.

The functions dealing with DRB AM have been removed. All the types
of PDCP entities (DRB AM, DRB UM, SRB) use the same mechanism for
transmit and receive operations. So the code has been made common
for all those types.

We don't deal with:
    - entity re-establishment, entity release or entity suspend
    - SDU discard (the timer is present but not used)
    - status reporting
    - data recovery
    - data volume calculation
    - header compression / decompression

There is no plan to implement those features in a near future.

Integrity protection is not done yet, and will be implemented soon.
2021-03-03 14:06:31 +01:00
Rohan Patil
429a5d4187 Support added for 2 RX Antenna case in ulsim and fixed indexing issue in gNB RX chain 2021-03-03 17:10:02 +05:30
Florian Kaltenberger
fdc818bc06 Update TESTING_GNB_W_COTS_UE.md 2021-03-02 21:39:19 +01:00
francescomani
97ed2dfe5b Merge remote-tracking branch 'origin/develop' into NR_10MHz 2021-03-02 14:31:12 +01:00
rmagueta
5f66269a8b Merge remote-tracking branch 'origin/develop' into develop-SA-RA
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-03-02 12:01:11 +00:00
Cedric Roux
95b659ab44 T tracer: add gnb tracer
Minimalist gnb tracer to trace (for the moment) rxdataF when some
decoding for PUCCH or PUSCH has been done.

Important: T_BUFFER_MAX and T_CACHE_SIZE have been changed. T_BUFFER_MAX
is twice as big as before. T_CACHE_SIZE has been devided by two. Globally,
the memory usage of the T tracer is the same, but since we divided by two
the number of buffers in the cache, we may hit some realtime problems if
all the buffers are busy at some point. The simple solution would be to
use 8192*2 for T_CACHE_SIZE as it was, but then we double the memory usage
of the T tracer. This, or another solution, to be defined.
2021-03-02 10:08:00 +01:00
Remi Hardy
a494950b0b Integration 2021 wk09
MR1029 : Benetel driver update  
This MR fixes an issue with the driver for the 4G Benetel RRUs.
Power levels on the 5G side were adapted to avoid saturation of the signals. 
5G performance is now the same as with USRP. 
Support for 2 antennas for both 4G and 5G was added

MR1062 : fixing the RE offset for each Rx antenna in pusch channel estimation
2021-03-01 21:08:19 +01:00
Guhan
02ae169250 Rebased to latest develop and removed nr_rx_acknack function 2021-03-01 11:43:30 +05:30
hardy
d143cec5ba Merge remote-tracking branch 'origin/sarma_pvnp_oai' into integration_2021_wk09_b 2021-02-26 16:09:17 +01:00
hardy
8d05695722 Merge remote-tracking branch 'origin/benetel_driver_update' into integration_2021_wk09_b 2021-02-26 16:09:05 +01:00
guhan
89c1a9c284 Removed SR 2021-02-26 14:16:35 +05:30
guhan
6505729aad some modifications in gNB_scheduler_uci.c 2021-02-26 14:16:01 +05:30
guhan
f338d6d65d Removed rrc dependency, code rearrangement 2021-02-26 14:16:01 +05:30
guhan
5d4f815181 Removed dead code 2021-02-26 11:50:13 +05:30
guhan
e914cb28a6 Fixed some warnings 2021-02-26 11:47:33 +05:30
rangaswamy
0e61b612ba fixed warnings 2021-02-26 11:47:33 +05:30
k.ramya
0a0a5e48c3 code rearrangement 2021-02-26 11:37:58 +05:30
r.karey
e703638522 fixed memory leaks 2021-02-26 11:31:06 +05:30
Francesco Mani
27cfdd4974 some cleanup 2021-02-26 11:29:28 +05:30
Francesco Mani
2e17bd241f bugfix in pucch_rx 2021-02-26 11:29:28 +05:30
Francesco Mani
cfdfd789b0 some code cleanup in csi_bitlen 2021-02-26 11:29:28 +05:30
Francesco Mani
17f830e587 revert to old rrc csi confriguration 2021-02-26 11:29:28 +05:30
Francesco Mani
898f752059 uci mac functions in a new file 2021-02-26 11:29:28 +05:30
Rangaswami
dfa39d5441 fixed CSI payload issue with multiple SSBs 2021-02-26 11:08:32 +05:30
Francesco Mani
5c35c9fba2 bugix for cri-rsrp in bitlen computation 2021-02-26 11:08:32 +05:30
p.shashikala
ee7b48ee01 CSI payload bits inversion issue 2021-02-26 11:08:32 +05:30
Rangaswami
8c923c9796 Fixed the segemntation fault and added CSI bitlength in uci_pdu 2021-02-26 11:08:32 +05:30
r.karey
c779ca120f Fixed the calculation of received csi payload size at MAC 2021-02-26 11:08:32 +05:30
Francesco Mani
827fcb2d30 remove log 2021-02-26 11:04:20 +05:30
Francesco Mani
e746ee5e96 make ue and physim compile again 2021-02-26 11:04:20 +05:30
r.karey
dbe30e81f6 CSI-RS reporting bitlength calculation for type1 single panel two CSI-RS ports 2021-02-26 11:04:20 +05:30
r.karey
c15855b9ab Bit length calculation for CRI-RSRP 2021-02-26 11:04:20 +05:30
r.karey
778dec6634 Changed periodicity calculation according to CSI_Reporting branch 2021-02-26 11:04:20 +05:30
r.karey
befcb33d1b Modified bitlen calculation for ssbri 2021-02-26 11:04:20 +05:30
r.karey
3fa6b36ac3 UCI bitlength calculation 2021-02-26 11:04:20 +05:30
r.karey
802f69a574 Added more logs and fixed assertion 2021-02-26 11:04:20 +05:30
vr.devendra
6a1a0e8257 updated TCI handling apis 2021-02-26 11:00:37 +05:30
Rangaswami
1dfec690f5 Initial commits for TCI and CSI reporting changes 2021-02-26 11:00:37 +05:30
Rangaswami
f344f69d1c Initial commits for TCI and CSI reporting changes 2021-02-26 10:54:40 +05:30
Francesco Mani
656d2abc7c Remove PRACH logging nr_mac_common.c 2021-02-26 10:53:54 +05:30
r.karey
207c0bd4a4 Fixed the calculation of received csi payload size at MAC 2021-02-26 10:53:54 +05:30
Francesco Mani
dc204e333c remove log 2021-02-26 10:53:54 +05:30
r.karey
8c9ec48457 CSI-RS reporting bitlength calculation for type1 single panel two CSI-RS ports 2021-02-26 10:53:54 +05:30
r.karey
5d5d4a1099 Bit length calculation for CRI-RSRP 2021-02-26 10:51:42 +05:30
r.karey
83cff97129 Changed periodicity calculation according to CSI_Reporting branch 2021-02-26 10:51:42 +05:30
r.karey
8c488bfdf8 UCI bitlength calculation 2021-02-26 10:51:42 +05:30
r.karey
03ea28df44 Merged rrc_gNB_reconfig for NR_CSI_reporting 2021-02-26 10:48:37 +05:30
r.karey
4c3c53d288 receiving of CSI report 2021-02-26 10:48:37 +05:30
r.karey
32139c6f91 Added more logs and fixed assertion 2021-02-26 10:48:36 +05:30
Rangaswami
59937eeb2b Initial commits for TCI and CSI reporting changes 2021-02-26 10:48:36 +05:30
Rangaswami
947eba9be8 Initial commits for TCI and CSI reporting changes 2021-02-26 10:46:17 +05:30
Francesco Mani
c54062194e bugfix in pucch_rx 2021-02-26 10:20:51 +05:30
Francesco Mani
cad40aabff uci mac functions in a new file 2021-02-26 10:20:51 +05:30
Francesco Mani
7bdf086301 fix in csi pucch2 payload reporting 2021-02-26 10:20:51 +05:30
Rangaswami
8e9b8f6cd0 fixed CSI payload issue with multiple SSBs 2021-02-26 10:20:51 +05:30
p.shashikala
6a0168b42b CSI payload bits inversion issue 2021-02-26 10:20:51 +05:30
Rangaswami
db718321be Fixed the segemntation fault and added CSI bitlength in uci_pdu 2021-02-26 10:20:51 +05:30
r.karey
91bb8d2fab Fixed the calculation of received csi payload size at MAC 2021-02-26 10:20:51 +05:30
r.karey
642679ddf4 Changed the TCI handling after processing of CSI_measurements 2021-02-26 10:20:51 +05:30
Francesco Mani
7edba1b1e8 remove log 2021-02-26 10:20:51 +05:30
r.karey
78dd18940c CSI-RS reporting bitlength calculation for type1 single panel two CSI-RS ports 2021-02-26 10:20:51 +05:30
r.karey
88bf90e587 Bit length calculation for CRI-RSRP 2021-02-26 10:20:51 +05:30
r.karey
132d139c92 Changed periodicity calculation according to CSI_Reporting branch 2021-02-26 10:20:51 +05:30
r.karey
bece5400d7 UCI bitlength calculation 2021-02-26 10:20:51 +05:30
r.karey
33f3fb2262 receiving of CSI report 2021-02-26 10:20:51 +05:30
r.karey
356a0033fc Added more logs and fixed assertion 2021-02-26 10:20:51 +05:30
vr.devendra
94ae29d9e5 updated TCI handling apis 2021-02-26 10:20:51 +05:30
Rangaswami
1dfc02fdf4 Initial commits for TCI and CSI reporting changes 2021-02-26 10:20:51 +05:30
Rangaswami
abc13b60b2 Initial commits for TCI and CSI reporting changes 2021-02-26 10:20:51 +05:30
Francesco Mani
c47a0d272f bugix for cri-rsrp in bitlen computation 2021-02-26 10:20:51 +05:30
p.shashikala
55c55d7d17 CSI payload bits inversion issue 2021-02-26 10:20:51 +05:30
Rangaswami
c9d7455dea Fixed the segemntation fault and added CSI bitlength in uci_pdu 2021-02-26 10:20:51 +05:30
r.karey
e6d057ec8a Fixed the calculation of received csi payload size at MAC 2021-02-26 10:20:51 +05:30
r.karey
5fdadbfe84 Changed the TCI handling after processing of CSI_measurements 2021-02-26 10:20:51 +05:30
Francesco Mani
8cfc99bd98 remove log 2021-02-26 10:20:51 +05:30
Francesco Mani
fcf481f8cb make ue and physim compile again 2021-02-26 10:20:51 +05:30
r.karey
7b4a863018 CSI-RS reporting bitlength calculation for type1 single panel two CSI-RS ports 2021-02-26 10:20:51 +05:30
r.karey
1e1258742e Bit length calculation for CRI-RSRP 2021-02-26 10:20:51 +05:30
r.karey
da383da93d Changed periodicity calculation according to CSI_Reporting branch 2021-02-26 10:20:51 +05:30
r.karey
07d90b44b9 Modified bitlen calculation for ssbri 2021-02-26 10:20:51 +05:30
r.karey
13ed4a3aa3 Added debug logs 2021-02-26 10:20:51 +05:30
r.karey
72d0566666 UCI bitlength calculation 2021-02-26 10:20:51 +05:30
r.karey
21c0af1b7c Merged rrc_gNB_reconfig for NR_CSI_reporting 2021-02-26 10:20:51 +05:30
r.karey
5196599833 receiving of CSI report 2021-02-26 10:20:51 +05:30
r.karey
ed39ad6a0c Added more logs and fixed assertion 2021-02-26 10:20:51 +05:30
vr.devendra
6bff696646 updated TCI handling apis 2021-02-26 10:20:51 +05:30
r.karey
b47a736276 added more debug logs 2021-02-26 10:10:23 +05:30
Rangaswami
d4fde1eb4d Initial commits for TCI and CSI reporting changes 2021-02-26 10:10:23 +05:30
r.karey
7c6744f3ba added more debug logs 2021-02-26 10:10:23 +05:30
Rangaswami
eb93c078bc Initial commits for TCI and CSI reporting changes 2021-02-26 10:10:23 +05:30
Sakthivel Velumani
0e2ecd7bce Merge branch 'develop' into gnb-threadpool 2021-02-25 13:48:13 +01:00
Remi Hardy
17d4c5c2f4 Integration 2021 wk08
MR1046 : Add support for NR UL SC-FDMA up to 100 MHz

MR1053Nr : pdcp nea2 security

MR1049 : improve rfsim
-Fix a regression 
Earlier parameter reading was moved to an external thread,  
Eventually the check at the end of the main was too early, 
Declaration of  some extra parameters are now on command line
-Enhancement: 
use the rfsim as a server on UE side, so we can connect two xNB to one UE
-Simplification: 
remove rfsim flags that have been made for convergence with replay function in usrp driver, but this is useless as they changed their code
-Fix a bug in ubuntu 20.04 (now the code is ready in whole OAI)


MR1056 : Bugfix: NR BSR calculation
Fixes a bug in the scheduler for BSR calculation. 
Before, we might wrongly track the BSR of a UE and not schedule it anymore although it has data. 
Should be fixed now and improve UL throughput. 

MR963 : Nr mac multi rach global edge
-Handling of Multiple Users triggering RACH request in different RACH Occasions in same slot
-Providing Random Access Response according to RACH request
2021-02-24 18:47:54 +01:00
Saankhya
37a2ce7d3d following coding guideline
fixing the RE offset for each Rx antenna in pusch channel estimation
2021-02-24 12:01:58 +05:30
rmagueta
910154c7af Merge branch 'develop' into develop-SA-RA
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
2021-02-23 13:04:01 +00:00
hardy
88ce69608c Merge remote-tracking branch 'origin/NR_MAC_Multi_Rach_GlobalEdge' into integration_2021_wk08 2021-02-23 10:29:50 +01:00
hardy
30bede544c Merge remote-tracking branch 'origin/nr-bsr-fix' into integration_2021_wk08 2021-02-23 09:31:22 +01:00
hardy
accae67113 Merge remote-tracking branch 'origin/nr-pdcp-nea2-security' into integration_2021_wk08 2021-02-23 09:31:05 +01:00
hardy
3199b81584 Merge remote-tracking branch 'origin/enhance-rfsim' into integration_2021_wk08 2021-02-23 09:30:42 +01:00
hardy
90d6a57a3c Merge remote-tracking branch 'origin/NR_UL_SCFDMA_100MHz' into integration_2021_wk08 2021-02-23 09:30:22 +01:00
Remi Hardy
0114160246 Merge branch 'integration_2021_wk06_MR978' into 'develop'
MR978 : 
We have incorporated 5G NR nFAPI into the develop branch
P5 and P7 interfaces for NR have been implemented. 
With this MR, downlink transmission through nFAPI will be possible. 
We have also made sure that 4G nFAPI can be used from within the develop branch.
2021-02-23 09:15:56 +01:00
rmagueta
bed43a2a79 Address review comments 2021-02-22 16:31:13 +00:00
rmagueta
4ea560f291 Address review comments 2021-02-22 16:01:05 +00:00
rmagueta
b6ab1eb9e1 Fix RA preamble shift at gNB 2021-02-22 15:34:15 +00:00
Gokul Srinivasan
880096cc95 Delete create_nr_tasks.c 2021-02-21 18:40:51 +01:00
Florian Kaltenberger
2651cd0cd3 removing dead code 2021-02-19 11:16:29 +01:00
Florian Kaltenberger
a51e3defa8 when PRACH config 4 is used (Benetel RRU) we only schedule UL slots 8 and 9 2021-02-19 11:15:59 +01:00
Florian Kaltenberger
30aaa0dc44 reducing UL target power for Benetel 5G RRU and adding missing parameter for PUSCH multi thread processing 2021-02-19 11:47:25 +01:00
Florian Kaltenberger
670c807a56 Merge remote-tracking branch 'origin/develop' into benetel_driver_update 2021-02-19 11:46:41 +01:00
laurent
c910668e7b add LOG_M() binary format 2021-02-19 10:48:35 +01:00
guhan
e893ee8a16 Fixed the issue w.r.t looping of configured preamble list 2021-02-19 11:47:55 +05:30
Laurent Thomas
abea2ef926 protect nrscope when thread starts before end of init 2021-02-18 22:36:45 +01:00
Laurent Thomas
11a318170e memory wrong free in global vars used for configuration storage 2021-02-18 22:23:31 +01:00
Mahesh
7ea8211b85 Code fixes for NSA test 2021-02-18 16:19:12 +05:30
Francesco Mani
80cac226fc fixed a warning in gNB_scheduler_ulsch.c 2021-02-18 08:50:45 +01:00
cig
e023f67ed8 Compute and apply symbol rotation for DL and UL
- now done according to the proper DL/UL frequency
- this makes it compatible with FDD mode
2021-02-17 14:14:06 +01:00
Robert Schmidt
a3b1216b23 Fixup sched_ul_bytes logic
1) Only count new transmission as scheduled bytes (which is then
compared against the BSR)

2) When subtracting scheduled bytes after successful reception, subtract
TBsize from correct HARQ process
2021-02-17 10:17:59 +01:00
cig
c89d349300 Bugfix in nr_ue_prach_scheduler
- scheduled_response was called regardless of the UL config in the PRACH slot
  this was leading to wrong behaviour since it was interfering with the
  UL config of PUSCH
2021-02-16 15:25:48 +01:00
Sakthivel Velumani
7c86b9c289 Ulsch coding fix
Do encoding only if NDI toggles instead of doing on first round. Both are same but we now remove the dependancy on rv_round_mapping.
2021-02-16 12:07:27 +01:00
Sakthivel Velumani
f62095fb32 Updated nr_dlsim to generate matlab files
Updated matlab file write function to write multiple vectors to a single file.
2021-02-16 10:29:38 +01:00
luis_pereira87
9d498e1a09 Improve PDSCH DMRS modulation for numDmrsCdmGrpsNoData=1 2021-02-15 16:49:07 +00:00
francescomani
eef684d91a adding 24 PRB to X2AP function 2021-02-15 16:25:30 +01:00
Cedric Roux
21ff70e84f hack: put back a hack that seems necessary for NR rfsim tests in the CI
go figure...
2021-02-15 15:25:52 +01:00
Cedric Roux
3cfa2c266b hack: fix NR prachsim compilation
Dirty!
2021-02-15 15:25:52 +01:00
Cedric Roux
778e487323 hack: fix NR ulsim compilation
Dirty.
2021-02-15 15:25:52 +01:00
Cedric Roux
67b9cd1892 hack: fix NR dlsim compilation
Dirty...
2021-02-15 15:25:52 +01:00
Cedric Roux
73f3a458cf NSA: finalize nea2 security for gNB
- a new section in the configuration file to select security algorithms,
  with new code to deal with it
- cleanup CG-ConfigInfo: specs seem to indicate that we must not
  add mcg_RB_Config; the gNB has to deal with that
- as a consequence, modify fill_default_rbconfig() that is called in
  every cases and needs security and bearer parameters

The new section in the configuration file looks like:

    security = {
      # preferred ciphering algorithms
      # the first one of the list that an UE supports in chosen
      # valid values: nea0, nea1, nea2, nea3
      ciphering_algorithms = ( "nea0", "nea2" );

      # preferred integrity algorithms
      # the first one of the list that an UE supports in chosen
      # valid values: nia0, nia1, nia2, nia3
      integrity_algorithms = ( "nia0" );
    };
2021-02-15 15:25:52 +01:00
Cedric Roux
cb589c211c minor trivial bugfix 2021-02-15 15:25:52 +01:00
Cedric Roux
10e021e96d NSA: first draft of nea2 security for gNB
The code is forced to use nea2, no matter what the UE supports.

After 2^18 PDCP packets, it will fail to work (we don't use HFN yet).

These limitations will be fixed in later commits.

The existing security function was not reused, because it does too
much memory allocation and initializes the security context at each
ciphering. So here comes nr_pdcp_security_nea2_cipher(). And also
the ciphering is done inplace. To be changed if necessary.
2021-02-15 15:25:47 +01:00
cig
94d956fa55 Fixed warning about use of wrong enum 2021-02-15 13:24:20 +01:00
Sakthivel Velumani
3776379eb1 Merge branch 'develop' into gnb-threadpool 2021-02-13 17:00:00 +01:00
Sakthivel Velumani
08ab234501 Removing sync_thread 2021-02-13 15:14:03 +01:00
rmagueta
e7fb928758 Fix dlsch_config_pdu for DCI with format 1.1 2021-02-12 21:40:04 +00:00
Robert Schmidt
ef90d77b0e Reformat nr_initiate_ra_proc() [no other changes] 2021-02-12 20:53:36 +01:00
cig
d5877d75bf Bugfix in gNB RA scheduling for FDD duplex mode
- the RA SFN index wasn't increased in the FDD case, therefore the PRACH
  RX was never scheduled
2021-02-12 18:41:19 +01:00
cig
24fc20e2e2 Bugfix in USRP flags configuration for NR UE
- missing check on duplex mode before fetching the TDD period
- missing flags configuration for FDD mode
2021-02-12 17:02:20 +01:00
Thomas Schlichter
d3982e5809 Merge remote-tracking branch 'develop' into NR_FDD_FIX 2021-02-12 16:39:58 +01:00
Cedric Roux
0b4335accc NSA: some work on security (for PDCP)
- compute correct kgNB
- propagate properly NR security capabilities of an UE
  (involves: rrc, s1ap, x2ap)
2021-02-12 16:01:37 +01:00
Thomas Schlichter
d2f353acf6 Merge remote-tracking branch 'develop' into NR_DL_MIMO 2021-02-12 15:33:51 +01:00
guhan
0d5f1dfea0 Fixed the index issue 2021-02-12 19:49:42 +05:30
luis_pereira87
9a55e64e54 Fix build errors in physical unitary tests simulators, minor update in the documentation 2021-02-12 12:28:17 +00:00
Mahesh
b681d67d7f Cleanup 2021-02-12 16:36:58 +05:30
Mahesh
f69af6abaf merge MR978 (5G nFAPI) into develop 2021-02-12 16:26:22 +05:30
kn.raju
37d112f511 Check that resources are free for Msg2/RAR 2021-02-12 08:31:35 +01:00
kn.raju
13e719d74a fixes nr_initiate_ra_proc() 2021-02-12 08:31:30 +01:00
kn.raju
bf81ea19d3 Check cfra in nr_initiate_ra_proc() 2021-02-12 08:31:28 +01:00
kn.raju
66ffa08a3d Handle individual RAs in nr_generate_Msg2() and nr_add_msg3()
* add the RA process to handle to command parameters
* Do not create the RAR_pdu into an intermediate array, but directly
  into the nFAPI TX_req
* Slightly restructure nr_generate_Msg2() to first make AssertFatal()
  checks, then proceed allocating
2021-02-12 08:31:26 +01:00
kn.raju
25a520e4fa find_SSB_and_RO_available() 2021-02-12 08:31:23 +01:00
kn.raju
68b4a6bf28 Fixing association period 2021-02-12 08:31:17 +01:00
kn.raju
054934c4f8 Do nr_schedule_RA() for all RA processes 2021-02-12 08:31:13 +01:00
kn.raju
baba8d69be nr_initiate_ra_proc(): check in all RA processes, check beam_index 2021-02-12 08:31:11 +01:00
kn.raju
4dacea921c New UE: check for free RA and copy preamble list 2021-02-12 08:31:07 +01:00
kn.raju
eaadda1f5d Update FAPI nfapi_nr_tx_precoding_and_beamforming_t 2021-02-12 08:31:01 +01:00
rmagueta
7011b04b75 Code clean up and minor correction in RA for SA 2021-02-12 00:24:31 +00:00
rmagueta
d2e9ca590c Fix segmentation fault in PDSCH DMRS when using additional DMRS symbols 2021-02-11 22:21:45 +00:00
Mahesh
7f4ffe29c8 Fix whitespaces 2021-02-12 01:25:09 +05:30
Mahesh
eb19e02cf3 Merging MR978 with develop 2021-02-11 22:50:25 +05:30
cig
00a7adf198 NR_UE: cleanup and fix computation of ta_slot (when to apply the timing advance value)
- made hardcoded constants explicit
- made the code more readable according to OAI coding style guidelines
- fixed some formatting and logging
2021-02-11 18:04:36 +01:00
Thomas Schlichter
82804981bd fix timing advance command scaling
scaling with 2^mu is already part of 'bw_scaling', so don't do it twice!
Also simplify the computation in get_bw_scaling() by using a one-line computation instead of a switch-case table.
2021-02-11 18:00:30 +01:00
rmagueta
d0c5bea3be Log improvements 2021-02-11 13:01:39 +00:00
rmagueta
c5ab33ffd9 Merge remote-tracking branch 'origin/develop' into develop-SA-RA
# Conflicts:
#	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-02-11 12:27:06 +00:00
Laurent Thomas
c93482c4c6 trivial merge with develop" 2021-02-11 13:27:00 +01:00
Raphael Defosseux
39ab3c1e9e * MR 1015: Multi-UE + more slots
This MR adds a multi-UE scheduler (proportional fair) for multiple UEs. Tested for two UEs, but should work for more. Additionally, it enables 12 DL slots and 2 UL slots (still fixed, will be read from the configuration file in a clean-up/follow-up MR).

* MR 1019: NASMESH: support for kernel version >= 5.6.0
he syntax for ndo_tx_timeout in Linux Kernel has changed since 5.6.0 i.e it has changed

* MR 1033: ue fixes
1. Write tx data to radio unit only on tx slots.
2. Fixed a bug in DL HARQ.
3. Disabled UE and some gNB side logs which were enabled (maybe by mistake) in previous MRs.
4. In UE, check if NDI toggled before reading SDU for PUSCH.
2021-02-11 12:21:21 +01:00
rmagueta
e2f749d8b2 Fix nr_dlsim, nr_ulsim and nr_prachsim 2021-02-11 10:56:08 +00:00
Sakthivel Velumani
7854133bc2 Removing some of the old pthreads
Leaving ru_thread and L1 stats thread
2021-02-10 22:00:09 +01:00
Laurent Thomas
b3e21ad87b only a printf 2021-02-10 17:58:10 +01:00
Laurent Thomas
2c5bd9fa8c improve rfsim 2021-02-10 17:49:14 +01:00
rmagueta
79e8098382 Minor code clean up 2021-02-10 15:15:35 +00:00
Sakthivel Velumani
31fb7f3120 Merge branch 'develop' into gnb-threadpool 2021-02-10 14:56:09 +01:00
Sakthivel Velumani
2e0ed038d3 Using only one threadPool for nr-softmodem 2021-02-10 15:45:40 +01:00
luis_pereira87
f4b3a869a6 minor fix at SIB1 decoding 2021-02-10 13:07:04 +00:00
Thomas Schlichter
f59a9360f5 Apply 2 suggestion(s) to 1 file(s) 2021-02-10 13:43:35 +01:00
Thomas Schlichter
13086925c9 Add tests for 80 and 100 MHz SC-FDMA to nr_ulsim autotests for CI 2021-02-10 11:21:40 +01:00
Parminder Singh
9202c583f5 Spaces are corrected, tabs replaced with spaces 2021-02-10 11:10:19 +01:00
Thomas Schlichter
97801299dc some whitespace fixes in openair1/PHY/MODULATION/nr_modulation.c 2021-02-10 09:10:22 +01:00
Thomas Schlichter
75cd4c79d9 update tx_sample_advance for 40 MHz and USRP X300 (3/4 sampling)
Testing RA with OAI gNB and UE both using X300 via PCIe link indicated a value of 15 was way too small.
The correct value for this setup seems to be 65.
2021-02-09 18:09:11 +01:00
Thomas Schlichter
b9e99f1e64 update tx_sample_advance for 10 MHz and USRP X300
Tests with our USRP X300, connected via PCIe, show that tx_sample_advance of 45 is slightly too much.
Unfortunately, transmitting the PRACH preamble too early is very bad, slightly too late is no problem.
So change this value from 45 to 40. This helps receiving the PRACH preamble reliably.
2021-02-09 17:51:33 +01:00
Thomas Schlichter
28f739bb70 add 10 MHz configuration file for USRP X300 2021-02-09 17:50:32 +01:00
Robert Schmidt
54a2d698db Fix build: test for slot from within preprocessor 2021-02-09 16:46:44 +01:00
dir
cfebcd19bd Corrections to 217RBs, 273RB configuration files. RFSIM works with these changes 2021-02-09 17:32:51 +02:00
luis_pereira87
5a1e2b1db7 Add support for SIB1 and SI in BCCH-DL-SCH 2021-02-09 15:32:17 +00:00
dir
d2aa132616 Msg3_transformprecoder value initialised to TRANSFORM PRECODING DISABLED 2021-02-09 15:16:40 +02:00
Florian Kaltenberger
04a4a6f451 Merge remote-tracking branch 'origin/develop' into benetel_driver_update 2021-02-09 11:13:01 +01:00
Florian Kaltenberger
12517f02e2 Reverting shifting the TX 4 bits to the left to exploit dynamic range.
adapted ssb_block_power to measured value

This partially reverts commit 857f9179f3.

Conflicts:
	targets/ARCH/ETHERNET/benetel/5g/benetel.c
2021-02-09 11:10:58 +01:00
dir
3efdb2775e NR SCFDMA changes for higher RB sizes (RB Sizes until 100Mhz) 2021-02-09 11:07:53 +01:00
hardy
665688681b Merge remote-tracking branch 'origin/ue-fixes' into integration_2021_wk06_b 2021-02-09 10:54:58 +01:00
hardy
421cb60fa4 Merge remote-tracking branch 'origin/NR_DLUL_PF' into integration_2021_wk06_b 2021-02-09 10:49:28 +01:00
hardy
bcc009b2f9 Merge remote-tracking branch 'origin/nasmesh_kernel_5.8' into integration_2021_wk06_b 2021-02-09 10:48:57 +01:00
Thomas Schlichter
14e84f8782 Merge remote-tracking branch 'develop' into NR_DL_MIMO 2021-02-09 10:02:54 +01:00
Raphael Defosseux
09230ceb5e CI: forgot to add 5G GNB FDD conf file for RF sim test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-02-09 09:38:23 +01:00
Sakthivel Velumani
d29e09cdb1 Passing tx timestamp through pipeline 2021-02-08 23:59:33 +01:00
rmagueta
2b9d0f95c9 Fix develop merge conflicts in the RA-Msg3 2021-02-08 22:40:23 +00:00
Mahesh
2d58536c52 Phy simulators build error fixed 2021-02-09 02:11:54 +05:30
Sakthivel Velumani
f622bdedf4 Replacing tryPull by pull for L1 rx 2021-02-08 21:15:40 +01:00
rmagueta
5b7ae1228f Fix develop merge conflicts 2021-02-08 19:18:00 +00:00
Sakthivel Velumani
ff05ec89f6 Slot tx compute in ru_thread 2021-02-08 18:23:41 +01:00
Thomas Schlichter
2db2112aee Merge remote-tracking branch 'develop' into NR_FDD_FIX 2021-02-08 18:06:29 +01:00
rmagueta
03b52cec84 Merge remote-tracking branch 'origin/develop' into develop-SA-RA
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_UE/rar_tools_nrUE.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/RRC/NR_UE/rrc_UE.c
2021-02-08 15:17:12 +00:00
Sakthivel Velumani
8902902706 Merge branch 'develop' into ue-fixes 2021-02-08 15:06:17 +01:00
Thomas Schlichter
adc24a797e NR_UE: Add PRACH generation for 10 to 30 MHz (30 kHz SCS) 2021-02-08 14:21:30 +01:00
Thomas Schlichter
c5734aa110 NR_UE: slightly cleanup PRACH generation 2021-02-08 14:21:30 +01:00
Thomas Schlichter
92e654c6fc gNB: Add PRACH reception support for 10 to 30 MHz (30 kHz SCS) 2021-02-08 14:21:30 +01:00
Thomas Schlichter
a676ccbb80 gNB: fix PRACH reception for some configurations and some cleanup 2021-02-08 14:21:30 +01:00
Thomas Schlichter
6e57abc7ae NR_UE: consider sync position (1/8 CP) in initial sync and UL write timestamp 2021-02-08 14:21:30 +01:00
Thomas Schlichter
3eb2b4d7b2 Generalize some frame parameter calculations
Enabling more numerology combinations and 100 MHz support with 3/4 sampling for USRP X300/X310, too.
2021-02-08 14:21:30 +01:00
Thomas Schlichter
3743ead91a Merge remote-tracking branch 'develop' into NR_10MHz 2021-02-08 14:20:20 +01:00
Parminder Singh
222b37ff13 Merge remote-tracking branch 'origin/develop' into ptrs_rrc_config 2021-02-08 14:16:36 +01:00
Mahesh
0e6f1e6ad6 Merge conflicts resolved 2021-02-08 18:05:29 +05:30
Sakthivel Velumani
3380f1a455 send data from MAC to PHY when NDI toggles 2021-02-08 12:49:32 +01:00
Robert Schmidt
b86fdaf59b Revert "Lower UE log level"
This reverts commit 71e297de9d.
2021-02-08 11:20:23 +01:00
Sakthivel Velumani
f4fd79c4d9 First commit
Created 3 threadpools for L1 rx, L1 tx and RU tx processing
2021-02-08 01:06:30 +01:00
Robert Schmidt
9b77575af2 Use the MAX_BWP_SIZE macro everywhere 2021-02-07 10:45:57 +01:00
Robert Schmidt
318c4e0fd7 Skip DL HARQ feedbacks if the timing does not match
As the precedent commit, this commit deals with the realtime problems
that we currently have on the CI bench.

For DL HARQ feedback, nFAPI does not give us the HARQ process ID.
Instead, we have to figure this out "from timing", i.e., if we trigger
PUCCH reception, we will get a message with HARQ if we instructed the
PHY to do so. If we have real-time problems, it seems (I cannot verify:
don't have real time problems) that we do not get the nFAPI message with
HARQ feedback. Thus, we need to skip the HARQ processes that should have
been processed in the past, which happens in this commit.
2021-02-07 10:45:57 +01:00
Robert Schmidt
f23890e0b9 Search correct UL HARQ, don't assert on late slot
At the time of this commit, the CI has realtime issues. This can mean
that the HARQ result is delivered in a delayed fashion. Before this
commit, we were asserting on whether the slot corresponds to the HARQ
process's expected feedback slot, but a particular feedback might be
delayed under realtime issues, and we actually don't care about the
timing since we get the HARQ process ID.

Instead, we loop through the HARQ processes for which we wait for a
feedback in the beginning until we have the right process (which did not
seem to cause a problem till now, but who knows.
2021-02-07 10:45:57 +01:00
Robert Schmidt
423a0e4afe Handle UL HARQ slot wrap around for slot = 0 2021-02-07 10:45:57 +01:00
Robert Schmidt
8bd3ec7602 Fix whitespace issues (review request) 2021-02-07 10:45:57 +01:00
Robert Schmidt
71fd526e12 Remove unused variables 2021-02-07 10:45:57 +01:00
Robert Schmidt
30d13ebf6d Lower various log levels 2021-02-07 10:45:57 +01:00
Robert Schmidt
77203ee989 Fix nr_dlschsim unitary simulator 2021-02-07 10:45:57 +01:00
ChiehChun
a8cc08ace5 Cannot allocate CCE error -> debug message 2021-02-07 10:45:57 +01:00
ChiehChun
8a823d22cf Better format dump_mac_stats() 2021-02-07 10:45:57 +01:00
ChiehChun
c51cb3f40b Enable 2 UL slots 2021-02-07 10:45:57 +01:00
Robert Schmidt
dcd591bd2b Schedule BSR0 UE only one at a time, in round-robin 2021-02-07 10:45:57 +01:00
Robert Schmidt
3b972f6766 ULSCH fix: Only allocate CCEs when necessary 2021-02-07 10:45:57 +01:00
Robert Schmidt
77de70c82f Calculate TBS for coefficient only when needed 2021-02-07 10:45:57 +01:00
ChiehChun
8bf2d1a12f Remove assert of allocate CSI PUCCH 2021-02-07 10:45:57 +01:00
ChiehChun
fde6c46ef1 Remove assertion for single UE 2021-02-07 10:45:57 +01:00
Robert Schmidt
6294ce715e Reorder pf_ul to process retransmission 2021-02-07 10:45:57 +01:00
ChiehChun
14614d74cf Find max coeff & Decrease n_rb_sched 2021-02-07 10:45:57 +01:00
ChiehChun
56831038d0 Check BSR & Create UE_sched for UL new transmission 2021-02-07 10:39:40 +01:00
Robert Schmidt
c8168085dd Calculate UL coefficient 2021-02-07 10:39:40 +01:00
ChiehChun
1b1411727c Calculate UL throughput & Initial ulsch_current_bytes 2021-02-07 10:39:40 +01:00
ChiehChun
cf725a1801 Create find_CCE in primitive 2021-02-07 10:39:40 +01:00
ChiehChun
bec348405b Find the largest contiguos region 2021-02-07 10:39:40 +01:00
ChiehChun
8f988e384d Add pf_ul & pseudo code 2021-02-07 10:39:40 +01:00
ChiehChun
5573b8e18c Change vrb_map_UL to rballoc_mask 2021-02-07 10:39:40 +01:00
ChiehChun
2becbb9210 Verify the same K2 2021-02-07 10:39:40 +01:00
ChiehChun
7da43c95d2 Change pre_precessor_ul type to bool
- To check the current slot is the scheduled slot(UL slot - K2) and
  only execute the post processor in scheduled slot.
2021-02-07 10:39:40 +01:00
ChiehChun
0234015f8e Check slot is DL slot to pre-schedule UL data 2021-02-07 10:39:40 +01:00
ChiehChun
2283e12560 Calculate rbSize from estimated buffer 2021-02-07 10:39:40 +01:00
ChiehChun
c7ffd5740f Add sched_ul_bytes/ulsch_current_bytes & Update in rx_sdu/schedule_ulsch 2021-02-07 10:39:40 +01:00
ChiehChun
4d0a2e4877 Save selected UL HARQ PID in post-processor 2021-02-07 10:39:40 +01:00
Robert Schmidt
4b1be522a5 Add estimated_ul_buffer & Update in DTCH 2021-02-07 10:39:40 +01:00
ChiehChun
989aade7b8 Log lcid default case & pirntout MAC PDU 2021-02-07 10:39:40 +01:00
ChiehChun
21e9339427 Add short/long BSR Table & Log the BSR value 2021-02-07 10:39:40 +01:00
ChiehChun
c316f2fc57 Correct bit ordering in struct NR_BSR_LONG 2021-02-07 10:39:40 +01:00
ChiehChun
a95346d169 Modify the case of truncated BSR 2021-02-07 10:39:40 +01:00
ChiehChun
1ff770ff20 Add CE & BSR pointer 2021-02-07 10:39:40 +01:00
ChiehChun
2b6a651aae Fix LCID of CRNTI for nr UE 2021-02-07 10:39:40 +01:00
ChiehChun
5e226b9e22 Remove assertion for single UE 2021-02-07 10:39:40 +01:00
ChiehChun
3bb4bddc0d Allocate DL new transmission 2021-02-07 10:39:40 +01:00
ChiehChun
a7cb83889a Find max coeff from UE_sched 2021-02-07 10:39:40 +01:00
ChiehChun
6d5634b8ce Check DL buf and Calculate the coeff to create UE_sched 2021-02-07 10:39:40 +01:00
ChiehChun
a3cc9f730b Add dlsch_current_bytes and Calculate throughput 2021-02-07 10:39:40 +01:00
ChiehChun
0dd0f5ce4a Create function for find CCE and retransmission 2021-02-07 10:39:40 +01:00
ChiehChun
13da3d6e8a Create nr_store_dlsch_buffer() 2021-02-07 10:39:40 +01:00
ChiehChun
68b03e9cb6 Create pf_dl function 2021-02-07 10:39:40 +01:00
ChiehChun
3b4ec2c82b Change vrb_map to rballoc_mask 2021-02-07 10:39:40 +01:00
ChiehChun
6c3897d4a7 Save selected DL HARQ PID in post-processor 2021-02-07 10:39:40 +01:00
ChiehChun
9fb45867a1 Initial num_pdcch_cand for multi-UE 2021-02-07 10:39:40 +01:00
Robert Schmidt
75dbf5fa4d Don't log retransmissions explicitly 2021-02-07 10:39:40 +01:00
Raymond Knopp
0496c15d27 Remove PHY HARQ round_trials logs 2021-02-07 10:39:40 +01:00
Cedric Roux
16b9f4ed60 Increase RLC buffer size to 10MB, warn when buffer full 2021-02-07 10:39:40 +01:00
Robert Schmidt
ca47955293 Bugfix: check that retransmission can be allocated 2021-02-07 10:39:39 +01:00
Robert Schmidt
78da8c9345 Save TB in MAC, transmit TX_req also on retx 2021-02-07 10:39:39 +01:00
Robert Schmidt
80e23a179e Enable 12 slots
This commit enables more slots so that the "real UE" preprocessor can
schedule them. The DL phytest preprocessor continues to only schedule
slots 1 & 3.  This is because the OAI-UE needs to have PUCCH scheduled
at least six slots in advance.  Since we do not support this (yet), but
assume that two slots are enough, we schedule the UE only in slot 1 & 3
so it has 6 slots until slot 7 to send PUCCH.
2021-02-07 10:39:39 +01:00
Robert Schmidt
59cb9c87e0 Refactor nr_rx_sdu() 2021-02-07 10:39:39 +01:00
Robert Schmidt
0773229b1a Implement UL HARQ using NR_list_t 2021-02-07 10:39:39 +01:00
Robert Schmidt
a0d47c504c Create lists for UL HARQ management 2021-02-07 10:39:39 +01:00
Robert Schmidt
4ddd45f813 Implement DL HARQ using NR_list_t 2021-02-07 10:39:39 +01:00
Robert Schmidt
42710ee7ba Create lists for DL HARQ management 2021-02-07 10:39:39 +01:00
Raymond Knopp
a3867df5f3 cleanup after removing harq state in L0 2021-02-07 10:39:39 +01:00
Raymond Knopp
ee2ce7670d made L1 DLSCH encoding stateless. harq_pid/round information are not kept in PHY. Full channel encoding is performed for each transmission of a transport block.
Still to be done: test, then cleanup data structures and fix unitary simulations.
2021-02-07 10:39:39 +01:00
Robert Schmidt
d7f46a2ff2 Set RRC nrofHARQ_ProcessesForPDSCH to 16 2021-02-07 10:39:39 +01:00
Robert Schmidt
c9de1c70c0 Set secondaryCellGroup + default values in add_new_nr_ue() 2021-02-07 10:39:39 +01:00
Robert Schmidt
74cb9bf367 Refactor add_new_nr_ue() and mac_remove_nr_ue()
mac_remove_nr_ue(): no need to memset sched_ctrl, since it is done on
connection of a UE
2021-02-07 10:39:39 +01:00
Robert Schmidt
4a0efd6f48 mac_top_init_gNB(): do not init per-UE HARQ
the whole UE_sched_ctrl is initialized in add_new_nr_ue(), which will
also init the per-UE HARQ.
2021-02-07 10:39:39 +01:00
Robert Schmidt
77c7fe5b87 Create more generic NR_list_t with helper functions 2021-02-07 10:39:39 +01:00
Robert Schmidt
338d8debae Bugfix OAI UE: reset slot_for_feedback_ack to initial value 2021-02-07 10:39:39 +01:00
Robert Schmidt
e328a6ccf7 Make multiple passes over RLC to get all data 2021-02-07 10:39:39 +01:00
Robert Schmidt
76d154f07c Do not count down TBS 2021-02-07 10:39:39 +01:00
Robert Schmidt
a18ed9d92d Reorder DLSCH MAC PDU logic
Before this commit, the DLSCH scheduler would construct the MAC PDU by
reading RLC data into a memory on the stack, and then construct the PDU
with CEs first. There are at least two problems:
- we need to keep track of the exact number of bytes of CEs (cumbersome)
  to calculate the number of MAC SDUs to include
- we needlessly copy data around.

This commit does the following instead:
- write all CEs first (no need of keeping track of this in DLSCH and a
  separate function)
- then read MAC SDUs directly into nFAPI as much as possible or
  necessary, without recopying
2021-02-07 10:39:39 +01:00
Robert Schmidt
96e1f3597b Group PDCCH PDU per CC/BWP/CORESET in RA, and reuse in DLSCH 2021-02-07 10:39:39 +01:00
Robert Schmidt
c71412882d nr_schedule_ulsch(): only one PDCCH PDU per BWP and CORESET 2021-02-07 10:39:39 +01:00
Robert Schmidt
a26404c17f nr_schedule_ue_spec(): link TX_data/PDSCH PDU with common PDU index 2021-02-07 10:39:39 +01:00
Robert Schmidt
a6348e8567 nr_generate_Msg2(): link TX_data/PDSCH PDU with common PDU index 2021-02-07 10:39:39 +01:00
Robert Schmidt
28b78ee09c nr_schedule_ue_spec(): only one PDCCH PDU per BWP and CORESET 2021-02-07 10:39:39 +01:00
Robert Schmidt
55c6ce1598 Add small notice that we assume no concurrent RA 2021-02-07 10:39:39 +01:00
Robert Schmidt
089f821dd2 Separate nFAPI PDCCH allocation from nFAPI DCI allocation
According to SCF222, a single PDCCH allocation groups DCIs that are
within the same BWP and CORESET. Therefore, if we want to allocate
multiple DCIs, we need to decouple PDCCH allocation and DCI (previously
jointly done in nr_configure_pdcch()), especially to be forward
compatible.

***Note that as of this commit, we would still allocate different PDCCH
PDUs for multiple UEs (which we do not support yet, anyway)***

nr_configure_pdcch(): simply take out DCI allocation.

nr_generate_Msg2(): separately allocate dci_pdu in common RA SS, and
rename DCI payload variable. Also, reorganize the function so that it is
first checked for CCE allocation and messages nFAPI messages are
allocated afterwards.

nr_schedule_ue_spec(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.

nr_schedule_ulsch(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.

nr_fill_nfapi_dl_sib1_pdu(): separately allocate dci_pdu in common SS.
2021-02-07 10:39:39 +01:00
Robert Schmidt
0655cc481d No DCI PDU array in nr_fill_nfapi_dl_sib1_pdu() 2021-02-07 10:39:39 +01:00
Robert Schmidt
080b776097 No DCI PDU array in nr_schedule_ue_spec() 2021-02-07 10:39:39 +01:00
Robert Schmidt
86b1c0035d No DCI PDU array in nr_generate_Msg2() 2021-02-07 10:39:39 +01:00
Robert Schmidt
db792632c9 Refactor config_uldci() 2021-02-07 10:39:39 +01:00
Robert Schmidt
52ba0e277d Simplify config_uldci(): handle only one DCI 2021-02-07 10:39:39 +01:00
Robert Schmidt
1bf58a4482 Deleted commented code 2021-02-07 10:39:39 +01:00
Robert Schmidt
ccaa5abc55 Reformat fill_dci_pdu_rel15() 2021-02-07 10:39:39 +01:00
Robert Schmidt
0473074acf fill_dci_pdu_rel15(): handle one DCI at a time 2021-02-07 10:39:39 +01:00
Robert Schmidt
0d90ecfd62 Make dci_pdu in PDCCH PDU an array
SCF222 says that dci_pdu in PDCCH PDU
(nfapi_nr_dl_tti_pdcch_pdu_rel15_t) should be an array, and not its
members.
2021-02-07 10:39:39 +01:00
Robert Schmidt
83f7c4be5f Make passed secondaryCellGroup pointer const in prepare_dci() 2021-02-07 10:39:39 +01:00
Robert Schmidt
dc04e8cced Make passed pointers const in nr_dci_size() and get_transformPrecoding() 2021-02-07 10:39:39 +01:00
Robert Schmidt
d0ae11783a Integrate nr_fill_nfapi_dl_pdu() back into nr_schedule_ue_spec()
Initially, filling the PDCCH and PDSCH nFAPI messages was split into a
separate function (in an attempt to keep the code structure similar to
LTE). However, this proved as not helpful: the nr_fill_nfapi_dl_pdu()
just filled the messages, with a parameter list almost size as long as
the actual messages (because most parameters are kind of independent).
This made no sense, so we put it back.

Also, from an understanding POV, they just fill a message as specified
in SCF222, so it should not be a problem.
2021-02-07 10:39:39 +01:00
Robert Schmidt
71e297de9d Lower UE log level 2021-02-07 10:39:39 +01:00
Robert Schmidt
8f399a1c9e Disable logging of PUCCH 2021-02-07 10:39:39 +01:00
Robert Schmidt
a69ec6669a Assert on maximum number of used PUCCH resources 2021-02-07 10:39:39 +01:00
ChiehChun
62c58bd722 Use correct pucch_index_used 2021-02-07 10:39:39 +01:00
Robert Schmidt
943d55717e Scheduler: introduce BIT() macro 2021-02-07 10:39:39 +01:00
Robert Schmidt
614b2c1951 DLSCH: do not check for slot number 2021-02-07 10:39:39 +01:00
Robert Schmidt
aa948f707a Deallocate CCE if PUCCH allocation fails 2021-02-07 10:39:39 +01:00
Robert Schmidt
ac5ac8dd25 Clarify assumptions in nr_acknack_scheduling() 2021-02-07 10:39:39 +01:00
Robert Schmidt
1c75496ffa nr_schedule_pucch() for multiple UEs 2021-02-07 10:39:39 +01:00
Robert Schmidt
7879e6ad32 Remove (unnecessary) num_slots_per_tdd in DLSCH sched 2021-02-07 10:39:39 +01:00
Robert Schmidt
2225cd26fe Handle multiple TDD periods 2021-02-07 10:39:39 +01:00
Robert Schmidt
551b08c315 Skip CSI if present 2021-02-07 10:39:39 +01:00
Robert Schmidt
75f8591b9b Handle PUCCH frame/period wrap around 2021-02-07 10:39:39 +01:00
Robert Schmidt
d281e41a50 Assert on TDD period "wrap around" 2021-02-07 10:39:39 +01:00
Robert Schmidt
91fd4ddf7e rewrite nr_acknack_scheduling() 2021-02-07 10:39:39 +01:00
Robert Schmidt
c5968599b2 Add nr_fill_nfapi_pucch(): allocate PUCCH nFAPI message 2021-02-07 10:39:39 +01:00
Robert Schmidt
7a9ad3dbf7 Keep track of used PUCCH resources 2021-02-07 10:39:39 +01:00
Robert Schmidt
94d8147ece nr_csi_meas_reporting() for multiple UEs 2021-02-07 10:39:39 +01:00
Robert Schmidt
5a2caa5475 Refactor nr_csi_meas_reporting(): check only in slot 0 2021-02-06 20:50:28 +01:00
Robert Schmidt
b6ebdc2fab Refactor nr_get_csi_bitlen() 2021-02-06 20:50:28 +01:00
Robert Schmidt
49c7dbf214 Use three fields 2021-02-06 20:50:28 +01:00
Robert Schmidt
171f7842bc Rewrite PUCCH allocation (simplified, restricted)
- No dynamic allocation of PUCCH structures
- Use first PUCCH for HARQ (can only allocate for up to two slots in
  single PUCCH, simplistic nr_acknack_scheduling!)
- Use second PUCCH for CSI, do not multiplex!
2021-02-06 20:50:28 +01:00
Robert Schmidt
4e91f44839 Rename NR_sched_pucch to NR_sched_pucch_t 2021-02-06 20:50:28 +01:00
Robert Schmidt
a19a15cfb7 Enable logging of PUCCH 2021-02-06 20:50:28 +01:00
Francesco Mani
868f55513f rnti in pucch 0 indication 2021-02-06 20:50:28 +01:00
Raphael Defosseux
403db5f66e CI: adding conditional stages in the parent pipeline based on labels in Merge Requests
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-02-06 19:03:15 +01:00
Raphael Defosseux
0aff489c75 * MR 1027: SIB1 update
Update in SIB1 implementation to solve REG to CCE mapping issues and also correction in pdcch RE extraction when BWP_start>0.

* MR 1031: LTE/NR X2AP: fix content of SgNBAdditionRequest
Wireshark (version 3.3.2) was not happy. https://asn1.io/asn1playground/ was not happy.

* MR 1036: LTE ULSCH bugfix
Minor fix in the UL scheduler

* MR 1008: NR SA ITTI sim update for core connectivity
Updates for connections to 5G core node using ITTI sim. Usage documentation have also been added.

* MR 1025: Cleanup NR RA procedure - mostly UE
2021-02-06 14:25:07 +01:00
Cedric Roux
b7ea4e0f6d benetel 5g: support for two antennas 2021-02-05 16:48:30 +01:00
Raphael Defosseux
2a45e3199b CI: adding FDD mode to 5G RF sim test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-02-05 13:58:24 +01:00
hardy
663dd1251c Merge remote-tracking branch 'origin/NR_RA_cleanup' into integration_2021_wk05 2021-02-05 12:00:38 +01:00
hardy
5d832308c6 Merge remote-tracking branch 'origin/NR_SA_itti_sim_wk48' into integration_2021_wk05 2021-02-05 11:43:54 +01:00
Mahesh
a169d46415 L2-nfapi error fix 2021-02-05 14:17:36 +05:30
Thomas Schlichter
9c4714fd25 NR_UE: re-introduce mcs check for DCI format 0_0 and 0_1 2021-02-04 19:51:58 +01:00
Thomas Schlichter
ea0d24b935 NR_UE: discard DCI with bwp_indicator != 1
Even stricter check/hack for BWP ID.
Drop every DCI where this value is not '1'.
2021-02-04 19:27:56 +01:00
Cedric Roux
a9f57407c7 benetel 4g: support two antennas 2021-02-03 17:07:18 +01:00
masayuki.harada
4f73692eb1 Merge remote-tracking branch 'remotes/origin/develop_SA_L3' into NR_SA_itti_sim_wk48 2021-02-03 22:37:25 +09:00
Thomas Schlichter
8b00361f56 fix warnings identified by CI 2021-02-03 10:50:38 +01:00
Thomas Schlichter
6add9968a8 Merge branch 'develop' into 'nasmesh_kernel_5.8'
# Conflicts:
#   openair2/NETWORK_DRIVER/MESH/device.c
2021-02-03 09:42:54 +01:00
Mahesh
1953e891ab L2-nFAPI config error resolved 2021-02-03 12:32:33 +05:30
Xue Song
6a3b7b40a5 Merge branch 'master' into develop_SA_L3
Conflicts:
	openair2/GNB_APP/gnb_config.c
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/rrc_UE.c
2021-02-03 14:58:07 +09:00
rmagueta
c4ccc66169 Log SIB1 decoded 2021-02-02 18:12:11 +00:00
rmagueta
f7649fb472 Merge remote-tracking branch 'origin/develop-sib1-update-ue' into develop-SA-RA
# Conflicts:
#	openair2/RRC/NR_UE/rrc_UE.c
2021-02-02 17:57:55 +00:00
rmagueta
9b24e1fbfa Merge branch 'develop' into develop-SA-RA 2021-02-02 17:40:22 +00:00
rmagueta
b654e282dd Minor code clean up 2021-02-02 15:10:51 +00:00
rmagueta
1717c1c6ab PDCCH add support for search space candidate_idx > 0 2021-02-02 14:48:18 +00:00
hardy
c00b44028b Merge remote-tracking branch 'origin/develop-sib1-update' into integration_2021_wk05 2021-02-02 15:40:22 +01:00
hardy
1d6eea64a4 Merge remote-tracking branch 'origin/bugfix-x2-SgNBAdditionRequest' into integration_2021_wk05 2021-02-02 15:39:38 +01:00
hardy
320b43c462 Merge remote-tracking branch 'origin/lte-ulsch-bugfix' into integration_2021_wk05 2021-02-02 15:38:54 +01:00
dir
82d40a654c Transform precoding related changes 2021-02-02 13:19:42 +01:00
rmagueta
76b974508b Merge branch 'develop' into develop-sib1-update-ue
# Conflicts:
#	cmake_targets/CMakeLists.txt
2021-02-02 12:10:12 +00:00
He Shanyun
c90699c7d8 fix issue about Reestablishment Reject 2021-02-02 17:29:30 +09:00
Khodr Saaifan
283a060497 Allow gNB to read pusch_AntennPorts from config file 2021-02-02 09:02:19 +01:00
Mahesh
a8248b2386 Config file changes reverted 2021-02-02 12:21:53 +05:30
Mahesh
ae422aca1f Merge conficts resolved 2021-02-02 09:36:49 +05:30
luis_pereira87
7700e61861 Fix Tables 7.4.1.1.2-1/2 from 38.211 2021-02-01 21:04:14 +00:00
luis_pereira87
6885668273 Fix AssertFatal in replay_node when file size is not a multiple of block size 2021-02-01 20:55:58 +00:00
cig
682f868c94 Reduced output logging in UE RF configuration for unused channels 2021-02-01 16:52:53 +01:00
cig
aecf2dfa13 Hack to make FDD compatible with current UL scheduling design
- temporary solution since scheduler does not support FDD
- modified is_NR_UL_slot to return always 1 when is FDD mode
- this is necessary because currently the scheduler assumes that is TDD
  and tdd_UL_DL_ConfigurationCommon is always initialied
2021-02-01 16:52:53 +01:00
Sakthivel Velumani
c9dcff3d7e Merge branch 'develop' into ue-fixes 2021-02-01 16:07:58 +01:00
Sakthivel Velumani
f44dc35bfd Reducing RX gain at gNB
1. Changed rx gain at gNB from 75 to 50. PUCCH works again with OAI-UE.
2. Disabling MAC layer retransmission logs.
2021-02-01 16:00:33 +01:00
Thomas Schlichter
ad2b04c1d1 fix compile warning by removing unused variable 'nb_antenna_ports' 2021-02-01 15:00:46 +01:00
Khodr Saaifan
d7facef8a4 Back to SISO mode 2021-02-01 15:00:23 +01:00
Khodr Saaifan
88f293d3ba clean up nr_dlsch_demodulation, solve bug in nr_rb_extract to consider data/dmrs multiplexing/no data, and remove ra_pdsch hack in phy_procedures_nr_ue 2021-02-01 14:59:56 +01:00
Khodr Saaifan
3fdb550909 reconfigure dmrs_type 1 for RA and phy_test mode 2021-02-01 14:59:56 +01:00
Khodr Saaifan
dfe4bf4a30 Remove dependency of pdsch_Antennports and gNB num_rx_antenna (hardcoded in this commit) 2021-02-01 14:59:56 +01:00
Khodr Saaifan
9e8f0055ef Bug in PUSH when config.num_rx_antis equal to config.num_tx_ant 2021-02-01 14:59:56 +01:00
Khodr Saaifan
fd8cf7769c Modify and fix nr_dlsim to support 4*4 MIMO with 1 layer 2021-02-01 14:59:56 +01:00
Khodr Saaifan
e4370cc30b remove printf in nr_zero_forcing receiver 2021-02-01 14:59:56 +01:00
Khodr Saaifan
53046a9289 add zero forcing receiver for 2 tx layers and 2 or 4 rx antennas for PDSCH 2021-02-01 14:59:56 +01:00
Khodr Saaifan
812dc116f7 MIMO 4x4 with 1 layer test commit 2021-02-01 14:58:59 +01:00
Khodr Saaifan
0f55139dc6 Extend nr_dlsch demoulation to support multiple Rx antennas with MRC 2021-02-01 14:47:31 +01:00
Khodr Saaifan
b962cc94ce Add rb extract to support multiple tx layers feature for MIMO mode 2021-02-01 14:47:31 +01:00
Khodr Saaifan
4b541b444d Extend the UE side to support 4 Rx antennas 2021-02-01 14:46:51 +01:00
Sakthivel Velumani
d973db9273 Fix for dlsch issue on caracal
1. Reducing rx gain at UE. Existing gain seems to saturate the receiver with full bw allocaiton.
2. Setting different dlsch bitmap for phytest mode.
2021-02-01 13:47:45 +01:00
Sakthivel Velumani
a25309363a Enabling a log for CI purpose 2021-02-01 13:41:53 +01:00
yoshio.inoue
7772e5c3b2 Merge remote-tracking branch 'fjt_dev/develop_SA_L3' into NR_SA_itti_sim_wk48 2021-02-01 21:38:25 +09:00
yoshio.inoue
c49220610d add TODO comments 2021-02-01 21:19:04 +09:00
Parminder Singh
58b36aa222 Added PTRS RRC config validation for DL/UL-SIM uni tests 2021-02-01 13:02:25 +01:00
Cedric Roux
94dad700c4 lte/nr x2ap: fix content of SgNBAdditionRequest
Wireshark (version 3.3.2) was not happy.
https://asn1.io/asn1playground/ was not happy.

Let's make them happy.

So then everyone is happy.
2021-02-01 11:48:44 +01:00
Florian Kaltenberger
857f9179f3 shifting also the TX 4 bits to the left to exploit dynamic range. adapted ssb_block_power but proper calibration still necessary. 2021-02-01 10:24:22 +01:00
Florian Kaltenberger
a5b5d6f9b0 fixing RRC power levels at 5G side to avoid saturation 2021-02-01 10:24:22 +01:00
Florian Kaltenberger
0f57529b48 fixing benetel4g driver by setting ru->has_ctrl_prt =1 and thus starting the RU control thread, which is required for the 4G RRU. In the future we should revisit this and harmonize with the 5G version. 2021-02-01 10:24:22 +01:00
Khodr Saaifan
d4bd15f5ad increase CirSize to avoid overflow in the case of multi-transmit antennas for gNB 2021-02-01 10:12:38 +01:00
Khodr Saaifan
0ae83fac6d Fix dl PDSCH channel estimation to support multi-port channel estimation 2021-02-01 10:12:38 +01:00
Khodr Saaifan
bd31209f79 remove dependency of PDSCH antenna number from PUSCH Rx antenna number 2021-02-01 10:09:30 +01:00
Khodr Saaifan
74009a7200 Enable dmrsConfigType2 for pdsch 2021-02-01 10:09:30 +01:00
Khodr Saaifan
03803a12f2 Debug: add more VCD functions to trace UE timing 2021-02-01 10:09:30 +01:00
Khodr Saaifan
58f4f155cc Enable beamforming for 2 tx antenna ports and fix corresponding segmentation error 2021-02-01 10:06:08 +01:00
Khodr Saaifan
e72d0483b4 Add PDSCH precoder functions, fix pusch_rx for 2 rx antennas, fix nr_dlsim for 2x1 MIMO simulation 2021-02-01 10:06:08 +01:00
Wu.Jing
37f0198944 Revert "remove the commented code from rrc_gNB.c"
This reverts commit 15caed4d54.
2021-02-01 16:02:47 +09:00
Wu.Jing
c20fae1dea Merge branch 'develop_SA_SIM' into develop_SA_L3 2021-02-01 14:58:51 +09:00
He Shanyun
150221536c change output format for ran ue ngap id 2021-02-01 14:08:19 +09:00
Xue Song
a85f261b54 add license text
fix some problems
2021-02-01 13:59:56 +09:00
yincong
15caed4d54 remove the commented code from rrc_gNB.c 2021-02-01 12:27:37 +09:00
Sakthivel Velumani
a241df5006 Fixed compile warnings 2021-01-31 17:35:08 +01:00
Thomas Schlichter
bca9f74e66 Merge remote-tracking branch 'develop' into NR_RA_cleanup 2021-01-29 18:52:37 +01:00
Remi Hardy
3b2d50374a Integration 2021 wk04
MR1006 : itti enhancement
-new feature: creates itti queue during runtime 
-modified itti message instance

MR1012 : 5G NR: UL transform precoding (SC-FDMA)

MR1022 : Wireshark t hack ueid

MR997 : LTE uplink improvement
-LTE update about uplink performance improvement and some bug fixes from Fujitsu.
-Fix uplink calculation error in SCD and PHY layer.
-Add interference calculation for PUSCH.
-Update TPC control.
-Fix nFAPI hang-up
-Fix DRB is non active after Re-establishment.
-Msg3 PHICH problem.
-Add statistical logs.


MR1030 : CI RHEL container update
-CI adaptation to build the shared and target images on asterix and obelix Python framework

MR1023 : ci ue parallel
-Enables OAI UE parallelization in CI tests (where applicable)
2021-01-29 16:39:29 +01:00
Sakthivel Velumani
0eb2e06725 Moved pusch thread parameter to L1 in config file 2021-01-29 13:14:14 +01:00
cig
5a9014e960 Review of MR 1025
- bugfix in nr_ue_dci_configuration
- cleanup of irrelevant RA-related data structure members in UE
- moved msg1 init condition to MAC
- minor fixes concerning init_ra function
2021-01-29 12:44:28 +01:00
francescomani
8af407250d Merge remote-tracking branch 'origin/develop' into NR_10MHz 2021-01-29 12:16:43 +01:00
Parminder Singh
87ada84106 created a new conf file for PTRS testing
- removed default PTRS values from default conf file.
2021-01-29 10:50:48 +01:00
Robert Schmidt
f1cb44a005 Bugfix: decrease actual MCS value 2021-01-29 09:31:56 +01:00
hardy
099d40527a Merge remote-tracking branch 'origin/rh_ci_ue_parallel' into integration_2021_wk04_b 2021-01-29 07:42:43 +01:00
hardy
044f665730 Merge remote-tracking branch 'origin/ci-deploy-asterix' into integration_2021_wk04_b 2021-01-29 07:42:15 +01:00
hardy
5db5657df7 Merge remote-tracking branch 'origin/lte_uplink_improvement' into integration_2021_wk04_b 2021-01-29 07:41:47 +01:00
hardy
4a263eb69d Merge remote-tracking branch 'origin/wireshark-T-hack-ueid' into integration_2021_wk04_b 2021-01-29 07:41:11 +01:00
hardy
6e12f8f8d3 Merge remote-tracking branch 'origin/nr_ul_scfdma' into integration_2021_wk04_b 2021-01-29 07:40:42 +01:00
hardy
9c810b311d Merge remote-tracking branch 'origin/itti-enhancement' into integration_2021_wk04_b 2021-01-29 07:40:07 +01:00
hardy
62aec337bf Merge remote-tracking branch 'origin/flexran-repair-mme-mgmt' into integration_2021_wk04_b 2021-01-29 07:39:49 +01:00
rmagueta
62bc47c820 Minor update in SIB1 contents. do_SIB1_NR() only if SA. 2021-01-28 16:04:41 +00:00
Thomas Schlichter
92cb99b201 NR_UE: Add some more LOG_W() in case of ignoring DCI. 2021-01-28 10:14:44 +01:00
Thomas Schlichter
ac1bc7025b NR_UE: discard DCI with bwp_indicator == 0
Recently we stared using the BWP_indicator signalled in DCI, before we always assumed BWP_Id == 1.
Now "fake-DCI" with bandwidth_indicator == 0 lead to segmentation faults, so we discard these.
Note: There are still several placed where we assume BWP_Id == 1!
2021-01-28 09:36:00 +01:00
Thomas Schlichter
60471dd179 NR_UE: change message when RA succeeded, so CI recognizes it again 2021-01-28 09:33:47 +01:00
Xue Song
36487515c4 fix double definition in rrc_gNB_NGAP.c and nr_ngap_gnb.c 2021-01-28 14:20:35 +09:00
Thomas Schlichter
3eb04ffcf7 move unreachable LOG_D() in NR_IF_Module.c
Code between a 'switch' statement and its first 'case' statement is not reachable!
So move the LOG_D() statement just before the 'switch' statement.
2021-01-27 12:05:34 +01:00
zhenghuangkun
3123d951be Fix reestablishment 2021-01-27 17:17:05 +09:00
Mahesh
ca74163cdd OCP build errors resolved. 2021-01-27 11:34:52 +05:30
Raphael Defosseux
747695e476 CI: fix string formatting for python3.5
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-01-26 09:51:59 +01:00
rmagueta
6e917c539f Fill SIB1 with more contents 2021-01-25 23:18:35 +00:00
Sakthivel Velumani
e913e2ebc8 disabling logs 2021-01-25 17:05:16 +01:00
Thomas Schlichter
f32297fefa fix cppcheck warnings 2021-01-25 14:32:32 +01:00
Thomas Schlichter
729adbcd4e fix nr_prachsim phy-simulator 2021-01-25 14:28:50 +01:00
Thomas Schlichter
aafe94c556 move definitions from defs_nr_UE.h back to nr-ue.c to fix compilation of LTE UE 2021-01-25 13:59:21 +01:00
Mohammed Ismail
c9e08d030b CI: html tab extention to add more details on built shared and target images
fix ssh connection when remote server has public key

Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2021-01-25 11:06:22 +01:00
Sakthivel Velumani
f6a502ada2 fixes
some more fixes that are missed out in previous commits
2021-01-25 11:03:37 +01:00
luis_pereira87
583d2cc0d4 Fix for NR_MAX_PDCCH_AGG_LEVEL 2021-01-24 12:14:48 +00:00
rmagueta
73b34936be Update MAX_DCI_CORESET to 16 as in 3GPP Rel 15 2021-01-23 20:16:05 +00:00
rmagueta
094f21a165 Fix REG to CCE mapping at UE 2021-01-23 18:40:30 +00:00
rmagueta
e2df86be88 Fix PDCCH extract RBs 2021-01-23 15:54:16 +00:00
rmagueta
70938bb907 Fix REG to CCE mapping at gNB 2021-01-22 17:18:37 +00:00
Sakthivel Velumani
3a1de4c879 Flaging that HARQ feedback has been sent
so that in the next frame when the same harq is not used the UE won't send feedback (this was a bug)
2021-01-22 15:50:44 +01:00
Sakthivel Velumani
3858af320f Write to USRP only when needed in TDD 2021-01-22 15:48:34 +01:00
hardy
d7220cee37 parameters typo in xml 2021-01-22 15:25:43 +01:00
Mohammed Ismail
15ee2bf2c4 [CI] adapted to build the image on asterix and obelix
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2021-01-22 13:57:41 +01:00
Thomas Schlichter
df06b67d1e reduce logging output 2021-01-22 12:26:59 +01:00
Thomas Schlichter
a9bfdb2d6e NR_UE: use 'do_ra' instead of 'mac_enabled' to enable RA procedure 2021-01-22 12:09:04 +01:00
Thomas Schlichter
220c5b2ddf make sure MAC is enabled in nr-uesoftmodem 2021-01-22 12:06:41 +01:00
rmagueta
9e9a032f6b Fix in the msg3 transmission for the RA 2021-01-21 20:10:23 +00:00
herlesupreeth
c59a99ceea NASMESH: support for kernel version >= 5.6.0 2021-01-21 19:18:35 +01:00
Thomas Schlichter
1cb657accc mention support for SC-FDMA in FEATURE_SET.md 2021-01-21 18:51:26 +01:00
Thomas Schlichter
c107b9b756 Merge remote-tracking branch 'develop' 2021-01-21 18:28:33 +01:00
hardy
9ea9a9bc02 adding ue parallelization to get rid of real time errors 2021-01-21 13:47:47 +01:00
Laurent Thomas
eddebae1e4 fix after code review 2021-01-21 13:47:18 +01:00
Cedric Roux
40f985a957 macpdu2wireshark: add UE id into scheduling request logging
Same logic as previous commit, same caveats.
2021-01-21 11:44:28 +01:00
Cedric Roux
23b24a3c8a T tracer macpdu2wireshark: add UE id
There was a problem with several UEs in the wireshark log. It seems that
wireshark needs the UE id otherwise it gets confused and sees retransmissions
where it's just another UE connecting and doing the same as a previous
UE.

Let's put kind of a UE id. Each RNTI seen by macpdu2wireshark gets an UE id
assigned the first time it's seen in a trace.

This is a bit hackish but seems to be fine.

We could have added UE_id in all the traces, that is change the T() calls
in the softmodem. It was less work to do it as it is, ie. only touch
macpdu2wireshark.c.

The RAR uses the same UE id all the time, may be a problem. To be refined
if needed.
2021-01-21 11:29:29 +01:00
Cedric Roux
4344b9108e macpdu2wireshark: trace scheduling requests
You need a recent version of wireshark for this to work properly.
Successfully tested with 3.3.2.
2021-01-21 11:26:02 +01:00
rmagueta
ee3f939692 Fill msg3 for the RA 2021-01-20 23:57:31 +00:00
Thomas Schlichter
f1653c5f73 fix build of phy_simulators 2021-01-20 18:04:28 +01:00
cig
e8989b2015 Moved UE UL scheduling functions to new MAC file
- this commit was necessary because the location of the MAC UE
  functions does not reflect the context in which they are used
- therefore all UL scheduling-related functions have been moved
  to a new nr_ue_scheduler.c file
- and the irrelevant file rar_tools_nrUE.c has been deleted
  (nr_ue_process_rar moved to nr_ue_procedures)
- the new locations are supposed to make the file and functions
  organisations more structured and cleaner
2021-01-20 14:59:52 +01:00
cig
9f6a8da0ac UE UL scheduling review
- new data structure RAR_grant_t to handle RAR grant
- new common ul scheduler function
- new common ul pdu configuration function handling ul grants
- new function to fill ul_config_request
- moved pdu configuration code from process dci function
- merged procedures for Msg3 and PUSCH together in nr_ue_scheduler
- the same functions are now handling both PUSCH and Msg3
- relying on ul_config (no more RA Msg3 frame and slot storage)
- done some cleanup and logging in the process
2021-01-20 14:18:04 +01:00
yoshio.inoue
6bd2aab1f5 Merge remote-tracking branch 'fjt_dev/develop_SA_L3' into NR_SA_itti_sim_wk48 2021-01-20 10:36:15 +00:00
He Shanyun
e4ff0d5b31 Merge remote-tracking branch 'remotes/origin/master' into develop_SA_L3 2021-01-20 01:51:32 +00:00
Mahesh
35692639d7 Code cleanup 2021-01-19 10:45:19 +05:30
rmagueta
681706b6da Define RA_trigger 2021-01-18 20:11:51 +00:00
rmagueta
f93413e132 Define trigger_RA_List 2021-01-18 16:08:30 +00:00
rmagueta
9c71e941dd Trigger RA after SIB1 reception 2021-01-18 12:41:09 +00:00
Mahesh
b1a760a61d Addressed some minor issues 2021-01-18 15:42:53 +05:30
masayuki.harada
1d414412a0 Merge remote-tracking branch 'remotes/origin/develop_SA_L3' into NR_SA_itti_sim_wk48 2021-01-18 14:29:12 +09:00
He Shanyun
b425e6f495 fix cppcheck error and warning 2021-01-16 12:04:00 +09:00
Thomas Schlichter
e3ac0404a7 fix printf() formats for unsigned integers in nr_ulsim 2021-01-15 17:09:28 +01:00
cig
35c4f94e1d Introduced a new function to retrieve the transformPrecoding status
- this return whether the transform precoder is enabled or not
- redundant configuration code has been migrated to the new function
- get_transformPrecoding is a common MAC function used already
  @ UE side, can be adopted by gNB too
2021-01-15 16:53:15 +01:00
cig
c99c04314d Moved code to retrieve RNTI type to a new function @ UE
- this will be later be necessary in DCI procedures which are dependent on
  the RNTI type
2021-01-15 16:53:15 +01:00
cig
fcd77ea1da Review Msg3 tranmission
- now transmitting resetting Msg3 slot and frame to -1 after transmission
- cleanup in Msg3 scheduling
- checked Msg3 pdu configuration against the 3GPP specs
2021-01-15 16:53:15 +01:00
cig
70028ba492 Fixed inconsistencies in the type of dci_format @ NR UE 2021-01-15 16:53:15 +01:00
cig
7946a0bdf1 Fixed warnings related to unused variables @ NR UE 2021-01-15 16:53:15 +01:00
cig
0f809dd4a2 Migration of UE MAC RA-related members to a new data struct
- new data struct is RA_config_t
- all RA-related members have been moved to the new struct
- static variables have been migrated too
2021-01-15 16:53:15 +01:00
cig
73fbbf50ed Cleanup MAC header files
- sorted out according to recurring logic that wants function
  prototypes in separate files from data struct and constants
  definitions, variables in separate .c files with inclusion
  of "extern" header files
- moved function prototypes to resective header files
- moved data structures and constants to respective header files
- merged unnecessary mac.h file into mac_defs.h @ MAC UE
- moved const variables suchs as tables to respective .c files
- moved extern references to respective extern.h files
2021-01-15 16:53:15 +01:00
cig
f09ee3e526 Cleanup and review of RA procedure after Msg3 transmission
- related to section 5 of 3GPP TS 38.321 specs
- handling of RA failure
- handling of RA completion
- first implementation of contention-based RA procedures
- minor fixes related to ue_get_rach and init_ra functions
2021-01-15 16:53:15 +01:00
cig
2e8e9b7dcf UE power measurements fixes
- RA preamble power computation review
- RSRP review
- PCmax computation
- Pathloss computation
- cleanup of reference to LTE
- minor fixes
2021-01-15 16:53:06 +01:00
Mahesh
868e40e19b Resolved errors due to merge 2021-01-15 19:30:41 +05:30
Thomas Schlichter
7e93eef40c fix unsigned/signed warning regarding nr_(i)dft 2021-01-15 14:55:38 +01:00
Thomas Schlichter
691ad0bba0 Merge remote-tracking branch 'develop' into nr_ul_scfdma
Conflicts:
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2021-01-15 14:54:37 +01:00
Mahesh
185fcbf7fe Merged latest commit(MR957) 2021-01-15 18:53:02 +05:30
Remi Hardy
951fdfef7e MR957 : rlc v2: implement SOstart/SOend in NACK reporting
If we NACK without SOstart/SOend then the other end of the RLC channel will consider all the bytes as NACKed and will have to resend them all. 
If another status is then reported before all the bytes are sent, and because we don't use SOstart/SOend this status will NACK all the bytes again, then all the bytes are to be sent again. 
And the cycle repeats. It will end with a max retx reached (which triggers RLF, Radio Link Failure).

MR1010 : NR UE: Fix for error message - no active DLSCH
- Fixes for the following error message at UE: [PHY] [UE][FATAL] nr_slot_rx 1: no active DLSCH

MR994 : Cleanup softmodem main
- Introduces --dlsch-parallel command line option to set the number of threads for dlsch decoding. If set to 0 (default) no parallelization. 
- Some cleanup in tracing and in nr-uesoftmodem.c data.

MR999 : NR FR2 RA
- Temporary Fix of RA procedure for FR2 (both gNB and UE)
- Fixes in gold sequence initialization at UE
- Moves 2nd downlink to slot 3 instead of 2 to avoid clash with UL DCI (only 1 candidate per slot in FR2 currently)

MR988 : SIB1
Initial implementation of SIB1
2021-01-15 10:29:53 +01:00
hardy
213c948d84 Merge remote-tracking branch 'origin/develop-sib1' into integration_2021_wk02_wMR988
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
2021-01-14 13:17:19 +01:00
Mahesh
d7ccdbe6b0 Resolved build warnings(25+) and 5G nFAPI downlink errors(future_ul_tti_request) 2021-01-14 12:28:45 +05:30
Shweta Shrivastava
f9e2d12e1c Fix phy sim build errors 2021-01-11 15:16:29 -06:00
cig
cd36314de9 Cleanup MAC UE of unused struct members 2021-01-11 18:36:43 +01:00
cig
ad230dcc31 UE Msg2 reception review
- enhancement of DL indication flow for Msg2 (RAR)
- merging interface procedures to handle DLSCH and RAR together
- better separation of MAC and PHY functionalities
- cleanup of double ambiguous functions to process RAR
- merging functions to process TA command into the ue_ta_procedures function
- enhancement of logging and formatting in the process
2021-01-11 18:36:43 +01:00
cig
b7e9a1b1c3 Cleanup of long-time unused nr_ue_process_dlsch 2021-01-11 18:36:43 +01:00
cig
3e893b0dfe Review of UE DL indication
- moved fill_dl_indication to phy procedures
- introduced a new function to fill the RX indication
- replaced redundant configuration code with the fill functions
- extended the function to fill the rx indication
- handling different dl pdus types
- cleanup of redundant code
2021-01-11 18:36:37 +01:00
hardy
e5aabd88c2 Merge remote-tracking branch 'origin/cleanup_softmodem_main' into integration_2021_wk02 2021-01-11 14:54:04 +01:00
hardy
fe7a5a2dbd Merge remote-tracking branch 'origin/NR_FR2_RA' into integration_2021_wk02 2021-01-11 14:53:36 +01:00
hardy
1cff771937 Merge remote-tracking branch 'origin/NR_UE_dlsch_bugfix' into integration_2021_wk02 2021-01-11 14:52:40 +01:00
hardy
df88b0493e Merge remote-tracking branch 'origin/rlc-v2-bugfix-status-reporting' into integration_2021_wk02 2021-01-11 14:51:18 +01:00
Laurent
3b0c43c04b fix memory allocation error 2021-01-10 21:41:22 +01:00
Laurent
0dab0871c5 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into itti-enhancement 2021-01-10 12:33:10 +01:00
francescomani
50aa4607d7 Merge branch 'NR_FR2_RA' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RA 2021-01-09 17:07:03 +01:00
francescomani
6995eef871 moving initialization of msg3 frame and slot 2021-01-09 17:06:59 +01:00
rmagueta
ab107c98dd Fix RA BWP at UE 2021-01-09 15:58:54 +00:00
Shweta Shrivastava
9601c7a77c Further changes to resolve merge conflict 2021-01-08 13:49:21 -06:00
Shweta Shrivastava
1cfb528374 Resolve merge conflicts 2021-01-08 13:21:14 -06:00
frtabu
a81f429c1f Merge branch 'cleanup_softmodem_main' of https://gitlab.eurecom.fr/oai/openairinterface5g into cleanup_softmodem_main 2021-01-08 18:26:23 +01:00
Shweta Shrivastava
729182f57e Use PTRS params from RRC at MAC; remove hardcoding 2021-01-08 11:19:29 -06:00
frtabu
6ec065fe2a add tpool thread name parameter, review fixes 2021-01-08 18:19:29 +01:00
Thomas Schlichter
41f319b02a add test cases for UL transform precoding (SC-FDMA) 2021-01-08 17:26:38 +01:00
Wang
b403567074 Update nr_gold_ue.c 2021-01-08 10:50:56 +01:00
frtabu
cbdfc1c933 add tpool thread name parameter, fi init 2021-01-08 01:22:23 +01:00
rmagueta
8bd539025b Minor correction 2021-01-07 23:00:07 +00:00
Shweta Shrivastava
41c55be847 Fix for error message - no active DLSCH 2021-01-07 13:40:22 -06:00
rmagueta
9544a181ea Merge remote-tracking branch 'origin/develop' into develop-sib1 2021-01-07 18:29:04 +00:00
rmagueta
223c8b9ad9 Fix REG mapping type for coreset0 2021-01-07 18:28:17 +00:00
Thomas Schlichter
d99099f316 Merge remote-tracking branch 'develop' into NR_FR2_RA
Conflicts:
	openair1/PHY/NR_REFSIG/nr_gold_ue.c
2021-01-07 17:00:13 +01:00
yoshio.inoue
a011f33251 Merge remote-tracking branch 'fjt_dev/develop_SA_L3' into NR_SA_itti_sim_wk48 2021-01-07 10:03:27 +00:00
Wu.Jing
f22a779881 Merge branch 'master' into develop_SA_L3 2021-01-07 13:55:40 +09:00
rmagueta
a6a56d23cb Fix in coreset0 transmission slot calculation 2021-01-06 14:39:09 +00:00
masayuki.harada
674339237f Add handling of error case. 2021-01-06 20:20:22 +09:00
masayuki.harada
27413fc4fc Fix merge miss. 2021-01-06 20:13:02 +09:00
Haruki NAOI
cf41c788d6 fix s1ap stack overflow.
(cherry picked from commit f6b51079021347c19d528200f04d7cdba1dde0e5)

# Conflicts:
#	openair3/S1AP/s1ap_eNB.c
2021-01-06 19:53:32 +09:00
Wu Jing
4a14c4c706 fix build waning
(cherry picked from commit 624fe21f52117959940066a6cfc5f8beac70e462)

# Conflicts:
#	openair2/LAYER2/MAC/eNB_scheduler_RA.c
#	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
#	openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
#	openair3/S1AP/s1ap_eNB.c

# Conflicts:
#	openair3/S1AP/s1ap_eNB.c
2021-01-06 19:52:37 +09:00
Cai Yang
52acfc75de Fix s1ap_eNB_timer.c warnings
(cherry picked from commit 39850dcfadb37e24ccfe41e0a85a9f2136eeff4a)
2021-01-06 19:52:02 +09:00
Wu.Jing
4c75866a54 Fix cppcheck warning
(cherry picked from commit aaa4d390fdefc4e8071b80edc90a580907c9dec3)
2021-01-06 19:51:46 +09:00
Wu.Jing
8c607fe85b Fix build error in --UE because of s1ap_eNB.c
(cherry picked from commit 519e6628d572c9b6cf8031632d4e22e2f8dc5b93)
2021-01-06 19:51:34 +09:00
Haruki NAOI
46407ca42b Add S1down auto recovery.
(cherry picked from commit 2339972ceaeb75fe18c0b2ae9ea69216dd919668)
2021-01-06 19:51:11 +09:00
Ding Yumei
7631a1dc1d fix s1ap StreamID issue 2021-01-06 19:35:32 +09:00
Wu Jing
cead17f2d8 Fix openair3/NAS/UE cppcheck error 2021-01-06 19:33:04 +09:00
Haruki NAOI
f006866c74 Fix: Drop paging message on sctp stream zero.
(cherry picked from commit 2d45f940be267e013781d6baba5b2ab665e64c88)
2021-01-06 19:32:14 +09:00
Wu Jing
df17a8dd4f merge NNSF feature based on v1.0.2
(cherry picked from commit b9e93a16379cf261502d9451b60bd787c07da64e)
2021-01-06 19:31:35 +09:00
He Shanyun
63a5c693b4 modify decode error about supportedCodecList in NAS message 2021-01-06 19:08:41 +09:00
Raphael Defosseux
228be9225b Merge branch 'ci-fix-flexran-rtc-build-xenial' into 'develop'
CI: fix flexran-rtc build Xenial

See merge request oai/openairinterface5g!1007
2021-01-05 18:51:24 +01:00
Raphael Defosseux
7d5081f72a CI: patching pistache build in flexran-rtc for xenial VM build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-01-05 13:57:19 +01:00
Laurent
ebccfe5117 add raw capture from UHD examples and fix a rfsim bug 2021-01-02 18:58:13 +01:00
Laurent
c4a91bcc62 scope, dirty replay 2020-12-29 19:00:51 +01:00
Laurent
014b35bca3 to relaunch CI (aborted) 2020-12-28 10:07:08 +01:00
cig
f4b8e780b4 RAR reception review @ UE
- fixes to backoff counter procedure
- updated received target power computation (TS 38.321 R16)
2020-12-27 19:38:03 +01:00
cig
a30c8075a2 Cleanup RA procedure @ UE
- review/cleanup of commented out descriptions
- logging
- indentation
- spacing
- typos
- cleanup of unused RA_tx_frame, RA_tx_slot members
2020-12-27 19:37:34 +01:00
cig
9aa7b5b432 RA initialization review according to 5.1.1 of TS 38.321 v16.2.1
- moved init code to new function init_RA
- moved relevant variables from MAC to prach_resources
- cleanup of unused struct members
- other minor fixes
2020-12-27 19:37:18 +01:00
cig
833d2ae47e Moved RA-RNTI computation to new function @ MAC UE 2020-12-27 19:37:06 +01:00
cig
b9a49238e6 Configuration of msg3_deltaPreamble @ UE
- according to clause 7.1.1. of TS 38.213
2020-12-27 19:36:33 +01:00
cig
9788aff8b7 AssertFatal cleanup @ UE
- focus: RA procedures, PHY procedures
2020-12-27 19:36:18 +01:00
cig
2bd1ab8732 UE get PRACH resources review @ MAC
- Moved code for SSB to RACH mapping config to new function
- Moved RA preambles configuration routine to new function
- Removed irrelevant arguments to nr_get_prach_resources
- turned some struct members and local vars into global vars
- added checks on the RA Type as per TS 38.321 clause 5.1.1
- minor cleanups
- currently only 4-step RA is available
2020-12-27 19:36:01 +01:00
cig
8eea13f782 Defined common MAX_BWP_SIZE @ MAC
- as defined by clause 12 "BWP Operation" TS 38.213
- cleaned up hardcoded usage
2020-12-27 19:35:25 +01:00
cig
4386f724dc Fixes for UE BWP Operation 3GPP TS 38.213 version 16.3.0 Release 16
- fetching configuration from RRC
- removed hardcoded params (e.g. bwp_id)
- added BWP Id members to MAC instance
- introduced offsetToCarrier
2020-12-27 19:29:28 +01:00
cig
ef1deccef8 Introduced RA type @ UE
- whether it is 2-step or 4-step RA
- added checks on CFRA and 2-step RA pointer members
- introduced enum and PRACH resources struct member
2020-12-27 19:28:47 +01:00
cig
1d2d96f34e Cleanup RA procedure
- removed irrelevant prach_config_enabled parameter
- cleanup of commented out code
- minor fixes
- enhancement of logging
2020-12-27 19:28:30 +01:00
cig
895d97d0e8 Cleanup UE mac_enabled conditions
- skipping RA procedures when MAC is disabled
- added mac_enabled flag that allows to disable RA and TA at UE from CL
2020-12-27 19:28:13 +01:00
cig
a21e858f4f Cleanup runmode @ UE side
- removed unused arguments to phy functions
- removed irrelevant conditions on UE run mode
- replaced hardcoded param with PHY UE stored value
2020-12-27 19:27:51 +01:00
cig
1c24adeef9 Cleanup NR UE
- focus: defs_nr_UE.h, nr-ue.c, phy_procedures_nr_ue.c, nr_init_ue.c
- removed long-time commented out code
- replaced hardcoded params
- removed unnecessary header inclusions
2020-12-27 19:26:18 +01:00
cig
a9cc183cf6 Moved definitions and extern variables in nr-ue.c to .h files
- extern vars to phy_extern_nr_ue.c
- def/undef to defs_nr_ue.h
2020-12-27 19:24:36 +01:00
cig
eea30e7250 Moved dl indication config code to fill_dl_indication function 2020-12-27 19:24:17 +01:00
cig
605f1e90e7 Replaced hardcoded Max PDSCH TBS value with globally defined parameter 2020-12-27 19:23:29 +01:00
cig
33dc5772e8 Cleaning up references to LTE in some NR UE functions
- replaced eNB naming with gNB
2020-12-27 19:23:01 +01:00
masayuki.harada
bbaef50932 Fix est buffer. 2020-12-27 20:19:33 +09:00
Laurent
d253301c1a intptr_t instead of int64_t for instance_t 2020-12-27 12:09:20 +01:00
Laurent
79d51ce645 reallocarray() doesn't exist in old Ubuntu 2020-12-26 11:05:42 +01:00
frtabu
58309dd730 simplify nrue command line parameter processing 2020-12-23 18:43:03 +01:00
Laurent
a432feda3e add external visibility for itti_create_queue 2020-12-23 14:29:40 +01:00
Laurent
42a110338c itti dynamic queue creation, and 64 bits instance id 2020-12-23 13:56:01 +01:00
frtabu
d3919b6af4 Merge branch 'develop' into cleanup_softmodem_main 2020-12-22 23:07:54 +01:00
Mahesh
402c05eb6b nr_ulsim and nr_dlsim working 2020-12-21 23:18:27 +05:30
dir
c5bce98b48 RRC, MAC changes to enable RFSIM testing of feature transform precoding.
- Enable -Z option to test Transform precoding on ULSIM.
- Set msg3_transformPrecoder to 0 in uplinkcommonconfig params in conf file to test on RFSIM.
2020-12-21 16:10:27 +02:00
dir
a17f00784c NR_SC_FDMA changes
- CDM groups used, multiple DMRS locations tested
- REMOVED compiler define NR_SC_FDMA
- enabled -Z option in ulsim for testing NR SC-FDMA
- Gnb UL Processing of LLRS even if last symbol allocated has no data
- transform precoding Enumerations used
2020-12-21 14:01:59 +02:00
dir
6b8ffb43c1 fix DFT bug identified by Laurent Thomas 2020-12-21 14:01:59 +02:00
He Shanyun
c6cd8f3731 fix build error of phy_sim 2020-12-21 08:05:24 +00:00
yaojie
d5696baf71 Fix merge conflict 2020-12-21 12:25:36 +09:00
Mahesh
024849983a Merge develop(w51 2) to nfapi_nr
Setting of nFAPI mode in NR yet to be updated
2020-12-18 23:26:21 +05:30
rmagueta
0f3629ae92 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2020-12-18 13:43:48 +00:00
Remi Hardy
d23a7e83f6 Integration 2020 wk51 2
MR991: Remove hack in LTE PDCP for noS1 mode  
- Removes a hack which was used when LTE PDCP was used for NR in noS1 mode

MR993: UL and DL fixes LDPC short codewords 
- Fix UL & DL LDPC decoding for short LDPC code, e.g. Z_c is not multiple of 8
- Fix DLSCH data transmission with multiple DMRS symbols per slot
- small TA fixes on OAI 5G NR UE
- Implemented CQI measurement at NR UE
- NR UE cleanup 

MR1000: doc: fix build directory in BASIC_SIM.md
2020-12-18 12:06:35 +01:00
Wu.Jing
37d52bdf60 Merge branch 'develop_SA_SIM' into develop_SA_L3
Conflicts:
	openair2/RRC/NR/nr_rrc_proto.h
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair2/RRC/NR_UE/rrc_defs.h
	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-12-18 17:38:07 +09:00
Wu.Jing
19118c13d1 Merge branch 'master' into develop_SA_L3 2020-12-18 11:52:59 +09:00
Xue Song
a53d6795c8 fix some errors about rrcReestablishment 2020-12-17 12:21:06 +09:00
rmagueta
dc4dd10d1a RA BWP fix at UE 2020-12-16 18:02:24 +00:00
Mahesh
79e792443f L2 nfapi test(noS1) working 2020-12-16 16:17:32 +05:30
hardy
fb14836f0d Merge remote-tracking branch 'origin/minor-fix-doc-basic-sim' into integration_2020_wk51_2 2020-12-16 11:10:05 +01:00
hardy
69cc0767c0 Merge remote-tracking branch 'origin/ldpc_short_codeword_fixes' into integration_2020_wk51_2 2020-12-16 11:09:56 +01:00
hardy
4d76288211 Merge remote-tracking branch 'origin/remove_nos1_hack_pdcp' into integration_2020_wk51_2 2020-12-16 11:09:31 +01:00
Thomas Schlichter
4626d507bd NR UE: fix compile error with UE_TIMING_TRACE enabled 2020-12-15 11:17:24 +01:00
masayuki.harada
50146dec06 Merge remote-tracking branch 'remotes/oai/develop' into lte_uplink_improvement
# Conflicts:
#	openair1/SCHED/phy_procedures_lte_eNb.c
#	openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
2020-12-15 19:01:43 +09:00
masayuki.harada
b125b93e9e Fix log and minor bugs. 2020-12-15 18:19:22 +09:00
Remi Hardy
e37c844b17 Integration 2020 wk51
MR960: 256 QAM demodulation routines  
- Added functions for demodulation of 256 QAM signals.
- Added a command line flag to enable mcs table entry in PDSCH-Config in RRC to use 2nd MCS table for PDSCH.
- Added an option for using 256 QAM mcs table in nr_dlsim.

MR989: Docker and Deployment improvements (CI)  
- Image generation for eNB --> template for configuration files and dedicated entrypoint in Ubuntu
- Docker-compose-based EPC deploy
- Traffic test fully validated using the `trf-gen` container
- Flexran-rtc support when deployed in a container (Not fully done for the X2 Handover part)
- Added docker-compose-based eNB deployment
- Retrieve logs for such eNB deploymnent 
- Functional and log  update of nsa fr1 test but valid for gNB terminate also (enhanced ping stats and gNB markers)

MR992: Fix data transmission in "do-ra" mode
- UL and DL Traffic works now in do-ra mode, but there are still some PUCCH issues remaining. These issues are harming the acknowledgement of DL packets, and thus leading to unnecessary retransmissions.
The relevant warnings at UE are:
`PUCCH Invalid pucch resource indicator: at line 1082 in function select_pucch_resource of file openair1/SCHED_NR_UE/pucch_uci_ue_nr.c`
and
`PUCCH Error for number of bits for acknowledgment : at line 909 in function get_downlink_ack of file openair1/SCHED_NR_UE/pucch_uci_ue_nr.c`
Note: UE needs rbconfig.raw and reconfig.raw files from the *currently* running gNB, as the C-RNTI is random and different for each run.
2020-12-15 09:41:05 +01:00
yaojie
96cf622e9e fix errors and add RRCReestablishmentComplete of UE 2020-12-15 14:23:39 +09:00
Raphael Defosseux
88ac8ec267 CI: fix auto-terminate methods
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-14 17:16:37 +01:00
hardy
02bb4ac913 Merge remote-tracking branch 'origin/fix_do_ra_data' into integration_2020_wk51 2020-12-14 13:33:38 +01:00
hardy
4e0e95aa49 Merge remote-tracking branch 'origin/ci-deploy-docker-compose' into integration_2020_wk51 2020-12-14 13:33:05 +01:00
hardy
3bccd95755 Merge remote-tracking branch 'origin/256_QAM_demod' into integration_2020_wk51 2020-12-14 13:32:29 +01:00
Thomas Schlichter
fda514b3ba rfsimulator: do not show "gap in reception" messages if complete slots are skipped (e.g. NR DL: gNB transmission, UE reception) 2020-12-14 12:06:11 +01:00
Thomas Schlichter
f905b29364 NR UE: decrease number of LOG_I() logging messages 2020-12-14 12:06:11 +01:00
Thomas Schlichter
5e0e07b6e2 NR UE: do not hardcode the UL harq_pid to 0 in phy_procedures_nrUE_TX() 2020-12-14 12:06:11 +01:00
Thomas Schlichter
a269ad840a NR UE: modify nr_gold_pdsch() to only generate gold sequence for current slot 2020-12-14 12:06:11 +01:00
Remi Hardy
ff21934860 adding more ping statistics 2020-12-14 11:55:03 +01:00
Xue Song
40e3c0ce95 modify rrcReestablishmentRequest 2020-12-14 18:50:12 +09:00
Francesco Mani
9fae23b625 quick fix for nb of rb allocated in phytest for ul 2020-12-11 18:14:06 +01:00
Cedric Roux
42dca06ae0 doc: fix build directory in BASIC_SIM.md 2020-12-11 11:11:27 +01:00
yaojie
7fa06a3a2b Add RRCReestablishment 2020-12-11 17:31:06 +09:00
He Shanyun
65bad0f5a8 fix cppcheck warning 2020-12-11 16:42:58 +09:00
He Shanyun
8c9753ca3c fix issue about error locking mutex_rxtx of L2 sim 2020-12-11 16:28:03 +09:00
Xue Song
9dce92eafe implement rrcReestablishmentRequest 2020-12-11 14:59:34 +09:00
He Shanyun
ec48bb8913 implement rrcReestablishmentComplete 2020-12-11 09:54:43 +09:00
rmagueta
58d2aafb5f Minor updates in documentation 2020-12-10 17:24:56 +00:00
rmagueta
06cb91d795 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair2/LAYER2/NR_MAC_UE/mac_defs.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2020-12-10 16:24:28 +00:00
rmagueta
205d98bdb9 Fix for TBS = 84 2020-12-10 16:13:42 +00:00
Francesco Mani
30dc2e094d Merge remote-tracking branch 'origin/develop' into NR_FR2_RA 2020-12-10 16:00:36 +01:00
Thomas Schlichter
ac73df698d Merge branch 'develop' into 'fix_do_ra_data'
# Conflicts:
#   openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#   openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
2020-12-10 13:40:08 +01:00
Remi Hardy
b9b2f28911 Integration 2020 wk50
MR969: Develop oriecpriupdates  
Makes IF5 functionality compatible with ECPRI user-plane. 
Control-plane functionality for supporting third-party RRUs : provides an interface converting OAI-native RF parameters, a subset of LTE framing parameters, and RF streaming activation/deactivation to a wrapper (libthirdparty_transpro.so) which uses the proprietary interface of the RRU. 
This branch was tested with a commercial eCPRI RRU from AW2S.

MR980: Nr ul scheduler basis 
- cleanup of UL scheduler, and add interface preprocessor-postprocessor (in `NR_UE_sched_ctrl_t`)
- Postprocessor can (almost) handle multiple UEs. Preprocessor will follow soon (proportional fair scheduler)
- Preprocessor for phytest (always schedule 50 RBs due to OAI UE limitations) and real UE (as many resources as possible)
- Internal structures have been updated: the `UL_tti_req` structure became an array (as `UL_tti_req_ahead`) so that we can schedule in advance and mark resources as used. Before, we would keep the corresponding nfapi message structure per UE, which could get messy when we have many UEs.

There are no functional changes (UL/DL performance is the same). 

MR987: Nr phy mac if multi ue  
- Handles multiple UEs in `NR_IF_interface.c`
- Some minor clean up

MR979: Pusch decoder threads parameter  
- Added a config file parameter for specifying the number of threads to be used for PUSCH decoding.

MR982: nr pdcp: use pdcp config
-There was a problem with SN size. It was hardcoded to 12 bits (so max sn = 4095) but we configure the UE with 18 bits. 
Get the correct value from pdcp_Config.
- Store also discard_timer and t_reordering that will be used later by a proper NR PDCP layer 

MR984: NR FR2 SSB
- several fixes mainly concerning FR2 synchronization and RA both at gNB and UE
- SSB RRC signaling for FR2
- Coreset RRC for FR2
- SSB detection in FR2 for SSB index > 15
- Adjust sync function issue
- Fix for scheduling of MSG2 (issue with sl_ahead)
2020-12-10 13:22:12 +01:00
masayuki.harada
519ab68b21 Fix some merge miss. 2020-12-10 20:27:55 +09:00
Francesco Mani
ee54e20ed9 change assertion to error if no CCE is found 2020-12-10 10:30:23 +01:00
Francesco Mani
06d7664167 schedule 2nd DL slot in 3 instead of 2 2020-12-10 09:51:23 +01:00
rmagueta
8380136c3a SIB1 with dmrs-AdditionalPosition = pos2 2020-12-10 01:12:03 +00:00
Raphael Defosseux
22e90c7aa7 [CI] fix on the thark capture port number for S1AP
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-09 17:17:42 +01:00
Remi Hardy
a5475d3051 updating nsa fr1 test files 2020-12-09 16:29:41 +01:00
rmagueta
4eed33b082 Added documentation. Minor source code format fixes. 2020-12-09 14:59:55 +00:00
Francesco Mani
7a2786c323 Merge remote-tracking branch 'origin/develop' into NR_FR2_RA 2020-12-09 14:30:01 +01:00
Francesco Mani
f9e00c5168 bugfix in msg3 freq allocation at UE 2020-12-09 14:24:55 +01:00
Remi Hardy
98fd8279bf Merge remote-tracking branch 'origin/develop-oriecpriupdates' into rh_wk50_debug 2020-12-09 14:16:19 +01:00
Remi Hardy
3d8be663a0 Merge remote-tracking branch 'origin/NR_FR2_RRC_SSB' into rh_wk50_debug
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2020-12-09 13:16:41 +01:00
Remi Hardy
e9cf51f58d Merge remote-tracking branch 'origin/bugfix-nr-pdcp-sn-size' into rh_wk50_debug 2020-12-09 13:11:02 +01:00
Thomas Schlichter
4f98a626ce warning fixes 2020-12-09 11:40:00 +01:00
Francesco Mani
3bae6a046d workaround for UE to transmit msg3 2020-12-09 10:46:19 +01:00
Remi Hardy
68009c1cf7 [CI]: add missing PUSCH threads configuration for the CI-used gNB conf 2020-12-09 10:04:24 +01:00
Remi Hardy
ff0a2ca97c removing external sync clock 2020-12-09 10:00:19 +01:00
Remi Hardy
bc43ecd17f fix variable name after merge of MR980 and MR987 2020-12-09 09:55:50 +01:00
Remi Hardy
4a66c750ec Merge remote-tracking branch 'origin/pusch-mthread-scaling-fix' into rh_wk50_debug 2020-12-09 09:49:48 +01:00
Remi Hardy
ec94adaef5 Merge remote-tracking branch 'origin/NR-PHY-MAC-IF-multi-UE' into rh_wk50_debug 2020-12-09 09:48:40 +01:00
Remi Hardy
c04a2ff497 Merge remote-tracking branch 'origin/NR_UL_scheduler' into rh_wk50_debug 2020-12-09 09:47:16 +01:00
Remi Hardy
39d1774a11 fixing dependency issue for gNB build 2020-12-09 09:45:10 +01:00
Thomas Schlichter
1b2c8b3c56 Merge remote-tracking branch 'origin/develop' 2020-12-09 09:39:44 +01:00
cig
440e820f6d Moved code for timing alignment procedures to PHY UE procedures
- new function called ue_ta_procedures
- this makes the code more easier to read
- small cleanup was also done
2020-12-09 09:35:41 +01:00
cig
da9dde5bb7 Replaced redundant code for BW scaling computation
- using the get_bw_scaling function
- made it generic for DL/UL computations
2020-12-09 09:35:41 +01:00
cig
427d2d3977 Cleanup nr-uesoftmodem
- moved configuration of UE parameters to set_options function
- removed redundant loop over CCs
2020-12-09 09:35:41 +01:00
cig
f833d1d9c7 Debug code for USRP Noise Figure in nr_ue_rrc_measurements 2020-12-09 09:35:41 +01:00
cig
fb4248fe40 Cleanup and fixes definitions measurements structs gNB and UE
- set the proper platform variables definitions
- cleaned up commented out code
2020-12-09 09:35:41 +01:00
cig
52cb041693 Updated usage of channel model simulation in RFSIM 2020-12-09 09:35:41 +01:00
cig
3986d5764d Implemented CQI measurement at NR UE
- fixes for nr_ue_measurement function
- Introduced nr_rrc_measurement function
- removed unused params
- replaced hardcoded params
- code cleanup

temp
2020-12-09 09:35:40 +01:00
cig
5d16593b6b NR UE Code cleanup
- removed long time commented-out and unused code
- minor logging fixes
2020-12-09 09:35:40 +01:00
Thomas Schlichter
18bf5b5522 CI: add automatic tests for multiple DMRS positions to nr_dlsim 2020-12-09 09:08:43 +01:00
masayuki.harada
1de8776c43 Fix compile error 2020-12-09 13:59:49 +09:00
Shweta Shrivastava
61d3f3465a Make PTRS configuration optional 2020-12-08 22:57:50 -06:00
Hongzhi Wang
1bd84bf1fd update nr ue gold to simplified version 2020-12-08 16:02:04 +01:00
Rahul Gottipati
243190c038 Revert AMP_SHIFT value 2020-12-08 19:47:57 +05:30
Francesco Mani
e7edc37b5d k2 for msg3 in fr2 2020-12-08 15:03:08 +01:00
Francesco Mani
711a997fdb dynamic allocation of dl gold sequences at ue 2020-12-08 15:02:19 +01:00
Raphael Defosseux
268aa87c81 [CI] fix typo and few tunings
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-08 12:37:38 +01:00
He Shanyun
547d7b01b8 change the sleep location for the ittisim 2020-12-08 17:13:09 +09:00
Mahesh
7eb016675d Resolved errors in building phy-simulator 2020-12-08 12:28:16 +05:30
frtabu
4338d5365b cancel thread pool modif 2020-12-07 23:46:14 +01:00
rmagueta
4be7f10efe nr_rrc_ue_decode_NR_SIB1_Message call was deleted from the PHY. It was used the UE FAPI interface to signal this to the MAC, who was send it to the RRC. 2020-12-07 19:30:45 +00:00
Raphael Defosseux
adb29da804 [CI] python code clean
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-07 17:50:50 +01:00
rmagueta
da77bf33b9 Fix for DMRS symbol without data 2020-12-07 16:36:50 +00:00
rmagueta
62d481f316 nr_dlsim and nr_ulsim segmentation fault issue solved 2020-12-07 12:25:23 +00:00
masayuki.harada
0555b108db Merge remote-tracking branch 'remotes/oai/develop' into lte_uplink_improvement 2020-12-07 21:17:59 +09:00
masayuki.harada
b0f5a37fba Fix indentation, merge miss and remove unnecessary comment. 2020-12-07 20:08:03 +09:00
frtabu
6d168eca61 Merge branch 'cleanup_softmodem_main' of https://gitlab.eurecom.fr/oai/openairinterface5g into cleanup_softmodem_main 2020-12-07 10:41:34 +01:00
frtabu
81da4ffce3 remove threadoffset option, doesn't seem to be defined in the develop code?? 2020-12-07 10:39:08 +01:00
Francesco Mani
50b629c6c2 fix for nb of slots in ue gold 2020-12-07 10:27:12 +01:00
frtabu
e97edafd3f remove threadoffset option, doesn't seem to be defined in the develop code?? 2020-12-07 01:02:23 +01:00
Shweta Shrivastava
a0306a92a0 Use dedicated serving cell config from config file to fill secondaryCellGroup 2020-12-05 15:15:58 -06:00
Shweta Shrivastava
c71e136aa0 Code cleanup and comments 2020-12-05 14:04:27 -06:00
Shweta Shrivastava
f9b87d84ab Add dedicated config to RRC config request from GNB APP -> RRC 2020-12-05 13:45:38 -06:00
Shweta Shrivastava
fba68e9a5f Fix dedicated configuration after reading config file 2020-12-05 13:00:51 -06:00
Shweta Shrivastava
784f4de159 Read dedicated servingCellConfig, PTRS params from config file 2020-12-05 12:48:12 -06:00
Francesco Mani
756c20c009 tentative fix for delayed RA procedure at UE 2020-12-04 16:49:19 +01:00
Francesco Mani
29a56fe527 tentative fix for delayed RA procedure at UE 2020-12-04 16:21:45 +01:00
Sakthivel Velumani
e5cd573ecb Added a local variable instead of global 2020-12-04 15:10:58 +01:00
hardy
bfeae0a0a4 fixing RA test iteration when failing 2020-12-04 13:05:42 +01:00
Robert Schmidt
13f0571a65 Fix log message: add newline, format 2020-12-04 11:07:18 +01:00
Robert Schmidt
3ae4744679 Single definition and declaration of nr_slots_per_frame 2020-12-04 11:07:18 +01:00
Robert Schmidt
1d7065c29c Remove DLSCH_pdu as it is not needed anymore 2020-12-04 11:07:18 +01:00
Robert Schmidt
89fc1e6e54 handle_nr_ulsch() for multiple UEs 2020-12-04 11:07:18 +01:00
Raphael Defosseux
a371f5580e Merge branch 'ci-deploy-docker-compose' of gitlab.eurecom.fr:oai/openairinterface5g into ci-deploy-docker-compose 2020-12-04 10:09:31 +01:00
Raphael Defosseux
e0731d54a0 Merge remote-tracking branch 'origin/develop' into ci-deploy-docker-compose 2020-12-04 10:08:40 +01:00
Remi Hardy
97249354c3 Update BUILD.md 2020-12-04 10:08:37 +01:00
Robert Schmidt
35e723d090 handle_nr_uci() for multiple UEs 2020-12-04 09:41:34 +01:00
Robert Schmidt
d9c7243ac1 Remove LTE/FlexRAN-related headers from NR MAC 2020-12-04 09:41:34 +01:00
Robert Schmidt
c71772e325 Remove LTE-related headers from NR PHY-MAC IF 2020-12-04 09:41:34 +01:00
frtabu
fdc1049a70 Fix phy simulators compilation, number of threads for dlsch configurable 2020-12-03 23:22:07 +01:00
Remi Hardy
9ea7df9210 func + log update of fr1 nsa test 2020-12-03 22:12:54 +01:00
Raphael Defosseux
ef49960a8a [CI][Docker] able to deploy/undeploy a monolithic eNB with a compose file:
-- The compose file still keeps a few template fields to be replaced
  -- initial scenario has a full UE attach / traffic test

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-03 18:40:05 +01:00
Cedric Roux
d262d152ec rlc v2: implement SOstart/SOend in NACK reporting
The necessity of SOstart/SOend was understood after email exchanges with
David Breaux <davidbreaux67@gmail.com>.

See openair2/LAYER2/rlc_v2/tests/test46.h for some details.

Basically if we NACK without SOstart/SOend then the other end of the RLC
channel will consider all the bytes as NACKed and will have to resend them
all. If another status is then reported before all the bytes are sent,
and because we don't use SOstart/SOend this status will NACK all the bytes
again, then all the bytes are to be sent again. And the cycle repeats.
It will end with a max retx reached (which triggers RLF, Radio Link Failure).

The function put_bit in openair2/LAYER2/rlc_v2/rlc_pdu.c has been changed
too, maybe introducing some performance issues.
2020-12-03 16:17:24 +01:00
matzakos
d64bc67b0c Add TDD configuration in ENDC X2 setup response message sent from eNB 2020-12-03 15:39:30 +01:00
Raymond Knopp
4f57de4e53 added example configuration for if5 eCPRI for AW2S RRU (with X2) 2020-12-03 15:00:36 +01:00
Raphael Defosseux
87b03d0000 [CI] moved image build into a separate class
also first docker-compose for a monolithic eNB

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-03 10:01:21 +01:00
Robert Schmidt
589ff862dc Improve retransmission messages in UL&DL 2020-12-03 09:52:41 +01:00
Robert Schmidt
f821a333d7 Fix nr_dlsim: remove current_harq_pid, selected in DL scheduler 2020-12-03 09:42:22 +01:00
matzakos
103fc806b3 Remove hack in LTE PDCP for noS1 mode 2020-12-03 00:31:23 +01:00
Robert Schmidt
5bb9a57ae9 Update SW_archi.md description 2020-12-02 18:42:47 +01:00
rmagueta
61a0e4f7b2 Fix creation of rbconfig.raw and reconfig.raw files in standalone mode 2020-12-02 17:28:02 +00:00
Robert Schmidt
12c6cd4481 Remove unused variable 2020-12-02 18:08:51 +01:00
Robert Schmidt
c110ad7dc6 Take out DL phytest slot limitation 2020-12-02 18:08:51 +01:00
Robert Schmidt
ec10d48b24 Reformat schedule_nr_prach() 2020-12-02 18:08:51 +01:00
Robert Schmidt
0e936a09ba Remove current_harq_pid: it is not needed 2020-12-02 18:08:51 +01:00
Robert Schmidt
3a37202beb Remove current_slot: it is not needed 2020-12-02 18:08:51 +01:00
Robert Schmidt
e99d3635db ULSCH: warn when retransmission, basic debug logging 2020-12-02 18:08:51 +01:00
Robert Schmidt
0c730d7aa1 Mark PRACH in vrb_map_UL 2020-12-02 18:08:51 +01:00
Robert Schmidt
70c3915d81 Schedule PRACH (internally) one frame in advance 2020-12-02 18:08:51 +01:00
Robert Schmidt
7a7c1bcc98 Calculate TBS in pre-processor and use the results in post-proc 2020-12-02 18:08:51 +01:00
Robert Schmidt
d8cecde925 Recalculate PUSCH saved params struct in Pre-processor 2020-12-02 18:08:51 +01:00
Robert Schmidt
8cb2317915 Create PUSCH saved params struct to avoid recomputation 2020-12-02 18:08:51 +01:00
Robert Schmidt
0d860454b0 ULSCH: Reorganize PUSCH PDU filling 2020-12-02 18:08:51 +01:00
Robert Schmidt
5762c943db Isolate TBS calculation in ULSCH, calculate some statistics 2020-12-02 18:08:51 +01:00
Robert Schmidt
644c364a4a Isolate DMRS N_PRB_DMRS in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
fc0f0cd7e7 Isolate DMRS ul_dmrs_symb_pos and dmrs_cdm_grps_no_data in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
85843b3e0e Isolate DMRS additional_pos, l_prime_mask in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
0d2435460c Isolate DMRS config type in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
c821dd0c94 Do not check for UE active state before ULSCH and DLSCH scheduler 2020-12-02 18:08:51 +01:00
Robert Schmidt
e4bbde77ef Isolate R&Qm in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
a5cb42e773 Use variable sched_pusch 2020-12-02 18:08:51 +01:00
Robert Schmidt
f1a6a7e7a5 Isolate mcs_table in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
a200beb585 Isolate HARQ in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
b20954f6c0 Isolate TDA in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
2599c68fa8 Isolate transform_precoding in ULSCH 2020-12-02 18:08:51 +01:00
Robert Schmidt
2958689fa4 config_uldci(): no rnti_types 2020-12-02 18:08:51 +01:00
Robert Schmidt
6df6cb9c9c UL_tti_req as pointer over multiple CCs 2020-12-02 18:08:51 +01:00
Robert Schmidt
0affd907b5 No dynamically alloced PUSCH, remove internal PDU 2020-12-02 18:08:51 +01:00
Robert Schmidt
a6a7c7a328 Move config_uldci() to primitives 2020-12-02 18:08:50 +01:00
Robert Schmidt
d2ac57088b Fix filling of DCI 0_0 in config_uldci() 2020-12-02 18:08:50 +01:00
Robert Schmidt
9ca626b37a Avoid copy from UL_tti_req_ahead into Ul_tti_req 2020-12-02 18:08:50 +01:00
Robert Schmidt
c219edfed3 Fix dlsim: Use UL_tti_req_ahead 2020-12-02 18:08:50 +01:00
Robert Schmidt
e6435cf7a2 Create separate phytest UL preprocessor 2020-12-02 18:08:50 +01:00
Robert Schmidt
cfc6044a6e Use function pointer to call UL pre-processor 2020-12-02 18:08:50 +01:00
Robert Schmidt
9ccc76474a PUCCH scheduling: allocate in UL_tti_req_ahead 2020-12-02 18:08:50 +01:00
Robert Schmidt
b202ab7d3d RA Msg3 allocation: check in vrb_map_UL, allocate in UL_tti_req_ahead 2020-12-02 18:08:50 +01:00
Robert Schmidt
e300b072c0 Use vrb_map_UL for PUSCH 2020-12-02 18:08:50 +01:00
Robert Schmidt
a232482b47 vrb_map_UL for every slot 2020-12-02 18:08:50 +01:00
Robert Schmidt
2b1a01c012 UL Post-processor: enable multi-UE handling 2020-12-02 18:08:50 +01:00
Robert Schmidt
327e3e706d Perform UL slot check in pre-processor 2020-12-02 18:08:50 +01:00
Robert Schmidt
2e53fdea9c Rename NR_sched_pusch_t and use for Freq Alloc + MCS 2020-12-02 18:08:50 +01:00
Robert Schmidt
ee6cdc1359 Create UL preprocessor, allocate CCE, re-use DL structures 2020-12-02 18:08:50 +01:00
Robert Schmidt
415a843ac4 Add active_ubwp to NR_UE_sched_ctrl_t 2020-12-02 18:08:50 +01:00
Robert Schmidt
3eceba5062 Use UE's active DL BWP in UL sched 2020-12-02 18:08:50 +01:00
Robert Schmidt
f3b00ff144 UL_tti_req_ahead: pre-set slot and frame 2020-12-02 18:08:50 +01:00
Robert Schmidt
f45e8bbe0e UL_tti_req_ahead: Create PUSCH PDU directly within nr_fill_nfapi_ul_pdu()
Use a "future" UL_tti_req structure to save in between scheduling and
reception slots. Should also work for FDD.
2020-12-02 18:08:50 +01:00
rmagueta
104b8ab21a Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1 2020-12-02 16:28:38 +00:00
rmagueta
f4b20822d4 Fix build warnings 2020-12-02 16:27:20 +00:00
Gokul Srinivasan
4131d7e587 Merge branch 'develop_merge' into 'nfapi_nr_develop'
Merge develop w49 to nfapi_nr_develop

See merge request oai/openairinterface5g!990
2020-12-02 12:20:43 +01:00
Mahesh
e174ebdc30 Resolved merge conflicts with nfapi_nr_develop 2020-12-02 16:28:18 +05:30
Hongzhi Wang
aa3317a009 set less dlsch thread by default 2020-12-02 11:36:57 +01:00
Raphael Defosseux
68e193c6cc [DOCKER] finalize RRU templates
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-12-02 11:25:06 +01:00
Robert Schmidt
ee9268feee Remove second clear_nr_nfapi_information call 2020-12-01 19:36:50 +01:00
Robert Schmidt
1cd46f4dfc Clean up nr_schedule_ulsch() 2020-12-01 19:36:50 +01:00
Robert Schmidt
c0e5a180bc Separate CCE allocation, MCS, RB Alloc in UL sched 2020-12-01 19:36:50 +01:00
Robert Schmidt
5244da263e Clean up select_ul_harq_pid() and nr_schedule_ulsch() 2020-12-01 19:36:50 +01:00
Robert Schmidt
53d8fbf487 Remove schedule_fapi_ul_pdu() 2020-12-01 19:36:50 +01:00
Robert Schmidt
c8e607a18c Create separate nr_schedule_ulsch(), move helper functions 2020-12-01 19:36:50 +01:00
Robert Schmidt
2481075122 Add debug output for nr_rate_matching_ldpc() asserts 2020-12-01 19:36:50 +01:00
Robert Schmidt
75a1562d7f Remove unused (commented) copy_nr_ulreq() 2020-12-01 19:36:50 +01:00
Remi Hardy
dfb110bf80 Integration 2020 wk49
MR968: Bugfix nr ldpc size typo
- fix the copy of the decoded data bytes at the end of the processing of an LDPC segment 
 
MR962: Remove x2 gnb hardcoding
- Removes hardcoding of some x2 configuration parameters used in ENDC setup request message at gNB side  

MR949: rlc v2: change time keeping
- RLC has timers. We need to keep track of time. 
We introduce rlc_tick() and call it in eNB_dlsch_ulsch_scheduler, which is called every subframe, both in FDD and TDD.
2020-12-01 19:35:15 +01:00
Raymond Knopp
d9b7d43ec6 rebase and fix non paralellized errors 2020-12-01 18:26:07 +01:00
Francesco Mani
ecdd7a7f62 taking aggregation level and nr of candidates from config at ue 2020-12-01 16:19:59 +01:00
cig
05d4b9205b Do configuration of DRB UM in RA mode
- do DRB preconfiguration for deafult C-RNTI if !do_ra
- moved redundant configuration code at RLC layer to new RLC functions
2020-12-01 15:10:04 +01:00
cig
76a2a7559c Removed exit call in PDCP PDU handling functions 2020-12-01 15:10:04 +01:00
cig
1a78bd8b1a Replaced information message with assertion in nr_l2_init_ue 2020-12-01 15:10:04 +01:00
cig
8f7b041d7c Cleanup of hardcoded C-RNTI
- Giving C-RNTI as an input to DRB preconfiguration
- Set C-RNTI from UE configuration for higher layer function calls
2020-12-01 15:10:04 +01:00
cig
33bab5ba4a Changes to support DL IP traffic and timing adjustments in do-ra mode:
- enabled procedures that were already called for phy-test mode
- enabled setup of DRB for the current C-RNTI
- enhanced information, debugging and warning logging at MAC/RLC/PDCP level
2020-12-01 15:09:57 +01:00
Raphael Defosseux
2d6fea51b3 Merge remote-tracking branch 'origin/oc-docker-october-improvements' into ci-deploy-docker-compose 2020-12-01 10:09:02 +01:00
yaojie
dfba9dd767 add temporary data for PDUSessionResourceReleaseResponseTransfer 2020-12-01 17:30:47 +09:00
Raphael Defosseux
b29b88380c [CI]: flexran-rtc support when deployed in a container.
-- Not completed for X2 Handover case

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-30 22:27:15 +01:00
rmagueta
c8dfaf8eb9 Improvements to decode SIB1 in 3rd party implementations and OAI UE with the same gNB configurations 2020-11-30 19:11:01 +00:00
hardy
92b8b12208 OAI UE Build : use --ninja and change timeout to 1200 2020-11-30 14:04:53 +01:00
Mahesh
190fe54306 Warnings in gNB build resolved 2020-11-30 18:21:19 +05:30
rmagueta
46de16b6e1 Minor updates in LOGs 2020-11-30 12:26:12 +00:00
Francesco Mani
1acf4a68f2 mib ssb in mac structure, prach scheduled accordingly 2020-11-30 12:56:10 +01:00
Sakthivel Velumani
24bf54b2af fixed one more build error 2020-11-30 11:44:31 +01:00
zhenghuangkun
88699deb81 Merge branch fujitsu_lte_contribution into lte_uplink_improvement 2020-11-30 18:56:26 +09:00
hardy
923c5f9d31 Merge remote-tracking branch 'origin/rlc-v2-tick' into integration_2020_wk49 2020-11-30 10:35:24 +01:00
hardy
279a721d23 Merge remote-tracking branch 'origin/remove_x2_gnb_hardcoding' into integration_2020_wk49 2020-11-30 10:34:52 +01:00
hardy
cfdd0b2220 Merge remote-tracking branch 'origin/bugfix-nr-ldpc-size-typo' into integration_2020_wk49 2020-11-30 10:34:27 +01:00
masayuki.harada
20f1d347ac Fix DCI0 aggregation and call ulsch scheduling. 2020-11-30 12:00:23 +09:00
Ding Yumei
a332423d97 fix segmentation fault(mac head error) 2020-11-30 11:30:58 +09:00
Ding Yumei
67da5c7cf3 fix segmentation fault(ccch/dcch length eror) 2020-11-30 11:30:46 +09:00
Ding Yumei
0dd16fb6f5 fix segmentation fault(ul error) 2020-11-30 11:30:32 +09:00
Ding Yumei
1568055310 fix segmentation fault(ul dtch length error) 2020-11-30 11:30:18 +09:00
zhenghuangkun
e64593246b Fix: rfsim abnormal CCCH reception. 2020-11-30 11:29:58 +09:00
zhenghuangkun
6d0ef37c8e Modify DRB_active array size to NB_RB_MAX -2 2020-11-30 11:13:53 +09:00
Haruki NAOI
5db6e75bb1 fix warning. 2020-11-30 11:12:45 +09:00
Haruki NAOI
18becc60fc Fix: rfsim abnormal CCCH reception. 2020-11-30 11:04:03 +09:00
Haruki NAOI
fc595236b3 add logs. 2020-11-30 10:55:39 +09:00
Haruki NAOI
1a320bc6d4 Fix: SNR feedback to PUSCH TPC and PUCCH TPC of default scheduler. 2020-11-30 10:55:19 +09:00
Haruki NAOI
de568b2d88 Change default value of pusch signal power threshold. 2020-11-30 10:45:50 +09:00
masayuki.harada
b54c32b70d Change UL DCI aggregation level by DL cqi.
(cherry picked from commit 175c59ae3aedf612777cd1c8c88b6d6f254b9334)
2020-11-30 10:45:34 +09:00
Raymond Knopp
687d151bfd removal of a warning 2020-11-29 19:42:03 +01:00
Raymond Knopp
4a2a81f311 fixed missing parenthesis in ul_cqi computation 2020-11-29 08:24:35 +01:00
Cedric Roux
f36a1ef93f nr pdcp: use pdcp config
There was a problem with SN size. It was hardcoded to 12 bits (so max
sn = 4095) but we configure the UE with 18 bits. After a while, iperf
didn't work anymore because of this (what a surprise!).

So let's get the correct value from pdcp_Config.

And while we're at it, let's store also discard_timer and t_reordering
that will be used later by a proper NR PDCP layer (which is currently
work in progress).
2020-11-29 07:41:26 +01:00
Raphael Defosseux
329a823d5d CI: fix image build log collection
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-28 22:40:29 +01:00
Raphael Defosseux
858a1dc090 [DOCKER] remove log folder (contains the install logs)
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-28 22:35:47 +01:00
Raphael Defosseux
4639a59a51 [CI][Docker]: Finalize docker-compose-based EPC deployment
- Fix pcap capture commands
  - added support for FlexRan-RTC and Traffic-Generator

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-28 21:24:10 +01:00
rmagueta
548015929e Minor correction 2020-11-28 01:49:00 +00:00
rmagueta
a365bde8da Minor correction: y cannot be zero 2020-11-28 01:32:31 +00:00
Raymond Knopp
0477e881b5 removed most new warnings 2020-11-28 00:11:13 +01:00
Raymond Knopp
18756c35eb demotion of LOG_W to LOG_D 2020-11-27 21:46:22 +01:00
Raymond Knopp
223ed810b2 Merge remote-tracking branch 'origin/develop' into develop-oriecpriupdates 2020-11-27 19:11:05 +01:00
Raymond Knopp
2303a9bcf6 CPPcheck errors + some warnings 2020-11-27 18:54:09 +01:00
rmagueta
a3b633d26c Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2020-11-27 17:37:15 +00:00
Hongzhi Wang
9ef0107a6e bug fix ue parallelization 2020-11-27 17:46:07 +01:00
frtabu
0dcf4ef8f8 remove L2L1 task, parallelisation as config option 2020-11-27 17:37:45 +01:00
Rahul Gottipati
9ec1bea7b2 Add option for 256 qam mcs table in nr_dlsim 2020-11-27 20:41:27 +05:30
Khodr Saaifan
1488750db1 Fix LDPC ULSCH decoding (CRC NOK) for short LDPC code, e.g. Z_c is not multiple of 8 2020-11-27 15:56:15 +01:00
Parminder Singh
334bf336b7 Updated TBS calculation for multiple DMRS positions in a slot
- TBS calculation was done wothout considering mulilple DMRS symbols in
  a slot, which is corrected now.
2020-11-27 15:56:15 +01:00
Thomas Schlichter
d7d2faa0bf fix cppcheck warning in rrc_gNB_internode.c 2020-11-27 15:56:15 +01:00
Thomas Schlichter
fe89c40052 NR UE: initialize ul_time_alignment structure 2020-11-27 15:56:14 +01:00
Thomas Schlichter
010321e582 NR UE: fix USRP write timestamp when applying new timing_advance value 2020-11-27 15:56:14 +01:00
Raphael Defosseux
6aa126485f [CI][Docker] Building docker images in python framework
- only on Ubuntu and Docker
- No back ground computing to paralellize RHEL/Ubuntu
- No image clean up

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-27 15:53:55 +01:00
Khodr Saaifan
4b1d496923 Fix false CRC NOK in LDPC decoding for PDSCH for short code word, e.g. Z_c is not multiple of 8 2020-11-27 15:42:58 +01:00
yoshio.inoue
11000594a9 Correction of description 2020-11-27 22:56:39 +09:00
Sakthivel Velumani
437d893ee5 resolved build error 2020-11-27 14:48:11 +01:00
yoshio.inoue
420396e855 Add documentation on how to use the ITTI simulator 2020-11-27 22:46:18 +09:00
Francesco Mani
8a9e242856 Merge remote-tracking branch 'origin/develop' into NR_FR2_RRC_SSB 2020-11-27 11:33:52 +01:00
Rahul Gottipati
a7229204a9 Added 256 QAM demodulation routines for PDSCH 2020-11-27 14:58:41 +05:30
Robert Schmidt
ed0c12ba19 Avoid useless loop 2020-11-27 10:25:02 +01:00
Robert Schmidt
53b197fd16 Fix: when adding an MME through FlexRAN, set port 2020-11-27 10:25:02 +01:00
Haruki NAOI
39b9ffd69b Add DC removing to signal power measurement. 2020-11-27 17:27:00 +09:00
masayuki.harada
cb927c7f9a Add statistics logs.
(cherry picked from commit cf8f14edf4a261e1df72579423786d39ba6d97f9)
2020-11-27 17:06:11 +09:00
Haruki NAOI
7243b6d67a Avoid Segfault with abnormal MAC header.
(cherry picked from commit 04c5431468c9102dd625a73d9e5219b40b638fe3)
(cherry picked from commit 17880778c848406e562f98c20f7b7a6428502279)
(cherry picked from commit a26f44c197e854dd4261267a3695932392f09265)
2020-11-27 16:26:11 +09:00
Haruki NAOI
deeded689d Fix: guard multiple UL scheduling for same UE.
(cherry picked from commit 57caca9ba87fda3f73aa30d86f4af01a6062224c)
2020-11-27 15:24:26 +09:00
masayuki.harada
6c99c9a255 Fix receive pucch 1a and power adjustment of pucch.
(cherry picked from commit 6d5a40bd826de160ddf55599f61d1359cfba3fa4)
2020-11-27 15:24:07 +09:00
masayuki.harada
7eea980827 Fix sr detection.
(cherry picked from commit 5482843b9a9dfd25abe74afb04a40c117da3bac4)
2020-11-27 15:03:19 +09:00
masayuki.harada
1f54b131b5 Fix pucch functions.
(cherry picked from commit 3bed7dc69db8dc43b28b62553f12834efbca349b)
2020-11-27 14:54:10 +09:00
masayuki.harada
ad4a22fa0f Fix PUCCH noise estimation.
(cherry picked from commit 51634853671e07ef3013bc44ec79fc38c0646147)
2020-11-27 14:45:27 +09:00
masayuki.harada
174069e26e Fix calculation of pucch interference power.
(cherry picked from commit 0622f7d40523e39334708ce4b9b0ee68e8fb2bf1)
2020-11-27 14:33:41 +09:00
masayuki.harada
029c08b9d5 Replace from dB_fixed_times10 function to dB_fixed_x10.
(cherry picked from commit de93d8f0aa9e6d7380bd159901a41aa36f257298)
2020-11-27 14:21:22 +09:00
masayuki.harada
9ad810bab4 Fix ul_cqi and tpc filtering.
(cherry picked from commit 120ea0950e1f52c1c5dd1d0dd4f7080e66d7ee93)
2020-11-27 12:37:09 +09:00
masayuki.harada
fbd0156a8f Add pusch signal threshold to config file.
(cherry picked from commit 6f3d14e74663e75f2eaf3cd1c1348d5d028e3379)
2020-11-27 11:14:09 +09:00
Ding Yumei
548eaae610 fix Msg3 PHICH issue and C-RNTI DRB active issue 2020-11-27 11:12:31 +09:00
zhenghuangkun
df5e22efee Modify CQI timer to 64 subframe 2020-11-27 11:09:56 +09:00
zhenghuangkun
d00297aeb9 Modify UL timer and CQI timer to 64 subframe 2020-11-27 11:04:20 +09:00
Haruki NAOI
6103d9ec55 Fix: calculate signal_power and interference_power per symbol from DMRS. 2020-11-27 10:55:52 +09:00
Haruki NAOI
76998f7d75 Fix: signal_power and interference_power issue from DRS.
SHA-1: 9bb7664a234535b01518977440b3c4f3d14a8ee3
SHA-1: c299d006d833e8ffc6c01039feaeda2e7b1598cc
2020-11-27 10:55:36 +09:00
Kuroiwa Kenichi
80f83843f0 Initialize scheduled_ul_bytes
(cherry picked from commit 4a18e26f8c1dfb80a5af2fac4104b06b648a598c)
2020-11-27 10:55:16 +09:00
Haruki NAOI
7a89100a9f fix compilation. 2020-11-27 10:54:02 +09:00
Kuroiwa Kenichi
934cc715f8 Initialize scheduled_ul_bytes
(cherry picked from commit b0d6c5150db520bd7840d1604c3f82a0b59bc218)
2020-11-27 10:22:48 +09:00
masayuki.harada
4cce76382a Fix assertion in ulsch dem
(cherry picked from commit dcd188e961422194c9c85636ea7c74ca0cc5101d)
2020-11-27 10:10:06 +09:00
Haruki NAOI
179775b72c Temporary: change tpc filter.
(cherry picked from commit d82fc4805ef9032c9bfd9705fef702a6e130f7b2)

# Conflicts:
#	openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
2020-11-27 10:08:27 +09:00
Haruki NAOI
52dfba49cd Fix: smooth ULSCH AMC and TPC control.
(cherry picked from commit 56720c68864f6b04409deb00676e59a41c8f050b)
2020-11-27 10:07:56 +09:00
Haruki NAOI
b573fd4dbd Fix: The remaining UL buffer size is incorrectly calculated and UL scheduling does not occur. (scheduled_ul_bytes is not subtracted correctly when receiving NACK rarely.)
(cherry picked from commit 2fb4823b57320c4c4e4d800ae9bb0570f18ad353)
2020-11-27 09:44:39 +09:00
masayuki.harada
05eb88f068 Fix scheduled_ul_bytes size remain when no crc report has come from L1.
(cherry picked from commit ce10221c2761fb3058ccb77b73ba87f97d5e2cd2)
2020-11-27 09:41:56 +09:00
Raphael Defosseux
9af06d7ec5 [DOCKER] fix in dockerfile, cannot have comment in same line
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-26 20:31:36 +01:00
Raphael Defosseux
df33499980 [CI] Added support for docker-compose based deployment for EPC
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-26 18:38:38 +01:00
Remi Hardy
6b8eb372c5 Integration 2020 wk48 2
MR945 : nr prach fr2
- Introduction of the PRACH frontend for FR2 (120kHz SCS, 32 and 66 PRB). 
- Tested with nr_prachsim and testcases added to test_case_list.xml also included some fixes for FR1, 
when prach occasion > 0 (small difference in Ncp)

MR950 : DL and UL PTRS for 5G NR

MR971 : Correct NDI + Minor MAC subPDU handling improvements
Fixes the issue : Ping in develop was unusually high (70+ms). The issue was that TA was scheduled in the second slot (of the two we currently schedule), but NDI was toggled for the first one. 
Other improvements:
- Correctly put padding MAC subPDU
- Only use subPDU DLSCH long header if length >= 256B
- Calculate TBS in DL pre-processor considering header and TA CE overhead.
- Improve some of the logging (LOG_D)
- re-enable TA

MR970 : uci gnb mac functions file
- Moved gNB MAC UCI related functions in a new file

MR972 : Bugfix nr rate matching assertion
- Fixes the assertion happening in rate matching of pdsch during iperf test.

MR975 : File openning in rrc_gNB_internal
- Only allow file opening in rrc_gNB-internal.c in phytest mode

MR977 : NR UE DCI sanity checks and fixes
These changes resolve a few stability issues and errors in NR UE
- Added sanity check for pucch_resource_indicator received in DL DCI, which resolves SEGV in select_pucch_resource() and check_pucch_format()
- Additional sanity checks included to catch false or erroneous DCI received
- Wrong MCS table calculation and error in accessing ul_config_request at UE resolved
2020-11-26 17:44:48 +01:00
rmagueta
39ac342cfa Flag --sa added in the softmodem-common to indicate the standalone mode 2020-11-26 16:44:26 +00:00
Francesco Mani
66f957fb48 fix TA scaling at ue 2020-11-26 17:17:27 +01:00
rmagueta
2d5ad4d0b1 Minor updates in the SIB1 content 2020-11-26 16:05:07 +00:00
Raphael Defosseux
f3a6746042 Merge remote-tracking branch 'origin/ci-ul-iperf-from-trf-container' into rh_ci_fix_autoterminate 2020-11-26 12:04:08 +01:00
Raphael Defosseux
29618c5e7a CI: fix autoterminate with multiple servers
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-26 12:03:25 +01:00
Cedric Roux
6f9fe2681c rlc v2: add tick for UE 2020-11-26 11:53:22 +01:00
Cedric Roux
2c9d1b9d84 HACK: let the gNB compile again
This is messy, sorry. I don't have time to cleanup
cmake_targets/CMakeLists.txt.
2020-11-26 11:53:22 +01:00
Cedric Roux
25ab3a5ed3 rlc v2: change time keeping
RLC has timers. We need to keep track of time. We chose to not use
realtime but 'processing time'. That is we send a tick to RLC for every
subframe when it is processed by the softmodem. Before this commit we
used to increase time in the function mac_rlc_status_ind which may not be
called every subframe (especially in TDD mode). So we need another way
to keep track of time.

We introduce rlc_tick() and call it in eNB_dlsch_ulsch_scheduler, which
is called every subframe, both in FDD and TDD.

We also call rlc_tick() in the function ru_thread_synch() because
pdcp_run() and rrc_rx_tx() are called there too.

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

Note: the UE has not been touched. Some modification is needed for the UE
too, most probably.
2020-11-26 11:53:22 +01:00
Remi Hardy
43da900710 extending nsa fr1 test 2020-11-26 11:50:36 +01:00
Haruki NAOI
ffdc67daa4 Add: PUSCH AMC using average BLER.
(cherry picked from commit 1ab0a979fdbcc933ae249838841dc7f61c0e5aba)
2020-11-26 18:44:44 +09:00
Haruki NAOI
55207a5062 Fix: add SNR filter for ULSCH AMC. 2020-11-26 18:28:56 +09:00
Haruki NAOI
66f99a9020 Fix: ULSCH AMC by instantaneous SINR value. 2020-11-26 18:21:13 +09:00
Xue Song
ce3a97080a Modify RRCReconfiguration message 2020-11-26 18:19:59 +09:00
Haruki NAOI
1b61e10af6 fix compilation. 2020-11-26 18:07:21 +09:00
masayuki.harada
04d6de7d58 add variables TPC command interval and forgetting filter of UL SNR. 2020-11-26 18:04:14 +09:00
Haruki NAOI
dbb8a8924e Fix: TPC control with average SNR value.
(cherry picked from commit 243c90f647a1f97dc3a1486502dc6263b5705e39)
2020-11-26 17:57:41 +09:00
Haruki NAOI
2edcf2647c Fix: freq_offset_estimation overflow.
(cherry picked from commit 5e7eb7c94857f5765bb7f18afc7f4c748acb048b)
2020-11-26 17:43:06 +09:00
Haruki NAOI
ce405789d3 Fix: interference power measurement on DRS. 2020-11-26 17:38:56 +09:00
yaojie
59c2b9eb06 fixed warnings and add ie for PDUSessionResourceReleaseCommandTransfer 2020-11-26 15:56:39 +09:00
rmagueta
81d64b3dec Minor corrections 2020-11-26 03:12:59 +00:00
rmagueta
9bbe4f7cd8 Minor corrections 2020-11-25 22:21:24 +00:00
rmagueta
1d8a61f9e5 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/RRC/NR/L2_nr_interface.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair2/RRC/NR_UE/rrc_defs.h
2020-11-25 18:17:39 +00:00
hardy
b16d7b2eed Merge remote-tracking branch 'origin/NR_mac_uci_functions_rework' into integration_2020_wk48_2 2020-11-25 18:15:43 +01:00
Francesco Mani
ba40f3c758 fix in sync position at UE and other minor issues 2020-11-25 18:11:33 +01:00
rmagueta
e9109ee9e1 New folder for gNB NR-5GC config files 2020-11-25 16:16:54 +00:00
rmagueta
301fd47406 SIB1: Added more parameters to the message 2020-11-25 16:08:57 +00:00
hardy
2855970763 Merge remote-tracking branch 'origin/NR_UE_stability_fixes' into integration_2020_wk48_2 2020-11-25 12:25:45 +01:00
hardy
08b30babdc Merge remote-tracking branch 'origin/rrc-enb-phy-testmode' into integration_2020_wk48_2 2020-11-25 12:25:08 +01:00
hardy
40085ad064 Merge remote-tracking branch 'origin/nr_dl_ul_ptrs' into integration_2020_wk48_2 2020-11-25 12:23:55 +01:00
Sakthivel Velumani
f9c3ff3ca3 Updated the config files 2020-11-25 11:12:32 +01:00
Xue Song
6e2f63bf1f Add rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND and rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE 2020-11-25 18:55:59 +09:00
yaojie
7034159e8e add sleep between RRCReconfigurationComplete and RegistrationComplete 2020-11-25 10:52:06 +09:00
Shweta Shrivastava
e8b7dc8454 Fix error 2020-11-24 15:23:34 -06:00
Shweta Shrivastava
17b8ff50f8 Minor edits for consistency and clarity 2020-11-24 14:53:08 -06:00
Thomas Schlichter
6803e78ceb Merge remote-tracking branch 'develop'
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/RRC/NR/nr_rrc_proto.h
2020-11-24 16:58:58 +01:00
hardy
25391056c4 Merge remote-tracking branch 'origin/bugfix-nr-rate-matching-assertion' into integration_2020_wk48_2 2020-11-24 15:28:03 +01:00
hardy
11eeafd328 Merge remote-tracking branch 'origin/repair-TA' into integration_2020_wk48_2 2020-11-24 15:27:21 +01:00
hardy
865888b3d8 Merge remote-tracking branch 'origin/nr_prach_fr2' into integration_2020_wk48_2 2020-11-24 15:26:59 +01:00
Sakthivel Velumani
80ea03931c Added no of thread to config file
The thread count would me minimum of (no of cores in the machine) or (parameter mentioned in config file)
2020-11-24 15:07:07 +01:00
Navid Nikaein
a1d901277e Check if the file is openned first 2020-11-24 14:28:17 +01:00
Mahesh
bec8fad14c resolved build errors after merge 2020-11-24 18:56:20 +05:30
Mahesh
56db8f4915 RESOLVED build errors 2020-11-24 18:49:41 +05:30
wu.jing
0fdc671177 fix merge problems in ittisim 2020-11-24 10:44:09 +00:00
wu.jing
c994c2ad8f Merge branch 'develop_SA_SIM' into develop_SA_L3
Conflicts:
	common/utils/ocp_itti/intertask_interface.h
	openair2/COMMON/gtpv1_u_messages_types.h
	openair2/GNB_APP/gnb_config.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/nr_rrc_proto.h
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair3/NAS/NR_UE/nr_nas_msg_sim.h
	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-11-24 09:15:52 +00:00
Francesco Mani
d5af323ab2 taking into account sl_ahead when scheduling msg2 2020-11-24 09:08:20 +01:00
yaojie
716e16151a fixed the problem of pdu-session replace e-rab 2020-11-24 16:56:47 +09:00
Shweta Shrivastava
06f55552fe Fix small error 2020-11-24 01:04:46 -06:00
Shweta Shrivastava
a6e15d4436 Fix TransformPrecoding values to be consistent with FAPI spec 2020-11-24 00:59:08 -06:00
Shweta Shrivastava
683ff6eb39 DCI sanity checks for MCS and frequency domain assignment 2020-11-24 00:53:25 -06:00
Shweta Shrivastava
9ff55751ee DCI sanity check for pucch_resource_indicator value 2020-11-24 00:42:14 -06:00
wu.jing
2473722717 fix ittisim build error after merge 2020-11-24 14:06:51 +08:00
wu.jing
f3d51a58fb Merge branch 'develop_SA_RRC' into develop_SA_SIM
Conflicts:
	common/utils/ocp_itti/intertask_interface.h
	openair2/RRC/NR/rrc_gNB.c
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair2/RRC/NR_UE/rrc_UE.c
	openair2/RRC/NR_UE/rrc_defs.h
	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-11-24 05:15:06 +00:00
wu.jing
d987c0919f Merge branch 'master' into develop_SA_L3 2020-11-24 04:57:19 +00:00
Xue Song
598eeb79d4 Derive keys from kgnb 2020-11-24 11:58:33 +09:00
rmagueta
c02287171a File configuration for the SA. 2020-11-23 23:39:18 +00:00
Remi Hardy
2529c20bff Integration 2020 wk48
MR932 : Nr sa ngap rrc wk42 
- Initial implementation of NGAP and RRC extensions for SA
 
MR956 : Correct use of ssb_position bitmaps  

MR958 : 5G NR Downlink DMRS Type 2
- Implementation of 5G NR Downlink DMRS type 2 (generation on gNB side, channel estimation with linear interpolation in frequency domain on UE side), needed for MIMO
  
MR961 : 5G NR UE TTI cleanup  
- Remove current_thread_id array, nr_tti_rx, nr_tti_tx, subframe_rx and subframe_tx

MR965 : fix a segdev
2020-11-23 22:12:10 +01:00
Francesco Mani
a5d45a2c19 indentation in gNB MAC rach functions 2020-11-23 19:19:48 +01:00
Francesco Mani
9e7c66d2c8 indentation in phy_procedures ue 2020-11-23 18:17:53 +01:00
Francesco Mani
31bcd10cea Merge branch 'NR_FR2_RRC_SSB' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RRC_SSB 2020-11-23 18:16:41 +01:00
Francesco Mani
3e1959c8dd increase size of RA window definition for fr2 2020-11-23 18:16:34 +01:00
Francesco Mani
0075aefe31 fix in mac ue mib procedures 2020-11-23 17:58:56 +01:00
Hongzhi Wang
ee949c97f4 timing drift fix for FR2 2020-11-23 17:57:24 +01:00
Sakthivel Velumani
f55a4dd8e0 Remove hard-coding of no of threads
Script added to set the no of threads according to run-time conditions of the machine.
2020-11-23 16:45:59 +01:00
Raphael Defosseux
e9b6d0705d [docker] adding entrypoint and template generation to dockerfile for u18
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-23 16:31:45 +01:00
Francesco Mani
c5b7a3a441 fix scheduling msg2 2020-11-23 16:08:01 +01:00
yaojie
ac9028110d add NGAP_UERadioCapabilityInfoIndication 2020-11-23 17:40:42 +09:00
Florian Kaltenberger
9d71921859 fixing in UE processing of coreset_freq_dom 2020-11-23 08:55:26 +01:00
yaojie
2ed816d98c fix the task name of itti_alloc_new_message 2020-11-23 14:37:59 +09:00
Florian Kaltenberger
bf62f2bcce fixing FR2 arfcn 2020-11-22 21:40:36 +01:00
Raymond Knopp
7955cb4f8e tested IF4p5 on asterix/obelix (100 PRB via 1 Gbit/s) 2020-11-22 10:10:12 +01:00
Raymond Knopp
f0320ea0e2 testing of RCC 2020-11-21 14:06:24 +01:00
Eurecom
7a538b09d5 testing legacy RRU 2020-11-21 11:34:25 +01:00
Francesco Mani
fbdcba9fa4 bugfix in dci_nr 2020-11-21 11:12:11 +01:00
Francesco Mani
3efb077357 24 RB option in uesoftmodem 2020-11-21 11:11:28 +01:00
rmagueta
93d93c81dd Minor correction in the fill_dmrs_mask() function 2020-11-20 19:19:20 +00:00
Eurecom
f7811624b3 regular eNB with usrp seems ok 2020-11-20 14:32:24 +01:00
Florian Kaltenberger
e3b3fa82b8 Merge branch 'NR_FR2_RRC_SSB' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RRC_SSB 2020-11-20 14:13:54 +01:00
Raymond Knopp
a627d9c2a3 preparing merge, fixing issues inflicted on usrp radios after IF5 modifications 2020-11-20 14:02:51 +01:00
Sakthivel Velumani
0aa14f183e Editing an error message 2020-11-20 13:39:54 +01:00
Sakthivel Velumani
70e4bfda18 Storing Z inside harq_process structure
The LDPC lifting size has to be stored for each harq_process as its only assigned in the first round.
2020-11-20 13:37:34 +01:00
hardy
708f34eeec fixing auto-terminate function to kill all RAN nodes 2020-11-20 11:59:40 +01:00
Francesco Mani
82c4380a4e uci mac functions in a new file 2020-11-20 10:22:10 +01:00
Robert Schmidt
d116c60831 Improve DLSCH MAC scheduling logging 2020-11-20 09:54:38 +01:00
Robert Schmidt
e6bb685b5d re-enable TA 2020-11-20 09:54:34 +01:00
Robert Schmidt
bc088c975b Account for OH in preprocessor 2020-11-20 09:54:34 +01:00
Robert Schmidt
d89716541f Fix: Always place padding subPDU if space permits 2020-11-20 09:54:37 +01:00
Robert Schmidt
d245f7b958 Fix: Use DL-SCH long subheader when L >= 256 2020-11-20 09:54:34 +01:00
Robert Schmidt
3ff26c8f84 Fix: Reset HARQ feedback slot
If we schedule in a second slot, this ensures that the correct HARQ
process' NDI is toggled.
2020-11-20 09:52:42 +01:00
Florian Kaltenberger
fd9dbad966 Merge branch 'develop' into 'nr_prach_fr2' 2020-11-20 08:47:34 +01:00
yaojie
9d579b7a47 fix errors and warnings 2020-11-20 14:39:45 +09:00
Thomas Schlichter
291c94d34c Merge remote-tracking branch 'origin/nr_ue_tti_cleanup' into integration_2020_wk48
Conflicts:
	openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
2020-11-19 18:42:30 +01:00
Raymond Knopp
47a7186621 Merge remote-tracking branch 'origin/develop' into develop-oriecpriupdates 2020-11-19 18:35:52 +01:00
Mahesh
87105d77cf Merged latest develop to nfapi 2020-11-19 22:33:39 +05:30
Mahesh K
556d0045c8 Merge branch 'fork_develop_new' into 'nfapi_nr_merge'
Fork develop new

See merge request Aniq/openairinterface5g!6
2020-11-19 17:59:15 +01:00
Francesco Mani
6213307061 fix indentation in nr_prach 2020-11-19 17:11:54 +01:00
Florian Kaltenberger
4b82bbf346 Update nr_prach.c 2020-11-19 16:15:11 +01:00
Florian Kaltenberger
f99643a67b Update prachsim.c 2020-11-19 16:13:09 +01:00
Aniq Ur Rahman
c391b6b16b Update .gitignore, CONTRIBUTING.md, ci-scripts/args_parse.py, ci-scripts/.gitignore, NOTICE.md, ci-scripts/Jenkinsfile-gitlab, ci-scripts/checkCodingFormattingRules.sh, ci-scripts/checkAddedWarnings.sh files 2020-11-19 16:10:36 +01:00
Florian Kaltenberger
ad2e0ebe2d Update test_case_list.xml 2020-11-19 16:10:16 +01:00
Aniq Ur Rahman
7c110d7745 Update .gitignore 2020-11-19 16:01:39 +01:00
Cedric Roux
3889336f98 fix a nasty typo 2020-11-19 15:59:47 +01:00
Florian Kaltenberger
bba103dc2d some fixes - prachsim working now for FR2 - added testcases 2020-11-19 15:57:09 +01:00
Florian Kaltenberger
8ac98d553f first version of PRACH for FR2. to be tested 2020-11-19 15:56:56 +01:00
Hongzhi Wang
8ab6b41a27 Merge branch 'NR_FR2_RRC_SSB' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RRC_SSB 2020-11-19 15:36:07 +01:00
Hongzhi Wang
88a6a92c31 bug fix adjust sync 2020-11-19 15:34:48 +01:00
Francesco Mani
de6650f023 modifications in RRC for lower number of RBs 2020-11-19 15:25:31 +01:00
rmagueta
f86437c519 Minor correction of rnti_type in the fapi_nr_ue_l1 2020-11-19 14:16:22 +00:00
hardy
4c3ee5f0e0 Merge remote-tracking branch 'origin/fix-itti-segv' into integration_2020_wk48 2020-11-19 14:59:39 +01:00
hardy
e097bec73e Merge remote-tracking branch 'origin/nr_dl_dmrs_type2' into integration_2020_wk48 2020-11-19 14:58:54 +01:00
hardy
b57ef17b1c Merge remote-tracking branch 'origin/bch-fixes-bitmap' into integration_2020_wk48 2020-11-19 14:58:02 +01:00
hardy
a0d58f224c Merge remote-tracking branch 'origin/NR_SA_NGAP_RRC_wk42' into integration_2020_wk48 2020-11-19 14:57:08 +01:00
Remi Hardy
40141270e3 Integration 2020 wk47
MR939 : Nr rlc am bugfix w44 
- bugfix

MR948 : nr: rlc: hotfix - forgot to store frame and subfram  
- minor bugfix

MR942 : Feature/make s1 mme port configurable 
- This patch adds an optional "port" option to set another sctp port than 36412 

MR959 : minor: remove a CPPCHECK error for NR RLC
- remove a CPPCHECK error (not a real error) for NR RLC
2020-11-19 13:13:03 +01:00
rmagueta
479019a70f Minor correction in the gNB_scheduler 2020-11-19 11:06:54 +00:00
rmagueta
252a9151cd Merge branch 'develop-sib1' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/RRC/NR/rrc_gNB_reconfig.c
	openair2/RRC/NR_UE/rrc_defs.h
2020-11-19 10:55:17 +00:00
rmagueta
4d290f71cf Minor correction in the gNB_scheduler 2020-11-19 10:53:08 +00:00
rmagueta
3b9bdfc7d4 Minor corrections 2020-11-19 10:18:09 +00:00
rmagueta
749d6af42e Merge develop-sib1 into this branch 2020-11-19 02:22:47 +00:00
Francesco Mani
0e298d8777 variable name change in nr_dlsch 2020-11-18 18:08:41 +01:00
Francesco Mani
78e0af5893 adding 10MHz option (values to be verified) 2020-11-18 17:45:05 +01:00
Francesco Mani
6a0ec688c9 modifications in RRC for lower number of RBs 2020-11-18 17:29:24 +01:00
Francesco Mani
450f98228a 10 MHz USRP n300 config file 2020-11-18 17:21:30 +01:00
rmagueta
b97e1b578b Merge develop into this branch 2020-11-18 13:06:08 +00:00
rmagueta
f184239f10 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
	openair2/RRC/NR/L2_nr_interface.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/rrc_gNB.c
2020-11-18 11:57:46 +00:00
rmagueta
ee516a07c8 Add TDDIndex 4 in config file. 2020-11-18 11:28:37 +00:00
Mahesh
41438a1968 PDSCH decoded at UE 2020-11-18 16:13:42 +05:30
Raymond Knopp
98a96115c7 testing with AW2S RRU. 2020-11-18 10:50:03 +01:00
Thomas Schlichter
f41502cd19 fix compile warnings introduced by merge with develop 2020-11-18 10:38:15 +01:00
Thomas Schlichter
b06c7af345 NR UE: fix tti issues introduced by merge with develop 2020-11-18 10:38:04 +01:00
Thomas Schlichter
e059eeabc8 Merge remote-tracking branch 'develop' 2020-11-18 10:37:20 +01:00
yaojie
f8f489ec22 add NGAP UE CONTEXT RELEASE MESSAGE 2020-11-18 18:33:58 +09:00
Laurent
a592d0eb6f fix warnings 2020-11-18 08:53:02 +01:00
yaojie
959681424c fix some errors and warnings. 2020-11-18 03:12:59 +00:00
Laurent
7dd1d45626 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into fix-itti-segv 2020-11-17 15:46:47 +01:00
Laurent
614152b1b3 fix a segv 2020-11-17 15:44:11 +01:00
Francesco Mani
fa35662044 10 MHz config file 2020-11-17 14:10:10 +01:00
masayuki.harada
be31d514b4 Fix warning and compile error. 2020-11-17 22:09:41 +09:00
Florian Kaltenberger
e595ec0d8d Merge remote-tracking branch 'origin/develop' into NR_FR2_RRC_SSB 2020-11-17 13:57:51 +01:00
hardy
d9c0a13fc5 Merge remote-tracking branch 'origin/hotfix-minor-remove-nr-rlc-cppcheck-error' into integration_2020_wk47 2020-11-17 13:54:30 +01:00
hardy
fcd00c2af0 Merge remote-tracking branch 'origin/hotfix-nr-rlc-tick' into integration_2020_wk47 2020-11-17 13:53:44 +01:00
hardy
02594fea3b Merge remote-tracking branch 'origin/feature/make-s1-mme-port-configurable' into integration_2020_wk47 2020-11-17 13:53:10 +01:00
hardy
9d58ead40f Merge remote-tracking branch 'origin/nr-rlc-am-bugfix-w44' into integration_2020_wk47 2020-11-17 13:51:46 +01:00
Xue Song
e524cd9482 Add rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ
Add rrc_gNB_send_NGAP_PDUSESSION_SETUP_RESP
Fix some problems about pdu session setup
2020-11-17 19:03:55 +09:00
zhenghuangkun
5cbffcc3c4 Fix ITTI build error 2020-11-17 09:03:06 +00:00
Remi Hardy
8f03a80a36 Integration 2020 wk46 2
MR890 : moving the OFDM phase rotation from RU to DU  
Moves the recently introduced phase rotations from RU to DU. 
This is important for setups that do not use the monolithic mode (like Benetel RRU).

MR944 : fix pdsch low prb 
Fix for DLSCH decoding for low TBS and for ULSCH. 
In the UE, DLSCH decoding stats are printed periodically for every 64 frames. 
DLSCH decoding is skipped if UE receives retransmission for successfully decoded CW.
 
MR946 : S1ap bugfix rab setup  
Fix a bug in S1AP

MR951 : CI NSA FR1 logging and reporting update  
Enhancement of gNB html + log report showing (RAPROC PUSCH check, dlsch and ulsch statistics)

M954 : Mac fixes wk45 2
Hotfix: preserves "low" delay (20-30ms) and correct HARQ retransmissions by disabling timing advance (TA)
Reduces log level, compiler warning, correct TA condition
2020-11-17 09:14:05 +01:00
matzakos
d36879e4ce Add support for more nrNRB configurations in X2 ENDC setup request message 2020-11-16 15:19:39 +01:00
matzakos
f26f096f5e Remove redundant debugging logs 2020-11-16 15:19:39 +01:00
matzakos
0a60085d87 Increase size of array storing PDCP PDU to be aligned with the expected size 2020-11-16 15:19:39 +01:00
matzakos
39f057f11c Remove non-mandatory SULFreqBandItem from X2 ENDC Setup Request message 2020-11-16 15:19:39 +01:00
matzakos
648ef92ac7 Remove hardcoding of x2 configuration parameters used in ENDC setup request message at gNB side 2020-11-16 15:19:39 +01:00
Thomas Schlichter
c4448a2f24 fix warnings and indentation 2020-11-16 13:40:45 +01:00
Raphael Defosseux
152f73458d [DOCKER] fixes after review
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-16 13:32:44 +01:00
Mohammed Ismail
da5a034e2b updated
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2020-11-16 13:32:44 +01:00
Mohammed Ismail
a9a334f294 updated: Python scripts to generate eNB's templates for container images
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2020-11-16 13:32:44 +01:00
Raphael Defosseux
abf2693b38 [OC][docker][build] support for new RHEL8.3 version
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-16 13:32:44 +01:00
Mohammed Ismail
af1495f124 script for config files generation
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2020-11-16 13:32:44 +01:00
Raphael Defosseux
524354aebc OC: fix typos
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-16 13:32:44 +01:00
Mohammed Ismail
d4d0776774 sctp_event_subscribe updated
Signed-off-by: Mohammed Ismail <mohammed.ismail@eurecom.fr>
2020-11-16 13:32:44 +01:00
Raphael Defosseux
86c1ba3c19 CI: fix UL iperf from TRF container
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-16 13:11:37 +01:00
Cedric Roux
7b48f89496 minor: remove a CPPCHECK error for NR RLC
This "error" is not a real error.
openair2/LAYER2/nr_rlc/tests/test.c includes testXX.h to define the array
int test[] and by design test[2] always exists.

Let's simply suppress the reporting of this error.
2020-11-16 10:25:58 +01:00
Parminder Singh
6c2fbb361d Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-11-16 09:47:46 +01:00
Thomas Schlichter
9f841634b5 Merge remote-tracking branch 'develop' 2020-11-16 09:40:06 +01:00
masayuki.harada
e3d3c6e418 Merge branch 'NR_SA_NGAP_RRC_wk42' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_NGAP_RRC_wk42 2020-11-16 13:59:33 +09:00
rmagueta
2177e83ca7 Coreset0 / SIB1 configured using the computed BWP considering the 3GPP. 2020-11-14 23:53:23 +00:00
rmagueta
461406ab01 Coreset0 / SIB1 configured using the configuration file. 2020-11-14 14:51:32 +00:00
rmagueta
aa676235a3 Minor fixes on used BWP of coreset0. 2020-11-13 18:56:32 +00:00
Thomas Schlichter
47ce347d7e NR UE cleanup: remove current_thread_id array, nr_tti_rx, nr_tti_tx, subframe_rx and subframe_tx 2020-11-13 17:29:02 +01:00
hardy
63277ad3de Merge remote-tracking branch 'origin/mac-fixes-wk45_2' into integration_2020_wk46_2 2020-11-13 13:26:15 +01:00
hardy
1bb68b6f66 Merge remote-tracking branch 'origin/rh_ci_fr1_update' into integration_2020_wk46_2 2020-11-13 13:25:40 +01:00
hardy
f267efbe5a Merge remote-tracking branch 'origin/s1ap-bugfix-rab_setup' into integration_2020_wk46_2 2020-11-13 13:23:18 +01:00
hardy
12e0f738b7 Merge remote-tracking branch 'origin/fix_pdsch_low_prb' into integration_2020_wk46_2 2020-11-13 13:22:39 +01:00
hardy
4b3a67b3a7 Merge remote-tracking branch 'origin/benetel_phase_rotation' into integration_2020_wk46_2 2020-11-13 13:21:42 +01:00
rmagueta
17312d685f Minor fixes on used BWP. 2020-11-13 12:07:53 +00:00
Sakthivel Velumani
cc2cc95f02 Merge branch 'develop' into fix_pdsch_low_prb 2020-11-13 11:56:36 +01:00
Remi Hardy
b452218383 Integration 2020 wk46
MR936: nr_fdd_if_fix
- Add support for 5G NR FDD bands and introduce configurable IF frequencies (esp. on nrUE) with configurable UL-DL-frequency offset. 
 
MR940: dongzhanyi-zte-develop2  
- Solved the problem that UE UL LDPC code can only process data within 8 code blocks (the UE UL LDPC code could only process data within 8 code blocks. If there were more than 8 code blocks, an error would occur)

MR943: NR_UE_MAC_scheduler
- Dynamic calculation of slot for PUSCH transmission based on slot offset k2. PUSCH slot is no longer hard-coded to 8.
- Support for multiple UL allocations in a frame by supporting a ul_config_request per UL slot.
- Support for multiple PDUs per slot
- Fixes for a few UE crashes/assertion failures due to invalid DCI received
- UE scheduler code clean-up
2020-11-13 11:12:30 +01:00
yincong
c208bffa3a add OAI license 2020-11-13 16:11:41 +08:00
zhenghuangkun@cn.fujitsu.com
f64bba177a Modify SA source code 2020-11-13 07:37:22 +00:00
Parminder Singh
4fe5986845 Corrected conditional statement wrt OAI Formatting Rules 2020-11-12 19:29:10 +01:00
Florian Kaltenberger
ec060cbc62 fixing the filling of the ssb_mask_list (hopefully) for long bitmap (FR2) 2020-11-12 19:02:14 +01:00
Florian Kaltenberger
4e9c155464 Merge branch 'NR_FR2_RRC_SSB' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RRC_SSB 2020-11-12 14:31:28 +01:00
rmagueta
1daaa7c6a3 BWP fixes 2020-11-12 09:59:37 +00:00
Robert Schmidt
65c7ab092a Correct use of ssb_position bitmaps 2020-11-12 10:45:13 +01:00
Remi Hardy
0ea4378bd8 fixing reporting appearance 2020-11-12 10:40:16 +01:00
Francesco Mani
471c8eb8e1 bugfix for long ssb bitmap in fix scc 2020-11-12 10:20:49 +01:00
hardy
e7b2c47348 Merge remote-tracking branch 'origin/nr_fdd_if_fix' into integration_2020_wk46 2020-11-12 09:27:00 +01:00
He Shanyun
d1a055ff70 implement pdusession establishment request 2020-11-12 03:06:10 +00:00
Robert Schmidt
fe6f7244df Fix compiler warning: %ld in printf 2020-11-11 16:48:53 +01:00
Robert Schmidt
308de3b68d Lower PHY/HARQ log level 2020-11-11 16:48:40 +01:00
Robert Schmidt
67d6311143 Hotfix: disable TA to keep RTT low + HARQ retx intact 2020-11-11 16:47:18 +01:00
Robert Schmidt
434186fd9f Correct TA timer condition
- wrap around 1024 (frame number is 0-1023)
- check for equality of frames with high numbers will trigger every 10ms
2020-11-11 16:45:54 +01:00
Florian Kaltenberger
781ec26cf2 also fixing PRACH issue in UE + config files 2020-11-11 15:38:21 +01:00
Francesco Mani
ef486e8f59 bugfix in csi meas reporting 2020-11-11 14:21:53 +01:00
Francesco Mani
39e33016c9 Merge branch 'NR_FR2_RRC_SSB' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_FR2_RRC_SSB 2020-11-11 14:21:27 +01:00
Florian Kaltenberger
7109841f07 Merge remote-tracking branch 'origin/nr_prach_fr2' into NR_FR2_RRC_SSB 2020-11-11 14:06:51 +01:00
Mahesh
e6bf90e2dd LTE and NR NFAPI integration 2020-11-11 15:10:32 +05:30
Khodr Saaifan
89b102c8cc Enable dmrs config1 for pdsch and clean the code 2020-11-11 10:29:48 +01:00
Khodr Saaifan
1ca324e595 Enable DMRS config2 for PDSCH and fix bug in the UE phy_procedures_nr_ue 2020-11-11 09:36:59 +01:00
Francesco Mani
671167572e Merge remote-tracking branch 'origin/nr_prach_fr2' into NR_FR2_RRC_SSB 2020-11-11 07:31:37 +01:00
rmagueta
11cb336dcc Correction of the offset and number of RBs of coreset0. Using the interleaver. 2020-11-11 04:49:19 +00:00
Florian Kaltenberger
ed97e21649 fixing prach config for FR2 2020-11-10 21:53:02 +01:00
Thomas Schlichter
f2502eebab fix some compile warnings 2020-11-10 21:10:55 +01:00
Frédéric Leroy
06aefa589f fix(build_helper): fix superfluous $ in protobuf extraction command 2020-11-10 20:39:21 +01:00
Thomas Schlichter
55717204dc cleanup: remove TTI related parameters from NR_DL_FRAME_PARMS 2020-11-10 19:19:51 +01:00
Francesco Mani
b1bffcee81 extend bitmap for SSB in RRC to FR2 2020-11-10 19:03:29 +01:00
hardy
536125c356 Merge remote-tracking branch 'origin/dongzhanyi-zte-develop2' into integration_2020_wk46 2020-11-10 17:24:40 +01:00
hardy
e9fff748c6 Merge remote-tracking branch 'origin/NR_UE_MAC_scheduler' into integration_2020_wk46 2020-11-10 17:23:36 +01:00
Remi Hardy
a452f74f0d bug fix 2020-11-10 17:14:57 +01:00
Remi Hardy
4353880dbd gNB html + log update for nsa fr1 ok 2020-11-10 16:53:01 +01:00
Thomas Schlichter
b402026aef Add DL PTRS test cases to CI 2020-11-10 14:30:42 +01:00
cig
122e18d088 Common function to check the frequency channel raster 2020-11-10 10:52:44 +01:00
Parminder Singh
841ddaf9f8 Corrected data type for printf to remove warning in nr-softmodem
- In gNB_scheduler int is updated to long int to avoid warnings for
printf
2020-11-10 10:50:27 +01:00
cig
7e1ac1fa49 Merge remote-tracking branch 'origin/develop' into fhg-fdd-custom-if 2020-11-10 10:41:10 +01:00
Sakthivel Velumani
f36f724b04 The same BG related updates are added to UL 2020-11-09 23:44:55 +01:00
Sakthivel Velumani
4c8ec44678 Updated the stats message 2020-11-09 23:39:09 +01:00
Remi Hardy
789e48fcd2 debug 2020-11-09 17:50:34 +01:00
Parminder Singh
b0ee3bb206 Correction for first OFDM symbol estimation and compensation
- Direct multiply with the conjugate of the estimation for compensation
2020-11-09 17:25:00 +01:00
hardy
9d3304059a for debug 2020-11-09 16:51:58 +01:00
matzakos
7772a51c07 Merge remote-tracking branch 'origin/develop' into NR_SA_NGAP_RRC_wk42
Conflicts:
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/nr_rrc_proto.h
	targets/COMMON/create_nr_tasks.c
2020-11-09 15:52:52 +01:00
hardy
e8aeccad9f fix typo 2020-11-09 15:45:09 +01:00
Frédéric Leroy
89f7132685 fix(config): set S1AP_PORT_NUMBER as default value for mme port 2020-11-09 15:43:01 +01:00
Frédéric Leroy
78fa6df3a4 feat: add "port" parameter on configuration files
Use default port 36412 for S1
2020-11-09 15:15:46 +01:00
hardy
7ce5aaa136 adding dlsch and ulsch statistics 2020-11-09 15:13:56 +01:00
Frédéric Leroy
6338831315 feat(build_helper): use 'id' command instead $USER variable
When $USER is not set (Yes we did !), extracting protobuf fails.
Wh avoid this by using the 'id' command both to get user and group ids.
2020-11-09 14:55:02 +01:00
hardy
7878e102e0 improving markers for NSA FR1 test 2020-11-09 14:33:59 +01:00
Florian Kaltenberger
6e1ad6e93b Merge remote-tracking branch 'origin/develop' into benetel_phase_rotation 2020-11-09 13:58:41 +01:00
Sakthivel Velumani
c61b47dc96 Revert "Enabled ACK/NACK logs for CI"
This reverts commit 199ce5d953ed90e052a69f520b30b7253b163250.
2020-11-09 12:24:10 +01:00
Sakthivel Velumani
a57136697f Skip decoding for false retransmission
If UE receives retransmission for already decoded PDSCH, it skips decoding and sets ACK directly.
And adding PDSCH decoding stats and printing then every 64 frames for CI purpose
2020-11-09 12:24:10 +01:00
Sakthivel Velumani
2f76924671 Enabled ACK/NACK logs for CI 2020-11-09 12:19:41 +01:00
Sakthivel Velumani
66323e0b1d BG selection bug fix
The BG was set to its default for rounds > 0. This is now fixed by adding it to harq structure.
Also a fix for wrong I_lbrm set in dlsch decoding.
2020-11-09 12:19:41 +01:00
Xue Song
9bba3c795a Fix GTPU's IP setting error 2020-11-09 18:04:56 +09:00
Xue Song
04897ab64f Fix GTPU's IP setting error 2020-11-09 08:32:57 +00:00
Parminder Singh
443f1817e5 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-11-08 18:47:29 +01:00
Florian Kaltenberger
6056de78b3 fixing dependency in CMakeLists.txt 2020-11-08 17:02:40 +01:00
Mahesh
643fc632d6 PBCH working 2020-11-06 19:48:34 +05:30
Parminder Singh
910c1860f0 DMRS estimation default value is moved outside slot processing
- in PTRS processing the default value for DMRS is set outside slot
   processing.
2020-11-06 14:26:25 +01:00
Parminder Singh
03db617c38 Remove TX-GAIN multiplication with transmitted signal in ULSIM
- Removed tx_gain calculations and multiplication with tx signal
- Updated sigma value calculations and removed unused variables
- Re-indent the related code for better readability
2020-11-06 12:12:43 +01:00
Cedric Roux
8fee453c8e nr: rlc: hotfix - forgot to store frame and subframe... 2020-11-06 11:36:57 +01:00
yaojie
bce573e64e fix process NGAP_INITIAL_CONTEXT_SETUP_REQ 2020-11-06 10:36:56 +00:00
Remi Hardy
3d60e95387 Merge branch 'integration_2020_wk45_2' into 'develop'
Integration 2020 wk45 (2) comprising:

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

MR910:5G SA NAS messages 
- 5G SA nass messages and a simple unitary test code
 
MR927:Nr rrc configuration fr2
- introduces some bug fixes for FR2 that might also have an impact on FR1.
2020-11-06 11:29:03 +01:00
Raphael Defosseux
7f70174cf8 CI: added missing build artifacts in one of the pipeline; fix RA test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-06 11:15:23 +01:00
He Shanyun
3d75f3c199 deal with Registration Accept 2020-11-06 08:21:01 +00:00
zhenghuangkun
d395831a54 Fix error registration complete 2020-11-06 07:44:58 +00:00
zhenghuangkun
86a3bfc0d6 Modify registration complete 2020-11-06 07:20:12 +00:00
zhenghuangkun
4041f14d1f Modify registration complete 2020-11-06 07:17:23 +00:00
zhenghuangkun
0e2e5f4c7e add nas message for registration complete 2020-11-06 05:30:11 +00:00
hardy
3917b1ae0f Merge remote-tracking branch 'origin/NR_RRCConfiguration_FR2' into integration_2020_wk45_2 2020-11-05 16:53:13 +01:00
hardy
802e8218ad Merge remote-tracking branch 'origin/noCore' into integration_2020_wk45_2
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
2020-11-05 16:49:21 +01:00
Parminder Singh
13645b1b5e Updated the sin cos table condition check
- Sin cos table quadrant condition checks are updated
- function are indented properly
- Debug prints are updated for double data type
2020-11-05 16:31:16 +01:00
Parminder Singh
c16e5831d1 Added debug prints in ULSIM for PTRS RE calculations
- Added PTRS Symbols in a slot and Resource elements count in debug print
2020-11-05 14:08:02 +01:00
Parminder Singh
c9523b88a7 Updated UL ptrs processing wrt DL
- Most DL code is reused for Ul also to reduce code duplication
- Common CPE calculation function is used for error estimation
- Common slot processing function is used for inter/extrapolation
- Removed old implementation dedicated to UL
2020-11-05 14:00:01 +01:00
Parminder Singh
f0c843faf9 Sin cos table initialization for ULSIM also
- As new sin cos table is used in phase noise function it shall be
  initialized for ULSIM also
2020-11-05 13:36:44 +01:00
Thomas Schlichter
53edb35eb7 Fix whitespace changes 2020-11-05 12:25:57 +01:00
yaojie
56b1d24ff4 fix error InitialContextSetupResponse 2020-11-05 10:10:29 +00:00
Parminder Singh
41d3bcac85 Fix - Issue with uninitialized structure in NR_ULSCH_CODING.c
- Initialized variable to remove the valgrind issue.
2020-11-05 10:35:09 +01:00
Khodr Saaifan
97a9dfd83a UE: implement pdsch channel estimation for dmrs_config type2 2020-11-05 10:19:22 +01:00
Xue Song
7bef73bfa8 set nas message container for security mode complete 2020-11-05 07:57:05 +00:00
Khodr Saaifan
1de69e8e27 PHY: link dmrs_config to higher layers 2020-11-05 03:22:30 +01:00
He Shanyun
1a9fd6028f set authentication code for security mode complete 2020-11-05 01:20:46 +00:00
Shweta Shrivastava
46219d8c61 Fixed ulsim compilation error 2020-11-04 10:47:02 -06:00
Parminder Singh
0ce350d1cf Merge remote-tracking branch 'origin/develop' into fhg-shp-dl-ptrs 2020-11-04 16:20:50 +01:00
Eugene Bogush
3c3593c6a6 fix for proc: e_rab_setup_resp 2020-11-04 15:26:54 +01:00
rmagueta
976c2b2e84 Fill SIB1 with configuration values 2020-11-04 11:52:55 +00:00
Parminder Singh
209785551a Review Comments are updated
- updated return function value to -1
- removed static variable for dmrs symbol selection for channel
- Updated sin cos quadrant check conditions
- removed casting from PTRS slope and related calculations
2020-11-04 11:29:35 +01:00
Thomas Schlichter
e38679e6da Merge remote-tracking branch 'develop' 2020-11-04 10:22:11 +01:00
rmagueta
578b17dec6 First baseline implementation of SIB1 2020-11-04 00:00:24 +00:00
Laurent
39bb839d7c Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-11-03 23:21:47 +01:00
rmagueta
45911fb8f0 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
 Conflicts:
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2020-11-03 19:41:52 +00:00
Robert Schmidt
2e03cbe7bf Track RBs in vrb_map as binary 2020-11-03 20:02:48 +01:00
rmagueta
6e0b0049ea Coreset0 frequency allocation update 2020-11-03 18:58:56 +00:00
Florian Kaltenberger
0d30561ecd Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-11-03 16:55:20 +01:00
Florian Kaltenberger
d17e075f78 Merge remote-tracking branch 'origin/develop' into nr_prach_fr2 2020-11-03 16:08:17 +01:00
Florian Kaltenberger
6f28d0e38b some fixes - prachsim working now for FR2 - added testcases 2020-11-03 16:01:58 +01:00
Raymond Knopp
f920962b9b tracing in IF5_tools.c for fronthaul error debugging 2020-11-03 15:21:36 +01:00
Thomas Schlichter
5903467849 Merge remote-tracking branch 'develop' into nr_fdd_if_fix
Conflicts:
	ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
	openair2/LAYER2/NR_MAC_UE/config_ue.c
	openair2/LAYER2/NR_MAC_gNB/config.c
2020-11-03 14:27:16 +01:00
Robert Schmidt
c4f8ff1561 Assert on condition UE not found in UE_list 2020-11-03 14:23:50 +01:00
Robert Schmidt
ad0424cbba Check all RA procs in nr_rx_sdu() if unknown RNTI 2020-11-03 14:23:50 +01:00
Robert Schmidt
d94b1cd1a5 Track RB allocation in vrb_map{,_UL} on per-symbol basis 2020-11-03 14:23:50 +01:00
Robert Schmidt
40175d244a Format schedule_nr_mib() 2020-11-03 14:23:50 +01:00
Francesco Mani
2bdcbe6c18 Fix for filling vrb_map for ssb
The SSB nFAPI message is only sent every 8 frames, and automatically
repeated by the PHY layer in between. This commit sets the vrb_map
structure in those frames in between nFAPI so that the scheduler does
not schedule on such resources.
2020-11-03 14:23:50 +01:00
Robert Schmidt
a94da10dee Remove UE from UE_list on disconnect 2020-11-03 14:23:50 +01:00
Robert Schmidt
9125fc8d22 Refactor/shorten interface of nr_fill_nfapi_dl_pdu() 2020-11-03 14:23:50 +01:00
Robert Schmidt
8651b7fd14 Remove commented/unused code in DLSCH/phytest scheduler 2020-11-03 14:23:50 +01:00
Robert Schmidt
0deb5d291d Use special dlsim preprocessor 2020-11-03 14:23:50 +01:00
Robert Schmidt
b389e43eea Add phytest preprocessor
The phytest preprocessor schedules only one UE, as many RBs as possible
(largest continuous RB region), with a fixed MCS and time domain
allocation.
2020-11-03 14:22:28 +01:00
Robert Schmidt
fd9f5d2d2c Use function pointer to call pre-processor 2020-11-03 14:22:27 +01:00
Robert Schmidt
14f15d7e77 Fix: postprocessor resets UE scheduling condition 2020-11-03 14:22:27 +01:00
Francesco Mani
8363849c3f Modification of TA update procedure 2020-11-03 14:22:27 +01:00
Robert Schmidt
fd3d49bbe7 Correctly check and apply the TA in DLSCH scheduler 2020-11-03 14:21:37 +01:00
Remi Hardy
adcf9e9f86 Merge branch 'integration_2020_wk45' into 'develop'
MR902 Nr mac ssb ro ue idcc
- Construction of SSB-RO mapping table on the UE
- RO selection based on SSB index
- RACH preamble selection based on SSB index in a selected RO
- RA-RNTI calculation
  

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

MR929 RA fixes for NR UE  

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

MR933 nr rlc: bugfix 
- ret.next was not set in a particular case
2020-11-03 12:45:06 +01:00
Parminder Singh
741a5b98e7 Added sin cos table implementation for dlsim
- Sin and Cos values are obtained from a table with a resolution of
  100.
- dlsim is updated to use this table for phase noise.
2020-11-03 11:26:37 +01:00
Xue Song
89eae04132 Add NAS Security Mode Complete 2020-11-03 09:58:23 +00:00
Raymond Knopp
8b92c53141 modifications for eCPRI radio units, increased averaging in eNodeB subband I0 measurements 2020-11-03 06:01:42 +01:00
rmagueta
23f5277d29 Decoding and xer_fprint of SIB1 at UE 2020-11-03 02:31:46 +00:00
Shweta Shrivastava
93e34b7fd7 Fixes for a few UE failures due to invalid DCI received 2020-11-02 19:02:34 -06:00
Frédéric Leroy
1426ee5ed6 feat: add optional parameter port for mme connection 2020-11-02 17:16:29 +01:00
Florian Kaltenberger
4ab9c75578 first version of PRACH for FR2. to be tested 2020-11-02 14:19:14 +01:00
hardy
caa31696c3 Merge remote-tracking branch 'origin/nr-rlc-bugfix-w44' into integration_2020_wk45 2020-11-02 14:13:12 +01:00
hardy
58b91359e1 Merge remote-tracking branch 'origin/fix-ci-tun' into integration_2020_wk45 2020-11-02 14:12:22 +01:00
hardy
cb7e2c11e3 Merge remote-tracking branch 'origin/NR_UE_RA_fixes' into integration_2020_wk45 2020-11-02 14:11:44 +01:00
hardy
628c2b7486 Merge remote-tracking branch 'origin/nr-mac-pdu-wireshark' into integration_2020_wk45 2020-11-02 14:11:13 +01:00
rmagueta
d07e2ecc3b Minor correction: removing mac header 2020-11-02 12:44:00 +00:00
Frédéric Leroy
cad824099e fix(build_helper): use SUDO when we are a regular user
root user is not tied to a container.
Let the possibility to build when we run as a regular user in a
container.
2020-11-02 10:54:17 +01:00
He Shanyun
947194a271 implement authentication response 2020-11-02 09:51:03 +00:00
rmagueta
290d9691f7 SIB1 PDSCH implementation 2020-10-31 19:56:04 +00:00
Parminder Singh
65fb8a84b8 Fixed Channel compensation for dlsim for multiple DMRS
- fixed channel compensation by choosing most recent DMRS symbol ina
  slot
- Removed code to find nearest DMRS symbol for channle compensation
- Updated TBS calculation in DLSIM
- Added debug prints in PTRS CPE estimation for DMRS symbol
2020-10-31 14:36:05 +01:00
dongzhanyi
ed2eb95c4a solved the problem that UE UL LDPC code can only process data within 8 code blocks 2020-10-31 07:13:07 +08:00
rmagueta
ac0dc9d3aa Transmission of SIB1 2020-10-30 17:01:51 +00:00
Eurecom
c355a26aa6 fixing RA test iteration to 10 times to have a chance (unstable in CI env) 2020-10-30 15:26:57 +01:00
Thomas Schlichter
1020292984 fix CPPCHECK warning regarding "cfg" in openair1/PHY/INIT/nr_parms.c 2020-10-30 13:17:04 +01:00
Florian Kaltenberger
0609742e21 Merge remote-tracking branch 'origin/benetel_5g_prach_fix' into benetel_phase_rotation 2020-10-30 12:30:25 +01:00
He Shanyun
63795a6c94 implement identityresponse 2020-10-30 08:34:52 +00:00
Shweta Shrivastava
16b80425b8 Small fix 2020-10-29 21:32:51 -05:00
Laurent
7d603191db merge develop 2020-10-29 16:29:32 +01:00
Laurent
136d9ccb67 add documentation and code review comments 2020-10-29 16:14:55 +01:00
Cedric Roux
aec21aa234 nr rlc: add a test 2020-10-29 15:48:01 +01:00
Cedric Roux
f433c90efe nr rlc: fix a bug
The count was wrong.
2020-10-29 15:47:50 +01:00
cig
1daebfbd86 Fixed CPPCHECK warning about potential null pointer dereference of cfg 2020-10-29 13:53:47 +01:00
cig
a47f31a44a Added configuration files for FDD band 66 2020-10-29 13:53:47 +01:00
Parminder Singh
1e9720ef88 Added -U command line parameter to update DMRS configuration for DLSIM
- -U 2 0 [0-2], can be used to update DMRS configurations
- update check for additional position 3 in dlsch decoding
2020-10-29 13:49:03 +01:00
cig
e37fb2ae05 Updated doc files with IF / FDD features 2020-10-29 10:01:02 +01:00
Xue Song
9fddd09dc3 Fix build warning
Modify SecurityModeFailure
2020-10-29 07:31:26 +00:00
zhenghuangkun
881a6d4afc add nas message for registration complete 2020-10-29 05:43:59 +00:00
yaojie
c2c84a9318 Add Downlink(NAS Identity Request)/Uplink(NAS Identity Response) 2020-10-29 14:24:32 +09:00
Shweta Shrivastava
c0d123b9f7 Support for multiple PDUs in a UL slot 2020-10-28 20:54:18 -05:00
matzakos
87c83aaf21 Merge remote-tracking branch 'origin/develop' into NR_SA_NGAP_RRC_wk42
Conflicts:
	cmake_targets/CMakeLists.txt
	docker/Dockerfile.enb.rhel7.oc4-4
	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
2020-10-29 00:19:49 +01:00
rmagueta
4f525854d0 Update nr_extract_dci_info() for the NR_RNTI_SI case. 2020-10-28 16:39:09 +00:00
Robert Schmidt
9d2651d080 CI: Parse UE TUN interface correctly in S1 mode
See also commit 8c5976e279

Above commit changed the TUN interface configuration to use program "ip"
only. This commit changes the CI script parsing correspondingly: the
pipeline will recognize the attempt to bring up the interface of the
first UE.
2020-10-28 17:10:21 +01:00
hardy
b18c361125 improved CI RA checks 2020-10-28 17:07:19 +01:00
Raymond Knopp
e880e66b65 Merge branch 'NR_RRCConfiguration_FR2' of http://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRCConfiguration_FR2 2020-10-28 16:40:11 +01:00
Raymond Knopp
77b152ade5 adding config file for band 13 2020-10-28 16:39:47 +01:00
Parminder Singh
327ba9d398 PTRS DL extraction, estimation and compensation
- Added PTRS extraction and estimation for DL
- Added processing for whole slot wrt PTRS estimates
- DLSIM is updated to used -T flag to enable PTRS
- DMRS compensated signal is further compensated with PTRS estimation
2020-10-28 15:39:03 +01:00
Thomas Schlichter
4cac02e014 Merge remote-tracking branch 'eurecom/develop' into fhg-fdd-custom-if 2020-10-28 14:08:23 +01:00
Florian Kaltenberger
8ba0d28ace hardcoding measurement frequency to 3.6GHz. 2020-10-28 13:58:38 +01:00
Thomas Schlichter
eaf43790a0 synchronize gnb.band78.tm1.106PRB.usrpx300.conf for USRP X300 with main version for URSP N310 2020-10-28 13:52:01 +01:00
Mario Hudon
bddd86b77a Merge remote-tracking branch 'oai-eurecom/develop' into NR_MAC_SSB_RO_UE_IDCC 2020-10-28 08:23:29 -04:00
Florian Kaltenberger
ba6edde825 updating 4g config file 2020-10-28 13:08:05 +01:00
Florian Kaltenberger
a129f121cc dpdk changes for 18.11 2020-10-28 13:07:41 +01:00
Florian Kaltenberger
638b5de1d2 updating config file for gNB 2020-10-28 11:28:00 +01:00
Florian Kaltenberger
144e267541 fixing PRACH bug in benetel_5g driver 2020-10-28 11:08:26 +01:00
Florian Kaltenberger
f4f9d3b4d7 hardcoding ra_rnti in case of long prach for benetel 2020-10-28 11:06:35 +01:00
Xue Song
b6e038e044 add NAS up/downlink 2020-10-28 09:54:03 +00:00
hardy
3578426082 fixed UE log file name 2020-10-28 10:07:25 +01:00
Thomas Schlichter
41f4ed9eaf synchronize gnb.band78.tm1.106PRB.usrpn300.conf file in ci-scripts and target directory 2020-10-28 09:53:38 +01:00
He Shanyun
f2bb26a91b add decode and encode for registration accept 2020-10-28 05:59:58 +00:00
Xue Song
ca4e85553f Add ITTI_SIM in rrc_gNB_generate_RRCRelease 2020-10-28 05:34:46 +00:00
Xue Song
456329b527 modify RRCRelease 2020-10-28 02:56:55 +00:00
He Shanyun
4843f90716 fix build error of phy simulator 2020-10-28 02:49:10 +00:00
Xue Song
90fbe805bb modify RRCRelease 2020-10-28 02:05:01 +00:00
He Shanyun
52f92b7ce0 set mnc 2020-10-28 01:44:18 +00:00
yaojie
58b390c7e0 fix error: Initialize NGAP_CONF_MODE for ittiSIM 2020-10-28 01:17:09 +00:00
Raymond Knopp
36bbd2a068 adapting config file for band 261 2020-10-27 21:07:13 +01:00
masayuki.harada
483f4b2d1b Fix merge miss. 2020-10-28 04:21:41 +09:00
masayuki.harada
dc288b7bc8 Merge branch 'develop_SA_L3' into NR_SA_NGAP_RRC_wk42
# Conflicts:
#	openair2/GNB_APP/gnb_paramdef.h
#	openair2/RRC/NR/rrc_gNB.c
2020-10-28 03:57:14 +09:00
Shweta Shrivastava
661dd53186 Minor changes + UL scheduler code restructure 2020-10-27 13:36:45 -05:00
masayuki.harada
8cff73dc39 Fix merge error. 2020-10-28 03:19:41 +09:00
Remi Hardy
68619cae68 Merge branch 'integration_2020_wk44' into 'develop'
Integration 2020 wk44

MR923 : Fixes tun  
TUN-interface related changes

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

MR917 : NR CSI reporting
This is a new feature
2020-10-27 18:35:34 +01:00
Eurecom
31f1a4b137 fixed RA check marker 2020-10-27 18:23:14 +01:00
Mario Hudon
818694acaa -Code review: Use FAPI PRACH PDU instead of PRACH vars in nr_ue_get_rach/nr_get_prach_resources 2020-10-27 11:26:16 -04:00
masayuki.harada
5c49c67f98 Merge remote-tracking branch 'remotes/origin/develop_SA_RRC' into develop_SA_L3
# Conflicts:
#	openair2/RRC/NR_UE/rrc_UE.c
#	openair2/RRC/NR_UE/rrc_defs.h
2020-10-27 20:47:03 +09:00
masayuki.harada
1956fd3b72 Merge commit 'b67badef1b2fd390d801e20644b08df0d5880583' into develop_SA_L3
# Conflicts:
#	common/utils/ocp_itti/intertask_interface.h
#	openair2/RRC/NR/rrc_gNB.c
#	openair3/NGAP/ngap_gNB_nas_procedures.c
2020-10-27 20:25:16 +09:00
He Shanyun
90a10cd051 set amf setid and regionid for registration request 2020-10-27 11:06:23 +00:00
masayuki.harada
4649f0f615 Merge remote-tracking branch 'remotes/origin/develop_SA_SIM' into develop_SA_L3 2020-10-27 19:47:49 +09:00
cig
ae86b727e2 Update the time channel statistics "dl_ch_estimates" in nr_pbch_channel_estimation
- it shall be updated at every last PBCH symbol
- this fixes stability issues with the FDD mode
2020-10-27 11:09:26 +01:00
cig
6862affdf4 Cleanup RF HW configuration at UE side
- removed redundant initialisation of variables
- introduced two "RF helpers" function that are replacing shared code in the sync routines
- added a new .c file and updated the cmakelists and .h files
2020-10-27 11:09:17 +01:00
cig
95bd55d8b6 Cleanup redundant setting of duplex mode after sync 2020-10-27 10:43:24 +01:00
cig
a9096bc9ef Moved downlink and uplink frequencies global variables to the relevant .h file 2020-10-27 10:43:24 +01:00
cig
3939406141 Logging fixes at UE and gNB 2020-10-27 10:43:24 +01:00
cig
8e7d69989b Cleanup initialisation frame params UE and command line options
- got rid of global variable fp
- code cleanup, removed redundant and unused code
- removed unused command line options and variables
- grouped command line setting in set_options function
2020-10-27 10:43:24 +01:00
cig
eb3c6538ee Moved N_TA offset setting to init function 2020-10-27 10:43:24 +01:00
cig
8ee8b81043 Cleaned up unused UE variables, members, commented out code 2020-10-27 10:43:24 +01:00
cig
c961e81ce9 Broken down get_band into two functions to get duplex offset and frame type
- the band is coming from the SI, therefore a function to get the band is not
  necessary
- this solves also the limitations of the get_band algorithm with the NR bands
  overlapping in the NR operating bands table (e.g. band 78 and band 48)
2020-10-27 10:43:24 +01:00
cig
7e45f8be7a Fix for scan carrier to make it compatible with custom DL/UL IF implementation 2020-10-27 10:41:59 +01:00
cig
fa07a48456 Set downlink carrier and uplink CO @ UE through command line
- this reflects the implementation of IF and IF offset in the gNB RU
- the RF frequencies are set at HW level while the target frequencies are
  stored in fp, therefore the values stored in fp should not be changed
  after sync as only the tx/rx freq is updated
- removed overwritten dl/ul carrier frequencies in fp after sync
- removed redundant set of tx/rx freq in ue_synch (done in init_openair0)
- removed irrelevant set of dl/ul carrier freq in get_options
2020-10-27 10:41:59 +01:00
cig
63e93528b9 Bypass the tdd_table in FDD mode
- tdd_table is filled in only in TDD mode and should not be used in FDD mode
2020-10-27 10:41:59 +01:00
cig
1bacb91add Bugfix: set freq_offet to static to avoid re-initialisation in frequency scanner 2020-10-27 10:41:59 +01:00
cig
60d81f231a Configuration changes to support FDD
- adapted the get_band function: the algorithm is now taking into account
  also the UL frequency in order to fetch the proper band (this was failing
  before as some NR bands have the same DL band, e.g. band 65 and 66)
- added new bands to the NR table as per TS 38.101 V16.4.0 (2020)
- made the from_nrarfcn function compatible with UL FDD (this function,
  used for both DL and UL  was previously working with TDD only as it
  did not compute properly the frequency for the UL FDD, throwing asserts)
- introduced common functions to get the NR table idx and the duplex mode,
  removing repeated code in the process
- removed the unused function to get the uldl offset
- improved some logging
- other minor fixes to the relevant code
2020-10-27 10:41:59 +01:00
cig
609844a379 Small code cleanup gNB
- removed long-time commented out and unused code
- fixed logging
2020-10-27 10:39:43 +01:00
cig
29f7a5082a Introduced configuration of RU IF offset from configuration file
- the RU now supports IF equipment with custom FR1 TX/RX frequencies
- this configuration parameter together with the if_freq parameter allows
  to set a custom IF RX frequency for the gNB
- if the IF offset is not specified, legacy code applies
2020-10-27 10:39:43 +01:00
He Shanyun
5880c1f8c7 add nas message for registration request 2020-10-27 09:28:47 +00:00
Xue Song
356a4d83e9 fix nrUE build error 2020-10-27 07:41:53 +00:00
yaojie
a5343618cf Added the judgment of the NGAP field in the configuration file 2020-10-27 07:40:09 +00:00
Laurent
7ec149cc35 merge develop 2020-10-27 08:23:59 +01:00
He Shanyun
b67badef1b fix build error of phy simulator 2020-10-27 02:59:52 +00:00
Xue Song
41d3892c64 Merge branch 'develop_SA_NGAP' into develop_SA_RRC 2020-10-27 02:51:57 +00:00
Xue Song
62292f892e modify ngap_gNB_handle_nas_first_req 2020-10-27 01:56:41 +00:00
rmagueta
807b3e90b8 RNTI_SI: update to 0xFFFF 2020-10-27 00:30:03 +00:00
Raymond Knopp
6c414a80d4 wqMerge remote-tracking branch 'origin/develop' into develop-oriecpriupdates 2020-10-26 19:58:25 +01:00
hardy
779362dcb7 Merge remote-tracking branch 'origin/NR_CSI_reporting' into integration_2020_wk44 2020-10-26 17:30:17 +01:00
hardy
b0797c0899 Merge remote-tracking branch 'origin/finalize-oaicn-integration' into integration_2020_wk44 2020-10-26 17:29:28 +01:00
hardy
97d284bea3 Merge remote-tracking branch 'origin/bugfix-nr-bands' into integration_2020_wk44 2020-10-26 17:28:58 +01:00
hardy
89d7353ddf Merge remote-tracking branch 'origin/fixes-tun' into integration_2020_wk44 2020-10-26 17:28:11 +01:00
Parminder Singh
42e9c655be Moved LLR calculations inside a static function
- LLR calculations are moved inside a static function and done for a
  slot in last symbol processing
2020-10-26 15:01:43 +01:00
Cedric Roux
3826ea13ac nr rlc: bugfix - ret.next was not set in a particular case
The function next_missing needs a rewrite...
2020-10-26 11:01:44 +01:00
Parminder Singh
cf3780c04d Added PTRS related definitions and variables for DL processing in UE
- Added PTRS variables in transport UE header file
- Added DMRS inline symbol check function in refsig.h
- Added PTRS estimation and other related structures in defs_nr_UE.h file
2020-10-26 10:29:39 +01:00
Parminder Singh
8d496bdcf8 Adding PTRS symbol from gNB in DL
- Based upon ptrs bitmap, ptrs symbols are added in DL
- Mac ptrs validation condition is updated
2020-10-26 10:28:02 +01:00
Parminder Singh
22cd1885bc DMRS Specific changes from fhg-dl-dmrs branch 2020-10-26 10:23:52 +01:00
Parminder Singh
54c89ccdbc MAC layer changes to process PTRS RRC values and validation
- Get RRC values from dedicated bandwidth part and process it
- Validate all settings in MAC layer and enable PTRS processing in PHY
2020-10-26 10:15:19 +01:00
Parminder Singh
3651107f81 Added PTRS parameters in UE nFAPI interface
- PTRSPortIndex, PTRSTimeDensity, PTRSFreqDensity, PTRSReOffset, nEpreRatioOfPDSCHToPTRS
- mcs_table : to calculate MCS table in MAC layer and pass tp PHY
- pduBitmap : same as used in DL FAPI interface, to enable or disable PTRS processing
2020-10-26 10:06:33 +01:00
Wu.Jing
66bc0bac1e Merge branch 'master' into develop_SA_L3 2020-10-26 09:04:03 +00:00
Wu.Jing
08e775559b Merge branch 'develop_SA_SIM' into develop_SA_L3 2020-10-26 09:02:18 +00:00
Parminder Singh
a7982741aa RRC sub-function to add PTRS configuration for DL
- Added a function to add PTRS values in RRC context.
- This function can be used to overwrite the PTRS values also.
- When RRC config file contains PTRS values then this function can be used
respectively in RRC context.
2020-10-26 10:01:15 +01:00
Raphael Defosseux
41d059794c Merge remote-tracking branch 'origin/oc-docker-october-improvements' into finalize-oaicn-integration 2020-10-26 09:49:44 +01:00
Raphael Defosseux
457734988c CI: lock mechanism around the VM usage
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
61989549e1 CI: better handling of the case when no UE is connected to ADB server
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
0a4cfc2173 CI: scenarios that are known as unstable won't be seen as failures
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Raphael Defosseux
fb957484af CI: intermediate commit
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-26 09:49:33 +01:00
Francesco Mani
1a1ee59d39 Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-26 09:27:52 +01:00
Francesco Mani
c41566ac6a fix compilation error 2020-10-26 09:27:40 +01:00
Khodr Saaifan
c93147ee43 gNB: allow more than 2 antenna ports at the Tx side 2020-10-26 08:44:16 +01:00
Wu.Jing
a9b76b5341 Merge branch 'develop_SA_RRC' into develop_SA_SIM
Conflicts:
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/rrc_gNB.c
2020-10-26 07:30:18 +00:00
Wu.Jing
92ba7dc249 Merge branch 'develop_SA_NGAP' into develop_SA_RRC 2020-10-26 06:20:02 +00:00
masayuki.harada
1ce1e8f82b Merge branch 'oai_develop'
# Conflicts:
#	ci-scripts/Jenkinsfile-gitlab
2020-10-26 15:03:58 +09:00
Remi Hardy
97ae4300f7 Merge branch 'integration_2020_wk42_2' into 'develop'
Integration 2020 wk42 (2)

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

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

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

The following Merge Requests were included:

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

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

Kept new RA test disabled
2020-10-19 11:24:12 +02:00
hardy
03e5b461a3 Merge remote-tracking branch 'origin/NR_MAC_SSB_RO_GlobalEdge' into integration_2020_wk42
Solved Conflicts in:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2020-10-19 11:18:30 +02:00
hardy
8eb9d0b4a6 Merge remote-tracking branch 'origin/fixes-mac-sched-nfapi' into integration_2020_wk42 2020-10-19 10:52:37 +02:00
hardy
4d14cc63b9 Merge remote-tracking branch 'origin/cce_indexing_fix' into integration_2020_wk42 2020-10-19 10:51:46 +02:00
hardy
d94fc12887 Merge remote-tracking branch 'origin/NR_RA_updates' into integration_2020_wk42 2020-10-19 10:50:56 +02:00
hardy
639d957e30 Merge remote-tracking branch 'origin/flexran-apps' into integration_2020_wk42 2020-10-19 10:49:44 +02:00
zhanghuiqin
49487217bf add UECapabitlityEnquiry(ue) 2020-10-19 08:22:15 +00:00
Xue Song
4766f3a629 fix RRCReconfiguration/RRCReconfigurationComplete 2020-10-19 07:58:10 +00:00
Qiu DeZhi
4421bc5665 modify rrcRelease 2020-10-19 06:55:53 +00:00
Qiu DeZhi
1605266440 Add RRCrelease 2020-10-19 04:59:29 +00:00
Shweta Shrivastava
f85559abf1 Removed hard-coded PUSCH slot at UE; use dynamic grant 2020-10-18 23:51:48 -05:00
Raphael Defosseux
13cf8284fd Merge branch 'integration_2020_wk41' into 'develop'
develop integration branch : 2020 week 41

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

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

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

See merge request Aniq/openairinterface5g!5
2020-10-12 18:56:41 +02:00
Mahesh K
66a6d550a6 benetel: driver for Benetel's 4G and 5G RRUs
This commit contains work done by Eurecom and by Benetel.
2020-10-12 18:56:41 +02:00
Laurent
910a130eb2 Merge branch 'noCore' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-10-12 18:25:19 +02:00
Laurent
4f2d8ebfcd merge develop, use Linux crypto library 2020-10-12 18:24:08 +02:00
hardy
fd571e9014 Merge remote-tracking branch 'origin/small-bugfixes-w40' into integration_2020_wk41 2020-10-12 18:08:16 +02:00
hardy
e801d03836 Merge remote-tracking branch 'origin/rh_ci_oc' into integration_2020_wk41 2020-10-12 18:07:27 +02:00
Sakthivel Velumani
4074db8515 Hotfix for DL DCI issue in UE
Created two dci_pdu's to hold dci configuration for UL and DL DCI.
This wasn't a problem before as only one DCI was scheduled.
2020-10-12 18:07:24 +02:00
matzakos
cb7b924950 Create dummy x2 function where needed in the nr phy simulators
-To avoid including the whole x2 libraries for the corresponding executables
2020-10-12 17:53:40 +02:00
Raphael Defosseux
221e43bbb9 NASMESH: support for latest kernel version on RHEL
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
357748dfff BUILD: fix check when not in a container
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
00926c5b7d [DOCKER][Ubuntu18]: adding Ubuntu18 support
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:29:04 +02:00
Raphael Defosseux
b6d0f22c13 [OC][RHEL8]: updating dockerfiles w/ proper library management on target images + support for USRP build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:28:41 +02:00
Raphael Defosseux
49e1add19f [DOCKER][RHEl8]:
* Standalone support on RHEL8.2 (without OpenShift build-config system)
* few ports for RHEL8.2 standalone podman/docker usage
* Supports eNB/gNB/LTE-UE/NR-UE

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

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

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

MR895 support of RA procedure by implementing Msg3 on UE

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

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

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

MR903 : pusch ta update  
Update of PUSCH Timing advance  

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

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

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

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

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

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

The following work is included:

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

Open problems:

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

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

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

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

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

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

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

The following Merge Requests have been included:

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

The following Merge Requests have been included:

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

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

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

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

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

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

The following merge requests have been included:

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

The following Merge Requests are included:

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

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

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

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

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

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

Develop Integration Branch : 2020 week 31

The following Merge Requests have been included:

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

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

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

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

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

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

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

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

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

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

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

- mark used RBGs in rbg_mask

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

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

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

The following Merge Requests have been included:

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

    fill_ulsch UE_id 0 nb_rb = 0

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

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

- mark used RBGs in rbg_mask

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

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

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

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

The following Merge Requests have been included:

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

The following Merge Requests are included:

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

The following merge requests have been included:

* MR 823 : NR-UE Init sync bugfix
* MR 824 : code cleanup
2020-06-08 15:17:34 +02:00
Raymond Knopp
072836d7b9 NR-IP traffic: Make fapi dl pdu configuration be triggered only when there is data from the upper layers to be scheduled
- To be used for NSA and noS1 modes
2020-06-08 14:38:54 +02:00
Raymond Knopp
ad1e47f7f4 Merge branch NR_RRC_harq_hacks into NR_RRC_PDCP 2020-06-08 14:30:38 +02:00
Raphael Defosseux
d0ca8f12e8 CI: handling of new compilation warnings
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-08 11:04:27 +02:00
Raphael Defosseux
5cb573fcab Merge remote-tracking branch 'origin/cleanup-20200604' into develop_integration_2020_w23 2020-06-08 10:34:21 +02:00
laurent
1ff806d519 fix shared lib dependency error 2020-06-05 18:26:47 +02:00
Thomas Schlichter
84dfeff40a fix broken merge from develop in phy_procedures_gNB_common_RX() 2020-06-05 10:09:57 +02:00
MaheshK1995
fd51a5bdcb PARAM message exchange DONE 2020-06-04 19:09:37 +05:30
Raphael Defosseux
89acc09420 CI: fix the RAW files usage by NR-UE
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-04 14:32:41 +02:00
MaheshK1995
776a74401d LTE to NR conversions 2020-06-04 15:00:09 +05:30
laurent
d1e8c23529 cleanup 2020-06-04 10:48:29 +02:00
Rangaswami
884cbc7c8c Corrected indentation and removed GES macro 2020-06-04 11:04:43 +05:30
Thomas Schlichter
1a91c25d07 Merge branch 'init_sync_bugfix' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
2020-06-03 21:50:01 +02:00
Thomas Schlichter
225a500b3e Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
	openair1/PHY/NR_REFSIG/dmrs_nr.c
	openair1/PHY/NR_TRANSPORT/nr_prach.c
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
2020-06-03 19:50:54 +02:00
Raymond Knopp
376baa3247 fixes for machine without CUDA 2020-06-03 17:02:03 +02:00
Raphael Defosseux
a2ffa29f3b Making CUDA additions conditional on CUDA installation
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-06-03 15:32:51 +02:00
Sakthivel Velumani
5bfbb00d2c bugfix for UE init sync 2020-06-03 14:49:26 +02:00
WANG Tsu-Han
79899c8a6f adding CUDA in LDPC test 2020-06-03 09:55:33 +02:00
MaheshK1995
017517986c Debugging 2020-06-02 16:07:02 +05:30
MaheshK1995
1e377d584f updated gitignore 2020-06-02 15:35:58 +05:30
laurent
0169c05c74 merge develop, some tests in 5g: no regression 2020-06-02 11:26:11 +02:00
laurent
62f9e7b5e7 remove all usage of RC.ru global var in ocp-gnb and nr-uesoftmodem 2020-06-02 10:35:17 +02:00
Raymond Knopp
e6d03868cb Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-06-02 10:17:26 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
579cfad82d git add for merge 2020-06-01 19:51:25 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
03d354efce merge to develop 2020-06-01 19:27:44 +08:00
Raymond Knopp
65cf9da7d2 Merge branch NR_RRC_harq_hacks into NR_RRC_PDCP 2020-05-29 16:57:34 +02:00
Raphael Defosseux
362da7c920 Merge branch 'develop_integration_2020_w22' into 'develop'
Develop Integration Branch : 2020 week 22

The following Merge Requests are been included:

* MR 796 : Nr rrc configuration trx thread
* MR 807 : Use SCF FAPI for DMRS and PTRS also on UE side
* MR 817 : Fixing errored/missing circular dependency protection
* MR 819 : cleanup branch and initial ninja build support
* MR 820 : CI: Add OAI-CN-In-Docker support
2020-05-29 15:50:58 +02:00
Raphael Defosseux
8cdba4ff2d CI: fix a few cppcheck errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-29 11:59:40 +02:00
Raphael Defosseux
534525eada CI: fix typo in inria pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-29 11:58:28 +02:00
s.rampalli
19a44bd092 modified the rrc_add_nsa_user api 2020-05-29 12:57:29 +05:30
Raphael Defosseux
77492a09ce Merge remote-tracking branch 'origin/cleanup-may-2020' into develop_integration_2020_w22 2020-05-28 14:27:45 +02:00
Raphael Defosseux
f63920dc7c CI: taking care of the case if R2LAB is not available
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:27:06 +02:00
Raphael Defosseux
6a0e50c8a8 CI: trying on inria setup w/o threading specific option
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:26:54 +02:00
Raphael Defosseux
29b2922758 CI: increase timeout for building OAI UE
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-28 14:23:09 +02:00
laurent
19690332af fix one T dependency 2020-05-28 13:41:04 +02:00
Raphael Defosseux
4ce8275ffb Merge remote-tracking branch 'origin/add_oai_cn_docker_support_to_ci' into develop_integration_2020_w22 2020-05-28 12:59:08 +02:00
Raphael Defosseux
768b4e0f24 Merge remote-tracking branch 'origin/cleanup-may-2020' into develop_integration_2020_w22 2020-05-28 12:58:42 +02:00
Raphael Defosseux
a0ab138a5e Merge remote-tracking branch 'origin/fix-circular-dependency-protection' into develop_integration_2020_w22 2020-05-28 12:56:05 +02:00
Raphael Defosseux
e5eca66ad5 Merge remote-tracking branch 'origin/fapi_for_dmrs_and_ptrs' into develop_integration_2020_w22 2020-05-28 12:55:48 +02:00
laurent
9b06211056 remove test ninja 2020-05-27 17:58:01 +02:00
laurent
c02b12f15b test ninja 2020-05-27 17:19:11 +02:00
WANG Tsu-Han
82bbde7dbb fix for rf simulation 2020-05-27 10:48:26 +02:00
WANG Tsu-Han
a5cffd8240 device funtion call initalization fix 2020-05-26 16:21:20 +02:00
Raphael Defosseux
9097867cd8 CI: check the NR-UE cell-synchronization during launch not and just in post-mortem diagnosis
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-26 10:53:58 +02:00
Raphael Defosseux
9142c684df CI: adding support for docker-based OAI-CN-CUPS deployment
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>

Conflicts:
	ci-scripts/epc.py
2020-05-26 10:53:38 +02:00
Raymond Knopp
69b4211aba Change default NR DRB configuration to RLC UM 2020-05-25 21:13:19 +02:00
Raymond Knopp
72f1b2cb09 Remove hack restriction for single time DL scheduling 2020-05-25 20:55:12 +02:00
Raymond Knopp
fd5f7bec0d Merge branch NR_PDCP_noS1 back to NR_RRC_PDCP 2020-05-25 20:13:22 +02:00
matzakos
47713f2a08 NR RB configuration: Remove dependencies from LTE structures
-Remaining LTE dependency in RLC add_srb function (not used for NSA setup)
-Rename function for DRB static preconfiguration used in noS1 mode
2020-05-25 15:46:00 +02:00
Raymond Knopp
d0e6e847e1 assertion removal 2020-05-25 14:36:37 +02:00
vr.devendra
02be147d17 GlobalEdge: CSI and TCI related MAC CE intial commit 2020-05-22 20:15:12 +05:30
Thomas Schlichter
ce105df4e7 Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_transport.h
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair2/GNB_APP/RRC_nr_paramsvalues.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2020-05-20 19:26:16 +02:00
laurent
bdee45878a cleanup branch 2020-05-20 15:44:20 +02:00
cig
928dd902e3 Code cleanup 2020-05-20 12:41:06 +02:00
cig
783470905d Bugfix: missing deactivation dlsch after processing is done:
- the issue popped up with the new rx/tx implementation  at the UE
- this was causing false processing of DLSCH PDU and reception of false
  TA commands
2020-05-20 12:41:05 +02:00
s.rampalli
04e903a39b indentations fixed 2020-05-20 15:47:03 +05:30
s.rampalli
729890a133 Required changes/modifications are done at both eNB and gNB side 2020-05-20 15:26:37 +05:30
WANG Tsu-Han
a85a39048d Merge branch 'develop' into NR_RRCConfiguration_trx_thread 2020-05-20 09:50:05 +02:00
laurent
cbd801b6e5 some cleanup and checks 2020-05-19 21:29:13 +02:00
matzakos
58bc9e5395 Fix ULSCH slot scheduling mismatch between gNB and OAI UE 2020-05-19 15:27:08 +02:00
matzakos
0c287d9f51 Adaptation at DLSCH scheduling function to support EPC mode 2020-05-19 15:23:12 +02:00
matzakos
c2e65b0639 Correct pseudo-subheader byte of random ULSCH PDU (phytest) to an appropriate value 2020-05-19 15:08:02 +02:00
matzakos
9e8e9c8ff0 noS1: Introduce NR DRB preconfiguration and PDCP RLC configuration triggering 2020-05-19 14:57:38 +02:00
laurent
9112ee01f5 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-05-18 22:17:16 +02:00
laurent
026924244a merge develop, ocp-gnb working on rf sim and phy-test mode: DL and UL user traffic 2020-05-18 22:16:54 +02:00
matzakos
6d71096637 Change pseudo-subheader byte of random ULSCH PDU (phytest) to an appropriate value
- Apply a value which cannot be interpreted as any valid LCID at the MAC layer of the receiver gNB (as per 38.321 Table 6.2.1-2),
to avoid forwarding the random PDU to the upper layers in noS1 mode.
2020-05-17 13:03:24 +02:00
Raymond Knopp
4e50e36ede intermediate commit, pucch2 RX with polar still not complete 2020-05-17 10:43:15 +02:00
Raphael Defosseux
11783e755a Fixing errored/missing circular dependency protection
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-05-15 15:39:11 +02:00
Thomas Schlichter
7fc9ab7720 use NR_UE_sched_ctrl_t instead of UE_sched_ctrl_t in gNB_scheduler 2020-05-14 18:38:08 +02:00
Thomas Schlichter
95833dde60 Merge branch 'develop' 2020-05-14 18:36:59 +02:00
Ahmed Hussein
566de5670b Bug fixes regarding ping issues 2020-05-14 16:18:53 +02:00
s.rampalli
2792f8ce4a compilation done need to verify with GES endc setup 2020-05-14 15:36:45 +05:30
s.rampalli
62bb979b49 coding done need to verify testing part 2020-05-14 12:22:44 +05:30
Raymond Knopp
f043c63a34 added 2 UCI tests to CI for polartest 2020-05-14 00:45:58 +02:00
Raymond Knopp
100f75ba45 polar coding for UCI (PUCCH) integrated into polartest for lengths 12...64 2020-05-14 00:41:15 +02:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
a102405896 LDPC cuda support BG1 all length 2020-05-13 22:31:30 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
02dc4ba8ce configured LDPC on CPU and GPU 2020-05-13 22:27:36 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
da62b92f6e Merge remote-tracking branch 'origin/develop' into NCTU_OpinConnect_LDPC 2020-05-13 22:24:40 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
5c7e4c21db LDPC implementation on Quadro p5000 by NCTU OpinCommect 2020-05-13 22:21:49 +08:00
matzakos
97d1f98f67 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-05-13 13:56:18 +02:00
cig
268a35419e Hotfix scrambling rnti
- this is needed because in the current implementation of the gNB
  the scrambling rnti is 0 for the RA and dci rnti otherwise
2020-05-12 17:38:47 +02:00
cig
4522cd4eb9 Changes to RA procedures:
- monitoring RA window
- taking RA_offset into account
- workaround to generate PRACH only when the RAR has not been received yet (RA is idle)
2020-05-12 17:33:28 +02:00
cig
66395ff7b7 Set RA offset at UE to compensate for 2 frames offset introduced by gNB 2020-05-12 17:28:35 +02:00
cig
8394ee82f5 More dynamic DCI configuration 2020-05-12 17:28:11 +02:00
cig
08b6211956 Scheduling of Msg2 2020-05-12 17:23:50 +02:00
cig
12b585a190 Fixes to RA procedure 2020-05-12 17:19:10 +02:00
cig
58dbf7d4b9 New design UE scheduler 2020-05-12 17:19:00 +02:00
Raymond Knopp
704e167b86 Merge branch 'NR_RRC_PDCP' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PDCP 2020-05-12 15:31:12 +02:00
Raymond Knopp
06d4ef6177 Modification of an input parameter type for nr_rrc_rlc_config_asn1_req 2020-05-12 14:58:44 +02:00
cig
96b5755753 Cleanup NR UE DCI configuration 2020-05-11 11:09:36 +02:00
cig
785ffa4def Minor fixes 2020-05-11 11:09:36 +02:00
cig
4dc0e7f235 Enabled UE to process RX and TX in every DL or UL (or mixed) slot respectivey
- the commit fixes also the selection of the thread_id in TX procedures
- DCI configuration is currently limited to slot 1 and 7
2020-05-11 11:09:36 +02:00
cig
e3ba90b055 Fixes for polar and scrambling RNTI at UE
- including temporary hotfix for the polar rnti
2020-05-11 11:09:36 +02:00
Francesco Mani
cdead06962 fix for scrambling rnti and dci format 2020-05-11 11:09:36 +02:00
Thomas Schlichter
25c4cea36f remove now unnecessary frame_gap completely 2020-05-07 10:02:11 +02:00
Thomas Schlichter
aa7e10c405 also use the high 6 bits from MIB when calculating decoded_frame_rx after the initial synchronization 2020-05-07 10:02:11 +02:00
Thomas Schlichter
fa18a88fdb fix updating UE->frame_gap and calculation if proc->frame_rx > dcireq.dl_config_req.sfn 2020-05-07 10:02:11 +02:00
Francesco Mani
d4929cc21e bugfix in dmrs offset for pusch 2020-05-07 09:52:48 +02:00
s.rampalli
cf844cef14 changed the encoded buffer size to 4096 2020-05-06 22:31:08 +05:30
Ahmed Hussein
1ffa9eed64 Bug fix regarding the uplink dmrs symbol position bitmask 2020-05-06 16:15:30 +02:00
Raymond Knopp
bd1c4dd00b Add default NR RLC UM bearer configuration 2020-05-05 20:30:19 +02:00
s.rampalli
37dcfb1a9d fixed rrc x2ap runtime issues 2020-05-05 21:36:07 +05:30
s.rampalli
cfd402a03a mistake 2020-05-05 19:53:13 +05:30
s.rampalli
509fb16705 rrc changes 2020-05-05 17:22:17 +05:30
s.rampalli
c52c9b7ba4 fixed rrc issues 2020-05-05 14:03:05 +05:30
s.rampalli
85cfa10961 rrc runtime errors fixed 2020-05-05 13:55:49 +05:30
s.rampalli
bdc7943b8f fixed encoding failed issue 2020-05-05 09:09:27 +05:30
Raymond Knopp
632ef048c8 Introduce triggering of PDCP and RLC configuration for the list of added DRBs
-Upon reception of SgNB Addition Request from the eNB, the gNB configures pdcp and rlc entities for the list of DRBs provided from the eNB
2020-05-04 18:12:20 +02:00
Raymond Knopp
017a6ef141 Introduce NR RRC->RLC configuration
-Create nr_rrc_rlc_config_asn1_req function
-Update RLC DRB addition functions with NR structures instead of LTE
2020-05-04 17:58:36 +02:00
Raymond Knopp
eb51e39f39 Introduce NR RRC->PDCP configuration
-Create nr_rrc_pdcp_config_asn1_req function
-Update PDCP DRB addition functions with NR structures instead of LTE
2020-05-04 17:48:18 +02:00
laurent
7aa9a7bd49 work in progress, re-merge before continuing 2020-05-03 18:30:26 +02:00
Thomas Schlichter
79471f2f6d Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
	openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
	openair1/PHY/defs_RU.h
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/RRC/NR/rrc_gNB_nsa.c
	openair2/X2AP/x2ap_eNB_handler.c
2020-04-30 18:54:37 +02:00
Raymond Knopp
84b1df4b87 Merge remote-tracking branch 'origin/develop' into nr_pucch2 2020-04-30 16:12:18 +02:00
Ahmed Hussein
fcf6439040 Fixed bug related to N_TA_offset not being applied at UE
- By default this value is equal to 0 at gNB in case of ulsim, but
    has a value in case of RF simulator
  - The N_TA_offset was calculated but not used at UE side
2020-04-29 12:08:22 +02:00
Ahmed Hussein
eeef6da2aa Fixed bug regarding TBS calculation and G calculation
- The number of nb_dmrs_re at gNB side was set to 6, but here it is assumed
    that there will be no data allocation in OFDM symbols that carry DMRS
  - nb_dmrs_re that is being given as an input to the TBS calculation,
    should be multiplied by the number of DMRS symbols in order to get the total
    number of DMRS REs per RB
  - In the calculation of G, only the number of DMRS per RB in 1 OFDM symbol should
    be given as an input, because inside the function of the G calculation, this
    number is being multiplied by the number of OFDM symbols that carry DMRS
2020-04-28 18:05:14 +02:00
Raymond Knopp
dc5149e854 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-04-27 19:28:39 +02:00
Raymond Knopp
2723d095b6 Merge remote-tracking branch 'origin/NR_RRC_harq_hacks' into NR_RRC_PDCP 2020-04-27 19:26:53 +02:00
laurent
07c8d00011 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-04-24 11:45:29 +02:00
laurent
151bde05c8 merge develop, compile only 2020-04-24 11:45:22 +02:00
cig
5eacaddd0e Code cleanup 2020-04-23 09:55:04 +02:00
cig
32af60bcf5 UE RA procedures changes to preamble selection:
- get preamble from rach_ConfigDedicated in contention free mode
- do preamble selection only in prach slot
2020-04-23 09:55:04 +02:00
cig
f276494317 Completed dlsch demodulation for RA PDSCH 2020-04-23 09:55:04 +02:00
cig
c56854afe4 Set proper polar rnti and scrambling rnti for the phy-test and do-ra running modes:
- in phy-test both rnti are set to same rnti
- in do-ra the scrambling rnti is set to 0 while the polar rnti is the RA_rnti (computed as per
  TS 38.321)
2020-04-23 09:55:04 +02:00
cig
acfad36f1a Code cleanup:
- restructured nr_pdcch_unscrambling function
- minor cleanups
- formatting
2020-04-23 09:55:04 +02:00
cig
220685e320 UE RAR DCI reception
- NR UE scheduled response for RA PDSCH case
- UE processing of RAR DCI
- some cleanup and formatting
2020-04-23 09:54:34 +02:00
cig
0546bcea94 Doing phy procedures RX in slot 7 for RAR DCI 2020-04-22 17:57:24 +02:00
matzakos
6b79403767 NR pdcp: Rebase initial implementation
Initially targeting ENDC setup with commercial UE
- Missing nr_rrc_pdcp and nr_rrc_rlc configuration wrt the established DRB
- Remaining to test with user plane data traffic (Downlink and Uplink)
2020-04-21 15:20:22 +02:00
s.rampalli
939a28ba07 Removed temporary values in x2ap and rrc 2020-04-20 11:27:56 +05:30
Thomas Schlichter
0cc5a12e77 Merge branch 'develop' 2020-04-17 16:01:51 +02:00
Thomas Schlichter
42413bc565 disable PUSCH PTRS even in ulsim
PTRS leads to code shortening, and the current LDPC implementation has issues with that for higher code rate.
Because of this, we have to disable PTRS by default, as we test MCS 28 in CI.
2020-04-17 15:59:05 +02:00
Thomas Schlichter
2a0bfde4a0 use "PUSCH_PDU_BITMAP_PUSCH_PTRS" when setting, clearing or checking pdu_bit_map 2020-04-17 10:20:09 +02:00
Ahmed Hussein
68ba04abf8 Adding an extra condition for L_ptrs
- if L_ptrs is >= number of pusch symbols, then no ptrs will be scheduled
2020-04-16 21:48:27 +02:00
Ahmed Hussein
728a903369 Making "is_ptrs_symbol" as a static inline function 2020-04-16 19:30:52 +02:00
Ahmed Hussein
9b52bf29ca Separating "is_ptrs_subcarrier" from "is_ptrs_symbol" 2020-04-16 19:21:35 +02:00
Francesco Mani
9deb0ed08c Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-16 18:58:53 +02:00
Ahmed Hussein
f8c0de63cd Using "ptrs_re_offset" at UE side instead of using the function "get_kRE_ref" (TEMP implementation) 2020-04-16 18:02:59 +02:00
Ahmed Hussein
eae301e5d8 Fix regarding PTRS frequeny domain allocation 2020-04-16 16:49:44 +02:00
Ahmed Hussein
6adc40bbd1 Removed "ptrs_configured" and using "pusch_pdu->pdu_bit_map" instead at UE side 2020-04-16 15:58:50 +02:00
Ahmed Hussein
870845fc9d Minor fixes and modifications for get_K_ptrs 2020-04-16 14:50:11 +02:00
Ahmed Hussein
b0611cf49d Modifying get_L_ptrs and minor fixes 2020-04-16 14:34:40 +02:00
Ahmed Hussein
15629f126c Moving get_L_ptrs and get_K_ptrs from PHY to MAC 2020-04-16 13:49:52 +02:00
Ahmed Hussein
b8f77a9c60 Fixed PTRS frequency domain allocation
- The bug occurs when the PUSCH allocation contains the central RB of the whole UL BW
2020-04-15 19:14:14 +02:00
Ahmed Hussein
e9dd51a746 Minor clean-ups regarding PTRS 2020-04-15 18:48:03 +02:00
cig
6f87d474b7 Fixed wrong printing in nr_process_timing_advance 2020-04-15 16:59:09 +02:00
Ahmed Hussein
c878bbcc78 Fixing ptrs time domain allocation in set_ptrs_symb_idx 2020-04-15 16:11:56 +02:00
laurent
497595ba0c merge again develop 2020-04-14 21:16:23 +02:00
laurent
b0b5a1012a cosmetic 2020-04-14 19:53:43 +02:00
cig
ec422f7050 Introduced a delay after a completed sync before starting msg1 generation:
- this was necessary because as soon as the gNB starts, it tries detecting
  the prach preambles and it mesaures the background noise. However, there is
  a delay of several dozens of frames before it considers the preables as
  detected.
- the solution at the UE consists in avoiding sending preamble as soon as the
  UE syncs by introducing an offset, this keeps the power measurements low at
  gNB side as long as the preamble detection counter is under threshold
2020-04-14 14:28:01 +02:00
cig
19530c5ab9 Cleanup nr transport header file 2020-04-14 14:28:01 +02:00
cig
8dd88bcb0e Deleted duplicated transport common proto header file 2020-04-14 14:28:01 +02:00
cig
c0029473dc Fixed some warnings 2020-04-14 14:28:01 +02:00
cig
3e70405b58 Cleanup transport_proto header 2020-04-14 14:28:00 +02:00
Francesco Mani
3dc9ad0567 Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-14 14:17:34 +02:00
Ahmed Hussein
672937b4d7 Using SCF structs for DMRS at UE side instead of dmrs_UplinkConfig 2020-04-14 08:38:13 +02:00
laurent
a9ec7a1d7c merge develop, updates related 2020-04-10 20:55:50 +02:00
laurent
b90e8ea7db merge, compile ok, regular exe ok, ocp-gnb not 2020-04-10 18:21:37 +02:00
Thomas Schlichter
c128e82291 use nfapi_nr_ue_pusch_pdu_t instead of fapi_nr_ul_config_pusch_pdu for pusch_config_pdu 2020-04-07 21:18:28 +02:00
Ahmed Hussein
b9148d636f Migrating members from NR_UL_UE_HARQ_t to the new added NFAPI structs 2020-04-07 15:02:04 +02:00
WANG Tsu-Han
f0116d6bba fixes for return value for not using usrp write thread 2020-04-07 11:55:27 +02:00
Ahmed Hussein
d3cbf14694 Using ul_dmrs_symb_pos at UE side instead of assuming that DMRS is only present at 1st symbol of PUSCH 2020-04-06 10:37:17 +02:00
Ahmed Hussein
76f937d8f2 Removing nb_re_dmrs and length_dmrs from NR_UE_ULSCH_t 2020-04-06 09:12:33 +02:00
Ahmed Hussein
1104cf0414 Removing DMRS parameters from "nr_ulsch_encoding" 2020-04-06 08:51:35 +02:00
WANG Tsu-Han
76eec2d1ee Merge branch 'develop' into NR_RRCConfiguration_trx_thread 2020-04-02 13:03:25 +02:00
WANG Tsu-Han
a6e1b2a9f8 Merge branch 'develop' into NR_RRCConfiguration_trx_thread
Conflicts:
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2020-04-02 13:02:31 +02:00
Ahmed Hussein
9a857e4486 Adopting the dynamic implementation of DMRS at the gNB side
- Using the implemented DMRS functionalities at the MAC layer at the gNB side
  - Removing is_dmrs_symbol function
  - Temporary implemetation at the UE side considering DMRS symbol is at the 1st PUSCH symbol,
    until the nFAPI structs for DMRS is adopted at the UE side
2020-04-02 10:05:54 +02:00
adk
5f194af906 optimization and fixing PUSCH PTRS generation 2020-04-02 10:05:54 +02:00
adk
5e7d52d279 fix indentation 2020-04-02 10:05:54 +02:00
WANG Tsu-Han
669cc161f0 adding second_addr in config file 2020-03-24 11:22:17 +01:00
NCTU CS ISIP
689426e8c1 LDPC implement on Quadro p5000 2020-03-11 20:02:20 +08:00
laurent
99729391a3 merge develop, first version of 5g simple main() 2020-03-06 21:45:26 +01:00
NCTU CS ISIP
1f6dbb20fe LDPC implementation on GPU
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 19:12:31 +08:00
NCTU CS ISIP
fb30fc6aa5 GPU branch
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 18:36:33 +08:00
NCTU CS ISIP
0f011679c0 NCTU_CS_ISIP
Signed-off-by: NCTU CS ISIP <tyhsu@cs.nctu.edu.tw>
2020-03-06 17:42:52 +08:00
WANG Tsu-Han
5cdfcc4cb5 bugfix after merge 2020-03-05 19:24:40 +01:00
WANG Tsu-Han
e08b5c1c38 Merge branch 'trx_write_thread' into NR_RRCConfiguration_trx_thread
Conflicts:
	executables/nr-ru.c
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2020-03-05 18:31:21 +01:00
WANG Tsu-Han
cc4a0c742e adding debug message 2020-03-05 17:38:47 +01:00
Raymond Knopp
7994fc2703 compilation errors after merge resolved 2020-03-01 19:46:27 +01:00
Raymond Knopp
02c9e83108 Merge remote-tracking branch 'origin/develop' into develop-oriecpriupdates
Conflicts:
	openair1/PHY/LTE_TRANSPORT/if5_tools.c
	openair1/PHY/LTE_TRANSPORT/prach.c
	openair1/PHY/defs_eNB.h
	targets/ARCH/COMMON/common_lib.c
	targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
	targets/RT/USER/lte-ru.c
2020-03-01 16:14:58 +01:00
WANG Tsu-Han
bd672c5f0f renaming of variable 2020-02-26 14:47:24 +01:00
WANG Tsu-Han
d30a28c368 adding check for overflow, removing prints and parameter setting fix 2020-02-25 16:49:39 +01:00
WANG Tsu-Han
c2b3867f8a fix for not using pointer to stash 2020-02-25 15:16:18 +01:00
WANG Tsu-Han
61a24472db assertion removal and debuging message adding 2020-02-25 14:07:01 +01:00
WANG Tsu-Han
d83c935e42 add trx write thread 2020-02-21 16:19:43 +01:00
Raymond Knopp
9133aeddc4 gtkw file 2019-11-12 20:03:21 +01:00
magounak
5bc28899d3 testing ECPRI receive path (with level adjustment for 12-bit OAI RX dynamic range) 2019-11-06 00:08:34 +01:00
magounak
2b59cdf537 modifactions after testing with R+S FSQ 2019-10-15 15:25:37 +02:00
Rakesh
666db5675d build fail fixes for nrUE 2019-10-14 21:02:22 +02:00
Rakesh
ebb86d437d Merge branch 'nr_fapi_for_push' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr_fapi_for_push 2019-10-14 19:26:24 +02:00
Rakesh
da524268c2 Adding VCD traces in gNB 2019-10-14 19:25:35 +02:00
Raymond Knopp
e7233f8a6d eCPRI fronthaul "flushing" prior to streaming. TX path still not included 2019-10-08 15:02:55 +02:00
Raymond Knopp
0399c14b18 modifications for timestamp interpreation (IF5) 2019-09-17 00:43:10 +02:00
Raymond Knopp
ba24109dae added UDP configuration in ORI data structures 2019-09-14 22:39:24 +02:00
Raymond Knopp
0e419d23d2 modifications for IF5, testing with 3rd party RRU 2019-09-14 11:39:30 +02:00
Raymond Knopp
8722655fdf fixed error in void recv_IF5() 2019-09-13 17:57:55 +02:00
Raymond Knopp
7a60be4dfe modifications for eCPRI framing in IF5 UDP only 2019-09-11 16:47:39 +02:00
Raymond Knopp
8e86edc352 cleanup callback added to thirdparty fronthaul interface 2019-09-07 10:42:57 +02:00
Raymond Knopp
d4da46a249 added third-party driver support for IF5 interface. 2019-09-05 22:32:32 +02:00
1121 changed files with 178263 additions and 54478 deletions

8
.dockerignore Normal file
View File

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

6
.gitignore vendored
View File

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

2
.vscode/launch.json vendored
View File

@@ -25,4 +25,4 @@
]
}
]
}
}

View File

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

View File

@@ -21,3 +21,7 @@ The Regents of the University of California: BSD 3-Clause Licence.
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.
## Credits for source code openair3/GTPV1-U/nw-gtpv1u: ##
Amit Chawre <http://www.amitchawre.net/contact.html>: BSD 2-Clause Licence.

View File

@@ -1,3 +1,4 @@
r*.raw
enb_*.log
ue_*.log
ping_*.*

View File

@@ -0,0 +1,261 @@
#!/bin/groovy
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// Location of the executor node
def nodeExecutor = params.nodeExecutor
// Tags to shorten pipeline duration
def doMandatoryTests = false
def doFullTestsuite = false
pipeline {
agent {
label nodeExecutor
}
options {
disableConcurrentBuilds()
timestamps()
gitLabConnection('OAI GitLab')
ansiColor('xterm')
}
stages {
stage ("Verify Parameters") {
steps {
script {
JOB_TIMESTAMP = sh returnStdout: true, script: 'date --utc --rfc-3339=seconds | sed -e "s#+00:00##"'
JOB_TIMESTAMP = JOB_TIMESTAMP.trim()
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
def allParametersPresent = true
echo '\u2705 \u001B[32mVerify Labels\u001B[0m'
if ("MERGE".equals(env.gitlabActionType)) {
LABEL_CHECK = sh returnStdout: true, script: 'ci-scripts/checkGitLabMergeRequestLabels.sh --mr-id ' + env.gitlabMergeRequestIid
LABEL_CHECK = LABEL_CHECK.trim()
if (LABEL_CHECK == 'NONE') {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Your merge request has none of the mandatory labels:\n\n"
message += " - BUILD-ONLY\n"
message += " - 4G-LTE\n"
message += " - 5G-NR\n"
message += " - CI\n\n"
message += "Not performing CI due to lack of labels"
addGitLabMRComment comment: message
error('Not performing CI due to lack of labels')
} else if (LABEL_CHECK == 'FULL') {
doMandatoryTests = true
doFullTestsuite = true
} else if (LABEL_CHECK == 'SHORTEN-5G') {
doMandatoryTests = true
} else {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): We will perform only build stages on your Merge Request"
addGitLabMRComment comment: message
}
} else {
doMandatoryTests = true
doFullTestsuite = true
}
}
}
}
stage ("Verify Guidelines") {
steps {
echo "Git URL is ${GIT_URL}"
echo "GitLab Act is ${env.gitlabActionType}"
script {
if ("MERGE".equals(env.gitlabActionType)) {
// since a bit, in push events, gitlabUserEmail is not populated
gitCommitAuthorEmailAddr = env.gitlabUserEmail
echo "GitLab Usermail is ${gitCommitAuthorEmailAddr}"
// GitLab-Jenkins plugin integration is lacking to perform the merge by itself
// Doing it manually --> it may have merge conflicts
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
} else {
echo "Git Branch is ${GIT_BRANCH}"
echo "Git Commit is ${GIT_COMMIT}"
// since a bit, in push events, gitlabUserEmail is not populated
gitCommitAuthorEmailAddr = sh returnStdout: true, script: 'git log -n1 --pretty=format:%ae ${GIT_COMMIT}'
gitCommitAuthorEmailAddr = gitCommitAuthorEmailAddr.trim()
echo "GitLab Usermail is ${gitCommitAuthorEmailAddr}"
sh "git log -n1 --pretty=format:\"%s\" > .git/CI_COMMIT_MSG"
}
}
}
post {
failure {
script {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Merge Conflicts -- Cannot perform CI"
addGitLabMRComment comment: message
currentBuild.result = 'FAILURE'
}
}
}
}
// Build Stages are Mandatory
// Later we will add a Ubuntu20 build
stage ("Image Building Processes") {
parallel {
stage ("Ubuntu18 Build") {
steps {
script {
triggerSlaveJob ('RAN-Ubuntu18-Image-Builder', 'Ubuntu18-Images-Build')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-Ubuntu18-Image-Builder')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
stage ("RHEL8 Build") {
steps {
script {
triggerSlaveJob ('RAN-RHEL8-Image-Builder', 'RHEL8-Images-Build')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-RHEL8-Image-Builder')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
}
}
}
post {
always {
script {
emailext attachmentsPattern: '*results*.html',
body: '''Hi,
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Regards,
OAI CI Team''',
replyTo: 'no-reply@openairinterface.org',
subject: '$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!',
to: gitCommitAuthorEmailAddr
if (fileExists('.git/CI_COMMIT_MSG')) {
sh "rm -f .git/CI_COMMIT_MSG"
}
}
}
success {
script {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ")"
if ("MERGE".equals(env.gitlabActionType)) {
echo "This is a MERGE event"
addGitLabMRComment comment: message
}
}
}
failure {
script {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ")"
if ("MERGE".equals(env.gitlabActionType)) {
echo "This is a MERGE event"
addGitLabMRComment comment: message
}
}
}
}
}
// ---- Slave Job functions
def triggerSlaveJob (jobName, gitlabStatusName) {
// Workaround for the "cancelled" GitLab pipeline notification
// The slave job is triggered with the propagate false so the following commands are executed
// Its status is now PASS/SUCCESS from a stage pipeline point of view
// localStatus variable MUST be analyzed to properly assess the status
localStatus = build job: jobName,
parameters: [
string(name: 'eNB_Repository', value: String.valueOf(GIT_URL)),
string(name: 'eNB_Branch', value: String.valueOf(env.gitlabSourceBranch)),
string(name: 'eNB_CommitID', value: String.valueOf(env.gitlabMergeRequestLastCommit)),
booleanParam(name: 'eNB_mergeRequest', value: "MERGE".equals(env.gitlabActionType)),
string(name: 'eNB_TargetBranch', value: String.valueOf(env.gitlabTargetBranch))
], propagate: false
localResult = localStatus.getResult()
echo "${jobName} Slave Job status is ${localResult}"
gitlabCommitStatus(name: gitlabStatusName) {
if (localStatus.resultIsBetterOrEqualTo('SUCCESS')) {
echo "${jobName} Slave Job is OK"
} else {
echo "${jobName} Slave Job is KO"
sh "ci-scripts/fail.sh"
}
}
}
def triggerSlaveJobNoGitLab (jobName) {
// Workaround for the "cancelled" GitLab pipeline notification
// The slave job is triggered with the propagate false so the following commands are executed
// Its status is now PASS/SUCCESS from a stage pipeline point of view
// localStatus variable MUST be analyzed to properly assess the status
localStatus = build job: jobName,
parameters: [
string(name: 'eNB_Repository', value: String.valueOf(GIT_URL)),
string(name: 'eNB_Branch', value: String.valueOf(env.gitlabSourceBranch)),
string(name: 'eNB_CommitID', value: String.valueOf(env.gitlabMergeRequestLastCommit)),
booleanParam(name: 'eNB_mergeRequest', value: "MERGE".equals(env.gitlabActionType)),
string(name: 'eNB_TargetBranch', value: String.valueOf(env.gitlabTargetBranch))
], propagate: false
localResult = localStatus.getResult()
echo "${jobName} Slave Job status is ${localResult}"
if (localStatus.resultIsBetterOrEqualTo('SUCCESS')) {
echo "${jobName} Slave Job is OK"
} else {
echo "${jobName} Slave Job is KO"
sh "ci-scripts/fail.sh"
}
}
def finalizeSlaveJob(jobName) {
// In case of any non-success, we are retrieving the HTML report of the last completed
// slave job. The only drop-back is that we may retrieve the HTML report of a previous build
fileName = "test_results-${jobName}.html"
if (!fileExists(fileName)) {
copyArtifacts(projectName: jobName,
filter: 'test_results*.html',
selector: lastCompleted())
if (fileExists(fileName)) {
sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' ${fileName}"
archiveArtifacts artifacts: fileName
}
}
}

View File

@@ -30,12 +30,18 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def doRedHatBuild = false
def doFlexranCtrlTest = false
// Location of the executor node
def nodeExecutor = params.nodeExecutor
// VM Lockable resources
def vmResource = params.vmLockableResource
// Tags to shorten pipeline duration
def doMandatoryTests = false
def doFullTestsuite = false
pipeline {
agent {
label nodeExecutor
@@ -44,30 +50,6 @@ pipeline {
disableConcurrentBuilds()
timestamps()
gitLabConnection('OAI GitLab')
gitlabBuilds(builds: [
"Build gNB-USRP",
"Build nr-UE-USRP",
"Build eNB-USRP",
"Build basic-sim",
"Build phy-sim",
"Build eNB-ethernet",
"Build UE-ethernet",
"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",
"Test-IF4p5-FDD-Band7",
"Test-IF4p5-TDD-Band40",
"Test-Mono-FDD-Band13-LTE-M",
"Test-IF4p5-TDD-Band38-Multi-RRU",
"Test-eNB-OAI-UE-FDD-Band7",
"Test-Mono-FDD-Band13-X2-HO",
"Test-TDD-Band78-gNB-NR-UE"
])
ansiColor('xterm')
}
@@ -84,27 +66,39 @@ pipeline {
echo "Platform is ${env.TESTPLATFORM_OWNER}"
}
if (params.RedHatRemoteServer == null) {
allParametersPresent = false
}
if (params.RedHatRemoteCredentials == null) {
allParametersPresent = false
}
if (params.RedHatWorkingPath == null) {
allParametersPresent = false
}
if (allParametersPresent) {
echo "Performing Red Hat Build"
doRedHatBuild = true
} else {
doRedHatBuild = false
}
if (params.FlexRanRtcGitLabRepository_Credentials != null) {
doFlexranCtrlTest = true
}
if (fileExists("flexran")) {
sh "rm -Rf flexran > /dev/null 2>&1"
}
echo '\u2705 \u001B[32mVerify Labels\u001B[0m'
if ("MERGE".equals(env.gitlabActionType)) {
LABEL_CHECK = sh returnStdout: true, script: 'ci-scripts/checkGitLabMergeRequestLabels.sh --mr-id ' + env.gitlabMergeRequestIid
LABEL_CHECK = LABEL_CHECK.trim()
if (LABEL_CHECK == 'NONE') {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Your merge request has none of the mandatory labels:\n\n"
message += " - BUILD-ONLY\n"
message += " - 4G-LTE\n"
message += " - 5G-NR\n"
message += " - CI\n\n"
message += "Not performing CI due to lack of labels"
addGitLabMRComment comment: message
error('Not performing CI due to lack of labels')
} else if (LABEL_CHECK == 'FULL') {
doMandatoryTests = true
doFullTestsuite = true
} else if (LABEL_CHECK == 'SHORTEN-5G') {
doMandatoryTests = true
} else {
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): We will perform only build stages on your Merge Request"
addGitLabMRComment comment: message
}
} else {
doMandatoryTests = true
doFullTestsuite = true
}
}
}
}
@@ -147,7 +141,7 @@ pipeline {
// For the moment, there is no fail criteria. Just a notification of number of files that do not follow
sh "./ci-scripts/checkCodingFormattingRules.sh"
}
if (doFlexranCtrlTest) {
if (doFlexranCtrlTest && doMandatoryTests) {
sh "mkdir flexran"
dir ('flexran') {
withCredentials([
@@ -174,65 +168,71 @@ pipeline {
stage ("Start VM -- basic-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- gnb-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- nr-ue-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
stage ("Start VM -- enb-usrp") {
steps {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- phy-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- enb-ethernet") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- ue-ethernet") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- cppcheck") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
@@ -241,7 +241,7 @@ pipeline {
stage ("Analysis with cppcheck") {
steps {
gitlabCommitStatus(name: "Analysis with cppcheck") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
@@ -250,7 +250,7 @@ pipeline {
stage ("Build basic simulator") {
steps {
gitlabCommitStatus(name: "Build basic-sim") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -259,7 +259,7 @@ pipeline {
stage ("Build 5G gNB-USRP") {
steps {
gitlabCommitStatus(name: "Build gNB-USRP") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -268,25 +268,16 @@ pipeline {
stage ("Build 5G NR-UE-USRP") {
steps {
gitlabCommitStatus(name: "Build nr-UE-USRP") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build eNB-USRP") {
steps {
gitlabCommitStatus(name: "Build eNB-USRP") {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build physical simulators") {
steps {
gitlabCommitStatus(name: "Build phy-sim") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -295,7 +286,7 @@ pipeline {
stage ("Build eNB-ethernet") {
steps {
gitlabCommitStatus(name: "Build eNB-ethernet") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
@@ -303,33 +294,14 @@ pipeline {
}
stage ("Build UE-ethernet") {
steps {
// This is typically the last one to finish.
lock (vmResource) {
gitlabCommitStatus(name: "Build UE-ethernet") {
timeout (time: 20, unit: 'MINUTES') {
timeout (time: 30, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build eNB-USRP on Red Hat") {
when {
expression {doRedHatBuild}
}
steps {
gitlabCommitStatus(name: "Build eNB-USRP-RHE") {
script {
try {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.RedHatRemoteCredentials}", usernameVariable: 'RH_Username', passwordVariable: 'RH_Password']
]) {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}"
}
}
} catch (Exception e) {
echo "Red Hat build failed but we could keep running pipeline if all ubuntu-based build passed"
}
}
}
}
}
}
}
@@ -390,7 +362,11 @@ pipeline {
stage ("VM-based tests") {
stages {
stage ("Test physical simulators") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 90, unit: 'MINUTES') {
try {
@@ -402,13 +378,15 @@ pipeline {
}
}
}
}
}
}
stage ("Build Flexran Controller") {
when {
expression {doFlexranCtrlTest}
expression {doFlexranCtrlTest && doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 20, unit: 'MINUTES') {
try {
@@ -418,10 +396,15 @@ pipeline {
}
}
}
}
}
}
stage ("Test basic simulator") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -433,10 +416,15 @@ pipeline {
}
}
}
}
}
}
stage ("Test L1 simulator") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -448,12 +436,17 @@ pipeline {
}
}
}
}
}
}
stage ("Test RF simulator") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 40, unit: 'MINUTES') {
try {
gitlabCommitStatus(name: "Test RF-sim") {
sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant rf-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
@@ -463,10 +456,15 @@ pipeline {
}
}
}
}
}
}
stage ("Test L2 simulator") {
when {
expression {doFullTestsuite}
}
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -478,16 +476,25 @@ pipeline {
}
}
}
}
}
}
stage ("Destroy all Virtual Machines") {
when {
expression {doMandatoryTests}
}
steps {
lock (vmResource) {
sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
stage ("Test MONOLITHIC - FDD - Band 7 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
triggerSlaveJob ('eNB-CI-FDD-Band7-B210', 'Test-Mono-FDD-Band7')
@@ -507,6 +514,9 @@ pipeline {
}
}
stage ("Test MONOLITHIC - TDD - Band 40 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
triggerSlaveJob ('eNB-CI-TDD-Band40-B210', 'Test-Mono-TDD-Band40')
@@ -526,6 +536,9 @@ pipeline {
}
}
stage ("Test IF4p5 - FDD - Band 7 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
sh "sleep 60"
@@ -546,6 +559,9 @@ pipeline {
}
}
stage ("Test IF4p5 - TDD - Band 40 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
sh "sleep 60"
@@ -566,6 +582,9 @@ pipeline {
}
}
stage ("Test MONOLITHIC - FDD - Band 13 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
sh "sleep 60"
@@ -586,6 +605,9 @@ pipeline {
}
}
stage ("Test X2 Handover - FDD - Band 13 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
sh "sleep 60"
@@ -606,6 +628,9 @@ pipeline {
}
}
stage ("Test IF4p5 - TDD - Band 38 - B210 - MultiRRU") {
when {
expression {doFullTestsuite}
}
steps {
script {
triggerSlaveJob ('eNB-CI-IF4p5-TDD-Band38-MultiRRU-B210', 'Test-IF4p5-TDD-Band38-Multi-RRU')
@@ -625,6 +650,9 @@ pipeline {
}
}
stage ("Test OAI UE - FDD - Band 20 - B200") {
when {
expression {doFullTestsuite}
}
steps {
script {
triggerSlaveJobNoGitLab ('UE-CI-FDD-Band20-B200')
@@ -644,6 +672,9 @@ pipeline {
}
}
stage ("Test OAI UE - OAI eNB - FDD - Band 7 - B200") {
when {
expression {doFullTestsuite}
}
steps {
script {
// Delayed trigger on slave job, so it is always the last one to run
@@ -665,6 +696,9 @@ pipeline {
}
}
stage ("Test OAI NR UE - OAI gNB - TDD - Band 78 - N300") {
when {
expression {doMandatoryTests}
}
steps {
script {
triggerSlaveJob ('gNB-nrUE-MONO-TDD-Band78-N300', 'Test-TDD-Band78-gNB-NR-UE')
@@ -683,10 +717,33 @@ pipeline {
}
}
}
stage ("Test OAI OCP-eNB - FDD - Band 7 - B210") {
when {
expression {doFullTestsuite}
}
steps {
script {
triggerSlaveJob ('OCPeNB-FDD-Band7-B210', 'Test-OCP-FDD-Band7')
}
}
post {
always {
script {
finalizeSlaveJob('OCPeNB-FDD-Band7-B210')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
}
post {
always {
script {
if (doMandatoryTests) {
dir ('archives') {
sh "if [ -d basic_sim/test ] || [ -d phy_sim/test ] || [ -d l2_sim/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi"
}
@@ -702,6 +759,7 @@ pipeline {
archiveArtifacts artifacts: 'test_simulator_results.html'
}
}
}
}
}
}

View File

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

View File

@@ -266,6 +266,42 @@ pipeline {
}
stage('Log Collection') {
parallel {
stage('Log Collection (eNB - Build)') {
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
]) {
echo '\u2705 \u001B[32mLog Collection (eNB - Build)\u001B[0m'
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
echo '\u2705 \u001B[32mLog Transfer (eNB - Build)\u001B[0m'
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
}
script {
if(fileExists("build.log.${env.BUILD_ID}.zip")) {
archiveArtifacts "build.log.${env.BUILD_ID}.zip"
}
}
}
}
stage('Log Collection (OAI UE - Build)') {
steps {
echo '\u2705 \u001B[32mLog Collection (OAI UE - Build)\u001B[0m'
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password']
]) {
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath}"
echo '\u2705 \u001B[32mLog Transfer (UE - Build)\u001B[0m'
sh "sshpass -p \'${UE_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${UE_Username}@${params.UE_IPAddress}:${UE_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
}
script {
if(fileExists("build.log.${env.BUILD_ID}.zip")) {
archiveArtifacts "build.log.${env.BUILD_ID}.zip"
}
}
}
}
stage('Log Collection (eNB - Run)') {
steps {
withCredentials([

View File

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

View File

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

View File

@@ -241,6 +241,10 @@ pipeline {
stage ("Terminate") {
parallel {
stage('Terminate UE') {
// Bypassing this stage if there are no abd server defined
when {
expression { params.ADB_IPAddress != "none" }
}
steps {
echo '\u2705 \u001B[32mTerminate UE\u001B[0m'
withCredentials([
@@ -275,6 +279,10 @@ pipeline {
}
}
stage('Terminate SPGW') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
echo '\u2705 \u001B[32mTerminate SPGW\u001B[0m'
withCredentials([
@@ -292,6 +300,10 @@ pipeline {
}
}
stage('Terminate MME') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
echo '\u2705 \u001B[32mTerminate MME\u001B[0m'
withCredentials([
@@ -309,6 +321,10 @@ pipeline {
}
}
stage('Terminate HSS') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
echo '\u2705 \u001B[32mTerminate HSS\u001B[0m'
withCredentials([
@@ -371,6 +387,10 @@ pipeline {
}
}
stage('Log Collection (SPGW)') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
@@ -389,6 +409,10 @@ pipeline {
}
}
stage('Log Collection (MME)') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
@@ -407,6 +431,10 @@ pipeline {
}
}
stage('Log Collection (HSS)') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
@@ -425,6 +453,10 @@ pipeline {
}
}
stage('Log Collection (Ping)') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
@@ -443,6 +475,10 @@ pipeline {
}
}
stage('Log Collection (Iperf)') {
// Bypassing this stage if EPC server is not defined
when {
expression { params.EPC_IPAddress != "none" }
}
steps {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
@@ -482,7 +518,7 @@ pipeline {
// Making sure that we really shutdown every thing before leaving
failure {
script {
if (!termStatusArray[termUE]) {
if ((!termStatusArray[termUE]) && (params.ADB_IPAddress != "none")) {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
]) {
@@ -496,21 +532,21 @@ pipeline {
sh "python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
}
}
if (!termStatusArray[termSPGW]) {
if ((!termStatusArray[termSPGW]) && (params.EPC_IPAddress != "none")) {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
]) {
sh "python3 ci-scripts/main.py --mode=TerminateSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}"
}
}
if (!termStatusArray[termMME]) {
if ((!termStatusArray[termMME]) && (params.EPC_IPAddress != "none")) {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
]) {
sh "python3 ci-scripts/main.py --mode=TerminateMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}"
}
}
if (!termStatusArray[termHSS]) {
if ((!termStatusArray[termHSS]) && (params.EPC_IPAddress != "none")) {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
]) {

View File

@@ -0,0 +1,73 @@
#!/bin/groovy
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
// Location of the python executor node shall be in the same subnet as the others servers
def pythonExecutor = params.pythonExecutor
def TARGET_BRANCH = "develop"
def ALLOW_MERGE = true
pipeline {
agent {
label pythonExecutor
}
stages {
stage ("Launcher") {
steps {
script {
//retrieve MR that are opened nd with tag READY_TO_BE_MERGED
MR_LIST= sh returnStdout: true, script: 'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=READY_TO_BE_MERGED" | jq ".[].iid" || true '
echo "List of selected MR:\n${MR_LIST}"
def MR_ARRAY = MR_LIST.split('\n')
//for every selected MR, retrieve the branch name and the latest commit
for (MR in MR_ARRAY) {
SRC_BRANCH=sh returnStdout: true, script: """curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".source_branch" || true """
SRC_BRANCH=SRC_BRANCH.trim()
COMMIT_ID=sh returnStdout: true, script: """curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".sha" || true """
COMMIT_ID=COMMIT_ID.trim()
echo "Testing NSA on : ${MR} ${SRC_BRANCH} ${COMMIT_ID}"
//calling NSA sub job
build job: "RAN-CI-NSA-B210", wait : false, propagate : false, parameters: [
string(name: 'eNB_MR', value: String.valueOf(MR)),
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
//calling Benetel sub job
build job: "RAN-CI-BENETEL", wait : false, propagate : false, parameters: [
string(name: 'eNB_MR', value: String.valueOf(MR)),
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
}
}
}
}
}
}

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

@@ -0,0 +1,246 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Import Libs
#-----------------------------------------------------------
import sys # arg
import re # reg
import yaml
import constants as CONST
#-----------------------------------------------------------
# Parsing Command Line Arguements
#-----------------------------------------------------------
def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP):
py_param_file_present = False
py_params={}
while len(argvs) > 1:
myArgv = argvs.pop(1) # 0th is this file's name
#--help
if re.match('^\-\-help$', myArgv, re.IGNORECASE):
HELP.GenericHelp(CONST.Version)
sys.exit(0)
#--apply=<filename> as parameters file, to replace inline parameters
elif re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE)
py_params_file = matchReg.group(1)
with open(py_params_file,'r') as file:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python dictionary format
py_params = yaml.load(file,Loader=yaml.FullLoader)
py_param_file_present = True #to be removed once validated
#AssignParams(py_params) #to be uncommented once validated
#consider inline parameters
elif re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE)
mode = matchReg.group(1)
elif re.match('^\-\-eNBRepository=(.+)$|^\-\-ranRepository(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ranRepository = matchReg.group(1)
RAN.ranRepository=matchReg.group(1)
HTML.ranRepository=matchReg.group(1)
ldpc.ranRepository=matchReg.group(1)
CONTAINERS.ranRepository=matchReg.group(1)
elif re.match('^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE)
doMerge = matchReg.group(1)
ldpc.ranAllowMerge=matchReg.group(1)
if ((doMerge == 'true') or (doMerge == 'True')):
CiTestObj.ranAllowMerge = True
RAN.ranAllowMerge=True
HTML.ranAllowMerge=True
CONTAINERS.ranAllowMerge=True
elif re.match('^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ranBranch = matchReg.group(1)
RAN.ranBranch=matchReg.group(1)
HTML.ranBranch=matchReg.group(1)
ldpc.ranBranch=matchReg.group(1)
CONTAINERS.ranBranch=matchReg.group(1)
elif re.match('^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE)
CiTestObj.ranCommitID = matchReg.group(1)
RAN.ranCommitID=matchReg.group(1)
HTML.ranCommitID=matchReg.group(1)
ldpc.ranCommitID=matchReg.group(1)
CONTAINERS.ranCommitID=matchReg.group(1)
elif re.match('^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE)
else:
matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
CiTestObj.ranTargetBranch = matchReg.group(1)
RAN.ranTargetBranch=matchReg.group(1)
HTML.ranTargetBranch=matchReg.group(1)
ldpc.ranTargetBranch=matchReg.group(1)
CONTAINERS.ranTargetBranch=matchReg.group(1)
elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBIPAddress=matchReg.group(1)
ldpc.eNBIpAddr=matchReg.group(1)
CONTAINERS.eNBIPAddress=matchReg.group(1)
elif re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1IPAddress=matchReg.group(1)
CONTAINERS.eNB1IPAddress=matchReg.group(1)
elif re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2IPAddress=matchReg.group(1)
CONTAINERS.eNB2IPAddress=matchReg.group(1)
elif re.match('^\-\-eNBUserName=(.+)$|^\-\-eNB[1-2]UserName=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBUserName=matchReg.group(1)
ldpc.eNBUserName=matchReg.group(1)
CONTAINERS.eNBUserName=matchReg.group(1)
elif re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1UserName=matchReg.group(1)
CONTAINERS.eNB1UserName=matchReg.group(1)
elif re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2UserName=matchReg.group(1)
CONTAINERS.eNB2UserName=matchReg.group(1)
elif re.match('^\-\-eNBPassword=(.+)$|^\-\-eNB[1-2]Password=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBPassword=matchReg.group(1)
ldpc.eNBPassWord=matchReg.group(1)
CONTAINERS.eNBPassword=matchReg.group(1)
elif re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1Password=matchReg.group(1)
CONTAINERS.eNB1Password=matchReg.group(1)
elif re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2Password=matchReg.group(1)
CONTAINERS.eNB2Password=matchReg.group(1)
elif re.match('^\-\-eNBSourceCodePath=(.+)$|^\-\-eNB[1-2]SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBSourceCodePath=matchReg.group(1)
ldpc.eNBSourceCodePath=matchReg.group(1)
CONTAINERS.eNBSourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1SourceCodePath=matchReg.group(1)
CONTAINERS.eNB1SourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB2SourceCodePath=matchReg.group(1)
CONTAINERS.eNB2SourceCodePath=matchReg.group(1)
elif re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE)
EPC.IPAddress=matchReg.group(1)
elif re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE)
EPC.UserName=matchReg.group(1)
elif re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE)
EPC.Password=matchReg.group(1)
elif re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
EPC.SourceCodePath=matchReg.group(1)
elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE)
if re.match('OAI', matchReg.group(1), re.IGNORECASE) or re.match('ltebox', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-CUPS', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-Docker', matchReg.group(1), re.IGNORECASE):
EPC.Type=matchReg.group(1)
else:
sys.exit('Invalid EPC Type: ' + matchReg.group(1) + ' -- (should be OAI or ltebox or OAI-Rel14-CUPS or OAI-Rel14-Docker)')
elif re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE)
EPC.ContainerPrefix=matchReg.group(1)
elif re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBIPAddress=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBIPAddress = matchReg.group(1)
elif re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBUserName=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBUserName = matchReg.group(1)
elif re.match('^\-\-ADBType=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBType=(.+)$', myArgv, re.IGNORECASE)
if re.match('centralized', matchReg.group(1), re.IGNORECASE) or re.match('distributed', matchReg.group(1), re.IGNORECASE):
if re.match('distributed', matchReg.group(1), re.IGNORECASE):
CiTestObj.ADBCentralized = False
else:
CiTestObj.ADBCentralized = True
else:
sys.exit('Invalid ADB Type: ' + matchReg.group(1) + ' -- (should be centralized or distributed)')
elif re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-ADBPassword=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.ADBPassword = matchReg.group(1)
elif re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.testXMLfiles.append(matchReg.group(1))
HTML.testXMLfiles.append(matchReg.group(1))
HTML.nbTestXMLfiles=HTML.nbTestXMLfiles+1
elif re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEIPAddress = matchReg.group(1)
elif re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEUserName = matchReg.group(1)
elif re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UEPassword = matchReg.group(1)
elif re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE)
CiTestObj.UESourceCodePath = matchReg.group(1)
elif re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE)
finalStatus = matchReg.group(1)
if ((finalStatus == 'true') or (finalStatus == 'True')):
CiTestObj.finalStatus = True
else:
HELP.GenericHelp(CONST.Version)
sys.exit('Invalid Parameter: ' + myArgv)
return py_param_file_present, py_params, mode

View File

@@ -62,6 +62,12 @@ function build_on_vm {
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "BUILD_OPTIONS = $BUILD_OPTIONS"
if [[ "$VM_NAME" == *"-enb-usrp"* ]]
then
echo "This VM type is no longer supported in the pipeline framework"
return
fi
IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
if [ $IS_VM_ALIVE -eq 0 ]
@@ -158,6 +164,9 @@ function build_on_vm {
echo "cd tmp" >> $VM_CMDS
echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
# Trying to make some room on filesystem before building
echo "rm ../localZip.zip" >> $VM_CMDS
echo "export CI_ENV=True" >> $VM_CMDS
if [[ "$VM_NAME" == *"-cppcheck"* ]]
then
echo "mkdir cmake_targets/log" >> $VM_CMDS
@@ -178,6 +187,8 @@ function build_on_vm {
echo "mkdir -p cmake_targets/log" >> $VM_CMDS
echo "chmod 777 cmake_targets/log" >> $VM_CMDS
echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
# Patching the pistache build for Xenial (cmake too old for new commits)
echo "sed -i -e 's@cd pistache@cd pistache \&\& git checkout -f 9a65f40975fafca5bb5370ba6d0d00f42cbc4356@' ./tools/install_dependencies" >> $VM_CMDS
echo "echo \"./tools/install_dependencies \"" >> $VM_CMDS
echo "./tools/install_dependencies > cmake_targets/log/install-build.txt 2>&1" >> $VM_CMDS
echo "echo \"mkdir build\"" >> $VM_CMDS
@@ -206,7 +217,15 @@ function build_on_vm {
echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
else
echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
if [[ "$VM_NAME" == *"-enb-ethernet"* ]]
then
echo "echo \"sleep 170 && ./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
elif [[ "$VM_NAME" == *"-ue-ethernet"* ]]
then
echo "echo \"sleep 60 && ./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
else
echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
fi
echo "chmod 775 ./my-vm-build.sh " >> $VM_CMDS
echo "echo \"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh\"" >> $VM_CMDS
echo "sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh" >> $VM_CMDS

View File

@@ -0,0 +1,83 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 7 23:04:51 2020
@author: hardy
"""
import yaml
import sys
import subprocess
def main():
f_yaml=sys.argv[1]
f_sh=sys.argv[2]
#filename='py_params_template.yaml'
with open(f_yaml,'r') as file:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python the dictionary format
print('Loading '+f_yaml)
params = yaml.load(file,Loader=yaml.FullLoader)
with open(f_sh,'w') as f:
f.write('#!/bin/sh\n')
for i in range (0, len(params['steps'])):
step=params['steps'][i].split(',')
mode=step[0]
f_xml=step[1]
line='python3 main.py ' + \
'--mode='+ mode + ' ' + \
'--ranRepository=' + params['ranRepository'] + ' ' + \
'--ranBranch=' + params['ranBranch'] + ' ' + \
'--ranCommitID=' + params['ranCommitID'] + ' ' + \
'--ranAllowMerge=' + params['ranAllowMerge'] + ' ' + \
'--ranTargetBranch=' + params['ranTargetBranch'] + ' ' + \
\
'--ADBIPAddress=' + params['ADB']['ADBIPAddress'] + ' ' + \
'--ADBUserName=' + params['ADB']['ADBUserName'] + ' ' + \
'--ADBPassword=' + params['ADB']['ADBPassword'] + ' ' + \
\
'--UEIPAddress=' + params['UE']['UEIPAddress'] + ' ' + \
'--UEUserName=' + params['UE']['UEUserName'] + ' ' + \
'--UEPassword=' + params['UE']['UEPassword'] + ' ' + \
'--UESourceCodePath=' + params['UE']['UESourceCodePath'] + ' ' + \
\
'--EPCIPAddress=' + params['EPC']['EPCIPAddress'] + ' ' + \
'--EPCUserName=' + params['EPC']['EPCUserName'] + ' ' + \
'--EPCPassword=' + params['EPC']['EPCPassword'] + ' ' + \
'--EPCSourceCodePath=' + params['EPC']['EPCSourceCodePath'] + ' ' + \
'--EPCType=' + params['EPC']['EPCType'] + ' ' + \
\
'--eNBIPAddress=' + params['RAN'][0]['eNBIPAddress'] + ' ' + \
'--eNBUserName=' + params['RAN'][0]['eNBUserName'] + ' ' + \
'--eNBPassword=' + params['RAN'][0]['eNBPassword'] + ' ' + \
'--eNBSourceCodePath=' + params['RAN'][0]['eNBSourceCodePath'] + ' ' + \
\
'--eNB1IPAddress=' + params['RAN'][1]['eNB1IPAddress'] + ' ' + \
'--eNB1UserName=' + params['RAN'][1]['eNB1UserName'] + ' ' + \
'--eNB1Password=' + params['RAN'][1]['eNB1Password'] + ' ' + \
'--eNB1SourceCodePath=' + params['RAN'][1]['eNB1SourceCodePath'] + ' '
if mode!="InitiateHtml":
line+='--XMLTestFile=' + f_xml
#if mode is InitiateHTML we have a special processing to mention all xml files from the list
#loop starting at 1 to avoid the xml file mentioned with InitiateHtml in yaml file (file is none)
else:
for i in range (1, len(params['steps'])):
step=params['steps'][i].split(',')
f_xml=step[1]
line+='--XMLTestFile=' + f_xml+' '
line+='\n'
print(line)
f.write(line)
subprocess.call(['chmod','777',f_sh])
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,46 @@
ranRepository : https://gitlab.eurecom.fr/oai/openairinterface5g.git
ranBranch : BRANCH_NAME
ranCommitID : COMMIT_ID
ranAllowMerge : 'true'
ranTargetBranch : develop
steps:
- InitiateHtml,none
- TesteNB,xml_files/fr1_multi_node_build.xml
- TesteNB,xml_files/fr1_epc_start.xml
- TesteNB,xml_files/fr1_ran_ue_base.xml #ue toggle, nodes initialize, ue toggle, ping, nodes terminate
- TesteNB,xml_files/fr1_epc_closure.xml
ADB: #on Caracal
ADBIPAddress : 192.168.18.196
ADBUserName : oaici
ADBPassword : KkexF6CErOi1fNuebCPsuIVK
RAN:
- eNBIPAddress : 192.168.18.199 #eNB on Minimassive
eNBUserName : oaicicd
eNBPassword : HzB*nkryaITdVd08TKlT#2Z5a!7M#~qn
eNBSourceCodePath : /tmp/CI-FR1-eNB
- eNB1IPAddress : 192.168.18.198 #gNB on Mozart
eNB1UserName : oaicicd
eNB1Password : 7zkDOFgh@w3HvRBMPTMh@BAx
eNB1SourceCodePath : /tmp/CI-FR1-gNB
EPC: #on Nikaia
EPCIPAddress : 192.168.18.99
EPCUserName : nikaia
EPCPassword : linux
EPCSourceCodePath : /tmp/CI-FR1-EPC
EPCType : ltebox
UE:
UEIPAddress : none
UEUserName : none
UEPassword : none
UESourceCodePath : none

View File

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

View File

@@ -59,7 +59,7 @@ if [ $# -eq 0 ]
then
echo " ---- Checking the whole repository ----"
echo ""
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted `
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted || true`
echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT"
echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt
@@ -67,17 +67,17 @@ then
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
egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "General Public License" . | egrep -v "openair3/NAS/COMMON/milenage.h" > files-w-gnu-gpl-license-banner.txt
# Looking at exotic/suspect banner
LIST_OF_FILES_W_BANNER=`egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "Copyright|copyleft" .`
if [ -f ./files-w-suspect-banner.txt ]; then rm -f ./files-w-suspect-banner.txt; fi
for FILE in $LIST_OF_FILES_W_BANNER
do
IS_NFAPI=`echo $FILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
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"`
IS_NFAPI=`echo $FILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext" || true`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FILE || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FILE || true`
IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair3/NAS/COMMON/milenage.h" || true`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
@@ -178,7 +178,7 @@ do
EXT="${filename##*.}"
if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ]
then
TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted `
TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted || true`
NB_TO_FORMAT=$((NB_TO_FORMAT + TO_FORMAT))
if [ $TO_FORMAT -ne 0 ]
then
@@ -186,20 +186,24 @@ do
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
GNU_EXCEPTION=`echo $FULLFILE | egrep -c "openair3/NAS/COMMON/milenage.h" || true`
if [ $GNU_EXCEPTION -eq 0 ]
then
egrep -il "General Public License" $FULLFILE >> files-w-gnu-gpl-license-banner.txt
fi
# Looking at exotic/suspect banner
IS_BANNER=`egrep -i -c "Copyright|copyleft" $FULLFILE`
IS_BANNER=`egrep -i -c "Copyright|copyleft" $FULLFILE || true`
if [ $IS_BANNER -ne 0 ]
then
IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
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"`
IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext" || true`
IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FULLFILE || true`
IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FULLFILE || true`
IS_EXCEPTION=`echo $FULLFILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h|openair3/GTPV1-U/nw-gtpv1u|openair2/UTIL/OPT/ws_|openair3/NAS/COMMON/milenage.h" || true`
if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
then
if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
then
echo $FILE >> ./files-w-suspect-banner.txt
echo $FULLFILE >> ./files-w-suspect-banner.txt
fi
fi
fi

View File

@@ -0,0 +1,108 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
function usage {
echo "OAI GitLab merge request applying script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
echo ""
echo " checkGitLabMergeRequestLabels.sh [OPTIONS]"
echo ""
echo "Options:"
echo "------------------"
echo ""
echo " --mr-id ####"
echo " Specify the ID of the merge request."
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
if [ $# -ne 2 ] && [ $# -ne 1 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
--mr-id)
MERGE_REQUEST_ID="$2"
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
LABELS=`curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/$MERGE_REQUEST_ID" | jq '.labels' || true`
IS_MR_BUILD_ONLY=`echo $LABELS | grep -c BUILD-ONLY || true`
IS_MR_CI=`echo $LABELS | grep -c CI || true`
IS_MR_4G=`echo $LABELS | grep -c 4G-LTE || true`
IS_MR_5G=`echo $LABELS | grep -c 5G-NR || true`
# First case: none is present! No CI
if [ $IS_MR_BUILD_ONLY -eq 0 ] && [ $IS_MR_CI -eq 0 ] && [ $IS_MR_4G -eq 0 ] && [ $IS_MR_5G -eq 0 ]
then
echo "NONE"
exit 0
fi
# Second case: Build-Only
if [ $IS_MR_BUILD_ONLY -eq 1 ]
then
echo "BUILD-ONLY"
exit 0
fi
# Third case: CI or 4G label --> Full CI run
if [ $IS_MR_4G -eq 1 ] || [ $IS_MR_CI -eq 1 ]
then
echo "FULL"
exit 0
fi
# Fourth case: 5G label
if [ $IS_MR_BUILD_ONLY -eq 0 ] && [ $IS_MR_CI -eq 0 ] && [ $IS_MR_4G -eq 0 ] && [ $IS_MR_5G -eq 1 ]
then
echo "SHORTEN-5G"
exit 0
fi

View File

@@ -0,0 +1,499 @@
#/*
# * 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 shutil
import time
from multiprocessing import Process, Lock, SimpleQueue
from zipfile import ZipFile
#-----------------------------------------------------------
# OAI Testing modules
#-----------------------------------------------------------
import sshconnection as SSH
import helpreadme as HELP
import constants as CONST
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class Containerize():
def __init__(self):
self.ranRepository = ''
self.ranBranch = ''
self.ranAllowMerge = False
self.ranCommitID = ''
self.ranTargetBranch = ''
self.eNBIPAddress = ''
self.eNBUserName = ''
self.eNBPassword = ''
self.eNBSourceCodePath = ''
self.eNB1IPAddress = ''
self.eNB1UserName = ''
self.eNB1Password = ''
self.eNB1SourceCodePath = ''
self.eNB2IPAddress = ''
self.eNB2UserName = ''
self.eNB2Password = ''
self.eNB2SourceCodePath = ''
self.forcedWorkspaceCleanup = False
self.imageKind = ''
self.eNB_instance = 0
self.eNB_serverId = ['', '', '']
self.yamlPath = ['', '', '']
self.eNB_logFile = ['', '', '']
self.testCase_id = ''
self.flexranCtrlDeployed = False
self.flexranCtrlIpAddress = ''
self.cli = ''
self.dockerfileprefix = ''
self.host = ''
self.allImagesSize = {}
self.collectInfo = {}
#-----------------------------------------------------------
# Container management functions
#-----------------------------------------------------------
def BuildImage(self, HTML):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Building on server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
# Checking the hostname to get adapted on cli and dockerfileprefixes
mySSH.command('hostnamectl', '\$', 5)
result = re.search('Ubuntu|Red Hat', mySSH.getBefore())
self.host = result.group(0)
if self.host == 'Ubuntu':
self.cli = 'docker'
self.dockerfileprefix = '.ubuntu18'
elif self.host == 'Red Hat':
self.cli = 'sudo podman'
self.dockerfileprefix = '.rhel8.2'
imageNames = []
result = re.search('eNB', self.imageKind)
# Creating a tupple with the imageName and the DockerFile prefix pattern on obelix
if result is not None:
imageNames.append(('oai-enb', 'eNB'))
else:
result = re.search('gNB', self.imageKind)
if result is not None:
imageNames.append(('oai-gnb', 'gNB'))
else:
result = re.search('all', self.imageKind)
if result is not None:
imageNames.append(('oai-enb', 'eNB'))
imageNames.append(('oai-gnb', 'gNB'))
imageNames.append(('oai-lte-ue', 'lteUE'))
imageNames.append(('oai-nr-ue', 'nrUE'))
if len(imageNames) == 0:
imageNames.append(('oai-enb', 'eNB'))
# Workaround for some servers, we need to erase completely the workspace
if self.forcedWorkspaceCleanup:
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
self.testCase_id = HTML.testCase_id
# on RedHat/CentOS .git extension is mandatory
result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
if result is not None:
full_ran_repo_name = self.ranRepository
else:
full_ran_repo_name = self.ranRepository + '.git'
mySSH.command('mkdir -p ' + lSourcePath, '\$', 5)
mySSH.command('cd ' + lSourcePath, '\$', 5)
mySSH.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + full_ran_repo_name + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600)
# Raphael: here add a check if git clone or git fetch went smoothly
mySSH.command('git config user.email "jenkins@openairinterface.org"', '\$', 5)
mySSH.command('git config user.name "OAI Jenkins"', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
mySSH.command('mkdir -p cmake_targets/log', '\$', 5)
# if the commit ID is provided use it to point to it
if self.ranCommitID != '':
mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 5)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should already been checked earlier
imageTag = 'develop'
sharedTag = 'develop'
if (self.ranAllowMerge):
imageTag = 'ci-temp'
if self.ranTargetBranch == '':
if (self.ranBranch != 'develop') and (self.ranBranch != 'origin/develop'):
mySSH.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5)
else:
logging.debug('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
# if asterix, copy the entitlement and subscription manager configurations
if self.host == 'Red Hat':
mySSH.command('mkdir -p tmp/ca/', '\$', 5)
mySSH.command('mkdir -p tmp/entitlement/', '\$', 5)
mySSH.command('sudo cp /etc/rhsm/ca/redhat-uep.pem tmp/ca/', '\$', 5)
mySSH.command('sudo cp /etc/pki/entitlement/*.pem tmp/entitlement/', '\$', 5)
sharedimage = 'ran-build'
# Let's remove any previous run artifacts if still there
mySSH.command(self.cli + ' image prune --force', '\$', 30)
if (not self.ranAllowMerge):
mySSH.command(self.cli + ' image rm ' + sharedimage + ':' + sharedTag, '\$', 30)
for image,pattern in imageNames:
mySSH.command(self.cli + ' image rm ' + image + ':' + imageTag, '\$', 30)
# Build the shared image only on Push Events (not on Merge Requests)
if (not self.ranAllowMerge):
mySSH.command(self.cli + ' build --target ' + sharedimage + ' --tag ' + sharedimage + ':' + sharedTag + ' --file docker/Dockerfile.ran' + self.dockerfileprefix + ' --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > cmake_targets/log/ran-build.log 2>&1', '\$', 1600)
# First verify if the shared image was properly created.
status = True
mySSH.command(self.cli + ' image inspect --format=\'Size = {{.Size}} bytes\' ' + sharedimage + ':' + sharedTag, '\$', 5)
if mySSH.getBefore().count('o such image') != 0:
logging.error('\u001B[1m Could not build properly ran-build\u001B[0m')
status = False
else:
result = re.search('Size *= *(?P<size>[0-9\-]+) *bytes', mySSH.getBefore())
if result is not None:
imageSize = float(result.group('size'))
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m ran-build size is ' + ('%.0f' % imageSize) + ' kbytes\u001B[0m')
self.allImagesSize['ran-build'] = str(round(imageSize,1)) + ' kbytes'
else:
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m ran-build size is ' + ('%.0f' % imageSize) + ' Mbytes\u001B[0m')
self.allImagesSize['ran-build'] = str(round(imageSize,1)) + ' Mbytes'
else:
imageSize = imageSize / 1000
logging.debug('\u001B[1m ran-build size is ' + ('%.3f' % imageSize) + ' Gbytes\u001B[0m')
self.allImagesSize['ran-build'] = str(round(imageSize,1)) + ' Gbytes'
else:
logging.debug('ran-build size is unknown')
# If the shared image failed, no need to continue
if not status:
# Recover the name of the failed container?
mySSH.command(self.cli + ' ps --quiet --filter "status=exited" -n1 | xargs ' + self.cli + ' rm -f', '\$', 5)
mySSH.command(self.cli + ' image prune --force', '\$', 30)
mySSH.close()
logging.error('\u001B[1m Building OAI Images Failed\u001B[0m')
HTML.CreateHtmlTestRow(self.imageKind, 'KO', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTabFooter(False)
sys.exit(1)
else:
# Recover build logs, for the moment only possible when build is successful
mySSH.command(self.cli + ' create --name test ' + sharedimage + ':' + sharedTag, '\$', 5)
mySSH.command('mkdir -p cmake_targets/log/ran-build', '\$', 5)
mySSH.command(self.cli + ' cp test:/oai-ran/cmake_targets/log/. cmake_targets/log/ran-build', '\$', 5)
mySSH.command(self.cli + ' rm -f test', '\$', 5)
# Build the target image(s)
for image,pattern in imageNames:
# the archived Dockerfiles have "ran-build:latest" as base image
# we need to update them with proper tag
mySSH.command('sed -i -e "s#' + sharedimage + ':latest#' + sharedimage + ':' + sharedTag + '#" docker/Dockerfile.' + pattern + self.dockerfileprefix, '\$', 5)
mySSH.command(self.cli + ' build --target ' + image + ' --tag ' + image + ':' + imageTag + ' --file docker/Dockerfile.' + pattern + self.dockerfileprefix + ' . > cmake_targets/log/' + image + '.log 2>&1', '\$', 1200)
# split the log
mySSH.command('mkdir -p cmake_targets/log/' + image, '\$', 5)
mySSH.command('python3 ci-scripts/docker_log_split.py --logfilename=cmake_targets/log/' + image + '.log', '\$', 5)
# checking the status of the build
mySSH.command(self.cli + ' image inspect --format=\'Size = {{.Size}} bytes\' ' + image + ':' + imageTag, '\$', 5)
if mySSH.getBefore().count('o such image') != 0:
logging.error('\u001B[1m Could not build properly ' + image + '\u001B[0m')
status = False
# Here we should check if the last container corresponds to a failed command and destroy it
mySSH.command(self.cli + ' ps --quiet --filter "status=exited" -n1 | xargs ' + self.cli + ' rm -f', '\$', 5)
self.allImagesSize[image] = 'N/A -- Build Failed'
else:
result = re.search('Size *= *(?P<size>[0-9\-]+) *bytes', mySSH.getBefore())
if result is not None:
imageSize = float(result.group('size'))
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m ' + image + ' size is ' + ('%.0f' % imageSize) + ' kbytes\u001B[0m')
self.allImagesSize[image] = str(round(imageSize,1)) + ' kbytes'
else:
imageSize = imageSize / 1000
if imageSize < 1000:
logging.debug('\u001B[1m ' + image + ' size is ' + ('%.0f' % imageSize) + ' Mbytes\u001B[0m')
self.allImagesSize[image] = str(round(imageSize,1)) + ' Mbytes'
else:
imageSize = imageSize / 1000
logging.debug('\u001B[1m ' + image + ' size is ' + ('%.3f' % imageSize) + ' Gbytes\u001B[0m')
self.allImagesSize[image] = str(round(imageSize,1)) + ' Gbytes'
else:
logging.debug('ran-build size is unknown')
self.allImagesSize[image] = 'unknown'
# Now pruning dangling images in between target builds
mySSH.command(self.cli + ' image prune --force', '\$', 30)
# Analyzing the logs
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
mySSH.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
mySSH.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
mySSH.command('rm -f build_log_' + self.testCase_id + '.zip || true', '\$', 5)
if (os.path.isfile('./build_log_' + self.testCase_id + '.zip')):
os.remove('./build_log_' + self.testCase_id + '.zip')
if (os.path.isdir('./build_log_' + self.testCase_id)):
shutil.rmtree('./build_log_' + self.testCase_id)
mySSH.command('zip -r -qq build_log_' + self.testCase_id + '.zip build_log_' + self.testCase_id, '\$', 5)
mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/build_log_' + self.testCase_id + '.zip', '.')
mySSH.command('rm -f build_log_' + self.testCase_id + '.zip','\$', 5)
mySSH.close()
ZipFile('build_log_' + self.testCase_id + '.zip').extractall('.')
#Trying to identify the errors and warnings for each built images
imageNames1 = imageNames
shared = ('ran-build','ran')
imageNames1.insert(0, shared)
for image,pattern in imageNames1:
files = {}
file_list = [f for f in os.listdir('build_log_' + self.testCase_id + '/' + image) if os.path.isfile(os.path.join('build_log_' + self.testCase_id + '/' + image, f)) and f.endswith('.txt')]
for fil in file_list:
errorandwarnings = {}
warningsNo = 0
errorsNo = 0
with open('build_log_{}/{}/{}'.format(self.testCase_id,image,fil), mode='r') as inputfile:
for line in inputfile:
result = re.search(' ERROR ', str(line))
if result is not None:
errorsNo += 1
result = re.search(' error:', str(line))
if result is not None:
errorsNo += 1
result = re.search(' WARNING ', str(line))
if result is not None:
warningsNo += 1
result = re.search(' warning:', str(line))
if result is not None:
warningsNo += 1
errorandwarnings['errors'] = errorsNo
errorandwarnings['warnings'] = warningsNo
errorandwarnings['status'] = status
files[fil] = errorandwarnings
self.collectInfo[image] = files
if status:
logging.info('\u001B[1m Building OAI Image(s) Pass\u001B[0m')
HTML.CreateHtmlTestRow(self.imageKind, 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlNextTabHeaderTestRow(self.collectInfo, self.allImagesSize)
else:
logging.error('\u001B[1m Building OAI Images Failed\u001B[0m')
HTML.CreateHtmlTestRow(self.imageKind, 'KO', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlNextTabHeaderTestRow(self.collectInfo, self.allImagesSize)
HTML.CreateHtmlTabFooter(False)
sys.exit(1)
def DeployObject(self, HTML, EPC):
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('\u001B[1m Deploying OAI Object on server: ' + lIpAddr + '\u001B[0m')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
# Putting the CPUs in a good state, we do that only on a few servers
mySSH.command('hostname', '\$', 5)
result = re.search('obelix|asterix', mySSH.getBefore())
if result is not None:
mySSH.command('if command -v cpupower &> /dev/null; then echo ' + lPassWord + ' | sudo -S cpupower idle-set -D 0; fi', '\$', 5)
time.sleep(5)
mySSH.command('cd ' + lSourcePath + '/' + self.yamlPath[self.eNB_instance], '\$', 5)
mySSH.command('cp docker-compose.yml ci-docker-compose.yml', '\$', 5)
imageTag = 'develop'
if (self.ranAllowMerge):
imageTag = 'ci-temp'
mySSH.command('sed -i -e "s/image: oai-enb:latest/image: oai-enb:' + imageTag + '/" ci-docker-compose.yml', '\$', 2)
localMmeIpAddr = EPC.MmeIPAddress
mySSH.command('sed -i -e "s/CI_MME_IP_ADDR/' + localMmeIpAddr + '/" ci-docker-compose.yml', '\$', 2)
if self.flexranCtrlDeployed:
mySSH.command('sed -i -e \'s/FLEXRAN_ENABLED:.*/FLEXRAN_ENABLED: "yes"/\' ci-docker-compose.yml', '\$', 2)
mySSH.command('sed -i -e "s/CI_FLEXRAN_CTL_IP_ADDR/' + self.flexranCtrlIpAddress + '/" ci-docker-compose.yml', '\$', 2)
else:
mySSH.command('sed -i -e "s/FLEXRAN_ENABLED:.*$/FLEXRAN_ENABLED: \"no\"/" ci-docker-compose.yml', '\$', 2)
mySSH.command('sed -i -e "s/CI_FLEXRAN_CTL_IP_ADDR/127.0.0.1/" ci-docker-compose.yml', '\$', 2)
# Currently support only one
mySSH.command('docker-compose --file ci-docker-compose.yml config --services | sed -e "s@^@service=@"', '\$', 2)
result = re.search('service=(?P<svc_name>[a-zA-Z0-9\_]+)', mySSH.getBefore())
if result is not None:
svcName = result.group('svc_name')
mySSH.command('docker-compose --file ci-docker-compose.yml up -d ' + svcName, '\$', 2)
# Checking Status
mySSH.command('docker-compose --file ci-docker-compose.yml config', '\$', 5)
result = re.search('container_name: (?P<container_name>[a-zA-Z0-9\-\_]+)', mySSH.getBefore())
unhealthyNb = 0
healthyNb = 0
startingNb = 0
containerName = ''
if result is not None:
containerName = result.group('container_name')
time.sleep(5)
cnt = 0
while (cnt < 3):
mySSH.command('docker inspect --format=\'{{.State.Health.Status}}\' ' + containerName, '\$', 5)
unhealthyNb = mySSH.getBefore().count('unhealthy')
healthyNb = mySSH.getBefore().count('healthy') - unhealthyNb
startingNb = mySSH.getBefore().count('starting')
if healthyNb == 1:
cnt = 10
else:
time.sleep(10)
cnt += 1
logging.debug(' -- ' + str(healthyNb) + ' healthy container(s)')
logging.debug(' -- ' + str(unhealthyNb) + ' unhealthy container(s)')
logging.debug(' -- ' + str(startingNb) + ' still starting container(s)')
status = False
if healthyNb == 1:
cnt = 0
while (cnt < 20):
mySSH.command('docker logs ' + containerName + ' | egrep --text --color=never -i "wait|sync|Starting"', '\$', 30)
result = re.search('got sync|Starting F1AP at CU', mySSH.getBefore())
if result is None:
time.sleep(6)
cnt += 1
else:
cnt = 100
status = True
logging.info('\u001B[1m Deploying OAI object Pass\u001B[0m')
time.sleep(10)
mySSH.close()
self.testCase_id = HTML.testCase_id
self.eNB_logFile[self.eNB_instance] = 'enb_' + self.testCase_id + '.log'
if status:
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
else:
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ALL_PROCESSES_OK)
def UndeployObject(self, HTML, RAN):
logging.info('\u001B[1m Undeploying OAI Object Pass\u001B[0m')
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
lSourcePath = self.eNB2SourceCodePath
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('\u001B[1m Deploying OAI Object on server: ' + lIpAddr + '\u001B[0m')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/' + self.yamlPath[self.eNB_instance], '\$', 5)
# Currently support only one
mySSH.command('docker-compose --file ci-docker-compose.yml config', '\$', 5)
result = re.search('container_name: (?P<container_name>[a-zA-Z0-9\-\_]+)', mySSH.getBefore())
if result is not None:
containerName = result.group('container_name')
mySSH.command('docker kill --signal INT ' + containerName, '\$', 30)
time.sleep(5)
mySSH.command('docker logs ' + containerName + ' > ' + lSourcePath + '/cmake_targets/' + self.eNB_logFile[self.eNB_instance], '\$', 30)
mySSH.command('docker rm -f ' + containerName, '\$', 30)
# Putting the CPUs back in a idle state, we do that only on a few servers
mySSH.command('hostname', '\$', 5)
result = re.search('obelix|asterix', mySSH.getBefore())
if result is not None:
mySSH.command('if command -v cpupower &> /dev/null; then echo ' + lPassWord + ' | sudo -S cpupower idle-set -E; fi', '\$', 5)
mySSH.close()
# Analyzing log file!
copyin_res = mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/' + self.eNB_logFile[self.eNB_instance], '.')
nodeB_prefix = 'e'
if (copyin_res == -1):
HTML.htmleNBFailureMsg='Could not copy ' + nodeB_prefix + 'NB logfile to analyze it!'
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
else:
logging.debug('\u001B[1m Analyzing ' + nodeB_prefix + 'NB logfile \u001B[0m ' + self.eNB_logFile[self.eNB_instance])
logStatus = RAN.AnalyzeLogFile_eNB(self.eNB_logFile[self.eNB_instance], HTML)
if (logStatus < 0):
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'KO', logStatus)
else:
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)

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

@@ -0,0 +1,138 @@
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#to use isfile
import os
import sys
#to use logging.info()
import logging
#to create a SSH object locally in the methods
import sshconnection
#time.sleep
import time
#to load cots_ue dictionary
import yaml
class CotsUe:
def __init__(self,ADBIPAddr,ADBUserName,ADBPassWord):
self.cots_id = '' #cots id from yaml oppo, s10 etc...
self.ADBIPAddr = ADBIPAddr
self.ADBUserName = ADBUserName
self.ADBPassWord = ADBPassWord
self.cots_run_mode = '' #on of off to toggle airplane mode on/off
self.__cots_cde_dict_file = 'cots_ue_ctl.yaml'
self.__SetAirplaneRetry = 3
#-----------------$
#PUBLIC Methods$
#-----------------$
def Check_Airplane(self):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
status=mySSH.cde_check_value('adb shell settings get global airplane_mode_on ', ['0','1'],5)
mySSH.close()
return status
#simply check if the device id exists in the dictionary
#returns true if it exists, false otherwise
def Check_Exists(self,target_id):
#load cots commands dictionary
if (os.path.isfile(self.__cots_cde_dict_file)):
yaml_file=self.__cots_cde_dict_file
elif (os.path.isfile('ci-scripts/'+self.__cots_cde_dict_file)):
yaml_file='ci-scripts/'+self.__cots_cde_dict_file
else:
logging.error("COTS UE dictionary yaml file cannot be found")
sys.exit("COTS UE dictionary yaml file cannot be found")
#load cots commands dictionary
with open(yaml_file,'r') as file:
cots_ue_ctl = yaml.load(file,Loader=yaml.FullLoader)
#check if ue id is in the dictionary
if target_id in cots_ue_ctl:
return True
else:
return False
def Set_Airplane(self, target_id, target_state_str):
#loading cots commands dictionary
if (os.path.isfile(self.__cots_cde_dict_file)):
yaml_file=self.__cots_cde_dict_file
elif (os.path.isfile('ci-scripts/'+self.__cots_cde_dict_file)):
yaml_file='ci-scripts/'+self.__cots_cde_dict_file
else:
logging.error("COTS UE dictionary yaml file cannot be found")
sys.exit("COTS UE dictionary yaml file cannot be found")
#load cots commands dictionary
with open(yaml_file,'r') as file:
cots_ue_ctl = yaml.load(file,Loader=yaml.FullLoader)
#check if ue id is in the dictionary
if target_id in cots_ue_ctl:
mySSH = sshconnection.SSHConnection()
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
logging.info(str(self.ADBIPAddr)+' '+str(self.ADBUserName)+' '+str(self.ADBPassWord))
mySSH.command('adb start-server','\$',5)
mySSH.command('adb devices','\$',5)
logging.info("Toggling COTS UE Airplane mode to : "+target_state_str)
#get current state
current_state = self.Check_Airplane()
if target_state_str.lower()=="on":
target_state=1
else:
target_state=0
if current_state != target_state:
#toggle state
retry = 0
while (current_state!=target_state) and (retry < self.__SetAirplaneRetry):
#loop over the command list from dictionary for the selected ue, to switch to required state
for i in range (0,len(cots_ue_ctl[target_id])):
mySSH.command(cots_ue_ctl[target_id][i], '\$', 5)
time.sleep(1)
current_state = self.Check_Airplane()
retry+=1
#could not toggle despite the retry
if current_state != target_state:
logging.error("ATTENTION : Could not toggle to : "+target_state_str)
logging.error("Current state is : "+ str(current_state))
else:
logging.info("Airplane mode is already "+ target_state_str)
mySSH.command('adb kill-server','\$',5)
mySSH.close()
#ue id is NOT in the dictionary
else:
logging.error("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)
sys.exit("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)

3312
ci-scripts/cls_oaicitest.py Normal file

File diff suppressed because it is too large Load Diff

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

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

View File

@@ -0,0 +1,285 @@
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
# real_time choice in {hard, rt-preempt, no}
real_time = "no";
////////// Identification parameters:
eNB_ID = 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 = 222; mnc = 01; mnc_length = 2; } );
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RCC_IF4p5";
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 = 2655000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 100;
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 = 90;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -10;
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;
//SSB central frequency of NR secondary cell group (for ENDC NSA)
nr_scg_ssb_freq = 640000;
}
);
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 = "yes";
///X2
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "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 = "127.0.0.1";
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";
prach_dtx_threshold = 150;
}
);
RUs = (
{
//local_if_name = "enp129s0f0";
local_if_name = "dpdk";
sdr_addrs = "softmodem -m 2048 -l 35 -n 2 -b 0000:81:00.3 --proc-type auto --file-prefix ggg -- -p 0x1";
#sdr_addrs = "softmodem -l 8 -n 2 -- -p 0x2";
#remote_address = "127.0.0.2";
#local_address = "127.0.0.1";
#local_portc = 50000;
#remote_portc = 50000;
#local_portd = 50001;
#remote_portd = 50001;
local_rf = "no"
tr_preference = "raw_if4p5"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
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_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 = "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";
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

@@ -0,0 +1,317 @@
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
gNBs =
(
{
////////// Identification parameters:
gNB_ID = 0xe00;
cell_type = "CELL_MACRO_GNB";
gNB_name = "gNB-Eurecom-5GNRBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1;
plmn_list = ({mcc = 222; mnc = 01; mnc_length = 2;});
tr_s_preference = "local_mac"
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
pdsch_AntennaPorts = 1;
#pusch_TargetSNRx10 = 200;
#pucch_TargetSNRx10 = 200;
pusch_TargetSNRx10 = 200;
pucch_TargetSNRx10 = 200;
servingCellConfigCommon = (
{
#spCellConfigCommon
physCellId = 0;
# downlinkConfigCommon
#frequencyInfoDL
# this is is the central frequency of SSB
absoluteFrequencySSB = 640000; //641272
dl_frequencyBand = 78;
# the carrier frequency is assumed to be in the middle of the carrier, i.e. dl_absoluteFrequencyPointA_kHz + dl_carrierBandwidth*12*SCS_kHz/2
dl_absoluteFrequencyPointA = 638728; //640000;
#scs-SpecificCarrierList
dl_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing = 1;
dl_carrierBandwidth = 106;
#initialDownlinkBWP
#genericParameters
# this is RBstart=84,L=13 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero = 0;
initialDLBWPsearchSpaceZero = 0;
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0 = 0;
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
initialDLBWPmappingType_1 = 0;
#this is SS=2,L=12
initialDLBWPstartSymbolAndLength_1 = 53;
initialDLBWPk0_2 = 0;
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=4 //5 (4 is for 43, 5 is for 57)
initialDLBWPstartSymbolAndLength_3 = 57; //43; //57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
#scs-SpecificCarrierList
ul_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing = 1;
ul_carrierBandwidth = 106;
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
#rach-ConfigCommon
#rach-ConfigGeneric
prach_ConfigurationIndex = 4;
#prach_msg1_FDM
#0 = one, 1=two, 2=four, 3=eight
prach_msg1_FDM = 0;
prach_msg1_FrequencyStart = 74;
zeroCorrelationZoneConfig = 13;
preambleReceivedTargetPower = -118;
#preambleReceivedTargetPower = -104;
#preambleReceivedTargetPower = -108;
#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 = 2;
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 5;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; //15;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 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;
initialULBWPk2_2 = 7;
initialULBWPmappingType_2 = 1;
# this is SS=10 L=4
initialULBWPstartSymbolAndLength_2 = 52;
msg3_DeltaPreamble = 1;
#p0_NominalWithGrant =-90;
p0_NominalWithGrant =-118;
# pucch-ConfigCommon setup :
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping = 0;
hoppingId = 40;
#p0_nominal = -90;
p0_nominal = -118;
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR = 2;
ssb_PositionsInBurst_Bitmap = 1; #0x80;
# ssb_periodicityServingCell
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
ssb_periodicityServingCell = 2;
# dmrs_TypeA_position
# 0 = pos2, 1 = pos3
dmrs_TypeA_Position = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing = 1;
#tdd-UL-DL-ConfigurationCommon
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
referenceSubcarrierSpacing = 1;
# pattern1
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity = 6;
nrofDownlinkSlots = 7; //8; //7;
nrofDownlinkSymbols = 6; //0; //6;
nrofUplinkSlots = 2;
nrofUplinkSymbols = 4; //0; //4;
#ssPBCH_BlockPower = 10;
ssPBCH_BlockPower = -35;
}
);
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
///X2
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "127.0.0.1";
ipv6 = "192:168:30::17";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
GNB_IPV4_ADDRESS_FOR_S1_MME = "CI_GNB_IP_ADDR";
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
GNB_IPV4_ADDRESS_FOR_S1U = "CI_GNB_IP_ADDR";
GNB_PORT_FOR_S1U = 2152; # Spec 2152
GNB_IPV4_ADDRESS_FOR_X2C = "127.0.0.2/24";
GNB_PORT_FOR_X2C = 36422; # Spec 36422
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
pusch_proc_threads = 8;
}
);
RUs = (
{
local_rf = "no"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
eNB_instances = [0];
//clock_src = "internal";
clock_src = "external";
local_if_name = "dpdk";
sdr_addrs = "softmodem -m 2048 -l 34 -n 3 -b 0000:81:00.2 --proc-type auto --file-prefix hhh -- -p 0x1";
remote_address = "127.0.0.2";
local_address = "127.0.0.1";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
tr_preference = "raw_if4p5"
}
);
THREAD_STRUCT = (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
//parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
parallel_config = "PARALLEL_SINGLE_THREAD";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_DISABLE";
}
);
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

@@ -181,6 +181,7 @@ eNBs = (
{
ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -214,7 +215,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -181,6 +181,7 @@ eNBs = (
{
ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -214,7 +215,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -181,6 +181,7 @@ eNBs = (
{
ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -214,7 +215,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -112,7 +112,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -112,7 +112,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -112,7 +112,7 @@ log_config = {
NETWORK_CONTROLLER : {
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -175,6 +175,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -184,6 +185,8 @@ eNBs =
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -236,7 +239,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -356,6 +356,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -367,6 +368,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -445,7 +448,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -105,6 +105,7 @@ eNBs =
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "DISABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
@@ -176,6 +177,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +189,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -247,7 +251,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -105,6 +105,8 @@ eNBs =
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
mbms_dedicated_serving_cell = "DISABLE"
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
@@ -176,6 +178,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +190,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
///M2
target_mce_m2_ip_address = ( { ipv4 = "127.0.0.7";
@@ -247,7 +252,6 @@ MCEs = (
);
NETWORK_INTERFACES :
{
MCE_INTERFACE_NAME_FOR_M2_ENB = "lo";
@@ -271,12 +275,12 @@ MCEs = (
mcch_update_time = 10;
mbms_area_config_list = (
{
common_sf_allocation_period = 2; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
common_sf_allocation_period = 1; #rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
mbms_area_id = 0;
pmch_config_list = (
{
allocated_sf_end=64;
data_mcs=10;
allocated_sf_end=40;
data_mcs=20;
mch_scheduling_period = 0; #rf8(0)
mbms_session_list = (
{
@@ -288,7 +292,7 @@ MCEs = (
mnc_length = 2;
}
service_id=0;
lcid=5; #this must be properly defined lcid:8+service:0 -> rab_id:5
lcid=5; #this must be properly defined lcid:8+service:0 -> rab_id:5 //with new RLC set lcid either 4 or 5
}
);
}
@@ -296,10 +300,10 @@ MCEs = (
mbms_sf_config_list = (
{
radioframe_allocation_period=1; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_allocation_period=0; #n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_alloocation_offset=0;
num_frame="oneFrame";
subframe_allocation=57; #xx100000
subframe_allocation=59; #xx111011 #57; #xx111001
//num_frame="fourFrame";
//subframe_allocation=14548987; #
}
@@ -391,7 +395,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -136,6 +136,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -147,6 +148,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -225,7 +228,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -136,6 +136,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -147,6 +148,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -225,7 +228,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -136,6 +136,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -147,6 +148,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -225,7 +228,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -136,6 +136,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -145,6 +146,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -223,7 +226,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -173,6 +173,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -184,6 +185,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -244,7 +247,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -176,6 +176,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "CI_RCC_IP_ADDR";
ipv6 = "192:168:30::17";
@@ -253,7 +256,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -28,83 +28,85 @@ eNBs =
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 = -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";
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= -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";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;
*/
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;
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";
@@ -116,27 +118,28 @@ eNBs =
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";
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_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;
}
@@ -176,6 +179,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +191,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -201,40 +207,43 @@ eNBs =
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
phy_test_mode = 0;
puSch10xSnr = 160;
puCch10xSnr = 160;
}
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";
}
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];
}
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 = (
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";
@@ -247,27 +256,27 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
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";
};
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

@@ -181,6 +181,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -192,6 +193,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -252,7 +255,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

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

View File

@@ -176,6 +176,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -246,7 +249,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -175,6 +175,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -183,6 +184,8 @@ eNBs =
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
target_enb_x2_ip_address = (
{ ipv4 = "CI_RCC_IP_ADDR";
ipv6 = "192:168:30::17";
@@ -241,7 +244,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "eth0";
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -0,0 +1,292 @@
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
gNBs =
(
{
////////// Identification parameters:
gNB_ID = 0xe00;
cell_type = "CELL_MACRO_GNB";
gNB_name = "gNB-Eurecom-5GNRBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 1;
plmn_list = ({mcc = 208; mnc = 93; mnc_length = 2;});
tr_s_preference = "local_mac"
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts = 1;
servingCellConfigCommon = (
{
#spCellConfigCommon
physCellId = 0;
# downlinkConfigCommon
#frequencyInfoDL
# this is 2150 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
absoluteFrequencySSB = 433096;
dl_frequencyBand = 66;
# this is 2150 MHz
dl_absoluteFrequencyPointA = 430000;
#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=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
initialDLBWPmappingType_1 = 0;
#this is SS=2,L=12
initialDLBWPstartSymbolAndLength_1 = 53;
initialDLBWPk0_2 = 0;
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=4
initialDLBWPstartSymbolAndLength_3 = 57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 66;
ul_absoluteFrequencyPointA = 350000;
#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
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 2;
prach_RootSequenceIndex = 1;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
msg1_SubcarrierSpacing = 1,
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig = 0,
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0 = 6;
initialULBWPmappingType_0 = 1
# this is SS=0 L=11
initialULBWPstartSymbolAndLength_0 = 55;
initialULBWPk2_1 = 6;
initialULBWPmappingType_1 = 1;
# this is SS=0 L=12
initialULBWPstartSymbolAndLength_1 = 69;
initialULBWPk2_2 = 7;
initialULBWPmappingType_2 = 1;
# this is SS=10 L=4
initialULBWPstartSymbolAndLength_2 = 52;
msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90;
# 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;
}
);
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
GNB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
GNB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
GNB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
pusch_proc_threads = 8;
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1;
nb_rx = 1;
att_tx = 0;
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 75;
eNB_instances = [0];
##beamforming 1x2 matrix: 1 layer x 2 antennas
bf_weights = [0x00007fff, 0x0000];
##beamforming 1x4 matrix: 1 layer x 4 antennas
#bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
## beamforming 2x2 matrix:
# bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
clock_src = "external";
# if_freq = 3700000000L;
# if_offset = 1000000;
}
);
THREAD_STRUCT = (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_ENABLE";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};

View File

@@ -23,7 +23,8 @@ gNBs =
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts = 1;
pusch_AntennaPorts = 1;
servingCellConfigCommon = (
{
#spCellConfigCommon
@@ -45,8 +46,8 @@ gNBs =
dl_carrierBandwidth = 106;
#initialDownlinkBWP
#genericParameters
# this is RBstart=0,L=50 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 13475;
# this is RBstart=41,L=24 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 6368;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
@@ -59,7 +60,7 @@ gNBs =
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=2,L=3
#this is SS=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
@@ -71,6 +72,12 @@ gNBs =
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=5
initialDLBWPstartSymbolAndLength_3 = 57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
@@ -83,7 +90,7 @@ gNBs =
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 13475;
initialULBWPlocationAndBandwidth = 6368;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
@@ -105,8 +112,8 @@ gNBs =
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 4;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#0=oneeighth,1=onefourth,2=half,3=one,4=two,5=four,6=eight,7=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
@@ -114,27 +121,31 @@ gNBs =
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#0 = 839, 1 = 139
prach_RootSequenceIndex_PR = 1;
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 2;
prach_RootSequenceIndex = 1;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
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;
initialULBWPk2_0 = 6;
initialULBWPmappingType_0 = 1
# this is SS=0 L=11
initialULBWPstartSymbolAndLength_0 = 55;
initialULBWPk2_1 = 2;
initialULBWPk2_1 = 6;
initialULBWPmappingType_1 = 1;
# this is SS=0 L=12
initialULBWPstartSymbolAndLength_1 = 69;
initialULBWPk2_2 = 7;
initialULBWPmappingType_2 = 1;
# this is SS=10 L=4
initialULBWPstartSymbolAndLength_2 = 52;
msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90;
@@ -194,6 +205,7 @@ gNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -216,28 +228,38 @@ MACRLCs = (
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
}
);
L1s = (
{
{
num_cc = 1;
tr_n_preference = "local_mac";
}
pusch_proc_threads = 8;
}
);
RUs = (
{
local_rf = "yes"
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
max_rxgain = 75;
eNB_instances = [0];
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
## beamforming 1x2 matrix: 1 layer x 2 antennas
bf_weights = [0x00007fff, 0x0000];
## beamforming 1x4 matrix: 1 layer x 4 antennas
#bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
## beamforming 2x2 matrix:
#bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
clock_src = "external";
}
);

View File

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

View File

@@ -173,6 +173,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -184,6 +185,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

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

View File

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

View File

@@ -136,6 +136,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -147,6 +148,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -141,6 +141,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}

View File

@@ -139,6 +139,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -150,6 +151,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -232,7 +235,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -139,6 +139,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -150,6 +151,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -232,7 +235,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -139,6 +139,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -150,6 +151,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -232,7 +235,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -176,6 +176,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -251,7 +254,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -176,6 +176,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -251,7 +254,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -176,6 +176,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -187,6 +188,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{
@@ -251,7 +254,7 @@ NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_IPV4_ADDRESS = "CI_FLEXRAN_CTL_IP_ADDR";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";

View File

@@ -144,6 +144,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.15.130";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -155,6 +156,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:

View File

@@ -144,6 +144,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "127.0.0.3";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -155,6 +156,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
////////// MCE parameters:

View File

@@ -174,6 +174,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -185,6 +186,8 @@ eNBs =
enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -1,23 +1,25 @@
RUs = (
{
local_if_name = "lo";
remote_address = "127.0.0.1"
local_address = "127.0.0.2";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "yes"
tr_preference = "udp_if4p5";
nb_tx = 1;
nb_rx = 1;
max_pdschReferenceSignalPower = -27;
max_rxgain = 115;
bands = [7];
}
RUs =
(
{
local_if_name = "lo";
remote_address = "127.0.0.1"
local_address = "127.0.0.2";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "yes"
tr_preference = "udp_if4p5";
nb_tx = 1;
nb_rx = 1;
max_pdschReferenceSignalPower = -27;
max_rxgain = 115;
bands = [7];
}
);
THREAD_STRUCT = (
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";
@@ -26,19 +28,20 @@ THREAD_STRUCT = (
}
);
log_config = {
global_log_level ="error";
global_log_verbosity ="medium";
hw_log_level ="error";
hw_log_verbosity ="medium";
phy_log_level ="error";
phy_log_verbosity ="medium";
mac_log_level ="error";
mac_log_verbosity ="high";
rlc_log_level ="error";
rlc_log_verbosity ="medium";
pdcp_log_level ="error";
pdcp_log_verbosity ="medium";
rrc_log_level ="error";
rrc_log_verbosity ="medium";
log_config =
{
global_log_level ="error";
global_log_verbosity ="medium";
hw_log_level ="error";
hw_log_verbosity ="medium";
phy_log_level ="error";
phy_log_verbosity ="medium";
mac_log_level ="error";
mac_log_verbosity ="high";
rlc_log_level ="error";
rlc_log_verbosity ="medium";
pdcp_log_level ="error";
pdcp_log_verbosity ="medium";
rrc_log_level ="error";
rrc_log_verbosity ="medium";
};

View File

@@ -1,23 +1,25 @@
RUs = (
{
local_if_name = "lo";
remote_address = "127.0.0.1"
local_address = "127.0.0.2";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "yes"
tr_preference = "udp_if4p5";
nb_tx = 1;
nb_rx = 1;
max_pdschReferenceSignalPower = -27;
max_rxgain = 115;
bands = [40];
}
RUs =
(
{
local_if_name = "lo";
remote_address = "127.0.0.1"
local_address = "127.0.0.2";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "yes"
tr_preference = "udp_if4p5";
nb_tx = 1;
nb_rx = 1;
max_pdschReferenceSignalPower = -27;
max_rxgain = 115;
bands = [40];
}
);
THREAD_STRUCT = (
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";
@@ -26,19 +28,20 @@ THREAD_STRUCT = (
}
);
log_config = {
global_log_level ="error";
global_log_verbosity ="medium";
hw_log_level ="error";
hw_log_verbosity ="medium";
phy_log_level ="error";
phy_log_verbosity ="medium";
mac_log_level ="error";
mac_log_verbosity ="high";
rlc_log_level ="error";
rlc_log_verbosity ="medium";
pdcp_log_level ="error";
pdcp_log_verbosity ="medium";
rrc_log_level ="error";
rrc_log_verbosity ="medium";
log_config =
{
global_log_level ="error";
global_log_verbosity ="medium";
hw_log_level ="error";
hw_log_verbosity ="medium";
phy_log_level ="error";
phy_log_verbosity ="medium";
mac_log_level ="error";
mac_log_verbosity ="high";
rlc_log_level ="error";
rlc_log_verbosity ="medium";
pdcp_log_level ="error";
pdcp_log_verbosity ="medium";
rrc_log_level ="error";
rrc_log_verbosity ="medium";
};

View File

@@ -57,7 +57,9 @@ OAI_UE_PROCESS_ASSERTION = -22
OAI_UE_PROCESS_FAILED = -23
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE = -24
OAI_UE_PROCESS_SEG_FAULT = -25
OAI_UE_PROCESS_NO_MBMS_MSGS = -26
OAI_UE_PROCESS_OK = +6
INVALID_PARAMETER = -50
UE_STATUS_DETACHED = 0
UE_STATUS_DETACHING = 1

View File

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

View File

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

View File

@@ -87,6 +87,12 @@ function create_vm {
echo "VM_CPU = $VM_CPU"
echo "VM_DISK = $VM_DISK GBytes"
if [[ "$VM_NAME" == *"-enb-usrp"* ]]
then
echo "This VM type is no longer supported in the pipeline framework"
return
fi
echo "############################################################"
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
echo "############################################################"

View File

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

View File

@@ -0,0 +1,92 @@
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Import Libs
#-----------------------------------------------------------
import sys # arg
import re # reg
import os
import subprocess
class SplitReport():
def __init__(self):
self.logfilename = ''
self.destinationFolder = ''
def split(self):
self.destinationFolder = self.logfilename.replace(".log","")
if os.path.isfile(self.logfilename):
newImageLog = open(self.logfilename + '.new', 'w')
copyFlag = True
with open(self.logfilename, 'r') as imageLog:
for line in imageLog:
header = False
ret = re.search('====== Start of log for ([0-9\.A-Za-z\-\_]+) ======', line)
if ret is not None:
copyFlag = False
header = True
detailedLogFile = open(self.destinationFolder + '/' + ret.group(1), 'w')
if copyFlag:
newImageLog.write(line)
ret = re.search('====== End of log for ([0-9\.A-Za-z\-\_]+) ======', line)
if ret is not None:
copyFlag = True
detailedLogFile.close()
elif not copyFlag and not header:
detailedLogFile.write(line)
imageLog.close()
newImageLog.close()
os.rename(self.logfilename + '.new', self.logfilename)
else:
print('Cannot split unfound file')
#--------------------------------------------------------------------------------------------------------
#
# Start of main
#
#--------------------------------------------------------------------------------------------------------
argvs = sys.argv
argc = len(argvs)
SP = SplitReport()
while len(argvs) > 1:
myArgv = argvs.pop(1)
if re.match('^\-\-logfilename=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-logfilename=(.+)$', myArgv, re.IGNORECASE)
SP.logfilename = matchReg.group(1)
SP.split()
sys.exit(0)

View File

@@ -46,7 +46,6 @@ from multiprocessing import Process, Lock, SimpleQueue
import sshconnection as SSH
import helpreadme as HELP
import constants as CONST
import html
#-----------------------------------------------------------
# Class Declaration
@@ -61,50 +60,32 @@ class EPCManagement():
self.SourceCodePath = ''
self.Type = ''
self.PcapFileName = ''
self.htmlObj = None
self.testCase_id = ''
self.MmeIPAddress = ''
self.containerPrefix = 'prod'
self.mmeConfFile = 'mme.conf'
self.yamlPath = ''
#-----------------------------------------------------------
# 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):
def InitializeHSS(self, HTML):
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 Cassandra-based HSS in Docker')
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-hss /bin/bash -c "nohup tshark -i eth0 -i eth1 -w /tmp/hss_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-hss /bin/bash -c "nohup ./bin/oai_hss -j ./etc/hss_rel14.json --reloadkey true > hss_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 Cassandra-based HSS')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
logging.debug('\u001B[1m Launching tshark on all interfaces \u001B[0m')
@@ -132,17 +113,21 @@ class EPCManagement():
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)
HTML.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
def InitializeMME(self):
def InitializeMME(self, HTML):
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 MME in Docker')
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-mme /bin/bash -c "nohup tshark -i eth0 -i lo:s10 -w /tmp/mme_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-mme /bin/bash -c "nohup ./bin/oai_mme -c ./etc/' + self.mmeConfFile + ' > mme_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 MME')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f mme_' + self.testCase_id + '.log', '\$', 5)
@@ -166,17 +151,43 @@ class EPCManagement():
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)
HTML.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
def InitializeSPGW(self):
def SetMmeIPAddress(self):
# Not an error if we don't need an EPC
if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '':
return
if self.IPAddress == 'none':
return
# Only in case of Docker containers, MME IP address is not the EPC HOST IP address
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('docker inspect --format="MME_IP_ADDR = {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" ' + self.containerPrefix + '-oai-mme', '\$', 5)
result = re.search('MME_IP_ADDR = (?P<mme_ip_addr>[0-9\.]+)', mySSH.getBefore())
if result is not None:
self.MmeIPAddress = result.group('mme_ip_addr')
logging.debug('MME IP Address is ' + self.MmeIPAddress)
mySSH.close()
else:
self.MmeIPAddress = self.IPAddress
def InitializeSPGW(self, HTML):
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 SPGW-CUPS in Docker')
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "nohup tshark -i eth0 -i lo:p5c -i lo:s5c -w /tmp/spgwc_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "nohup tshark -i eth0 -w /tmp/spgwu_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "nohup ./bin/oai_spgwc -o -c ./etc/spgw_c.conf > spgwc_check_run.log 2>&1"', '\$', 5)
time.sleep(5)
mySSH.command('docker exec -d ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "nohup ./bin/oai_spgwu -o -c ./etc/spgw_u.conf > spgwu_check_run.log 2>&1"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
logging.debug('Using the OAI EPC Release 14 SPGW-CUPS')
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('echo ' + self.Password + ' | sudo -S rm -f spgwc_' + self.testCase_id + '.log spgwu_' + self.testCase_id + '.log', '\$', 5)
@@ -198,15 +209,17 @@ class EPCManagement():
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)
HTML.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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker top ' + self.containerPrefix + '-oai-hss', '\$', 5)
else:
mySSH.command('stdbuf -o0 ps -aux | grep --color=never hss | grep -v grep', '\$', 5)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
result = re.search('oai_hss -j', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
@@ -227,8 +240,13 @@ class EPCManagement():
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker top ' + self.containerPrefix + '-oai-mme', '\$', 5)
else:
mySSH.command('stdbuf -o0 ps -aux | grep --color=never mme | grep -v grep', '\$', 5)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
result = re.search('oai_mme -c ', mySSH.getBefore())
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
result = re.search('mme -c', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
result = re.search('\/bin\/bash .\/run_', mySSH.getBefore())
@@ -249,7 +267,13 @@ class EPCManagement():
try:
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker top ' + self.containerPrefix + '-oai-spgwc', '\$', 5)
result = re.search('oai_spgwc -', mySSH.getBefore())
if result is not None:
mySSH.command('docker top ' + self.containerPrefix + '-oai-spgwu-tiny', '\$', 5)
result = re.search('oai_spgwu -', mySSH.getBefore())
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('stdbuf -o0 ps -aux | grep --color=never spgw | grep -v grep', '\$', 5)
result = re.search('spgwu -c ', mySSH.getBefore())
elif re.match('OAI', self.Type, re.IGNORECASE):
@@ -269,10 +293,17 @@ class EPCManagement():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateHSS(self):
def TerminateHSS(self, HTML):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "killall --signal SIGINT oai_hss tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "ps aux | grep oai_hss"', '\$', 5)
result = re.search('oai_hss -j ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-hss /bin/bash -c "killall --signal SIGKILL oai_hss"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT oai_hss || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep hss | grep -v grep', '\$', 5)
@@ -295,13 +326,19 @@ class EPCManagement():
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)
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateMME(self):
def TerminateMME(self, HTML):
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "killall --signal SIGINT oai_mme tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "ps aux | grep oai_mme"', '\$', 5)
result = re.search('oai_mme -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-mme /bin/bash -c "killall --signal SIGKILL oai_mme"', '\$', 5)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT run_mme mme || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep mme | grep -v grep', '\$', 5)
@@ -315,13 +352,24 @@ class EPCManagement():
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)
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def TerminateSPGW(self):
def TerminateSPGW(self, HTML):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "killall --signal SIGINT oai_spgwc tshark"', '\$', 5)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "killall --signal SIGINT oai_spgwu tshark"', '\$', 5)
time.sleep(2)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "ps aux | grep oai_spgwc"', '\$', 5)
result = re.search('oai_spgwc -o -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwc /bin/bash -c "killall --signal SIGKILL oai_spgwc"', '\$', 5)
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "ps aux | grep oai_spgwu"', '\$', 5)
result = re.search('oai_spgwu -o -c ', mySSH.getBefore())
if result is not None:
mySSH.command('docker exec -it ' + self.containerPrefix + '-oai-spgwu-tiny /bin/bash -c "killall --signal SIGKILL oai_spgwu"', '\$', 5)
elif re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('echo ' + self.Password + ' | sudo -S killall --signal SIGINT spgwc spgwu || true', '\$', 5)
time.sleep(2)
mySSH.command('stdbuf -o0 ps -aux | grep spgw | grep -v grep', '\$', 5)
@@ -347,15 +395,174 @@ class EPCManagement():
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)
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def DeployEpc(self, HTML):
logging.debug('Trying to deploy')
if not re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
HTML.CreateHtmlTabFooter(False)
sys.exit('Deploy not possible with this EPC type: ' + self.Type)
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)
mySSH.command('docker-compose --version', '\$', 5)
result = re.search('docker-compose version 1', mySSH.getBefore())
if result is None:
mySSH.close()
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
HTML.CreateHtmlTabFooter(False)
sys.exit('docker-compose not installed on ' + self.IPAddress)
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
mySSH.command('if [ -d ' + self.SourceCodePath + '/logs ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/logs ; fi', '\$', 5)
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts ' + self.SourceCodePath + '/logs', '\$', 5)
# deploying and configuring the cassandra database
# container names and services are currently hard-coded.
# they could be recovered by:
# - docker-compose config --services
# - docker-compose config | grep container_name
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.copyout(self.IPAddress, self.UserName, self.Password, './' + self.yamlPath + '/docker-compose.yml', self.SourceCodePath + '/scripts')
mySSH.command('wget --quiet --tries=3 --retry-connrefused https://raw.githubusercontent.com/OPENAIRINTERFACE/openair-hss/develop/src/hss_rel14/db/oai_db.cql', '\$', 30)
mySSH.command('docker-compose down', '\$', 60)
mySSH.command('docker-compose up -d db_init', '\$', 60)
# databases take time...
time.sleep(10)
cnt = 0
db_init_status = False
while (cnt < 10):
mySSH.command('docker logs prod-db-init', '\$', 5)
result = re.search('OK', mySSH.getBefore())
if result is not None:
cnt = 10
db_init_status = True
else:
time.sleep(5)
cnt += 1
mySSH.command('docker rm -f prod-db-init', '\$', 5)
if not db_init_status:
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
HTML.CreateHtmlTabFooter(False)
sys.exit('Cassandra DB deployment/configuration went wrong!')
# deploying EPC cNFs
mySSH.command('docker-compose up -d oai_spgwu', '\$', 60)
listOfContainers = 'prod-cassandra prod-oai-hss prod-oai-mme prod-oai-spgwc prod-oai-spgwu-tiny'
expectedHealthyContainers = 5
# Checking for additional services
mySSH.command('docker-compose config', '\$', 5)
configResponse = mySSH.getBefore()
if configResponse.count('flexran_rtc') == 1:
mySSH.command('docker-compose up -d flexran_rtc', '\$', 60)
listOfContainers += ' prod-flexran-rtc'
expectedHealthyContainers += 1
if configResponse.count('trf_gen') == 1:
mySSH.command('docker-compose up -d trf_gen', '\$', 60)
listOfContainers += ' prod-trf-gen'
expectedHealthyContainers += 1
# Checking if all are healthy
cnt = 0
while (cnt < 3):
mySSH.command('docker inspect --format=\'{{.State.Health.Status}}\' ' + listOfContainers, '\$', 10)
unhealthyNb = mySSH.getBefore().count('unhealthy')
healthyNb = mySSH.getBefore().count('healthy') - unhealthyNb
startingNb = mySSH.getBefore().count('starting')
if healthyNb == expectedHealthyContainers:
cnt = 10
else:
time.sleep(10)
cnt += 1
logging.debug(' -- ' + str(healthyNb) + ' healthy container(s)')
logging.debug(' -- ' + str(unhealthyNb) + ' unhealthy container(s)')
logging.debug(' -- ' + str(startingNb) + ' still starting container(s)')
if healthyNb == expectedHealthyContainers:
mySSH.command('docker exec -d prod-oai-hss /bin/bash -c "nohup tshark -i any -f \'port 9042 or port 3868\' -w /tmp/hss_check_run.pcap 2>&1 > /dev/null"', '\$', 5)
mySSH.command('docker exec -d prod-oai-mme /bin/bash -c "nohup tshark -i any -f \'port 3868 or port 2123 or port 36412\' -w /tmp/mme_check_run.pcap 2>&1 > /dev/null"', '\$', 10)
mySSH.command('docker exec -d prod-oai-spgwc /bin/bash -c "nohup tshark -i any -f \'port 2123 or port 8805\' -w /tmp/spgwc_check_run.pcap 2>&1 > /dev/null"', '\$', 10)
# on SPGW-U, not capturing on SGI to avoid huge file
mySSH.command('docker exec -d prod-oai-spgwu-tiny /bin/bash -c "nohup tshark -i any -f \'port 8805\' -w /tmp/spgwu_check_run.pcap 2>&1 > /dev/null"', '\$', 10)
mySSH.close()
logging.debug('Deployment OK')
HTML.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
else:
mySSH.close()
logging.debug('Deployment went wrong')
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
def UndeployEpc(self, HTML):
logging.debug('Trying to undeploy')
# No check down, we suppose everything done before.
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
# Recovering logs and pcap files
mySSH.command('cd ' + self.SourceCodePath + '/logs', '\$', 5)
mySSH.command('docker exec -it prod-oai-hss /bin/bash -c "killall --signal SIGINT oai_hss tshark"', '\$', 5)
mySSH.command('docker exec -it prod-oai-mme /bin/bash -c "killall --signal SIGINT tshark"', '\$', 5)
mySSH.command('docker exec -it prod-oai-spgwc /bin/bash -c "killall --signal SIGINT oai_spgwc tshark"', '\$', 5)
mySSH.command('docker exec -it prod-oai-spgwu-tiny /bin/bash -c "killall --signal SIGINT tshark"', '\$', 5)
mySSH.command('docker logs prod-oai-hss > hss_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('docker logs prod-oai-mme > mme_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('docker logs prod-oai-spgwc > spgwc_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('docker logs prod-oai-spgwu-tiny > spgwu_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('docker cp prod-oai-hss:/tmp/hss_check_run.pcap hss_' + self.testCase_id + '.pcap', '\$', 60)
mySSH.command('docker cp prod-oai-mme:/tmp/mme_check_run.pcap mme_' + self.testCase_id + '.pcap', '\$', 60)
mySSH.command('docker cp prod-oai-spgwc:/tmp/spgwc_check_run.pcap spgwc_' + self.testCase_id + '.pcap', '\$', 60)
mySSH.command('docker cp prod-oai-spgwu-tiny:/tmp/spgwu_check_run.pcap spgwu_' + self.testCase_id + '.pcap', '\$', 60)
# Remove all
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
listOfContainers = 'prod-cassandra prod-oai-hss prod-oai-mme prod-oai-spgwc prod-oai-spgwu-tiny'
nbContainers = 5
# Checking for additional services
mySSH.command('docker-compose config', '\$', 5)
configResponse = mySSH.getBefore()
if configResponse.count('flexran_rtc') == 1:
listOfContainers += ' prod-flexran-rtc'
nbContainers += 1
if configResponse.count('trf_gen') == 1:
listOfContainers += ' prod-trf-gen'
nbContainers += 1
mySSH.command('docker-compose down', '\$', 60)
mySSH.command('docker inspect --format=\'{{.State.Health.Status}}\' ' + listOfContainers, '\$', 10)
noMoreContainerNb = mySSH.getBefore().count('No such object')
mySSH.command('docker inspect --format=\'{{.Name}}\' prod-oai-public-net prod-oai-private-net', '\$', 10)
noMoreNetworkNb = mySSH.getBefore().count('No such object')
mySSH.close()
if noMoreContainerNb == nbContainers and noMoreNetworkNb == 2:
logging.debug('Undeployment OK')
HTML.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK)
else:
logging.debug('Undeployment went wrong')
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker inspect prod-oai-hss', '\$', 10)
result = re.search('No such object', mySSH.getBefore())
if result is not None:
mySSH.command('cd ../logs', '\$', 5)
mySSH.command('rm -f hss.log.zip', '\$', 5)
mySSH.command('zip hss.log.zip hss_*.*', '\$', 60)
mySSH.command('mv hss.log.zip ../scripts', '\$', 60)
else:
mySSH.command('docker cp ' + self.containerPrefix + '-oai-hss:/openair-hss/hss_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-hss:/tmp/hss_check_run.pcap .', '\$', 60)
mySSH.command('zip hss.log.zip hss_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip hss.log.zip hss*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm hss*.log', '\$', 5)
if re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
@@ -373,7 +580,19 @@ class EPCManagement():
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker inspect prod-oai-mme', '\$', 10)
result = re.search('No such object', mySSH.getBefore())
if result is not None:
mySSH.command('cd ../logs', '\$', 5)
mySSH.command('rm -f mme.log.zip', '\$', 5)
mySSH.command('zip mme.log.zip mme_*.*', '\$', 60)
mySSH.command('mv mme.log.zip ../scripts', '\$', 60)
else:
mySSH.command('docker cp ' + self.containerPrefix + '-oai-mme:/openair-mme/mme_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-mme:/tmp/mme_check_run.pcap .', '\$', 60)
mySSH.command('zip mme.log.zip mme_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip mme.log.zip mme*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm mme*.log', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):
@@ -388,7 +607,21 @@ class EPCManagement():
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):
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker inspect prod-oai-mme', '\$', 10)
result = re.search('No such object', mySSH.getBefore())
if result is not None:
mySSH.command('cd ../logs', '\$', 5)
mySSH.command('rm -f spgw.log.zip', '\$', 5)
mySSH.command('zip spgw.log.zip spgw*.*', '\$', 60)
mySSH.command('mv spgw.log.zip ../scripts', '\$', 60)
else:
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwc:/openair-spgwc/spgwc_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwu-tiny:/openair-spgwu-tiny/spgwu_check_run.log .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwc:/tmp/spgwc_check_run.pcap .', '\$', 60)
mySSH.command('docker cp ' + self.containerPrefix + '-oai-spgwu-tiny:/tmp/spgwu_check_run.pcap .', '\$', 60)
mySSH.command('zip spgw.log.zip spgw*_check_run.*', '\$', 60)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip spgw.log.zip spgw*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm spgw*.log', '\$', 5)
elif re.match('ltebox', self.Type, re.IGNORECASE):

View File

@@ -64,6 +64,10 @@ class HTMLManagement():
self.htmlTabIcons = []
self.testXMLfiles = []
self.testUnstable = False
self.testMinStableId = '999999'
self.testStabilityPointReached = False
self.htmleNBFailureMsg = ''
self.htmlUEFailureMsg = ''
@@ -82,73 +86,14 @@ class HTMLManagement():
#-----------------------------------------------------------
# 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
@@ -273,7 +218,7 @@ class HTMLManagement():
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>Relative Time (s)</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')
@@ -289,13 +234,20 @@ class HTMLManagement():
def CreateHtmlTabFooter(self, passStatus):
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
testOkEvenIfUnstable = False
if self.testUnstable and not passStatus:
if self.testStabilityPointReached or self.testMinStableId == '999999':
testOkEvenIfUnstable = True
self.htmlFile = open('test_results.html', 'a')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <th bgcolor = "#33CCFF" colspan=3>Final Tab Status</th>\n')
if passStatus:
self.htmlFile.write(' <th bgcolor = "green" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">PASS <span class="glyphicon glyphicon-ok"></span> </font></th>\n')
else:
self.htmlFile.write(' <th bgcolor = "red" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">FAIL <span class="glyphicon glyphicon-remove"></span> </font></th>\n')
if testOkEvenIfUnstable:
self.htmlFile.write(' <th bgcolor = "orange" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">KNOWN UNSTABLE SCENARIO <span class="glyphicon glyphicon-exclamation-sign"></span> </font></th>\n')
else:
self.htmlFile.write(' <th bgcolor = "red" colspan=' + str(2 + self.htmlUEConnected) + '><font color="white">FAIL <span class="glyphicon glyphicon-remove"></span> </font></th>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' </table>\n')
self.htmlFile.write(' </div>\n')
@@ -305,7 +257,10 @@ class HTMLManagement():
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"
if testOkEvenIfUnstable:
cmd = "sed -i -e 's/__STATE_" + self.htmlTabNames[0] + "__/<span class=\"glyphicon glyphicon-exclamation-sign\"><\/span>/' test_results.html"
else:
cmd = "sed -i -e 's/__STATE_" + self.htmlTabNames[0] + "__/<span class=\"glyphicon glyphicon-remove\"><\/span>/' test_results.html"
subprocess.run(cmd, shell=True)
self.htmlFooterCreated = False
@@ -326,7 +281,7 @@ class HTMLManagement():
continue
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <th colspan=8>' + str('eNB') + ' Server Characteristics</th>\n')
self.htmlFile.write(' <th colspan=8>' + str(machine) + ' Server Characteristics</th>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td>OS Version</td>\n')
@@ -444,6 +399,53 @@ class HTMLManagement():
self.htmlFile.write(' </tr>\n')
self.htmlFile.close()
def CreateHtmlNextTabHeaderTestRow(self, collectInfo, allImagesSize, machine='eNB'):
if (self.htmlFooterCreated or (not self.htmlHeaderCreated)):
return
self.htmlFile = open('test_results.html', 'a')
if bool(collectInfo) == False:
self.htmlFile.write(' <tr bgcolor = "red" >\n')
self.htmlFile.write(' <td colspan=' + str(5+self.htmlUEConnected) + '><b> ----IMAGES BUILDING FAILED - Unable to recover the image logs ---- </b></td>\n')
self.htmlFile.write(' </tr>\n')
else:
for image in collectInfo:
files = collectInfo[image]
# TabHeader for image logs on built shared and target images
self.htmlFile.write(' <tr bgcolor = "#F0F0F0" >\n')
self.htmlFile.write(' <td colspan=' + str(5+self.htmlUEConnected) + '><b> ---- ' + image + ' IMAGE STATUS ----> Size ' + allImagesSize[image] + ' </b></td>\n')
self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr bgcolor = "#33CCFF" >\n')
self.htmlFile.write(' <th colspan="2">Element</th>\n')
self.htmlFile.write(' <th>Nb Errors</th>\n')
self.htmlFile.write(' <th>Nb Warnings</th>\n')
self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + '>Status</th>\n')
self.htmlFile.write(' </tr>\n')
for fil in files:
parameters = files[fil]
# TestRow for image logs on built shared and target images
self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td colspan="2" bgcolor = "lightcyan" >' + fil + ' </td>\n')
if (parameters['errors'] == 0):
self.htmlFile.write(' <td bgcolor = "green" >' + str(parameters['errors']) + '</td>\n')
else:
self.htmlFile.write(' <td bgcolor = "red" >' + str(parameters['errors']) + '</td>\n')
if (parameters['warnings'] == 0):
self.htmlFile.write(' <td bgcolor = "green" >' + str(parameters['warnings']) + '</td>\n')
elif ((parameters['warnings'] > 0) and (parameters['warnings'] <= 20)):
self.htmlFile.write(' <td bgcolor = "orange" >' + str(parameters['warnings']) + '</td>\n')
else:
self.htmlFile.write(' <td bgcolor = "red" >' + str(parameters['warnings']) + '</td>\n')
if (parameters['errors'] == 0) and (parameters['warnings'] == 0):
self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + ' bgcolor = "green" ><font color="white">OK </font></th>\n')
elif (parameters['errors'] == 0) and ((parameters['warnings'] > 0) and (parameters['warnings'] <= 20)):
self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + ' bgcolor = "orange" ><font color="white">OK </font></th>\n')
else:
self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + ' bgcolor = "red" > NOT OK </th>\n')
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')

File diff suppressed because it is too large Load Diff

View File

@@ -172,6 +172,7 @@ function setvar_usage {
function variant__v1__enb_usrp {
NB_PATTERN_FILES=9
BUILD_OPTIONS="--eNB -w USRP --mu"
VM_MEMORY=3072
}
function variant__v2__basic_sim {
@@ -197,7 +198,7 @@ function variant__v4__cppcheck {
}
function variant__v5__gnb_usrp {
VM_MEMORY=8192
VM_MEMORY=10240
VM_CPU=8
NB_PATTERN_FILES=9
BUILD_OPTIONS="--gNB -w USRP"
@@ -213,15 +214,15 @@ function variant__v6__nr_ue_usrp {
function variant__v7__enb_ethernet {
VM_MEMORY=4096
ARCHIVES_LOC=enb_eth
NB_PATTERN_FILES=8
BUILD_OPTIONS="--eNB"
NB_PATTERN_FILES=9
BUILD_OPTIONS="--eNB -w USRP"
}
function variant__v8__ue_ethernet {
VM_MEMORY=4096
ARCHIVES_LOC=ue_eth
NB_PATTERN_FILES=12
BUILD_OPTIONS="--UE"
NB_PATTERN_FILES=13
BUILD_OPTIONS="--UE -w USRP"
}
function variant__v10__flexran_rtc {

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

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

View File

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

View File

@@ -42,10 +42,8 @@ from multiprocessing import Process, Lock, SimpleQueue
# OAI Testing modules
#-----------------------------------------------------------
import sshconnection as SSH
import epc
import helpreadme as HELP
import constants as CONST
import html
#-----------------------------------------------------------
# Class Declaration
@@ -77,174 +75,43 @@ class RANManagement():
self.backgroundBuildTestId = ['', '', '']
self.Build_eNB_forced_workspace_cleanup = False
self.Initialize_eNB_args = ''
self.air_interface = 'lte'
self.eNB_instance = ''
self.eNB_serverId = ''
self.imageKind = ''
self.air_interface = ['', '', ''] #changed from 'lte' to '' may lead to side effects in main
self.eNB_instance = 0
self.eNB_serverId = ['', '', '']
self.eNBLogFiles = ['', '', '']
self.eNBOptions = ['', '', '']
self.eNBmbmsEnables = [False, False, False]
self.eNBstatuses = [-1, -1, -1]
self.flexranCtrlInstalled = False
self.flexranCtrlStarted = False
self.flexranCtrlDeployed = False
self.flexranCtrlIpAddress = ''
self.testCase_id = ''
self.epcPcapFile = ''
self.htmlObj = None
self.epcObj = None
self.runtime_stats= ''
#-----------------------------------------------------------
# Setters and Getters on Public members
#-----------------------------------------------------------
def SetHtmlObj(self, obj):
self.htmlObj = obj
def SetEpcObj(self, obj):
self.epcObj = obj
def SetflexranCtrlInstalled(self,fxrctin):
self.flexranCtrlInstalled = fxrctin
def GetflexranCtrlInstalled(self):
return self.flexranCtrlInstalled
def SetflexranCtrlStarted(self,fxrctst):
self.flexranCtrlStarted = fxrctst
def GetflexranCtrlStarted(self):
return self.flexranCtrlStarted
def SetpStatus(self, pSt):
self.pStatus = pSt
def SetranRepository(self, repository):
self.ranRepository = repository
def GetranRepository(self):
return self.ranRepository
def SetranBranch(self, branch):
self.ranBranch = branch
def GetranBranch(self):
return self.ranBranch
def SetranCommitID(self, commitid):
self.ranCommitID = commitid
def GetranCommitID(self):
return self.ranCommitID
def SeteNB_serverId(self, enbsrvid):
self.eNB_serverId = enbsrvid
def GeteNB_serverId(self):
return self.eNB_serverId
def SeteNBIPAddress(self, enbip):
self.eNBIPAddress = enbip
def GeteNBIPAddress(self):
return self.eNBIPAddress
def SeteNBUserName(self, enbusr):
self.eNBUserName = enbusr
def GeteNBUserName(self):
return self.eNBUserName
def SeteNBPassword(self, enbpw):
self.eNBPassword = enbpw
def GeteNBPassword(self):
return self.eNBPassword
def SeteNBSourceCodePath(self, enbcodepath):
self.eNBSourceCodePath = enbcodepath
def GeteNBSourceCodePath(self):
return self.eNBSourceCodePath
def SetranAllowMerge(self, merge):
self.ranAllowMerge = merge
def GetranAllowMerge(self):
return self.ranAllowMerge
def SetranTargetBranch(self, tbranch):
self.ranTargetBranch = tbranch
def GetranTargetBranch(self):
return self.ranTargetBranch
def SetBuild_eNB_args(self, enbbuildarg):
self.Build_eNB_args = enbbuildarg
def GetBuild_eNB_args(self):
return self.Build_eNB_args
def SetInitialize_eNB_args(self, initenbarg):
self.Initialize_eNB_args = initenbarg
def GetInitialize_eNB_args(self):
return self.Initialize_eNB_args
def SetbackgroundBuild(self, bkbuild):
self.backgroundBuild = bkbuild
def GetbackgroundBuild(self):
return self.backgroundBuild
def SetbackgroundBuildTestId(self, bkbuildid):
self.backgroundBuildTestId = bkbuildid
def GetbackgroundBuildTestId(self):
return self.backgroundBuildTestId
def SetBuild_eNB_forced_workspace_cleanup(self, fcdwspclean):
self.Build_eNB_forced_workspace_cleanup = fcdwspclean
def GetBuild_eNB_forced_workspace_cleanup(self):
return self.Build_eNB_forced_workspace_cleanup
def Setair_interface(self, airif):
self.air_interface = airif
def Getair_interface(self):
return self.air_interface
def SeteNB_instance(self, enbinst):
self.eNB_instance = enbinst
def GeteNB_instance(self):
return self.eNB_instance
def SeteNBLogFile(self, enblog, idx):
self.eNBLogFiles[idx] = enblog
def GeteNBLogFile(self, idx):
return self.eNBLogFiles[idx]
def GeteNBmbmsEnable(self, idx):
return self.eNBmbmsEnables[idx]
def SeteNB1IPAddress(self,enb1ip):
self.eNB1IPAddress = enb1ip
def GeteNB1IPAddress(self):
return self.eNB1IPAddress
def SeteNB1UserName(self, enb1usr):
self.eNB1UserName = enb1usr
def GeteNB1UserName(self):
return self.eNB1UserName
def SeteNB1Password(self, enb1pw):
self.eNB1Password = enb1pw
def GeteNB1Password(self):
return self.eNB1Password
def SeteNB1SourceCodePath(self, enb1codepath):
self.eNB1SourceCodePath = enb1codepath
def GeteNB1SourceCodePath(self):
return self.eNB1SourceCodePath
def SeteNB2IPAddress(self, enb2ip):
self.eNB2IPAddress = enb2ip
def GeteNB2IPAddress(self):
return self.eNB2IPAddress
def SeteNB2UserName(self, enb2usr):
self.eNB2UserName = enb2usr
def GeteNB2UserName(self):
return self.eNB2UserName
def SeteNB2Password(self, enb2pw):
self.eNB2Password = enb2pw
def GeteNB2Password(self):
return self.eNB2Password
def SeteNB2SourceCodePath(self, enb2codepath):
self.eNB2SourceCodePath = enb2codepath
def GeteNB2SourceCodePath(self):
return self.eNB2SourceCodePath
def SetprematureExit(self, premex):
self.prematureExit = premex
def GetprematureExit(self):
return self.prematureExit
#-----------------------------------------------------------
# RAN management functions
#-----------------------------------------------------------
def BuildeNB(self):
def BuildeNB(self, HTML):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if self.eNB_serverId == '0':
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
@@ -252,21 +119,25 @@ class RANManagement():
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Building on server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
# Check if we build an 5G-NR gNB or an LTE eNB
result = re.search('--gNB', self.Build_eNB_args)
# Check if we build an 5G-NR gNB or an LTE eNB or an OCP eNB
result = re.search('--eNBocp', self.Build_eNB_args)
if result is not None:
self.air_interface = 'nr'
else:
self.air_interface = 'lte'
self.air_interface[self.eNB_instance] = 'ocp-enb'
else:
result = re.search('--gNB', self.Build_eNB_args)
if result is not None:
self.air_interface[self.eNB_instance] = 'nr-softmodem'
else:
self.air_interface[self.eNB_instance] = 'lte-softmodem'
# Worakround for some servers, we need to erase completely the workspace
if self.Build_eNB_forced_workspace_cleanup:
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
if self.htmlObj is not None:
self.testCase_id = self.htmlObj.GettestCase_id()
else:
self.testCase_id = '000000'
self.testCase_id = HTML.testCase_id
# on RedHat/CentOS .git extension is mandatory
result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
if result is not None:
@@ -307,8 +178,7 @@ class RANManagement():
mismatch = True
if not mismatch:
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
return
mySSH.command('echo ' + lPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
@@ -332,28 +202,28 @@ class RANManagement():
if self.backgroundBuild:
mySSH.command('echo "./build_oai ' + self.Build_eNB_args + '" > ./my-lte-softmodem-build.sh', '\$', 5)
mySSH.command('chmod 775 ./my-lte-softmodem-build.sh', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S -E daemon --inherit --unsafe --name=build_enb_daemon --chdir=' + lSourcePath + '/cmake_targets -o ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ./my-lte-softmodem-build.sh', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S ls', '\$', 5)
mySSH.command('echo $USER; nohup sudo -E ./my-lte-softmodem-build.sh' + ' > ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ' + ' 2>&1 &', lUserName, 5)
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
self.backgroundBuildTestId[int(self.eNB_instance)] = self.testCase_id
return
mySSH.command('stdbuf -o0 ./build_oai ' + self.Build_eNB_args + ' 2>&1 | stdbuf -o0 tee compile_oai_enb.log', 'Bypassing the Tests|build have failed', 1500)
mySSH.close()
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.testCase_id)
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.testCase_id, HTML)
def WaitBuildeNBisFinished(self):
if self.eNB_serverId == '0':
def WaitBuildeNBisFinished(self, HTML):
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
@@ -361,38 +231,39 @@ class RANManagement():
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Waiting for end of build on server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
count = 40
buildOAIprocess = True
while (count > 0) and buildOAIprocess:
mySSH.command('ps aux | grep --color=never build_ | grep -v grep', '\$', 3)
mySSH.command('ps aux | grep --color=never build_ | grep -v grep', '\$', 6)
result = re.search('build_oai', mySSH.getBefore())
print(result)
if result is None:
buildOAIprocess = False
else:
count -= 1
time.sleep(30)
mySSH.close()
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)])
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)], HTML)
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId, HTML):
HTML.testCase_id=testcaseId
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId):
if self.htmlObj is not None:
self.htmlObj.SettestCase_id(testcaseId)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3)
if self.air_interface == 'nr':
nodeB_prefix = 'g'
else:
nodeB_prefix = 'e'
buildStatus = True
result = re.search(self.air_interface + '-softmodem', mySSH.getBefore())
#check if we have the build corresponding to the air interface keywords (nr-softmode, lte-softmodem, ocp-enb)
logging.info('CHECK Build with IP='+lIpAddr+' SourcePath='+lSourcePath)
result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
if result is None:
buildStatus = False
buildStatus = False #if not, build failed
else:
buildStatus = True
# Generating a BUILD INFO file
mySSH.command('echo "SRC_BRANCH: ' + self.ranBranch + '" > ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('echo "SRC_COMMIT: ' + self.ranCommitID + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
@@ -404,10 +275,12 @@ class RANManagement():
mySSH.command('echo "TGT_BRANCH: ' + self.ranTargetBranch + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
else:
mySSH.command('echo "MERGED_W_TGT_BRANCH: NO" >> ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('mkdir -p build_log_' + testcaseId, '\$', 5)
mySSH.command('mv log/* ' + 'build_log_' + testcaseId, '\$', 5)
mySSH.command('mv compile_oai_enb.log ' + 'build_log_' + testcaseId, '\$', 5)
if self.eNB_serverId != '0':
if self.eNB_serverId[self.eNB_instance] != '0':
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('if [ -e tmp_build' + testcaseId + '.zip ]; then rm -f tmp_build' + testcaseId + '.zip; fi', '\$', 5)
mySSH.command('zip -r -qq tmp_build' + testcaseId + '.zip build_log_' + testcaseId, '\$', 5)
@@ -420,35 +293,35 @@ class RANManagement():
os.remove('./tmp_build' + testcaseId + '.zip')
mySSH.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
mySSH.command('cd ' + self.eNBSourceCodePath + '/cmake_targets', '\$', 5)
mySSH.command('unzip -qq -DD tmp_build' + testcaseId + '.zip', '\$', 5)
#-qq quiet / -u update orcreate files
mySSH.command('unzip -u -qq -DD tmp_build' + testcaseId + '.zip', '\$', 5)
mySSH.command('rm -f tmp_build' + testcaseId + '.zip', '\$', 5)
mySSH.close()
else:
mySSH.close()
#generate logging info depending on buildStatus and air interface
if buildStatus:
logging.info('\u001B[1m Building OAI ' + nodeB_prefix + 'NB Pass\u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
logging.info('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Pass\u001B[0m')
HTML.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
else:
logging.error('\u001B[1m Building OAI ' + nodeB_prefix + 'NB Failed\u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK)
self.htmlObj.CreateHtmlTabFooter(False)
logging.error('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Failed\u001B[0m')
HTML.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTabFooter(False)
sys.exit(1)
def InitializeeNB(self):
if self.eNB_serverId == '0':
def InitializeeNB(self, HTML, EPC):
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
@@ -456,24 +329,21 @@ class RANManagement():
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Starting eNB/gNB on server: ' + lIpAddr)
if self.htmlObj is not None:
self.testCase_id = self.htmlObj.GettestCase_id()
else:
self.testCase_id = '000000'
self.testCase_id = HTML.testCase_id
mySSH = SSH.SSHConnection()
if (self.pStatus < 0):
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Initialize_eNB_args, 'KO', self.pStatus)
self.htmlObj.CreateHtmlTabFooter(False)
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus)
HTML.CreateHtmlTabFooter(False)
sys.exit(1)
# If tracer options is on, running tshark on EPC side and capture traffic b/ EPC and eNB
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.GetIPAddress()
localEpcUserName = self.epcObj.GetUserName()
localEpcPassword = self.epcObj.GetPassword()
if (result is not None):
localEpcIpAddr = EPC.IPAddress
localEpcUserName = EPC.UserName
localEpcPassword = EPC.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
mySSH.command('ip addr show | awk -f /tmp/active_net_interfaces.awk | egrep -v "lo|tun"', '\$', 5)
result = re.search('interfaceToUse=(?P<eth_interface>[a-zA-Z0-9\-\_]+)done', mySSH.getBefore())
@@ -521,15 +391,17 @@ class RANManagement():
mySSH.command('echo ' + lPassWord + ' | sudo -S uhd_find_devices', '\$', 60)
# Make a copy and adapt to EPC / eNB IP addresses
mySSH.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5)
if self.epcObj is not None:
localEpcIpAddr = self.epcObj.GetIPAddress()
mySSH.command('sed -i -e \'s/CI_MME_IP_ADDR/' + localEpcIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
localMmeIpAddr = EPC.MmeIPAddress
mySSH.command('sed -i -e \'s/CI_MME_IP_ADDR/' + localMmeIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_ENB_IP_ADDR/' + lIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_GNB_IP_ADDR/' + lIpAddr + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RCC_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RRU1_IP_ADDR/' + self.eNB1IPAddress + '/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_RRU2_IP_ADDR/' + self.eNB2IPAddress + '/\' ' + ci_full_config_file, '\$', 2);
if self.flexranCtrlInstalled and self.flexranCtrlStarted:
mySSH.command('sed -i -e \'s/CI_FR1_CTL_ENB_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
if (self.flexranCtrlInstalled and self.flexranCtrlStarted) or self.flexranCtrlDeployed:
mySSH.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "yes";/\' ' + ci_full_config_file, '\$', 2);
mySSH.command('sed -i -e \'s/CI_FLEXRAN_CTL_IP_ADDR/' + self.flexranCtrlIpAddress + '/\' ' + ci_full_config_file, '\$', 2);
else:
mySSH.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "no";/\' ' + ci_full_config_file, '\$', 2);
self.eNBmbmsEnables[int(self.eNB_instance)] = False
@@ -546,15 +418,14 @@ class RANManagement():
# Launch eNB with the modified config file
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface + '-softmodem -O ' + lSourcePath + '/' + ci_full_config_file + extra_options + '" > ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
if self.air_interface[self.eNB_instance] == 'nr-softmodem':
mySSH.command('if [ -e rbconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm rbconfig.raw; fi', '\$', 5)
mySSH.command('if [ -e reconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm reconfig.raw; fi', '\$', 5)
# NOTE: WE SHALL do a check if the executable is present (in case build went wrong)
mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface[self.eNB_instance] + ' -O ' + lSourcePath + '/' + ci_full_config_file + extra_options + '" > ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.command('chmod 775 ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf enb_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('hostnamectl','\$', 5)
result = re.search('CentOS Linux 7', mySSH.getBefore())
if result is not None:
mySSH.command('echo $USER; nohup sudo ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh > ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '.log 2>&1 &', lUserName, 10)
else:
mySSH.command('echo ' + lPassWord + ' | sudo -S -E daemon --inherit --unsafe --name=enb' + str(self.eNB_instance) + '_daemon --chdir=' + lSourcePath + '/cmake_targets -o ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '.log ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.command('echo $USER; nohup sudo -E ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh > ' + lSourcePath + '/cmake_targets/enb_' + self.testCase_id + '.log 2>&1 &', lUserName, 10)
self.eNBLogFiles[int(self.eNB_instance)] = 'enb_' + self.testCase_id + '.log'
if extra_options != '':
self.eNBOptions[int(self.eNB_instance)] = extra_options
@@ -571,15 +442,14 @@ class RANManagement():
mySSH.command('killall --signal SIGKILL record', '\$', 5)
mySSH.close()
doLoop = False
logging.error('\u001B[1;37;41m eNB logging system did not show got sync! \u001B[0m')
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('-O ' + config_file + extra_options, 'KO', CONST.ALL_PROCESSES_OK)
logging.error('\u001B[1;37;41m eNB/gNB/ocp-eNB logging system did not show got sync! \u001B[0m')
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' -O ' + config_file + extra_options, 'KO', CONST.ALL_PROCESSES_OK)
# In case of T tracer recording, we need to kill tshark on EPC side
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.GetIPAddress()
localEpcUserName = self.epcObj.GetUserName()
localEpcPassword = self.epcObj.GetPassword()
if (result is not None):
localEpcIpAddr = EPC.IPAddress
localEpcUserName = EPC.UserName
localEpcPassword = EPC.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
logging.debug('\u001B[1m Stopping tshark \u001B[0m')
mySSH.command('echo ' + localEpcPassword + ' | sudo -S killall --signal SIGKILL tshark', '\$', 5)
@@ -595,7 +465,7 @@ class RANManagement():
self.prematureExit = True
return
else:
mySSH.command('stdbuf -o0 cat enb_' + self.testCase_id + '.log | egrep --text --color=never -i "wait|sync|Starting"', '\$', 4)
mySSH.command('stdbuf -o0 cat enb_' + self.testCase_id + '.log | egrep --text --color=never -i "wait|sync|Starting|Started"', '\$', 4)
if rruCheck:
result = re.search('wait RUs', mySSH.getBefore())
else:
@@ -607,7 +477,11 @@ class RANManagement():
enbDidSync = True
time.sleep(10)
if enbDidSync and eNBinNoS1:
rruCheck = False
result = re.search('^rru|^du.band', str(config_file))
if result is not None:
rruCheck = True
if enbDidSync and eNBinNoS1 and not rruCheck:
mySSH.command('ifconfig oaitun_enb1', '\$', 4)
mySSH.command('ifconfig oaitun_enb1', '\$', 4)
result = re.search('inet addr:1|inet 1', mySSH.getBefore())
@@ -623,12 +497,11 @@ class RANManagement():
else:
logging.error('\u001B[1m oaitun_enm1 interface is either NOT mounted or NOT configured\u001B[0m')
if enbDidSync:
self.eNBstatuses[int(self.eNB_instance)] = int(self.eNB_serverId)
self.eNBstatuses[int(self.eNB_instance)] = int(self.eNB_serverId[self.eNB_instance])
mySSH.close()
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('-O ' + config_file + extra_options, 'OK', CONST.ALL_PROCESSES_OK)
logging.debug('\u001B[1m Initialize eNB Completed\u001B[0m')
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' -O ' + config_file + extra_options, 'OK', CONST.ALL_PROCESSES_OK)
logging.debug('\u001B[1m Initialize eNB/gNB/ocp-eNB Completed\u001B[0m')
def CheckeNBProcess(self, status_queue):
try:
@@ -651,8 +524,8 @@ class RANManagement():
lPassWord = self.eNBPassword
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface + '-softmodem | grep -v grep', '\$', 5)
result = re.search(self.air_interface + '-softmodem', mySSH.getBefore())
mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface[self.eNB_instance] + ' | grep -v grep', '\$', 5)
result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
if result is None:
logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m')
status_queue.put(CONST.ENB_PROCESS_FAILED)
@@ -662,18 +535,18 @@ class RANManagement():
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateeNB(self):
if self.eNB_serverId == '0':
def TerminateeNB(self, HTML, EPC):
if self.eNB_serverId[self.eNB_instance] == '0':
lIpAddr = self.eNBIPAddress
lUserName = self.eNBUserName
lPassWord = self.eNBPassword
lSourcePath = self.eNBSourceCodePath
elif self.eNB_serverId == '1':
elif self.eNB_serverId[self.eNB_instance] == '1':
lIpAddr = self.eNB1IPAddress
lUserName = self.eNB1UserName
lPassWord = self.eNB1Password
lSourcePath = self.eNB1SourceCodePath
elif self.eNB_serverId == '2':
elif self.eNB_serverId[self.eNB_instance] == '2':
lIpAddr = self.eNB2IPAddress
lUserName = self.eNB2UserName
lPassWord = self.eNB2Password
@@ -681,32 +554,32 @@ class RANManagement():
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
logging.debug('Stopping eNB/gNB on server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
if self.air_interface == 'lte':
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
mySSH.command('stdbuf -o0 ps -aux | grep --color=never softmodem | grep -v grep', '\$', 5)
result = re.search('-softmodem', mySSH.getBefore())
mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S daemon --name=enb' + str(self.eNB_instance) + '_daemon --stop', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGINT -r .*-softmodem || true', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGINT -r .*-softmodem ocp-enb || true', '\$', 5)
time.sleep(10)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never softmodem | grep -v grep', '\$', 5)
result = re.search('-softmodem', mySSH.getBefore())
mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGKILL -r .*-softmodem || true', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGKILL -r .*-softmodem ocp-enb || true', '\$', 5)
time.sleep(5)
mySSH.command('rm -f my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.close()
# If tracer options is on, stopping tshark on EPC side
result = re.search('T_stdout', str(self.Initialize_eNB_args))
if (result is not None) and (self.epcObj is not None):
localEpcIpAddr = self.epcObj.GetIPAddress()
localEpcUserName = self.epcObj.GetUserName()
localEpcPassword = self.epcObj.GetPassword()
if (result is not None):
localEpcIpAddr = EPC.IPAddress
localEpcUserName = EPC.UserName
localEpcPassword = EPC.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
logging.debug('\u001B[1m Stopping tshark \u001B[0m')
mySSH.command('echo ' + localEpcPassword + ' | sudo -S killall --signal SIGKILL tshark', '\$', 5)
@@ -730,9 +603,8 @@ class RANManagement():
mySSH.close()
mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/' + extracted_log_file, '.')
logging.debug('\u001B[1m Analyzing eNB replay logfile \u001B[0m')
logStatus = self.AnalyzeLogFile_eNB(extracted_log_file)
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
logStatus = self.AnalyzeLogFile_eNB(extracted_log_file, HTML)
HTML.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBLogFiles[int(self.eNB_instance)] = ''
else:
analyzeFile = False
@@ -744,27 +616,23 @@ class RANManagement():
copyin_res = mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/' + fileToAnalyze, '.')
if (copyin_res == -1):
logging.debug('\u001B[1;37;41m Could not copy ' + nodeB_prefix + 'NB logfile to analyze it! \u001B[0m')
if self.htmlObj is not None:
self.htmlObj.SetHmleNBFailureMsg('Could not copy ' + nodeB_prefix + 'NB logfile to analyze it!')
self.htmlObj.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
HTML.htmleNBFailureMsg='Could not copy ' + nodeB_prefix + 'NB logfile to analyze it!'
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
self.eNBmbmsEnables[int(self.eNB_instance)] = False
return
if self.eNB_serverId != '0':
if self.eNB_serverId[self.eNB_instance] != '0':
mySSH.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, './' + fileToAnalyze, self.eNBSourceCodePath + '/cmake_targets/')
logging.debug('\u001B[1m Analyzing ' + nodeB_prefix + 'NB logfile \u001B[0m ' + fileToAnalyze)
logStatus = self.AnalyzeLogFile_eNB(fileToAnalyze)
logStatus = self.AnalyzeLogFile_eNB(fileToAnalyze, HTML)
if (logStatus < 0):
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'KO', logStatus)
HTML.CreateHtmlTestRow('N/A', 'KO', logStatus)
self.preamtureExit = True
self.eNBmbmsEnables[int(self.eNB_instance)] = False
return
else:
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
else:
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBmbmsEnables[int(self.eNB_instance)] = False
self.eNBstatuses[int(self.eNB_instance)] = -1
@@ -774,11 +642,11 @@ class RANManagement():
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm -f enb.log.zip', '\$', 5)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S zip enb.log.zip enb*.log core* enb_*record.raw enb_*.pcap enb_*txt', '\$', 60)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S zip enb.log.zip enb*.log core* enb_*record.raw enb_*.pcap enb_*txt physim_*.log', '\$', 60)
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log core* enb_*record.raw enb_*.pcap enb_*txt', '\$', 5)
mySSH.close()
def AnalyzeLogFile_eNB(self, eNBlogFile):
def AnalyzeLogFile_eNB(self, eNBlogFile, HTML):
if (not os.path.isfile('./' + eNBlogFile)):
return -1
enb_log_file = open('./' + eNBlogFile, 'r')
@@ -800,7 +668,11 @@ class RANManagement():
uciStatMsgCount = 0
pdcpFailure = 0
ulschFailure = 0
ulschAllocateCCEerror = 0
uplinkSegmentsAborted = 0
ulschReceiveOK = 0
gnbRxTxWakeUpFailure = 0
gnbTxWriteThreadEnabled = False
cdrxActivationMessageCount = 0
dropNotEnoughRBs = 0
mbmsRequestMsg = 0
@@ -811,7 +683,44 @@ class RANManagement():
X2HO_state = CONST.X2_HO_REQ_STATE__IDLE
X2HO_inNbProcedures = 0
X2HO_outNbProcedures = 0
global_status = CONST.ALL_PROCESSES_OK
# Runtime statistics
runTime = ''
userTime = ''
systemTime = ''
maxPhyMemUsage = ''
nbContextSwitches = ''
#NSA FR1 check
NSA_RAPROC_PUSCH_check = 0
#dlsch and ulsch statistics (dictionary)
dlsch_ulsch_stats = {}
#count "L1 thread not ready" msg
L1_thread_not_ready_cnt = 0
#count "problem receiving samples" msg
pb_receiving_samples_cnt = 0
for line in enb_log_file.readlines():
# Runtime statistics
result = re.search('Run time:' ,str(line))
if result is not None:
runTime = str(line).strip()
if runTime != '':
result = re.search('Time executing user inst', str(line))
if result is not None:
fields=line.split(':')
userTime = 'userTime : ' + fields[1].replace('\n','')
result = re.search('Time executing system inst', str(line))
if result is not None:
fields=line.split(':')
systemTime = 'systemTime : ' + fields[1].replace('\n','')
result = re.search('Max. Phy. memory usage:', str(line))
if result is not None:
fields=line.split(':')
maxPhyMemUsage = 'maxPhyMemUsage : ' + fields[1].replace('\n','')
result = re.search('Number of context switch.*process origin', str(line))
if result is not None:
fields=line.split(':')
nbContextSwitches = 'nbContextSwitches : ' + fields[1].replace('\n','')
if X2HO_state == CONST.X2_HO_REQ_STATE__IDLE:
result = re.search('target eNB Receives X2 HO Req X2AP_HANDOVER_REQ', str(line))
if result is not None:
@@ -884,8 +793,7 @@ class RANManagement():
if result is not None:
rrcSetupComplete += 1
result = re.search('Generate LTE_RRCConnectionRelease|Generate RRCConnectionRelease', str(line))
if result is not None:
rrcReleaseRequest += 1
if result is not None: rrcReleaseRequest += 1
result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line))
if result is not None:
rrcReconfigRequest += 1
@@ -910,9 +818,21 @@ class RANManagement():
result = re.search('PDCP.*Out of Resources.*reason', str(line))
if result is not None:
pdcpFailure += 1
result = re.search('ULSCH in error in round', str(line))
result = re.search('could not wakeup gNB rxtx process', str(line))
if result is not None:
gnbRxTxWakeUpFailure += 1
result = re.search('tx write thread ready', str(line))
if result is not None:
gnbTxWriteThreadEnabled = True
result = re.search('ULSCH in error in round|ULSCH 0 in error', str(line))
if result is not None:
ulschFailure += 1
result = re.search('ERROR ALLOCATING CCEs', str(line))
if result is not None:
ulschAllocateCCEerror += 1
result = re.search('uplink segment error.*aborted [1-9] segments', str(line))
if result is not None:
uplinkSegmentsAborted += 1
result = re.search('ULSCH received ok', str(line))
if result is not None:
ulschReceiveOK += 1
@@ -929,17 +849,77 @@ class RANManagement():
result = re.search('MBMS USER-PLANE.*Requesting.*bytes from RLC', str(line))
if result is not None:
mbmsRequestMsg += 1
#FR1 NSA test : add new markers to make sure gNB is used
result = re.search('\[gNB [0-9]+\]\[RAPROC\] PUSCH with TC_RNTI [0-9a-fA-F]+ received correctly, adding UE MAC Context UE_id [0-9]+\/RNTI [0-9a-fA-F]+', str(line))
if result is not None:
NSA_RAPROC_PUSCH_check = 1
#dlsch and ulsch statistics
#keys below are the markers we are loooking for, loop over this keys list
#everytime these markers are found in the log file, the previous ones are overwritten in the dict
#eventually we record and print only the last occurence
keys = {'dlsch_rounds','dlsch_total_bytes','ulsch_rounds','ulsch_total_bytes_scheduled'}
for k in keys:
result = re.search(k, line)
if result is not None:
#remove 1- all useless char before relevant info (ulsch or dlsch) 2- trailing char
dlsch_ulsch_stats[k]=re.sub(r'^.*\]\s+', r'' , line.rstrip())
#count "L1 thread not ready" msg
result = re.search('\[PHY\]\s+L1_thread isn\'t ready', str(line))
if result is not None:
L1_thread_not_ready_cnt += 1
#count "problem receiving samples" msg
result = re.search('\[PHY\]\s+problem receiving samples', str(line))
if result is not None:
pb_receiving_samples_cnt += 1
enb_log_file.close()
logging.debug(' File analysis completed')
if self.air_interface == 'lte':
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
if self.air_interface == 'nr':
if self.air_interface[self.eNB_instance] == 'nr-softmodem':
if ulschReceiveOK > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if gnbRxTxWakeUpFailure > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(gnbRxTxWakeUpFailure) + ' "could not wakeup gNB rxtx process" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if gnbTxWriteThreadEnabled:
statMsg = nodeB_prefix + 'NB ran with TX Write thread enabled'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
#FR1 NSA test : add new markers to make sure gNB is used
if NSA_RAPROC_PUSCH_check:
statMsg = '[RAPROC] PUSCH with TC_RNTI message check for ' + nodeB_prefix + 'NB : PASS '
htmlMsg = statMsg+'\n'
else:
statMsg = '[RAPROC] PUSCH with TC_RNTI message check for ' + nodeB_prefix + 'NB : FAIL '
htmlMsg = statMsg+'\n'
logging.debug(statMsg)
htmleNBFailureMsg += htmlMsg
#L1 thread not ready log
statMsg = '[PHY] L1 thread is not ready msg count = '+str(L1_thread_not_ready_cnt)
htmlMsg = statMsg+'\n'
logging.debug(statMsg)
htmleNBFailureMsg += htmlMsg
#problem receiving samples log
statMsg = '[PHY] problem receiving samples msg count = '+str(pb_receiving_samples_cnt)
htmlMsg = statMsg+'\n'
logging.debug(statMsg)
htmleNBFailureMsg += htmlMsg
#ulsch and dlsch statistics
if len(dlsch_ulsch_stats)!=0: #check if dictionary is not empty
statMsg=''
for key in dlsch_ulsch_stats: #for each dictionary key
statMsg += dlsch_ulsch_stats[key] + '\n'
logging.debug(dlsch_ulsch_stats[key])
htmleNBFailureMsg += statMsg
if uciStatMsgCount > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(uciStatMsgCount) + ' "uci->stat" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
@@ -952,6 +932,14 @@ class RANManagement():
statMsg = nodeB_prefix + 'NB showed ' + str(ulschFailure) + ' "ULSCH in error in round" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if ulschAllocateCCEerror > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschAllocateCCEerror) + ' "eNB_dlsch_ulsch_scheduler(); ERROR ALLOCATING CCEs" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if uplinkSegmentsAborted > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(uplinkSegmentsAborted) + ' "uplink segment error 0/2, aborted * segments" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
if dropNotEnoughRBs > 0:
statMsg = 'eNB showed ' + str(dropNotEnoughRBs) + ' "dropping, not enough RBs" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
@@ -1022,30 +1010,30 @@ class RANManagement():
rruMsg = 'Slave RRU DID NOT receive the RRU_frame_resynch command from RAU'
logging.debug('\u001B[1;37;41m ' + rruMsg + ' \u001B[0m')
htmleNBFailureMsg += rruMsg + '\n'
self.prematureExit(True)
return CONST.ENB_PROCESS_SLAVE_RRU_NOT_SYNCED
self.prematureExit = True
global_status = CONST.ENB_PROCESS_SLAVE_RRU_NOT_SYNCED
if foundSegFault:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB ended with a Segmentation Fault! \u001B[0m')
if self.htmlObj is not None:
self.htmlObj.SetHmleNBFailureMsg(htmleNBFailureMsg)
return CONST.ENB_PROCESS_SEG_FAULT
global_status = CONST.ENB_PROCESS_SEG_FAULT
if foundAssertion:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB ended with an assertion! \u001B[0m')
htmleNBFailureMsg += msgAssertion
if self.htmlObj is not None:
self.htmlObj.SetHmleNBFailureMsg(htmleNBFailureMsg)
return CONST.ENB_PROCESS_ASSERTION
global_status = CONST.ENB_PROCESS_ASSERTION
if foundRealTimeIssue:
logging.debug('\u001B[1;37;41m ' + nodeB_prefix + 'NB faced real time issues! \u001B[0m')
htmleNBFailureMsg += nodeB_prefix + 'NB faced real time issues!\n'
#return CONST.ENB_PROCESS_REALTIME_ISSUE
if rlcDiscardBuffer > 0:
rlcMsg = nodeB_prefix + 'NB RLC discarded ' + str(rlcDiscardBuffer) + ' buffer(s)'
logging.debug('\u001B[1;37;41m ' + rlcMsg + ' \u001B[0m')
htmleNBFailureMsg += rlcMsg + '\n'
if self.htmlObj is not None:
self.htmlObj.SetHmleNBFailureMsg(htmleNBFailureMsg)
return CONST.ENB_PROCESS_REALTIME_ISSUE
if self.htmlObj is not None:
self.htmlObj.SetHmleNBFailureMsg(htmleNBFailureMsg)
return 0
global_status = CONST.ENB_PROCESS_REALTIME_ISSUE
HTML.htmleNBFailureMsg=htmleNBFailureMsg
# Runtime statistics for console output and HTML
if runTime != '':
logging.debug(runTime)
logging.debug(userTime)
logging.debug(systemTime)
logging.debug(maxPhyMemUsage)
logging.debug(nbContextSwitches)
self.runtime_stats='<pre>'+runTime + '\n'+ userTime + '\n' + systemTime + '\n' + maxPhyMemUsage + '\n' + nbContextSwitches+'</pre>'
return global_status

View File

@@ -53,7 +53,7 @@ function details_table {
echo " <th>Message</th>" >> $3
echo " </tr>" >> $3
LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto"`
LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto|disabling jobserver mode"`
COMPLETE_MESSAGE="start"
for MESSAGE in $LIST_MESSAGES
do
@@ -146,7 +146,7 @@ function summary_table_row {
else
echo " <td bgcolor = \"red\" >$NB_ERRORS</th>" >> ./build_results.html
fi
NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | egrep -c "warning:"`
NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto|disabling jobserver mode" | egrep -c "warning:"`
if [ $NB_WARNINGS -eq 0 ]
then
echo " <td bgcolor = \"green\" >$NB_WARNINGS</th>" >> ./build_results.html
@@ -580,16 +580,42 @@ 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: 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
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_usrp_row4.html
summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row5.html
summary_table_row "NASMESH - Release 15" ./archives/enb_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./enb_usrp_row6.html
summary_table_row "RB Tool - Release 15" ./archives/enb_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./enb_usrp_row7.html
summary_table_row "RF Simulator - Release 15" ./archives/enb_usrp/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_usrp_row8.html
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_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
# summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_usrp_row4.html
# summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row5.html
# summary_table_row "NASMESH - Release 15" ./archives/enb_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./enb_usrp_row6.html
# summary_table_row "RB Tool - Release 15" ./archives/enb_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./enb_usrp_row7.html
# summary_table_row "RF Simulator - Release 15" ./archives/enb_usrp/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_usrp_row8.html
# 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: 4G LTE eNB -- USRP 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
summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_eth_row4.html
summary_table_row "RF Simulator - Release 15" ./archives/enb_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_eth_row5.html
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_row "OAI USRP device if - Release 15" ./archives/enb_eth/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_eth_row7.html
summary_table_row "NASMESH - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row8.html
summary_table_row "RB Tool - Release 15" ./archives/enb_eth/rb_tool.Rel15.txt "Built target rb_tool" ./enb_eth_row9.html
summary_table_footer
summary_table_header "OAI Build: 4G LTE UE -- USRP 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
summary_table_row "Parameters Lib Config - Release 15" ./archives/ue_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./ue_eth_row4.html
summary_table_row "RF Simulator - Release 15" ./archives/ue_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./ue_eth_row5.html
summary_table_row "TCP OAI Bridge - Release 15" ./archives/ue_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./ue_eth_row6.html
summary_table_row "Conf 2 UE Data - Release 15" ./archives/ue_eth/conf2uedata.Rel15.txt "Built target conf2uedata" ./ue_eth_row7.html
summary_table_row "NVRAM - Release 15" ./archives/ue_eth/nvram.Rel15.txt "Built target nvram" ./ue_eth_row8.html
summary_table_row "UE IP - Release 15" ./archives/ue_eth/ue_ip.Rel15.txt "Built target ue_ip" ./ue_eth_row9.html
summary_table_row "USIM - Release 15" ./archives/ue_eth/usim.Rel15.txt "Built target usim" ./ue_eth_row9a.html
summary_table_row "OAI USRP device if - Release 15" ./archives/ue_eth/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./ue_eth_row9b.html
summary_table_footer
summary_table_header "OAI Build: 4G LTE basic simulator option" ./archives/basic_sim
@@ -676,28 +702,6 @@ function report_build {
summary_table_footer
fi
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
summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_eth_row4.html
summary_table_row "RF Simulator - Release 15" ./archives/enb_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_eth_row5.html
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: 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
summary_table_row "Parameters Lib Config - Release 15" ./archives/ue_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./ue_eth_row4.html
summary_table_row "RF Simulator - Release 15" ./archives/ue_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./ue_eth_row5.html
summary_table_row "TCP OAI Bridge - Release 15" ./archives/ue_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./ue_eth_row6.html
summary_table_row "Conf 2 UE Data - Release 15" ./archives/ue_eth/conf2uedata.Rel15.txt "Built target conf2uedata" ./ue_eth_row7.html
summary_table_row "NVRAM - Release 15" ./archives/ue_eth/nvram.Rel15.txt "Built target nvram" ./ue_eth_row8.html
summary_table_row "UE IP - Release 15" ./archives/ue_eth/ue_ip.Rel15.txt "Built target ue_ip" ./ue_eth_row9.html
summary_table_row "USIM - Release 15" ./archives/ue_eth/usim.Rel15.txt "Built target usim" ./ue_eth_row9a.html
summary_table_footer
if [ -e ./archives/red_hat ]
then
echo " <h2>Red Hat Enterprise Linux Server release 7.6) -- Summary</h2>" >> ./build_results.html
@@ -714,9 +718,23 @@ function report_build {
echo " <button data-toggle=\"collapse\" data-target=\"#oai-compilation-details\">Details for Compilation Errors and Warnings </button>" >> ./build_results.html
echo " <div id=\"oai-compilation-details\" class=\"collapse\">" >> ./build_results.html
if [ -f ./enb_usrp_row1.html ] || [ -f ./enb_usrp_row2.html ] || [ -f ./enb_usrp_row3.html ] || [ -f ./enb_usrp_row4.html ]
# if [ -f ./enb_usrp_row1.html ] || [ -f ./enb_usrp_row2.html ] || [ -f ./enb_usrp_row3.html ] || [ -f ./enb_usrp_row4.html ]
# then
# for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
# do
# cat $DETAILS_TABLE >> ./build_results.html
# done
# fi
if [ -f ./enb_eth_row1.html ] || [ -f ./enb_eth_row2.html ] || [ -f ./enb_eth_row3.html ] || [ -f ./enb_eth_row4.html ] || [ -f ./enb_eth_row5.html ] || [ -f ./enb_eth_row6.html ] || [ -f ./enb_eth_row7.html ] || [ -f ./enb_eth_row8.html ] || [ -f ./enb_eth_row9.html ]
then
for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
for DETAILS_TABLE in `ls ./enb_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
fi
if [ -f ./ue_eth_row1.html ] || [ -f ./ue_eth_row2.html ] || [ -f ./ue_eth_row3.html ] || [ -f ./ue_eth_row4.html ] || [ -f ./ue_eth_row5.html ] || [ -f ./ue_eth_row6.html ] || [ -f ./ue_eth_row7.html ] || [ -f ./ue_eth_row8.html ] || [ -f ./ue_eth_row9.html ] || [ -f ./ue_eth_row9a.html ] || [ -f ./ue_eth_row9b.html ]
then
for DETAILS_TABLE in `ls ./ue_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
@@ -749,20 +767,6 @@ function report_build {
cat $DETAILS_TABLE >> ./build_results.html
done
fi
if [ -f ./enb_eth_row1.html ] || [ -f ./enb_eth_row2.html ] || [ -f ./enb_eth_row3.html ] || [ -f ./enb_eth_row4.html ] || [ -f ./enb_eth_row5.html ] || [ -f ./enb_eth_row6.html ]
then
for DETAILS_TABLE in `ls ./enb_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
fi
if [ -f ./ue_eth_row1.html ] || [ -f ./ue_eth_row2.html ] || [ -f ./ue_eth_row3.html ] || [ -f ./ue_eth_row4.html ] || [ -f ./ue_eth_row5.html ] || [ -f ./ue_eth_row6.html ]
then
for DETAILS_TABLE in `ls ./ue_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
fi
if [ -f ./enb_usrp_rh_row1.html ] || [ -f ./enb_usrp_rh_row2.html ] || [ -f ./enb_usrp_rh_row3.html ] || [ -f ./enb_usrp_rh_row4.html ]
then
for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`

View File

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

Binary file not shown.

Binary file not shown.

View File

@@ -89,6 +89,9 @@ function start_basic_sim_enb {
fi
done
ENB_SYNC=0
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -151,6 +154,9 @@ function start_basic_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
rm $1
if [ $i -lt 50 ]
then
@@ -270,6 +276,43 @@ function check_ping_result {
fi
}
function check_ra_result {
local LOC_GNB_LOG=$1
local LOC_UE_LOG=$2
#if log files exist
if [ -f $LOC_GNB_LOG ] && [ -f $LOC_UE_LOG ]
then
#gNB RA test
#console check
echo "Checking gNB Log for RA success"
egrep "\[RAPROC\] PUSCH with TC_RNTI (.+) received correctly" $1
#script check
local GNB_COMPLETE=`egrep -c "\[RAPROC\] PUSCH with TC_RNTI (.+) received correctly" $1`
#UE RA test
#console check
echo 'Checking UE Log for RA success'
egrep "\[RAPROC\] RA procedure succeeded" $2
#script check
local UE_COMPLETE=`egrep -c "\[RAPROC\] RA procedure succeeded" $2`
#generate status
if [ $GNB_COMPLETE -eq 0 ] || [ $UE_COMPLETE -eq 0 ]
then
RA_STATUS=-1
echo "RA test FAILED, could not find the markers"
fi
#case where log files do not exist
else
echo "RA test log files not present"
RA_STATUS=-1
fi
}
# In DL: iperf server should be on UE side
# -B oaitun_ue{j}-IP-Addr
# iperf client should be on EPC (S1) or eNB (noS1) side
@@ -336,7 +379,7 @@ function check_iperf {
local LOC_IS_DL=`echo $LOC_BASE_LOG | grep -c _dl`
local LOC_IS_BASIC_SIM=`echo $LOC_BASE_LOG | grep -c basic_sim`
local LOC_IS_RF_SIM=`echo $LOC_BASE_LOG | grep -c rf_sim`
local LOC_IS_NR=`echo $LOC_BASE_LOG | grep -c tdd_106prb`
local LOC_IS_NR=`echo $LOC_BASE_LOG | grep -c _106prb`
if [ -f ${LOC_BASE_LOG}_client.txt ]
then
local FILE_COMPLETE=`egrep -c "Server Report" ${LOC_BASE_LOG}_client.txt`
@@ -523,9 +566,9 @@ function install_epc_on_vm {
echo "############################################################"
echo "[ -f 01proxy ] && sudo cp 01proxy /etc/apt/apt.conf.d/" > $LOC_EPC_VM_CMDS
echo "touch /home/ubuntu/.hushlogin" >> $LOC_EPC_VM_CMDS
echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $LOC_EPC_VM_CMDS
echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev iperf\"" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get update > zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev iperf >> zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
# Installing HSS
echo "echo \"cd /opt\"" >> $LOC_EPC_VM_CMDS
@@ -588,8 +631,6 @@ function start_epc {
echo "echo \"cd /opt/hss_sim0609\"" > $LOC_EPC_VM_CMDS
echo "cd /opt/hss_sim0609" >> $LOC_EPC_VM_CMDS
echo "sudo rm -f hss.log" >> $LOC_EPC_VM_CMDS
#echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $LOC_EPC_VM_CMDS
#echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $LOC_EPC_VM_CMDS
echo "echo \"screen -dm -S simulated_hss ./starthss_real\"" >> $LOC_EPC_VM_CMDS
echo "sudo su -c \"screen -dm -S simulated_hss ./starthss_real\"" >> $LOC_EPC_VM_CMDS
@@ -656,8 +697,6 @@ function terminate_epc {
echo "cd /opt/ltebox/tools" >> $1
echo "echo \"sudo ./stop_ltebox\"" >> $1
echo "sudo ./stop_ltebox" >> $1
echo "echo \"sudo daemon --name=simulated_hss --stop\"" >> $1
echo "sudo daemon --name=simulated_hss --stop" >> $1
echo "echo \"sudo killall --signal SIGKILL hss_sim\"" >> $1
echo "sudo killall --signal SIGKILL hss_sim" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
@@ -764,6 +803,9 @@ function start_l2_sim_enb {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
rm $1
ENB_SYNC=1
if [ $i -lt 50 ]
@@ -872,6 +914,9 @@ function start_l2_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
rm $1
UE_SYNC=1
if [ $i -lt 50 ]
@@ -985,6 +1030,9 @@ function start_rf_sim_enb {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -1114,6 +1162,9 @@ function start_rf_sim_ue {
i=$[$i+1]
fi
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
@@ -1158,11 +1209,19 @@ function start_rf_sim_gnb {
local LOC_CONF_FILE=$5
# 1 is with S1 and 0 without S1 aka noS1
local LOC_S1_CONFIGURATION=$6
#LOC_RA_TEST=1 will run the RA test check
local LOC_RA_TEST=$7
if [ -e rbconfig.raw ]; then rm -f rbconfig.raw; fi
if [ -e reconfig.raw ]; then rm -f reconfig.raw; fi
echo "cd /home/ubuntu/tmp" > $1
echo "echo \"sudo apt-get --yes --quiet install daemon \"" >> $1
echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
echo "echo \"source oaienv\"" >> $1
echo "source oaienv" >> $1
echo "echo \"export RFSIMULATOR=server\"" >> $1
echo "export RFSIMULATOR=server" >> $1
echo "cd ci-scripts/conf_files/" >> $1
echo "cp $LOC_CONF_FILE ci-$LOC_CONF_FILE" >> $1
#echo "sed -i -e 's#N_RB_DL.*=.*;#N_RB_DL = $LOC_NB_RBS;#' -e 's#CI_MME_IP_ADDR#$LOC_EPC_IP_ADDR#' -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
@@ -1171,9 +1230,15 @@ function start_rf_sim_gnb {
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo rm -f r*config.raw" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"RFSIMULATOR=server ./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test\" > ./my-nr-softmodem-run.sh " >> $1
if [ $LOC_RA_TEST -eq 0 ] #no RA test => use --phy-test option
then
echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test\" > ./my-nr-softmodem-run.sh " >> $1
else #RA test => use --do-ra option
echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --parallel-config PARALLEL_SINGLE_THREAD --rfsim --do-ra\" > ./my-nr-softmodem-run.sh " >> $1
fi
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1183,6 +1248,7 @@ function start_rf_sim_gnb {
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR < $1
rm $1
local i="0"
echo "egrep -c \"got sync\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
while [ $i -lt 10 ]
@@ -1205,7 +1271,9 @@ function start_rf_sim_gnb {
GNB_SYNC=1
echo "RF-SIM gNB is sync'ed: waiting for UE(s) to connect"
fi
if [ $LOC_S1_CONFIGURATION -eq 0 ]
# check noS1 config only outside RA test (as it does not support noS1)
if [ $LOC_S1_CONFIGURATION -eq 0 ] && [ $LOC_RA_TEST -eq 0 ]
then
echo "ifconfig oaitun_enb1 | egrep -c \"inet addr\"" > $1
# Checking oaitun_enb1 interface has now an IP address
@@ -1230,7 +1298,16 @@ function start_rf_sim_gnb {
echo "RF-SIM gNB oaitun_enb1 is UP and CONFIGURED"
fi
fi
sleep 10
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR < $1
rm $1
# Copy the RAW files from the gNB run for the NR-UE
scp -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/ran_build/build/rbconfig.raw .
scp -o StrictHostKeyChecking=no ubuntu@$LOC_GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/ran_build/build/reconfig.raw .
}
function start_rf_sim_nr_ue {
@@ -1241,14 +1318,30 @@ function start_rf_sim_nr_ue {
local LOC_FREQUENCY=$6
# 1 is with S1 and 0 without S1 aka noS1
local LOC_S1_CONFIGURATION=$7
#LOC_RA_TEST=1 will run the RA test check
local LOC_RA_TEST=$8
# Copy the RAW files from the gNB run
scp -o StrictHostKeyChecking=no rbconfig.raw ubuntu@$LOC_NR_UE_VM_IP_ADDR:/home/ubuntu/tmp
scp -o StrictHostKeyChecking=no reconfig.raw ubuntu@$LOC_NR_UE_VM_IP_ADDR:/home/ubuntu/tmp
echo "echo \"sudo apt-get --yes --quiet install daemon \"" > $1
echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
echo "echo \"export RFSIMULATOR=${LOC_GNB_VM_IP_ADDR}\"" >> $1
echo "export RFSIMULATOR=${LOC_GNB_VM_IP_ADDR}" >> $1
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo cp /home/ubuntu/tmp/r*config.raw /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
echo "sudo chmod 666 /home/ubuntu/tmp/cmake_targets/ran_build/build/r*config.raw" >> $1
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"RFSIMULATOR=${LOC_GNB_VM_IP_ADDR} ./nr-uesoftmodem --nokrnmod 1 --rfsim --phy-test --rrc_config_path /home/ubuntu/tmp/ci-scripts/rrc-files --log_config.global_log_options level,nocolor --noS1\" > ./my-nr-softmodem-run.sh " >> $1
if [ $LOC_RA_TEST -eq 0 ] #no RA test => use --phy-test option
then
echo "echo \"./nr-uesoftmodem --nokrnmod 1 --rfsim --phy-test --rrc_config_path /home/ubuntu/tmp/cmake_targets/ran_build/build/ --log_config.global_log_options level,nocolor --noS1\" > ./my-nr-softmodem-run.sh " >> $1
else #RA test => use --do-ra option
echo "echo \"./nr-uesoftmodem --rfsim --do-ra --log_config.global_log_options level,nocolor --rrc_config_path /home/ubuntu/tmp/cmake_targets/ran_build/build/\" > ./my-nr-softmodem-run.sh " >> $1
fi
fi
echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1
echo "cat ./my-nr-softmodem-run.sh" >> $1
@@ -1281,11 +1374,13 @@ function start_rf_sim_nr_ue {
else
echo "RF-SIM NR-UE is sync'ed w/ gNB"
fi
# Checking oaitun_ue1 interface has now an IP address
i="0"
echo "ifconfig oaitun_ue1 | egrep -c \"inet addr\"" > $1
while [ $i -lt 10 ]
do
# Checking oaitun_ue1 interface has now an IP address (only outside RA test)
if [ $LOC_RA_TEST -eq 0 ]
then
i="0"
echo "ifconfig oaitun_ue1 | egrep -c \"inet addr\"" > $1
while [ $i -lt 10 ]
do
sleep 5
CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_NR_UE_VM_IP_ADDR < $1`
if [ $CONNECTED -eq 1 ]
@@ -1294,16 +1389,20 @@ function start_rf_sim_nr_ue {
else
i=$[$i+1]
fi
done
rm $1
if [ $i -lt 50 ]
then
done
echo "echo \"free -m\"" > $1
echo "free -m" >> $1
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_NR_UE_VM_IP_ADDR < $1
rm $1
if [ $i -lt 50 ]
then
NR_UE_SYNC=0
echo "RF-SIM NR-UE oaitun_ue1 is DOWN or NOT CONFIGURED"
else
else
echo "RF-SIM NR-UE oaitun_ue1 is UP and CONFIGURED"
fi
sleep 10
fi
sleep 10
fi
}
@@ -1991,6 +2090,70 @@ function run_test_on_vm {
done
####################
## FeMBMS CASE noS1 ##
####################
CONF_FILE=lte-fdd-fembms-basic-sim.conf
CN_CONFIG="noS1"
S1_NOS1_CFG=0
LTEBOX=0
TMODE="fdd"
FREQUENCY=2680
BW_CASES=(05)
FeMBMS_STATUS=0
for BW in ${BW_CASES[@]}
do
if [[ $BW =~ .*05.* ]]; then PRB=25; fi
if [[ $BW =~ .*10.* ]]; then PRB=50; fi
if [[ $BW =~ .*20.* ]]; then PRB=100; fi
echo "############################################################"
echo "${CN_CONFIG} : Starting the eNB with MSMS in ${TMODE}-${BW}MHz mode"
echo "############################################################"
CURRENT_ENB_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_enb_fembms.log
start_rf_sim_enb $ENB_VM_CMDS "$ENB_VM_IP_ADDR" "$EPC_VM_IP_ADDR" $CURRENT_ENB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
echo "############################################################"
echo "${CN_CONFIG} : Starting the UE"
echo "############################################################"
CURRENT_UE_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_ue_fembms.log
start_rf_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 1
if [ $UE_SYNC -eq 0 ]
then
echo "Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
STATUS=-1
break
fi
echo "############################################################"
echo "${CN_CONFIG} : iperf DL -- UE is server and eNB is client"
echo "############################################################"
get_enb_mbms_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
IPERF_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_iperf_dl_fembms
get_ue_mbms_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
THROUGHPUT=2
generic_iperf $UE_VM_CMDS $UE_VM_IP_ADDR $UE_IP_ADDR $ENB_VM_CMDS $ENB_VM_IP_ADDR $ENB_IP_ADDR $THROUGHPUT $IPERF_LOG_FILE 1 0
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_server.txt $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/${IPERF_LOG_FILE}_client.txt $ARCHIVES_LOC
#check_iperf $ARCHIVES_LOC/$IPERF_LOG_FILE $THROUGHPUT
echo "############################################################"
echo "${CN_CONFIG} : Terminate enb/ue simulators"
echo "############################################################"
terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
NB_UE_FeMBMS_MESSAGES=`egrep -c "TRIED TO PUSH MBMS DATA TO" $ARCHIVES_LOC/$CURRENT_UE_LOG_FILE`
if [ $NB_UE_FeMBMS_MESSAGES -eq 0 ]; then FeMBMS_STATUS=-1; fi
done
full_l2_sim_destroy
echo "############################################################"
@@ -2006,6 +2169,13 @@ function run_test_on_vm {
echo "LTE MBMS RFSIM seems to FAIL"
STATUS=-1
fi
if [ $FeMBMS_STATUS -eq 0 ]
then
echo "LTE FeMBMS RFSIM seems OK"
else
echo "LTE FeMBMS RFSIM seems to FAIL"
STATUS=-1
fi
if [ $STATUS -eq 0 ]
then
echo "LTE RFSIM seems OK"
@@ -2014,44 +2184,144 @@ function run_test_on_vm {
echo "LTE RFSIM seems to FAIL"
echo "LTE: TEST_KO" > $ARCHIVES_LOC/test_final_status.log
fi
fi
if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-rf-sim.* ]]
then
if [ ! -d $ARCHIVES_LOC ]
then
mkdir --parents $ARCHIVES_LOC
fi
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 ]
######### start of RA TEST loop
# for the moment only TDD
TRANS_MODES=("tdd")
for TMODE in ${TRANS_MODES[@]}
do
if [[ $TMODE =~ .*fdd.* ]]
then
CONF_FILE=gnb.band66.tm1.106PRB.usrpn300.conf
PRB=106
FREQUENCY=37000
else
CONF_FILE=gnb.band78.tm1.106PRB.usrpn300.conf
PRB=106
FREQUENCY=3510
fi
local try_cnt=0
NR_STATUS=0
while [ $try_cnt -lt 5 ] #5 because it hardly succeed within CI
do
SYNC_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
RA_STATUS=0
rm -f $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}*ra_test.log
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "${CN_CONFIG} : Starting the gNB in ${TMODE} mode (RA TEST)"
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
CURRENT_GNB_LOG_FILE=${TMODE}_${PRB}prb_${CN_CONFIG}_gnb_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 1
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "${CN_CONFIG} : Starting the NR-UE in ${TMODE} mode (RA TEST)"
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
CURRENT_NR_UE_LOG_FILE=${TMODE}_${PRB}prb_${CN_CONFIG}_ue_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 1
if [ $NR_UE_SYNC -eq 0 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
SYNC_STATUS=-1
try_cnt=$[$try_cnt+1]
try_cnt=$((try_cnt+1))
continue
fi
echo "############################################################"
echo "${CN_CONFIG} : Terminate gNB/NR-UE simulators"
echo "############################################################"
sleep 20
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
#check RA markers in gNB and NR UE log files
echo "############################################################"
echo "${CN_CONFIG} : Checking RA on gNB / NR-UE"
echo "############################################################"
# Proper check to be done when RA test is working!
check_ra_result $ARCHIVES_LOC/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC/$CURRENT_NR_UE_LOG_FILE
if [ $RA_STATUS -ne 0 ]
then
echo "RA test NOT OK"
echo "try_cnt = " $try_cnt
try_cnt=$((try_cnt+1))
else
try_cnt=$((try_cnt+10))
fi
done
done
########### end RA test
sleep 30
######### start of PHY TEST loop
SYNC_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
TRANS_MODES=("fdd tdd")
for TMODE in ${TRANS_MODES[@]}
do
if [[ $TMODE =~ .*fdd.* ]]
then
CONF_FILE=gnb.band66.tm1.106PRB.usrpn300.conf
PRB=106
FREQUENCY=37000
else
CONF_FILE=gnb.band78.tm1.106PRB.usrpn300.conf
PRB=106
FREQUENCY=3510
fi
try_cnt=0
while [ $try_cnt -lt 4 ]
do
rm -f $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_gnb.log $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_ue.log
rm -f $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_ping_gnb_from_nrue.log $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_ping_from_gnb_nrue.log
rm -f $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_iperf_dl*txt $ARCHIVES_LOC/${TMODE}_${PRB}prb_${CN_CONFIG}_iperf_ul*txt
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB in ${TMODE} mode (PHY TEST)"
echo "############################################################"
CURRENT_GNB_LOG_FILE=${TMODE}_${PRB}prb_${CN_CONFIG}_gnb.log
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 0
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE in ${TMODE} mode (PHY TEST)"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=${TMODE}_${PRB}prb_${CN_CONFIG}_ue.log
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 0
if [ $NR_UE_SYNC -eq 0 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
SYNC_STATUS=-1
try_cnt=$((try_cnt+1))
continue
fi
@@ -2059,7 +2329,7 @@ function run_test_on_vm {
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_LOG_FILE=${TMODE}_${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
@@ -2068,7 +2338,7 @@ function run_test_on_vm {
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_LOG_FILE=${TMODE}_${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
@@ -2077,7 +2347,7 @@ function run_test_on_vm {
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
CURR_IPERF_LOG_BASE=${TMODE}_${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
@@ -2089,7 +2359,9 @@ function run_test_on_vm {
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]
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
try_cnt=$((try_cnt+1))
continue
fi
@@ -2097,7 +2369,7 @@ function run_test_on_vm {
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
CURR_IPERF_LOG_BASE=${TMODE}_${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
@@ -2115,10 +2387,11 @@ function run_test_on_vm {
if [ $IPERF_STATUS -ne 0 ]
then
echo "UL test not OK"
try_cnt=$[$try_cnt+1]
try_cnt=$((try_cnt+1))
else
try_cnt=$[$try_cnt+10]
try_cnt=$((try_cnt+10))
fi
done
done
######### end of loop
full_l2_sim_destroy
@@ -2128,6 +2401,7 @@ function run_test_on_vm {
echo "Checking run status"
echo "############################################################"
if [ $RA_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $SYNC_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $PING_STATUS -ne 0 ]; then NR_STATUS=-1; fi
if [ $IPERF_STATUS -ne 0 ]; then NR_STATUS=-1; fi

View File

@@ -55,12 +55,14 @@ class SSHConnection():
count = 0
connect_status = False
while count < 4:
self.ssh = pexpect.spawn('ssh', [username + '@' + ipaddress], timeout = 5)
self.ssh = pexpect.spawn('ssh -o PubkeyAuthentication=no {}@{}'.format(username,ipaddress))
self.ssh.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(['password:', username + '@'])
if self.sshresponse == 0:
self.ssh.sendline(password)
self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
if self.sshresponse == 0:
count = 10
@@ -97,6 +99,18 @@ class SSHConnection():
else:
sys.exit('SSH Connection Failed')
def cde_check_value(self, commandline, expected, timeout):
logging.debug(commandline)
self.ssh.timeout = timeout
self.ssh.sendline(commandline)
expected.append(pexpect.EOF)
expected.append(pexpect.TIMEOUT)
self.sshresponse = self.ssh.expect(expected)
return self.sshresponse
def command(self, commandline, expectedline, timeout):
logging.debug(commandline)
self.ssh.timeout = timeout

View File

@@ -21,7 +21,11 @@
BEGIN{max=0;min=10000}
{
if ($0 ~/Mbits/) {
split($0,a,"MBytes")
if ($0 ~/KBytes/) {
split($0,a,"KBytes")
} else {
split($0,a,"MBytes")
}
split(a[2],b)
if (b[1]>max) {
max=b[1]

View File

@@ -47,6 +47,12 @@ function wait_on_vm_build {
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "BUILD_OPTIONS = $BUILD_OPTIONS"
if [[ "$VM_NAME" == *"-enb-usrp"* ]]
then
echo "This VM type is no longer supported in the pipeline framework"
return
fi
IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
if [ $IS_VM_ALIVE -eq 0 ]
@@ -84,6 +90,12 @@ function wait_on_vm_build {
}
function check_on_vm_build {
if [[ "$VM_NAME" == *"-enb-usrp"* ]]
then
echo "This VM type is no longer supported in the pipeline framework"
return
fi
echo "############################################################"
echo "Creating a tmp folder to store results and artifacts"
echo "############################################################"

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

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

View File

@@ -0,0 +1,54 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>build-tab</htmlTabRef>
<htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
000001 000002
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>Build_eNB</class>
<desc>Build eNB</desc>
<Build_eNB_args>--eNB -t benetel4g -w None</Build_eNB_args>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="000002">
<class>Build_eNB</class>
<desc>Build gNB</desc>
<Build_eNB_args>--gNB -t benetel5g -w None</Build_eNB_args>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,162 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-FR1-TM1</htmlTabRef>
<htmlTabName>FR1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
010000
030000
040000
010001
000001
050000
050001
000001
060000
060001
000001
070000
070001
010002
000001
080001
080000
010003
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="010003">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="010002">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="030000">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/benetel-4g.conf</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="040000">
<class>Initialize_eNB</class>
<desc>Initialize gNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/benetel-5g.conf</Initialize_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20pings in 20sec</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>50</ping_packetloss_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 100pings in 20sec</desc>
<ping_args>-c 100 -i 0.2</ping_args>
<ping_packetloss_threshold>50</ping_packetloss_threshold>
</testCase>
<testCase id="060000">
<class>Iperf</class>
<desc>iperf (DL/2.5Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 2.5M -t 60 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="060001">
<class>Iperf</class>
<desc>iperf (UL/1.5Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 1.5M -t 60 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070000">
<class>Iperf</class>
<desc>iperf (DL/20Mbps/UDP)(20 sec)(single-ue profile)</desc>
<iperf_args>-u -b 20M -t 20 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070001">
<class>Iperf</class>
<desc>iperf (UL/3Mbps/UDP)(20 sec)(single-ue profile)</desc>
<iperf_args>-u -b 3M -t 20 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="080000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="080001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,40 @@
<!--
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 Container Images</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
000001
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>Build_Image</class>
<desc>Build all Images</desc>
<kind>all</kind>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,147 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>test-05-tm1</htmlTabRef>
<htmlTabName>Test-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>4</repeatCount>
<TestCaseRequestedList>
030201
040101
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize OCP-eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate OCP-eNB</desc>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="040101">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="040201">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="040301">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="040401">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="040501">
<class>Ping</class>
<desc>ping (5MHz - 20 sec)</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
<testCase id="040603">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040604">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>unbalanced</iperf_profile>
</testCase>
<testCase id="040606">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040607">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040641">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040642">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040643">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040644">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,38 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>build-tab</htmlTabRef>
<htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010101">
<class>Build_eNB</class>
<desc>Build eNB OCP (USRP)</desc>
<Build_eNB_args>-w USRP -c --eNBocp --ninja</Build_eNB_args>
</testCase>
</testCaseList>

View File

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

View File

@@ -0,0 +1,82 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>test-05-tm1-fembms-nos1-tunnel</htmlTabRef>
<htmlTabName>Test-05MHz-FEMBMS-TM1-noS1-tunnel</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestCaseRequestedList>
030201 090109
030104 000001 090104 000002 040605 000001 090109 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>15</idle_sleep_time_in_sec>
</testCase>
<testCase id="000003">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
</testCase>
<testCase id="030104">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz/MBMS)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band17.tm1.mbms.25PRB.usrpb210.conf --noS1 --eNBs.[0].rrc_inactivity_threshold 0 --nokrnmod 1 --eNBs.[0].component_carriers.[0].eutra_band 7 --eNBs.[0].component_carriers.[0].downlink_frequency 2680000000 --eNBs.[0].component_carriers.[0].uplink_frequency_offset -120000000 --eNBs.[0].component_carriers.[0].mbms_dedicated_serving_cell ENABLE --MCEs.[0].mbms_sched_info.mbms_area_config_list.[0].pmch_config_list.[0].allocated_sf_end 512</Initialize_eNB_args>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
</testCase>
<testCase id="090104">
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE (FDD/Band7/5MHz/MBMS)</desc>
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1 --noS1</Initialize_OAI_UE_args>
</testCase>
<testCase id="090109">
<class>Terminate_OAI_UE</class>
<desc>Terminate OAI UE</desc>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/1.5Mbps/UDP/MBMS-sink)(20 sec)</desc>
<iperf_args>-c 10.0.2.2 -u -b 1.5M -t 20 -i 1 -fm -B 10.0.2.1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_options>sink</iperf_options>
</testCase>
</testCaseList>

View File

@@ -32,7 +32,7 @@
<testCase id="090101">
<class>Build_OAI_UE</class>
<desc>Build OAI UE</desc>
<Build_OAI_UE_args>-w USRP --UE</Build_OAI_UE_args>
<Build_OAI_UE_args>-w USRP --UE --ninja</Build_OAI_UE_args>
</testCase>
</testCaseList>

View File

@@ -25,6 +25,7 @@
<htmlTabName>Test-LTE-M-10MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestUnstable>True</TestUnstable>
<TestCaseRequestedList>
030201
040102

View File

@@ -26,6 +26,8 @@
<htmlTabName>Test-05MHz-TM2</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestUnstable>True</TestUnstable>
<TestMinId>040608</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

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

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