Compare commits

...

1254 Commits

Author SHA1 Message Date
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
Remi Hardy
43da900710 extending nsa fr1 test 2020-11-26 11:50:36 +01: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
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
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
Navid Nikaein
a1d901277e Check if the file is openned first 2020-11-24 14:28:17 +01: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
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
Florian Kaltenberger
bf62f2bcce fixing FR2 arfcn 2020-11-22 21:40:36 +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
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
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
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
Florian Kaltenberger
ad2e0ebe2d Update test_case_list.xml 2020-11-19 16:10:16 +01: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
Francesco Mani
0e298d8777 variable name change in nr_dlsch 2020-11-18 18:08:41 +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
Laurent
a592d0eb6f fix warnings 2020-11-18 08:53:02 +01: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
masayuki.harada
be31d514b4 Fix warning and compile error. 2020-11-17 22:09:41 +09: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
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
Thomas Schlichter
c4448a2f24 fix warnings and indentation 2020-11-16 13:40:45 +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
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
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
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
hardy
e7b2c47348 Merge remote-tracking branch 'origin/nr_fdd_if_fix' into integration_2020_wk46 2020-11-12 09:27:00 +01: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
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
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
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
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
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
Remi Hardy
3d60e95387 Merge branch 'integration_2020_wk45_2' into 'develop'
Integration 2020 wk45 (2) comprising:

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

MR910:5G SA NAS messages 
- 5G SA nass messages and a simple unitary test code
 
MR927:Nr rrc configuration fr2
- introduces some bug fixes for FR2 that might also have an impact on FR1.
2020-11-06 11:29:03 +01:00
Raphael Defosseux
7f70174cf8 CI: added missing build artifacts in one of the pipeline; fix RA test
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-11-06 11:15:23 +01:00
hardy
3917b1ae0f Merge remote-tracking branch 'origin/NR_RRCConfiguration_FR2' into integration_2020_wk45_2 2020-11-05 16:53:13 +01:00
hardy
802e8218ad Merge remote-tracking branch 'origin/noCore' into integration_2020_wk45_2
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
2020-11-05 16:49:21 +01:00
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
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
Khodr Saaifan
1de69e8e27 PHY: link dmrs_config to higher layers 2020-11-05 03:22:30 +01: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
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
Laurent
39bb839d7c Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into noCore 2020-11-03 23:21:47 +01:00
Robert Schmidt
2e03cbe7bf Track RBs in vrb_map as binary 2020-11-03 20:02:48 +01:00
Florian Kaltenberger
0d30561ecd Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration_FR2 2020-11-03 16:55:20 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Raphael Defosseux
591184c4ba CI: proper disabling of 5g RF sim RA-TEST
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-17 22:07:03 +02:00
Raphael Defosseux
3f2da854ef CI: increase time-out for RF Sim tests
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-17 21:18:00 +02:00
Florian Kaltenberger
63ddc9ac10 fixing a cppcheck warning 2020-10-16 14:21:44 +02:00
hardy
930c147b18 removing useless debug comments 2020-10-16 14:13:31 +02:00
hardy
118575d7d2 aligning ci-scripts/runTestOnVM.sh with integration_2020_wk41 2020-10-16 14:11:06 +02:00
Laurent
6b7eb07224 remove gtp work 2020-10-16 12:01:20 +02:00
Laurent
dd43752bbe add thread pool init 2020-10-16 11:41:14 +02:00
matzakos
dc63cab2b0 Merge remote-tracking branch 'origin/develop' into fix_rrc_x2_ticking 2020-10-16 11:35:54 +02:00
yaojie
6030a75a65 fix securityModeCommand/securityModeComplete 2020-10-16 09:15:53 +00:00
Xue Song
dfa50d975b Modify RRCSetupComplete 2020-10-16 08:42:28 +00:00
Xue Song
5697057f0b Unblock ITTI SIM process 2020-10-16 05:06:19 +00:00
Xue Song
a76ef07a69 Merge branch 'develop_SA_RRC' into develop_SA_SIM 2020-10-16 01:48:23 +00:00
Xue Song
43ef53cbcf Add pucchresset->maxPayloadMinus1 to be compatible with Rel15 2020-10-16 01:46:15 +00:00
Francesco Mani
10c196b64a Merge branch 'NR_CSI_reporting' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_CSI_reporting 2020-10-15 14:52:39 +02:00
Hongzhi Wang
8ff485fca4 sending csi reporting in scheduled slot from rrc config 2020-10-15 14:47:56 +02:00
Qiu DeZhi
46bbb6a943 Modify RRCSetupComplete 2020-10-15 10:34:19 +00:00
Cedric Roux
f3a27d6ae3 bugfix: fix frequencies in nr_bandtable
A test with band 79 was not working. It turns out that the computation
of the frequency from the NR-ARFCN was giving a wrong value.

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

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

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:46 +02:00
Raphael Defosseux
4aae87ca5e BUILD: remove ue_ip is container-based build
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:46 +02:00
Raphael Defosseux
45dfec4671 [OC][RHEL8]: copy/pasta error on build options
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:25:23 +02:00
Raphael Defosseux
8c41a241ee [OC][RHEL8]: finalizing lte/nr UE image builds on RHEL8
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:24:37 +02:00
Raphael Defosseux
40ff24661e [DOCKER]: fix files to copy
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:24:18 +02:00
Raphael Defosseux
0100b26686 [OC]: added support for RHEL8.2
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-10-12 17:23:30 +02:00
hardy
e598df840e [OC][Docker][RHEL8] Initial Support 2020-10-12 17:17:16 +02:00
Francesco Mani
b7d71d58ad Merge remote-tracking branch 'origin/fix_rrc_x2_ticking' into NR_CSI_reporting 2020-10-12 17:14:55 +02:00
Francesco Mani
d0bcde029a Merge remote-tracking branch 'origin/develop' into NR_CSI_reporting 2020-10-12 17:08:04 +02:00
yaojie
5db27b9305 Add RRCSetup 2020-10-12 09:29:56 +00:00
Laurent
489fc7c0fe trial 2020-10-12 10:52:46 +02:00
Xue Song
f4f8db4373 Merge branch 'develop_SA_RRC' into develop_SA_SIM
Modify RRCReconfiguration
2020-10-12 04:59:49 +00:00
Xue Song
994229963b Modify RRCReconfiguration 2020-10-12 02:59:22 +00:00
Wu.Jing
ac6262e82b fix gNB build error 2020-10-10 06:57:57 +00:00
yaojie
3b6f720125 RM3977 2020-10-10 06:25:29 +00:00
Xue Song
fefb6148e6 Modify some warnings
Add nr_rrc_pdcp_config_security
Delete ENABLE_SECURITY
2020-10-10 06:18:40 +00:00
zhenghuangkun
84579c5dc0 Modify MME_MODE_ENABLED to AMF_MODE_ENABLED
Modify kenb to kgnb
Modify some warnings
2020-10-10 06:16:49 +00:00
He Shanyun
90dc22aea6 add rrc_nrue_task 2020-10-10 05:15:46 +00:00
Xue Song
aa8e695d59 Fix compiling error 2020-10-10 03:24:06 +00:00
Wu.Jing
079157eb55 cherry-pick 3efc7538ac 2020-10-10 11:26:40 +09:00
zhenghuangkun
6ca5753555 Add author and email 2020-10-10 10:56:14 +09:00
He Shanyun
c180323de4 fix compile issue about build ngap asn file 2020-10-10 10:55:49 +09:00
He Shanyun
9e428fe6c2 dummy define for some fields 2020-10-10 10:55:31 +09:00
zhenghuangkun
45e5be9c44 Add ErrorIndication
Add Paging
Add PDUSessionResourceModifyRequest
2020-10-10 10:55:01 +09:00
zhenghuangkun
57b28d0732 Add PDUSessionResourceReleaseCommand 2020-10-10 10:53:08 +09:00
zhenghuangkun
22ac1b9486 Add PDUSessionResourceModifyResponse
Add PDUSessionResourceReleaseResponse
Add NASNonDeliveryIndication
2020-10-10 10:52:08 +09:00
yincong
55495f68bc modify PDUSessionResourceSetupRequest 2020-10-10 10:51:51 +09:00
yincong
b84880a1fe PDUSessionResourceSetupRequest
PDUSessionResourceSetupResponse
2020-10-10 10:51:20 +09:00
zhenghuangkun
655b7d64f9 Add UERadioCapabilityInfoIndication 2020-10-10 10:51:10 +09:00
He Shanyun
fbea1eff2b modify type of tac 2020-10-10 10:50:57 +09:00
zhenghuangkun
c6d6a42484 Add UEContextReleaseComplete
Add UEContextReleaseRequest
2020-10-10 10:50:43 +09:00
zhenghuangkun
5217b76448 Add DownlinkNASTransport Message
Add UEContextReleaseCommand Message
Modify NGSetup Message Encode failed
2020-10-10 10:50:19 +09:00
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
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
Remi Hardy
cb650a1a6e v0.2 integrating the new cots control procedure into the existing framework 2020-09-03 11:54:18 +02:00
Sakthivel Velumani
9026652468 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-09-03 11:03:03 +02:00
Sakthivel Velumani
0c1c2edd65 small fix 2020-09-03 11:02:41 +02:00
masyuki.harada
0a375bc044 Create asn1 file 2020-09-03 17:17:47 +09:00
Thomas Schlichter
15a376fab2 Harden nr_get_Qm() and nr_get_code_rate_dl() functions
Check the provided MCS index according to the specified table.
Some tables go up to MCS index 27, others up to MCS index 28.
If the MCS index exceeds the allowed limit, assume max. MCS.
2020-09-03 09:10:51 +02:00
yaojie
760acd0856 Create directory structure 2020-09-03 15:27:32 +09:00
Raymond Knopp
37dcdeb338 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-09-02 22:11:44 +02:00
Raymond Knopp
142249d84b added ulsch statistics 2020-09-02 22:11:04 +02:00
Remi Hardy
430496d59f v0.1 (temporary) running fr1 2020-09-02 17:52:18 +02:00
Francesco Mani
1025fd850c trying to fix some cppcheck errors 2020-09-02 16:44:40 +02:00
Raphael Defosseux
5a9ed93032 CPPCHECK: does not understand the different lengths of arrays
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-02 16:38:06 +02:00
Raphael Defosseux
1c457bf1fa BUILD: missing dependency on T_TRACER for L2_LTE_NR sub-lib
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-09-02 16:13:22 +02:00
Raymond Knopp
73c7bee040 added basic analytics for PDSCH measurements 2020-09-02 16:12:16 +02:00
Francesco Mani
4d2a8cc8d0 completed scheduling of csi meas report reception (to be tested) 2020-09-02 14:55:37 +02:00
Parminder Singh
b6792b3487 Fixed Warning issue due to wrong data type in ULSIM 2020-09-02 10:59:28 +02:00
Parminder Singh
88a14fc4cc Set the previous PTRS estimates to 0 for each slot
- The memory shall be reset for each slot to avoid interpolation error.
2020-09-02 10:10:10 +02:00
Parminder Singh
6ce38ac960 Fix Phase noise addition in ULSIM
- moved the noise function gNB variable
2020-09-02 09:53:45 +02:00
Parminder Singh
f7ed592ef5 Fixed available_bits calculation for PTRS in -n option in ulsim 2020-09-02 09:51:04 +02:00
Remi Hardy
237fdf5bd0 xml files update 2020-09-01 18:50:54 +02:00
Thomas Schlichter
0cff460e0e Fix alignment of mod_ptrs array in nr_ulsch_ue.c 2020-09-01 17:45:04 +02:00
Thomas Schlichter
600dd0e913 Add nr_ulsim testcases for UL DMRS and PTRS configurations 2020-09-01 17:39:21 +02:00
Remi Hardy
574c5944de file cleaning 2020-09-01 16:53:40 +02:00
Remi Hardy
78c7fb9f9b bug fixing + completing fr1 automation 2020-09-01 16:52:41 +02:00
Remi Hardy
d50e523d0e reworking check of xml_class_list location 2020-09-01 13:29:36 +02:00
Parminder Singh
92fc259592 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-09-01 12:55:50 +02:00
Parminder Singh
8cf32ed2ad Modify DMRS configuration with command line in ULSIM
- To modify DMRS use -U flag followed by 3 integers
- Example: ./nr_ulsim -U 2 1 0
- 1st Value is the list of arguments     -> e.g. 2
- 2nd Value is for TYPE{0=A,1=B}         -> e.g. 1
- 3rd Value is for ADD_POS{0,1,2,3}      -> e.g. 0
2020-09-01 12:22:12 +02:00
Sakthivel Velumani
0a3941fd17 dl harq handle update 2020-09-01 12:07:06 +02:00
Sakthivel Velumani
9e7ae9ce5f ul harq numbering fix 2020-09-01 11:35:08 +02:00
Remi Hardy
c3e2df6639 adding new xml files for fr1 setup 2020-09-01 10:24:40 +02:00
Francesco Mani
47a3ee095b first version of function to prepare scheduling of csi meas reporting 2020-09-01 10:12:41 +02:00
Sakthivel Velumani
892dffec3b dlsim perf print fix 2020-09-01 10:07:18 +02:00
kn.raju
86dee25800 Reverted multi RACH process 2020-08-31 22:31:14 +05:30
Parminder Singh
14096886e8 Enable PTRS with command line in ULSIM
- To enable PTRS use -T flag followed by 3 integers
- Example: ./nr_ulsim -T 2 0 2
- 1st Value is the list of arguments -> e.g. 2
- 2nd Value is for L_PTRS{0,1,2}     -> e.g. 0
- 3rd Value is for K_PTRS{2,4}       -> e.g. 2
2020-08-31 17:51:56 +02:00
hardy
c86fac47b9 fixing typo to make it work 2020-08-31 15:36:24 +02:00
hardy
88f9d88a44 Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-08-31 15:26:46 +02:00
hardy
b67d4bd183 fixing typo in searching path ci-scripts 2020-08-31 15:24:45 +02:00
Raymond Knopp
d443d9e915 added multi-antenna support for gNB RX (tested in ulsim) 2020-08-31 13:43:16 +02:00
Remi Hardy
9f772f36fd checking issues 2020-08-31 11:44:09 +02:00
Francesco Mani
d34bef816f first commit to schedule reception of csi measrep 2020-08-31 11:20:53 +02:00
Raymond Knopp
dbdae54c6d removed AssertFatal in nr_ue_mac_procedures.c for nr_dlsim HARQ tests. For some unknown reason there are occasion 0 SDUs sent up to MAC which causes failure. 2020-08-29 21:51:10 +02:00
Laurent
693364ddc5 merge develop 2020-08-29 09:37:15 +02:00
Laurent
a3367e58ea Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-08-29 09:35:47 +02:00
Shweta Shrivastava
f8b130a8ee Fix for build warnings 2020-08-28 16:15:13 -05:00
Raymond Knopp
cbeccf9868 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-28 17:35:18 +02:00
Raymond Knopp
99774b2afb bugfix in nr_dlsch_decoding.c 2020-08-28 17:34:47 +02:00
Francesco Mani
6a801ab562 Merge branch 'NR_UL_scheduling' into NR_CSI_reporting 2020-08-28 16:19:19 +02:00
Francesco Mani
4e8fa97d7d getting rid of frame_rx and slot_rx in gnb scheduler 2020-08-28 15:42:14 +02:00
Thomas Schlichter
8f09cc6c75 fix UE UL DMRS generation if start_rb != 0 in nr_ue_ulsch_procedures()
also do some code cleanup while at it...
2020-08-28 14:27:20 +02:00
Parminder Singh
ec0aea2374 Removed separate LLR calculation for PTRS
- New Data Structure to store PTRS RE's is removed
- LLR's are calculated at the end symbol for whole slot
2020-08-28 12:14:13 +02:00
Thomas Schlichter
a14dd04e1b Fix memory allocation of gNB channel estimation arrays 2020-08-28 10:03:38 +02:00
Sakthi
1fc73ba77f fixing nr-softmodem 2020-08-27 21:50:35 +02:00
Mario Hudon
597ddf7574 Merged in some FR2 fixes from Rakesh 2020-08-27 15:23:59 -04:00
Sakthivel Velumani
57dec19ac8 fixed thread init; ulsim runs fine 2020-08-27 18:23:29 +02:00
Francesco Mani
96f78feec7 moving init_symbol_rotation in uesoftmodem 2020-08-27 14:52:58 +02:00
Sakthivel Velumani
478c7352b3 fixes 2020-08-27 13:06:48 +02:00
Sakthivel Velumani
3e3af2c11b bugfixes 2020-08-27 12:42:25 +02:00
Parminder Singh
b288eafd1e Common Phase error estimation and compensation in uplink.
FEATURE STATEMENT:
- Introduce linear phase error noise model in Uplink at UE
- Perform common phase error (CPE) estimation and compensation at gNB

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

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

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

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

The following merge requests have been included:

* MR [859] : Fixed the bug not sending MSG3
* MR [860] : FeMBMS eNB / UE End-to-End chain
* MR [866] : Improved modulation speed
* MR [872] : Improvement on CUDA GPU ldpc latency
2020-08-26 12:00:24 +02:00
Remi Hardy
eb78f3b9ea Merge branch 'rh_ci_fr1' of https://gitlab.eurecom.fr/oai/openairinterface5g into rh_ci_fr1 2020-08-26 11:27:19 +02:00
Francesco Mani
a3466a4966 calling pucch format 2 decoding in gnb rx procedures 2020-08-26 09:35:38 +02:00
Francesco Mani
6042df1ab5 to make lte-uesoftmodem compile 2020-08-26 07:06:28 +02:00
Francesco Mani
d219341905 to make simulators compile 2020-08-25 19:02:13 +02:00
Raymond Knopp
12a75c60e2 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 15:03:06 +02:00
Raymond Knopp
632803289c fixed initialization of rotation for symbol 0 2020-08-25 15:02:41 +02:00
Francesco Mani
1b06523c86 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 14:44:24 +02:00
Francesco Mani
0130518529 rssi dBFS based on 16 bits 2020-08-25 14:44:08 +02:00
hardy
e2b19083e5 fixing the xml action list yaml file location search 2020-08-25 10:55:43 +02:00
Raymond Knopp
b58ea80990 debug trace 2020-08-25 10:47:48 +02:00
Raymond Knopp
0bb99458c3 bugfix for TX slot processing 2020-08-25 10:06:02 +02:00
Raymond Knopp
2124343889 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-25 01:50:43 +02:00
Raymond Knopp
cc0ff7422e implementation of missing symbol-based rotation for NR modulation/demodulation (Section 5.3 38.211). Tested with unitary simulators (ulsim/dlsim).
To be tested with gNB testbench and rfsimlator
2020-08-25 01:48:55 +02:00
Thomas Schlichter
cec42dc330 Some more UE timing fixes
- Check for timing_advance update _after_ RX (and TX) processing
- Update writeBlockSize when timing_advance value changes (for USRP)
- ignore timestamp when pre-reading the first OFDM symbol of a frame (for rfsimulator)
- do not busy wait for a finished RX-TX thread, use blocking wait instead
2020-08-24 20:01:56 +02:00
Francesco Mani
664ac4facc bugfix on last commit 2020-08-24 17:59:30 +02:00
Francesco Mani
c127a5a2f8 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-24 16:10:16 +02:00
Francesco Mani
c1b775394f tpc update for pusch only if there is signal 2020-08-24 16:10:13 +02:00
matzakos
0e02dcf620 Modify LCID value for RLC DRB preconfiguration in noS1 mode 2020-08-24 15:01:18 +02:00
Raphael Defosseux
f0fb73f673 CI: less verbose when running MBMS on UE side
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-24 14:19:51 +02:00
Raphael Defosseux
9b58b2c872 CI: uniqueness in references
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-08-24 14:19:14 +02:00
Raymond Knopp
50dda0e4fe Remove redundant log 2020-08-24 13:02:19 +02:00
Raymond Knopp
e471d8b898 Merge remote-tracking branch 'origin/NR_RRC_PDCP' into NR_UL_scheduling 2020-08-24 11:19:42 +02:00
Julio Renner
e3e84ca282 update conf2uedata 2020-08-24 02:21:03 +02:00
Thomas Schlichter
4049eb4f53 clean TX buffer on UE side after transmitting it via USRP 2020-08-22 11:08:47 +02:00
Thomas Schlichter
f51611b108 remove unused variable "pdsch_vars_flp" and type "LTE_UE_PDSCH_FLP" 2020-08-22 10:21:39 +02:00
Thomas Schlichter
32b9f74067 remove "pdsch_vars_flp", "pdsch_vars_SI", "pdsch_vars_ra", "pdsch_vars_p" and "pdsch_vars_MCH", use per thread "pdsch_vars" instead 2020-08-22 10:21:39 +02:00
Thomas Schlichter
f8cb47d447 fix uePcchLLR() in nr_phy_scope.c to plot the PDCCH LLRs 2020-08-22 10:21:39 +02:00
Thomas Schlichter
b0903e2079 change timing advance to only affect the TX timestamp, not the position in the "txdata" buffer 2020-08-22 10:21:36 +02:00
Thomas Schlichter
1ca238dc19 remove unused function ulsch_common_procedures() from phy_procedures_nr_ue.c 2020-08-22 10:19:15 +02:00
Thomas Schlichter
1f57bd9bd2 Transmit data to USRP after finishing the producing thread 2020-08-22 10:18:30 +02:00
Francesco Mani
2f65453508 improved threshold for pucch0 detection 2020-08-21 18:28:44 +02:00
hardy
b5e17fb2d1 preparation for oc enb 2020-08-21 17:38:48 +02:00
Raphael Defosseux
f36a1b42cb Merge remote-tracking branch 'origin/NCTU_OpinConnect_LDPC' into develop_integration_2020_w34 2020-08-21 16:13:47 +02:00
Raphael Defosseux
a8ea336cfd Merge remote-tracking branch 'origin/improve_nr_modulation' into develop_integration_2020_w34 2020-08-21 16:13:27 +02:00
Raphael Defosseux
34a2945abf Merge remote-tracking branch 'origin/fembms-enb-ue' into develop_integration_2020_w34 2020-08-21 16:13:08 +02:00
hardy
8b3eb61f1c fixing typos + more in-code comments 2020-08-21 16:04:32 +02:00
Laurent
038a80b2ff fixes after merge 2020-08-21 15:50:27 +02:00
Rakesh
98aefe94fb Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRCConfiguration_FR2 2020-08-21 15:12:45 +02:00
Francesco Mani
09344667c3 fix for unresolved conflict 2020-08-21 15:08:26 +02:00
Laurent
38f01abd77 merge develop, compile ok, no test 2020-08-21 14:26:06 +02:00
Rakesh
e1c6130187 Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRCConfiguration_FR2 2020-08-21 13:52:51 +02:00
Laurent
c05bc1a3e9 5G SA authentication: authentication request, partial authentication response 2020-08-21 13:48:26 +02:00
Cedric Roux
da3dd6b8b0 benetel: driver for Benetel's 4G and 5G RRUs
This commit contains work done by Eurecom and by Benetel.
2020-08-21 10:24:35 +02:00
Sakthivel Velumani
579f9f969b included check for mod_order 2020-08-20 16:59:02 +02:00
kn.raju
eeb20f23a2 Resolved temp-rnti issue 2020-08-20 18:59:14 +05:30
hardy
2724f9c198 updated control sequence of cots ue for CI bench 2020-08-20 15:26:23 +02:00
Francesco Mani
0be0b4e0e3 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-20 12:38:14 +02:00
Francesco Mani
fd003dd786 Merge remote-tracking branch 'origin/develop' into NR_UL_scheduling 2020-08-20 12:37:21 +02:00
Raymond Knopp
2dffbb75e7 fixing a bug in the prach sequency initialization 2020-08-20 12:28:11 +02:00
Francesco Mani
35c298d708 remove unnecessary declarations 2020-08-20 11:26:10 +02:00
Florian Kaltenberger
54f7019e19 Merge branch 'develop' into 'dongzhanyi-zte-develop'
# Conflicts:
#   openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
2020-08-20 10:24:24 +02:00
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
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
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
Francesco Mani
b2e54e091c fixing an issue in n0 measurements 2020-08-11 13:57:02 +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
Sakthivel Velumani
e2afb8662e new table generator 2020-08-10 15:21:59 +02:00
Sakthivel Velumani
82df0e51b9 updated tables and 64qam mod 2020-08-10 15:19:53 +02:00
kn.raju
81f7ef4dac Fixed initial prach_id frame&slot number 2020-08-07 21:02:42 +05:30
Francesco Mani
7989afbb78 bugfix in measurements 2020-08-07 17:05:58 +02:00
Cedric Roux
c95e5deb42 add back ssb_perRACH_Occasion, sony phone complains 2020-08-07 10:33:26 +02:00
kn.raju
8ad840cbf0 Fixed issue in finding prach_id 2020-08-07 13:01:37 +05:30
Francesco Mani
7d46e43334 using the right structures for n0 measurements 2020-08-07 09:19:37 +02:00
Francesco Mani
e7ca1619b8 Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling 2020-08-06 18:03:37 +02:00
Francesco Mani
d8d2739c2b bugfixes 2020-08-06 17:46:16 +02:00
Sakthivel Velumani
566570899c Handle case where all harq are busy 2020-08-06 15:49:44 +02:00
Sakthivel Velumani
107167d100 Fixed a bug in PDCCH sched 2020-08-06 15:40:45 +02:00
matzakos
cbb321d7a2 Merge branch 'NR_RRC_PDCP' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_RRC_PDCP 2020-08-06 14:42:01 +02:00
matzakos
5ab8e0079b Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRC_PDCP 2020-08-06 14:27:54 +02:00
Cedric Roux
cccb56e571 nr rlc: bug fixes, cleanup
- bad values in asn1_utils.c (copy/paste from 4g)
- remove hardcoded values (t_reassembly, sn_field_length)
- some cleanup
2020-08-06 11:46:39 +02:00
laurent
9a72b0c52e partial code for NR SIB1, existing bugs fix, merge develop 2020-08-06 11:44:48 +02:00
kn.raju
5d4acc2ea3 added debug logs for phy issue 2020-08-06 14:37:46 +05:30
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
96023eeb93 Fix CUDA latency 2020-08-06 16:13:18 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
61bdea7584 fix build_oai and CUDA latency 2020-08-06 15:40:57 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
b64b6e85c4 fix build_oai and CUDA latency 2020-08-06 15:39:15 +08:00
NCTU OpinConnect Terng-Yin Hsu/WEI-YING,LIN
0e5d4fe268 fix CUDA latency 2020-08-06 15:32:30 +08:00
matzakos
431ed8bd73 Add GTPU tunnel data request at PDCP to deliver Uplink traffic over S1-U 2020-08-05 18:42:47 +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
matzakos
1326f6daf7 NR_RRC_PDCP: Bring back Downlink data scheduling in every opportunity
-Schedule IP traffic when it is available and random data when there is no IP traffic
2020-08-04 14:59:05 +02:00
kn.raju
dfdca4a251 fixed floating point exception error 2020-08-04 11:20:31 +05:30
Sakthivel Velumani
f8675c258d Fixed linking errors 2020-08-03 14:11:52 +02:00
kn.raju
a5580844b8 added for assoc period more than 1 2020-08-03 17:11:16 +05:30
matzakos
d013302c42 Merge remote-tracking branch 'origin/NR_UL_scheduling' into NR_RRC_PDCP
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
2020-08-03 12:36:19 +02:00
Sakthivel Velumani
18a3747e82 added the changed octave script 2020-08-03 11:46:33 +02:00
Sakthivel Velumani
fbd4df014c Further improvements
additional 50% speed improvement with SIMD vectors
2020-08-03 11:22:34 +02:00
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
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
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
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
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
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
Javier Morgade
a8e2a8d4b0 Merge remote-tracking branch 'origin/develop' into fembms-enb-ue 2020-07-29 10:54:38 +02:00
Francesco Mani
86250f682a bugfix in ul estimation and other minor changes 2020-07-28 16:35:12 +02:00
Sakthivel Velumani
012db77f15 One more fix to pucch tx 2020-07-28 12:04:30 +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
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
Javier Morgade
73dd471594 fembms: CI/CD using MBMS config to lauch FeMBMS test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-27 10:34:43 +02:00
Francesco Mani
3648ac46ce fix in ulsch ch estimation debug message 2020-07-27 09:29:43 +02:00
Javier Morgade
e10b0646e4 fembms: CI/CD fallback USRP tests
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-26 08:41:42 +02:00
Javier Morgade
0c31b449ca fembms: CI/CD fixing USRP Test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-25 15:48:05 +02:00
Javier Morgade
1d4bd3358a fembms: CI/CD fixing USRP Test
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-25 11:42:23 +02:00
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
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
Mario Hudon
7ecba96f42 Fixed compilation errors and warnings 2020-07-23 09:52:38 -04: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
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
Dr.-Ing. Javier Morgade
5a68767d6a Update enb.band17.tm1.mbms.25PRB.usrpb210.conf 2020-07-22 16:57:51 +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
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
Francesco Mani
e76593f73f bugfixes 2020-07-21 16:25:19 +02:00
Javier Morgade
220ba2ebc8 fembms: new mbmssim target (TOCHECK)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:20:10 +02:00
Javier Morgade
0bef84d0a5 fembms: - FeMBMS 36.213 eNB procedures v14.2
- FeMBMS 36.213 UE procedures v14.2
	- Implementation of OFDM encoding for FeMBMS/eNB v14.2

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:16:49 +02:00
Javier Morgade
5eb6dac7db fembms: routines for decoding the UE FeMBMS/PMCH physical/multicast/transport channel 3GPP TS 36.211 version 14.2.0
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:09:38 +02:00
Javier Morgade
8eac27b83b fembms: Added support for FeMBMS UE Channel Estimation Procedures for 10 and 20 MHz BWs @ FeMBMS 1.25KHz Carrier Spacing
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-21 15:07:05 +02:00
laurent
e01a98f074 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into main5G 2020-07-21 12:10:02 +02:00
kn.raju
6392059732 fixed run time issue 2020-07-21 15:18:13 +05:30
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
Francesco Mani
60b82248a1 first version of reworking scheduling function, including UL scheduling 2020-07-20 18:07:54 +02:00
Javier Morgade
58bd55b9b3 fembms:
-Increase buffer size in PHY_ofdm_mod to accomodate FeMBMS sizes
	-New FFT sizes added (IDFT_12288, IDFT_24576) to enable support for FeMBMS 10MHz and 20MHz channels BWs

Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 11:02:18 +02:00
Javier Morgade
459eff02d1 fembms: Top-level routines for generating DL mbsfn reference signals for FeMBMS (eNB)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:58:57 +02:00
Javier Morgade
3fca8304a4 fembms: FeMBMS top-level routines for generating and decoding the PBCH/BCH physical/transport channel
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:54:01 +02:00
Javier Morgade
3d11b3d65d fembms: FeMBMS (eNB) Top-level routines for generating the PDSCH physical channel from 36-211 V14.1
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:51:51 +02:00
Javier Morgade
4923ba301a fembms: Addapting top-level routines for implementing Turbo-coded (DLSCH) transport channels from 36-212 with FeMBMS support
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:49:58 +02:00
Javier Morgade
da5ae9c8d1 fembms: L1 prototypes for FeMBMS eNB procedures
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
2020-07-20 10:48:26 +02:00
Javier Morgade
c5799e1cca fembms: missing protype added 2020-07-20 10:42:47 +02:00
Javier Morgade
eb0dacc443 fembms: L1 prototypes and params added 2020-07-20 10:41:56 +02:00
Javier Morgade
43dc75f92f fembms: reference config files re-arranged 2020-07-20 10:39:12 +02:00
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
kn.raju
7588dc50fa Scheduling and handling of SSB-RO 2020-07-16 16:26:00 +05:30
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
laurent
5e4d1f61ff small bug 2020-07-11 11:52:49 +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
laurent
4d6e647aaa fixes pushed also in develop 2020-07-06 14:07:46 +02:00
Raymond Knopp
4761cbdc3d Modifications wrt the NR LCIDs used for DTCH 2020-07-06 10:48:41 +02:00
matzakos
895cf14973 Merge NR_RRC_harq_hacks branch into NR_RRC_PDCP 2020-07-03 17:10:40 +02:00
laurent
35bf936351 merge develop, phy-test mode in 5G testing ok 2020-07-02 12:02:21 +02:00
laurent
0f032447c0 fix bugs in main OAI, begining of PRACH test+fxi 2020-07-01 17:44:36 +02:00
laurent
ada39bb238 scope round 2, merge develop branch 2020-06-24 17:04:46 +02:00
laurent
a456054d9b continue scope 2020-06-22 12:02:58 +02:00
laurent
e4b2689e29 continue scope rebuild 2020-06-19 20:35:32 +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
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
Raymond Knopp
c3e871257b Add printing contents of NR scgFailureInformation message at rrc eNB 2020-06-19 14:00:34 +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
laurent
d21a40066d scope for 5G 2020-06-18 10:19:52 +02:00
laurent
a9ba117ac7 first version scope reworked 2020-06-15 10:32:14 +02:00
Raymond Knopp
2381bd91d2 Add detection of NR scgFailureInformation message at rrc eNB 2020-06-12 19:30:17 +02:00
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
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
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
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
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
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
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
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
Raymond Knopp
bd1c4dd00b Add default NR RLC UM bearer configuration 2020-05-05 20:30:19 +02:00
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
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
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
laurent
497595ba0c merge again develop 2020-04-14 21:16:23 +02:00
laurent
b0b5a1012a cosmetic 2020-04-14 19:53:43 +02:00
laurent
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
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
631 changed files with 80357 additions and 18881 deletions

8
.dockerignore Normal file
View File

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

6
.gitignore vendored
View File

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

View File

@@ -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

@@ -30,12 +30,14 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def doRedHatBuild = false
def doFlexranCtrlTest = false
// Location of the executor node
def nodeExecutor = params.nodeExecutor
// VM Lockable resources
def vmResource = params.vmLockableResource
pipeline {
agent {
label nodeExecutor
@@ -85,21 +87,6 @@ pipeline {
echo "Platform is ${env.TESTPLATFORM_OWNER}"
}
if (params.RedHatRemoteServer == null) {
allParametersPresent = false
}
if (params.RedHatRemoteCredentials == null) {
allParametersPresent = false
}
if (params.RedHatWorkingPath == null) {
allParametersPresent = false
}
if (allParametersPresent) {
echo "Performing Red Hat Build"
doRedHatBuild = true
} else {
doRedHatBuild = false
}
if (params.FlexRanRtcGitLabRepository_Credentials != null) {
doFlexranCtrlTest = true
}
@@ -175,65 +162,81 @@ pipeline {
stage ("Start VM -- basic-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- gnb-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- nr-ue-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- enb-usrp") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- phy-sim") {
steps {
lock (vmResource) {
timeout (time: 5, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- enb-ethernet") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- ue-ethernet") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
stage ("Start VM -- cppcheck") {
steps {
timeout (time: 5, unit: 'MINUTES') {
lock (vmResource) {
timeout (time: 7, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
@@ -279,7 +282,7 @@ pipeline {
steps {
gitlabCommitStatus(name: "Build eNB-USRP") {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
@@ -304,33 +307,14 @@ pipeline {
}
stage ("Build UE-ethernet") {
steps {
// This is typically the last one to finish.
lock (vmResource) {
gitlabCommitStatus(name: "Build UE-ethernet") {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
stage ("Build eNB-USRP on Red Hat") {
when {
expression {doRedHatBuild}
}
steps {
gitlabCommitStatus(name: "Build eNB-USRP-RHE") {
script {
try {
withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.RedHatRemoteCredentials}", usernameVariable: 'RH_Username', passwordVariable: 'RH_Password']
]) {
timeout (time: 20, unit: 'MINUTES') {
sh "./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}"
}
}
} catch (Exception e) {
echo "Red Hat build failed but we could keep running pipeline if all ubuntu-based build passed"
}
}
}
}
}
}
}
@@ -392,6 +376,7 @@ pipeline {
stages {
stage ("Test physical simulators") {
steps {
lock (vmResource) {
script {
timeout (time: 90, unit: 'MINUTES') {
try {
@@ -403,6 +388,7 @@ pipeline {
}
}
}
}
}
}
stage ("Build Flexran Controller") {
@@ -410,6 +396,7 @@ pipeline {
expression {doFlexranCtrlTest}
}
steps {
lock (vmResource) {
script {
timeout (time: 20, unit: 'MINUTES') {
try {
@@ -419,10 +406,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test basic simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -434,10 +423,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test L1 simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -449,12 +440,14 @@ pipeline {
}
}
}
}
}
}
stage ("Test RF simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
timeout (time: 40, unit: 'MINUTES') {
try {
gitlabCommitStatus(name: "Test RF-sim") {
sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant rf-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
@@ -464,10 +457,12 @@ pipeline {
}
}
}
}
}
}
stage ("Test L2 simulator") {
steps {
lock (vmResource) {
script {
timeout (time: 30, unit: 'MINUTES') {
try {
@@ -479,11 +474,14 @@ pipeline {
}
}
}
}
}
}
stage ("Destroy all Virtual Machines") {
steps {
lock (vmResource) {
sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}

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

@@ -34,7 +34,7 @@
import sys # arg
import re # reg
import yaml
import constants as CONST
#-----------------------------------------------------------
# Parsing Command Line Arguements

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

@@ -27,61 +27,111 @@
# 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,model,UEIPAddr,UEUserName,UEPassWord):
self.model = model
self.UEIPAddr = UEIPAddr
self.UEUserName = UEUserName
self.UEPassWord = UEPassWord
self.runargs = '' #on of off to toggle airplane mode on/off
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.UEIPAddr, self.UEUserName, self.UEPassWord)
status=mySSH.cde_check_value('sudo adb shell settings get global airplane_mode_on ', ['0','1'],5)
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
def Set_Airplane(self,target_state_str):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.UEIPAddr, self.UEUserName, self.UEPassWord)
mySSH.command('sudo adb start-server','$',5)
logging.info("Toggling COTS UE Airplane mode to : "+target_state_str)
current_state = self.Check_Airplane()
if target_state_str.lower()=="on":
target_state=1
#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:
target_state=0
if current_state != target_state:
#toggle state
retry = 0
while (current_state!=target_state) and (retry < self.__SetAirplaneRetry):
mySSH.command('sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS', '\$', 5)
mySSH.command('sudo adb shell input keyevent 20', '\$', 5)
mySSH.command('sudo adb shell input tap 968 324', '\$', 5)
time.sleep(1)
current_state = self.Check_Airplane()
retry+=1
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:
logging.error("ATTENTION : Could not toggle to : "+target_state_str)
logging.error("Current state is : "+ str(current_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:
print("Airplane mode is already "+ target_state_str)
mySSH.command('sudo adb kill-server','$',5)
mySSH.close()
logging.error("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)
sys.exit("COTS UE Id from XML could not be found in UE YAML dictionary " + self.__cots_cde_dict_file)

3188
ci-scripts/cls_oaicitest.py Normal file

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

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 :
{

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 :
{

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 :
{

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; #
}

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

@@ -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

@@ -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

@@ -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 :
{

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

@@ -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";

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 :
{

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 :
{

View File

@@ -144,6 +144,8 @@ eNBs =
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;
}
);
@@ -181,6 +183,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -190,6 +193,8 @@ eNBs =
enable_x2 = "yes";
t_reloc_prep = 1000; /* unit: millisecond */
tx2_reloc_overall = 2000; /* unit: millisecond */
t_dc_prep = 1000; /* unit: millisecond */
t_dc_overall = 2000; /* unit: millisecond */
NETWORK_INTERFACES :
{

View File

@@ -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 :
{

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";

View File

@@ -45,8 +45,8 @@ gNBs =
dl_carrierBandwidth = 106;
#initialDownlinkBWP
#genericParameters
# this is RBstart=0,L=50 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 13475;
# this is RBstart=41,L=24 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 6366;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
@@ -59,7 +59,7 @@ gNBs =
#initialULBWPmappingType
#0=typeA,1=typeB
initialDLBWPmappingType_0 = 0;
#this is SS=2,L=3
#this is SS=1,L=13
initialDLBWPstartSymbolAndLength_0 = 40;
initialDLBWPk0_1 = 0;
@@ -71,6 +71,12 @@ gNBs =
initialDLBWPmappingType_2 = 0;
#this is SS=1,L=12
initialDLBWPstartSymbolAndLength_2 = 54;
initialDLBWPk0_3 = 0;
initialDLBWPmappingType_3 = 0;
#this is SS=1,L=5
initialDLBWPstartSymbolAndLength_3 = 57;
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
@@ -83,7 +89,7 @@ gNBs =
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 13475;
initialULBWPlocationAndBandwidth = 6366;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
@@ -105,8 +111,8 @@ gNBs =
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 4;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#0=oneeighth,1=onefourth,2=half,3=one,4=two,5=four,6=eight,7=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
@@ -114,27 +120,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 +204,7 @@ gNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -235,9 +246,11 @@ RUs = (
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 114;
max_rxgain = 75;
eNB_instances = [0];
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
#beamforming 1x4 matrix:
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
clock_src = "external";
}
);

View File

@@ -201,6 +201,7 @@ gNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
ipv6 = "192:168:30::17";
port = 36412 ;
active = "yes";
preference = "ipv4";
}
@@ -210,6 +211,8 @@ gNBs =
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";
@@ -289,3 +292,6 @@ THREAD_STRUCT = (
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 :
{

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 :
{

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 :
{

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 :
{

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 :
{

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 :
{

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

@@ -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

@@ -83,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

@@ -65,6 +65,7 @@ class EPCManagement():
self.testCase_id = ''
self.MmeIPAddress = ''
self.containerPrefix = 'prod'
self.mmeConfFile = 'mme.conf'
#-----------------------------------------------------------
@@ -127,7 +128,7 @@ class EPCManagement():
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/mme.conf > mme_check_run.log 2>&1"', '\$', 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)

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 = ''
@@ -230,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')
@@ -246,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

File diff suppressed because it is too large Load Diff

View File

@@ -90,6 +90,7 @@ class RANManagement():
self.epcPcapFile = ''
self.htmlObj = None
self.epcObj = None
self.runtime_stats= ''
@@ -132,7 +133,7 @@ class RANManagement():
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)
@@ -426,7 +427,7 @@ class RANManagement():
# Launch eNB with the modified config file
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
if self.air_interface == 'nr':
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)
@@ -614,7 +615,7 @@ class RANManagement():
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)
self.htmlObj.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBLogFiles[int(self.eNB_instance)] = ''
else:
analyzeFile = False
@@ -643,10 +644,10 @@ class RANManagement():
return
else:
if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
self.htmlObj.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)
self.htmlObj.CreateHtmlTestRow(self.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
self.eNBmbmsEnables[int(self.eNB_instance)] = False
self.eNBstatuses[int(self.eNB_instance)] = -1
@@ -704,6 +705,11 @@ class RANManagement():
systemTime = ''
maxPhyMemUsage = ''
nbContextSwitches = ''
#NSA FR1 check
NSA_RAPROC_PUSCH_check = 0
#dlsch and ulsch statistics (dictionary)
dlsch_ulsch_stats = {}
for line in enb_log_file.readlines():
# Runtime statistics
result = re.search('Run time:' ,str(line))
@@ -712,16 +718,20 @@ class RANManagement():
if runTime != '':
result = re.search('Time executing user inst', str(line))
if result is not None:
userTime = 'to be decoded - 1'
fields=line.split(':')
userTime = 'userTime : ' + fields[1].replace('\n','')
result = re.search('Time executing system inst', str(line))
if result is not None:
systemTime = 'to be decoded - 2'
fields=line.split(':')
systemTime = 'systemTime : ' + fields[1].replace('\n','')
result = re.search('Max. Phy. memory usage:', str(line))
if result is not None:
maxPhyMemUsage = 'to be decoded - 3'
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:
nbContextSwitches = 'to be decoded - 4'
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:
@@ -850,12 +860,27 @@ 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())
enb_log_file.close()
logging.debug(' File analysis completed')
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
if self.air_interface[self.eNB_instance] == 'nr-softmodem':
if ulschReceiveOK > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
@@ -869,6 +894,23 @@ class RANManagement():
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
#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')
@@ -978,11 +1020,12 @@ class RANManagement():
global_status = CONST.ENB_PROCESS_REALTIME_ISSUE
if self.htmlObj is not None:
self.htmlObj.htmleNBFailureMsg=htmleNBFailureMsg
# Runtime statistics
# Runtime statistics for console output and HTML
if runTime != '':
logging.debug(runTime)
logging.debug('Time executing user inst : ' + userTime)
logging.debug('Time executing system inst : ' + systemTime)
logging.debug('Max Physical Memory Usage : ' + maxPhyMemUsage)
logging.debug('Nb Context Switches : ' + nbContextSwitches)
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

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

View File

@@ -276,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
@@ -1172,6 +1209,8 @@ 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
@@ -1181,6 +1220,8 @@ function start_rf_sim_gnb {
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
@@ -1192,7 +1233,12 @@ function start_rf_sim_gnb {
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
@@ -1202,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 ]
@@ -1224,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
@@ -1249,6 +1298,8 @@ 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
@@ -1267,6 +1318,8 @@ 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
@@ -1274,6 +1327,8 @@ function start_rf_sim_nr_ue {
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
@@ -1281,7 +1336,12 @@ function start_rf_sim_nr_ue {
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
if [ $LOC_S1_CONFIGURATION -eq 0 ]
then
echo "echo \"RFSIMULATOR=${LOC_GNB_VM_IP_ADDR} ./nr-uesoftmodem --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
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
@@ -1314,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 ]
@@ -1327,19 +1389,20 @@ function start_rf_sim_nr_ue {
else
i=$[$i+1]
fi
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
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
}
@@ -2027,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 "############################################################"
@@ -2042,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"
@@ -2050,6 +2184,7 @@ 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.* ]]
@@ -2060,27 +2195,100 @@ function run_test_on_vm {
PRB=106
FREQUENCY=3510
if [ ! -d $ARCHIVES_LOC ]
then
mkdir --parents $ARCHIVES_LOC
fi
local try_cnt="0"
NR_STATUS=0
######### start of loop
while [ $try_cnt -lt 1 ]
######### start of RA TEST loop
while [ $try_cnt -lt 5 ] #5 because it hardly succeed within CI
do
SYNC_STATUS=0
RA_STATUS=0
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}*ra_test.log
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "############################################################"
CURRENT_GNB_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_gnb_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 1
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ue_ra_test.log
#last argument = 1 is to enable --do-ra for RA test
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG 1
if [ $NR_UE_SYNC -eq 0 ]
then
echo "Problem w/ gNB and NR-UE not syncing"
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
SYNC_STATUS=-1
try_cnt=$[$try_cnt+1]
continue
fi
echo "############################################################"
echo "${CN_CONFIG} : Terminate gNB/NR-UE simulators"
echo "############################################################"
sleep 20
terminate_enb_ue_basic_sim $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR 2
terminate_enb_ue_basic_sim $GNB_VM_CMDS $GNB_VM_IP_ADDR 1
scp -o StrictHostKeyChecking=no ubuntu@$GNB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_GNB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$NR_UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_NR_UE_LOG_FILE $ARCHIVES_LOC
#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"
try_cnt=$[$try_cnt+1]
else
try_cnt=$[$try_cnt+10]
fi
done
########### end RA test
sleep 30
######### start of PHY TEST loop
try_cnt="0"
while [ $try_cnt -lt 4 ]
do
SYNC_STATUS=0
PING_STATUS=0
IPERF_STATUS=0
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_gnb.log $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ue.log
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ping_gnb_from_nrue.log $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_ping_from_gnb_nrue.log
rm -f $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_iperf_dl*txt $ARCHIVES_LOC/tdd_${PRB}prb_${CN_CONFIG}_iperf_ul*txt
echo "############################################################"
echo "${CN_CONFIG} : Starting the gNB"
echo "############################################################"
CURRENT_GNB_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_gnb.log
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
start_rf_sim_gnb $GNB_VM_CMDS "$GNB_VM_IP_ADDR" $CURRENT_GNB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG 0
echo "############################################################"
echo "${CN_CONFIG} : Starting the NR-UE"
echo "############################################################"
CURRENT_NR_UE_LOG_FILE=tdd_${PRB}prb_${CN_CONFIG}_ue.log
start_rf_sim_nr_ue $NR_UE_VM_CMDS $NR_UE_VM_IP_ADDR $GNB_VM_IP_ADDR $CURRENT_NR_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG
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"
@@ -2168,6 +2376,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

@@ -1,4 +1,3 @@
- COTS_UE_Airplane
- Build_PhySim
- Run_PhySim
- Build_eNB

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

@@ -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

View File

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

View File

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

View File

@@ -21,19 +21,27 @@
-->
<testCaseList>
<htmlTabRef>test-airplane-mode</htmlTabRef>
<htmlTabName>AirplaneToggle</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<htmlTabRef>epc-closure</htmlTabRef>
<htmlTabName>EPC-Closure</htmlTabName>
<htmlTabIcon>log-out</htmlTabIcon>
<TestCaseRequestedList>
010000
060000 060001 060002
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010000">
<class>COTS_UE_Airplane</class>
<desc>Toggle COTS Airplane mode ON</desc>
<cots_ue_airplane_args>ON</cots_ue_airplane_args>
<testCase id="060000">
<class>Terminate_HSS</class>
<desc>Terminate HSS</desc>
</testCase>
<testCase id="060001">
<class>Terminate_MME</class>
<desc>Terminate MME</desc>
</testCase>
<testCase id="060002">
<class>Terminate_SPGW</class>
<desc>Terminate SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -21,30 +21,28 @@
-->
<testCaseList>
<htmlTabRef>test-fr1-tm1</htmlTabRef>
<htmlTabName>Test-FR1-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<htmlTabRef>epc-start-tab</htmlTabRef>
<htmlTabName>EPC-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList>
070001
070000
000100 000101 000102
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="070000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<testCase id="000100">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="070001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<testCase id="000101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
</testCase>
<testCase id="000102">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,49 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>epc-start-tab</htmlTabRef>
<htmlTabName>EPC-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList>
000100 000101 000102
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase id="000100">
<class>Initialize_HSS</class>
<desc>Initialize HSS</desc>
</testCase>
<testCase id="000101">
<class>Initialize_MME</class>
<desc>Initialize MME</desc>
<option>mme-verizon.conf</option>
</testCase>
<testCase id="000102">
<class>Initialize_SPGW</class>
<desc>Initialize SPGW</desc>
</testCase>
</testCaseList>

View File

@@ -0,0 +1,137 @@
<!--
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
050002
050003
000001
010002
000001
070001
070000
010003
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="010003">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="010002">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="030000">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.fr1.25PRB.usrpb210.conf</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="040000">
<class>Initialize_eNB</class>
<desc>Initialize gNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf -E</Initialize_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20pings in 20sec</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 5pings in 1sec</desc>
<ping_args>-c 5 -i 0.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
<testCase id="050002">
<class>Ping</class>
<desc>Ping: 100pings in 20sec</desc>
<ping_args>-c 100 -i 0.2</ping_args>
<ping_packetloss_threshold>0</ping_packetloss_threshold>
</testCase>
<testCase id="050003">$
<class>Ping</class>$
<desc>Ping: 100pings in 20sec size 1000</desc>$
<ping_args>-c 100 -i 0.2 -s 1000</ping_args>$
<ping_packetloss_threshold>0</ping_packetloss_threshold>$
</testCase>$
<testCase id="070000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="070001">
<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,151 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
-->
<testCaseList>
<htmlTabRef>test-05-tm1</htmlTabRef>
<htmlTabName>Test-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
030201
040101
030101 040301 000001 040501 040603 040401 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].plmn_list.[0].mcc 311 --eNBs.[0].plmn_list.[0].mnc 480 --eNBs.[0].plmn_list.[0].mnc_length 3 --eNBs.[0].component_carriers.[0].Nid_cell 10</Initialize_eNB_args>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
</testCase>
<testCase id="040101">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="040201">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="040301">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="040401">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="040501">
<class>Ping</class>
<desc>ping (5MHz - 20 sec)</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
<testCase id="040603">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040604">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>unbalanced</iperf_profile>
</testCase>
<testCase id="040606">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040607">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040641">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040642">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040643">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040644">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
</testCaseList>

View File

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

View File

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

View File

@@ -25,6 +25,8 @@
<htmlTabName>Test-10MHz</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>2</repeatCount>
<TestUnstable>True</TestUnstable>
<TestMinId>040612</TestMinId>
<TestCaseRequestedList>
030201
040101

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1095,7 +1095,10 @@
(Test10: 106 PRBs 50 PDSCH-PRBs MCS Index 16),
(Test11: HARQ test 25% TP (4 rounds),
(Test12: HARQ test 33% TP (3 rounds),
(Test13: HARQ test 50% TP (2 rounds)</desc>
(Test13: HARQ test 50% TP (2 rounds),
(Test14: 3 PTRS, 8 Interpolated Symbols),
(Test15: 6 PTRS, 5 Interpolated Symbols),
(Test16: 11 PTRS, 0 Interpolated Symbols)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1114,8 +1117,11 @@
-n100 -e16 -s10
-n100 -s1 -t25
-n100 -s1 -t33
-n100 -s1 -t50</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13</tags>
-n100 -s1 -t50
-n100 -s5 -T 2 2 2
-n100 -s5 -T 2 1 2
-n100 -s5 -T 2 0 4</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16</tags>
<search_expr_true>PDSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1276,7 +1282,10 @@
(Test2: MCS 16 50 PRBs),
(Test3: MCS 28 50 PRBs),
(Test4: MCS 9 217 PRBs),
(Test5: MCS 9 273 PRBs)</desc>
(Test5: MCS 9 273 PRBs),
(Test6: DMRS Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols),
(Test7: DMRS Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols),
(Test8: DMRS Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1287,8 +1296,11 @@
-n100 -m16 -s10
-n100 -m28 -s20
-n100 -m9 -R217 -r217 -s5
-n100 -m9 -R273 -r273 -s5</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5</tags>
-n100 -m9 -R273 -r273 -s5
-n100 -s5 -T 2 1 2 -U 2 0 2
-n100 -s5 -T 2 2 2 -U 2 1 2
-n100 -s5 -a4 -b8 -T 2 1 2 -U 2 1 3</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1296,10 +1308,12 @@
<testCase id="015112">
<class>execution</class>
<desc>nr_prachsim Test cases. (Test1: 106 PRBs - Prach format A2),
(Test2: 217 PRBs - Prach format A2),
(Test3: 273 PRBs - Prach format A2),
(Test4: 106 PRBs - Prach format 0)</desc>
<desc>nr_prachsim Test cases. (Test1: 30kHz SCS, 106 PRBs, Prach format A2),
(Test2: 30kHz SCS, 217 PRBs, Prach format A2),
(Test3: 30kHz SCS, 273 PRBs, Prach format A2),
(Test4: 30kHz SCS, 106 PRBs, Prach format 0),
(Test5: 120kHz SCS, 32 PRBs, Prach format A2),
(Test6: 120kHz SCS, 66 PRBs, Prach format A2)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1309,8 +1323,10 @@
<main_exec_args>-a -s -30 -n 100 -p 63 -R 106
-a -s -30 -n 100 -p 63 -R 217
-a -s -30 -n 100 -p 63 -R 273
-a -s -30 -n 100 -p 63 -R 106 -c 4</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4</tags>
-a -s -30 -n 100 -p 63 -R 106 -c 4
-a -s -30 -n 100 -p 32 -R 32 -m 3 -c52
-a -s -30 -n 100 -p 32 -R 66 -m 3 -c52</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4 nr_prachsim.test5 nr_prachsim.test6</tags>
<search_expr_true>PRACH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -149,6 +149,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

@@ -149,6 +149,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

@@ -149,6 +149,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

@@ -42,7 +42,6 @@ MSC_GEN=0
XFORMS="True"
SKIP_SHARED_LIB_FLAG="False"
UE_EXPANSION="False"
UESIM_EXPANSION="False"
PRINT_STATS="False"
VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER=""
@@ -67,6 +66,7 @@ UE_TIMING_TRACE="False"
USRP_REC_PLAY="False"
BUILD_ECLIPSE=0
NR="False"
ITTI_SIM="False"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope msc"
trap handle_ctrl_c INT
@@ -160,6 +160,8 @@ Options
Build for I/Q record-playback modes
-k | --skip-shared-libraries
Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes
--ittiSIM
Makes the itti simulator
-h | --help
Print this help
@@ -211,7 +213,7 @@ function main() {
GDB=0
CMAKE_BUILD_TYPE="RelWithDebInfo"
echo_info "Will Compile with gdb symbols"
CMAKE_CMD="$CMAKE_CMD -DCMAKE_BUILD_TYPE=RelWithDebInfo"
CMAKE_CMD="$CMAKE_CMD -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
shift
;;
"MinSizeRel")
@@ -264,10 +266,6 @@ function main() {
UE_EXPANSION="True"
echo_info "Will compile with UE_EXPANSION"
shift;;
--musim)
UESIM_EXPANSION="True"
echo_info "Will compile with UESIM_EXPANSION"
shift;;
--UE-conf-nvram)
conf_nvram_path=$(readlink -f $2)
shift 2;;
@@ -418,6 +416,11 @@ function main() {
CMAKE_CMD="$CMAKE_CMD -GNinja"
MAKE_CMD=ninja
shift;;
--ittiSIM)
ittiSIM=1
ITTI_SIM="True"
echo_info "Will compile itti simulator"
shift;;
-h | --help)
print_help
exit 1;;
@@ -488,11 +491,6 @@ function main() {
echo_info "Flags for Deadline scheduler: $DEADLINE_SCHEDULER_FLAG_USER"
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
if [ -n "$UHD_IMAGES_DIR" ] && [ -z "$INSTALL_EXTERNAL" ]; then
echo_error "UHD images download settings will not be applied without -I present"
exit
fi
#######################################################
# Setting and printing OAI envs, we should check here #
#######################################################
@@ -549,9 +547,10 @@ function main() {
# flash_firmware_iris
#fi
fi
echo_info "installing protobuf/protobuf-c for flexran agent support"
echo_info "Installing protobuf/protobuf-c for flexran agent support"
install_protobuf_from_source
install_protobuf_c_from_source
echo_success "protobuf/protobuf-c installation successful"
fi
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
@@ -580,7 +579,7 @@ function main() {
config_libconfig_shlib=params_libconfig
# first generate the CMakefile in the right directory
if [ "$eNB" = "1" -o "$eNBocp" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HW" = "EXMIMO" ] ; then
if [ "$eNB" = "1" -o "$eNBocp" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HW" = "EXMIMO" -o "$ittiSIM" = "1" ] ; then
# softmodem compilation
@@ -592,7 +591,6 @@ function main() {
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( UESIM_EXPANSION $UESIM_EXPANSION )" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
@@ -605,6 +603,7 @@ function main() {
echo "set ( UE_TIMING_TRACE $UE_TIMING_TRACE )" >> $cmake_file
echo "set ( USRP_REC_PLAY $USRP_REC_PLAY )" >> $cmake_file
echo "set ( SKIP_SHARED_LIB_FLAG $SKIP_SHARED_LIB_FLAG )" >> $cmake_file
echo "set ( ITTI_SIM $ITTI_SIM )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$build_dir/build
eval $CMAKE_CMD
@@ -626,6 +625,10 @@ function main() {
execlist="$execlist nr-uesoftmodem"
fi
if [ "$ittiSIM" = "1" ] ; then
execlist="$execlist nr-ittisim"
fi
for f in $execlist ; do
echo_info "Compiling $f..."
compilations \
@@ -647,14 +650,22 @@ function main() {
$build_dir coding \
libcoding.so $dbin/libcoding.so
compilations \
$build_dir nasmesh \
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
compilations \
$build_dir rb_tool \
rb_tool $dbin/rb_tool
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
#check if we run inside a container or not
#IS_CONTAINER variable is defined in build_helper file
#compile nasmesh and rb_tool only if NOT running in a container
if [ $IS_CONTAINER -eq 0 ]
then
compilations \
$build_dir nasmesh \
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
compilations \
$build_dir rb_tool \
rb_tool $dbin/rb_tool
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
fi #IS_CONTAINER
fi
fi
@@ -662,9 +673,16 @@ function main() {
if [ "$UE" = 1 ] ; then
echo_info "Compiling UE specific part"
compilations \
$build_dir ue_ip \
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
if [ $IS_CONTAINER -eq 0 ]
then
echo_info "Building ue_ip module"
compilations \
$build_dir ue_ip \
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
else
echo_info "Bypassing ue_ip build"
fi #IS_CONTAINER
# mkdir -p $DIR/at_commands/build
# cd $DIR/at_commands/build

View File

@@ -0,0 +1,505 @@
#!/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
# */
# brief
# authors Laurent Thomas
#
#######################################
if [ ! -f /etc/os-release ]; then
echo "No /etc/os-release file found. You're likely on an unsupported distro."
exit 1
fi
OS_DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g")
OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g")
case "$OS_DISTRO" in
ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt"; CMAKE="cmake" ;;
esac
SUDO='sudo -E'
###############################
## echo and family
###############################
black='\E[30m'
red='\E[31m'
green='\E[32m'
yellow='\E[33m'
blue='\E[1;34m'
magenta='\E[35m'
cyan='\E[36m'
white='\E[37m'
reset_color='\E[00m'
COLORIZE=1
cecho() {
# Color-echo
# arg1 = message
# arg2 = color
local default_msg="No Message."
message=${1:-$default_msg}
color=${2:-$green}
[ "$COLORIZE" = "1" ] && message="$color$message$reset_color"
echo -e "$message"
return
}
echo_error() { cecho "$* $red" ;}
echo_fatal() { cecho "$* $red"; exit 1 ;}
echo_warning() { cecho "$* $yellow" ;}
echo_success() { cecho "$* $green" ;}
echo_info() { cecho "$* $blue" ;}
########################
# distribution helpers #
########################
# This function return a string to identify the distribution we are running
# Examples:
# ubuntu16.04
# debian8.5
get_distribution_release() {
echo "$OS_DISTRO$OS_RELEASE"
}
check_supported_distribution() {
case $(get_distribution_release) in
"ubuntu20.04") return 0 ;;
esac
return 1
}
##################
# Error handlers #
##################
handler_EXIT() {
local exit_code=$?
[ "$exit_code" -eq 0 ] || echo_error "build have failed"
exit $exit_code
}
trap handler_EXIT EXIT
###########################
# Cleaners
###########################
clean_kernel() {
$SUDO modprobe ip_tables
$SUDO modprobe x_tables
$SUDO iptables -P INPUT ACCEPT
$SUDO iptables -F INPUT
$SUDO iptables -P OUTPUT ACCEPT
$SUDO iptables -F OUTPUT
$SUDO iptables -P FORWARD ACCEPT
$SUDO iptables -F FORWARD
$SUDO iptables -t nat -F
$SUDO iptables -t mangle -F
$SUDO iptables -t filter -F
$SUDO iptables -t raw -F
echo_info "Flushed iptables"
$SUDO rmmod nasmesh > /dev/null 2>&1
$SUDO rmmod oai_nw_drv > /dev/null 2>&1
$SUDO rmmod openair_rf > /dev/null 2>&1
$SUDO rmmod ue_ip > /dev/null 2>&1
echo_info "removed drivers from kernel"
}
clean_all_files() {
set_openair_env
rm -rf "$OPENAIR_DIR"/targets/bin/*
dir="$OPENAIR_DIR/cmake_targets"
rm -rf "$dir"/log/*
rm -rf "$dir"/ran_build/build
rm -rf "$dir"/ran_build_noLOG/build
rm -rf "$dir"/lte-simulators/build
rm -rf "$dir"/phy_simulators/build
rm -rf "$dir"/nas_sim_tools/build
rm -rf "$dir"/oaisim_build_oai/build
rm -rf "$dir"/oaisim_build_oai/CMakeLists.txt
rm -rf "$dir"/autotests/bin
rm -rf "$dir"/autotests/log
rm -rf "$dir"/autotests/*/build
}
############################################
# External packages installers
############################################
install_protobuf_from_source(){
protobuf_install_log=$OPENAIR_DIR/cmake_targets/log/protobuf_install_log.txt
echo_info "\nInstalling Google Protobuf from sources. The log file for Protobuf installation is here: $protobuf_install_log "
(
cd /tmp || exit
echo "Downloading protobuf"
#rm -rf /tmp/protobuf-2.6.1.tar.gz* /tmp/protobuf-2.6.1
#wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
#tar -xzvf protobuf-2.6.1.tar.gz --owner $USER --group $USER --no-same-owner
#cd protobuf-2.6.1/
rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0
wget --tries=3 --retry-connrefused https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz
tar -xzvf protobuf-cpp-3.3.0.tar.gz --owner "$USER" --group "$(groups | cut -d" " -f1)" --no-same-owner
cd protobuf-3.3.0/ || exit
./configure
echo "Compiling protobuf"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
) >& "$protobuf_install_log"
}
install_protobuf_c_from_source(){
protobuf_c_install_log=$OPENAIR_DIR/cmake_targets/log/protobuf_c_install_log.txt
echo_info "\nInstalling Google Protobuf_C from sources. The log file for Protobuf_C installation is here: $protobuf_c_install_log "
(
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
fi
cd /tmp || exit
echo "Downloading protobuf-c"
rm -rf /tmp/protobuf-c
git clone https://github.com/protobuf-c/protobuf-c.git
cd protobuf-c || exit
git checkout 2a46af42784abf86804d536f6e0122d47cfeea45
./autogen.sh
./configure
echo "Compiling protobuf-c"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
) >& "$protobuf_c_install_log"
}
install_usrp_uhd_driver_from_source(){
uhd_install_log=$OPENAIR_DIR/cmake_targets/log/uhd_install_log.txt
echo_info "\nInstalling UHD driver from sources. The log file for UHD driver installation is here: $uhd_install_log "
(
cd /tmp || exit
echo "Downloading UHD driver"
rm -rf /tmp/uhd
git clone https://github.com/EttusResearch/uhd.git
cd uhd || exit
git checkout tags/v3.13.0.2
mkdir -p host/build
cd host/build || exit
$CMAKE ../
echo "Compiling UHD"
make -j"$(nproc)"
make test
$SUDO make install
$SUDO ldconfig
) >& "$uhd_install_log"
}
install_bladerf_driver_from_source(){
bladerf_install_log=$OPENAIR_DIR/cmake_targets/log/bladerf_install_log.txt
echo_info "\nInstalling BladeRF driver from sources. The log file for BladeRF driver installation is here: $bladerf_install_log "
(
cd /tmp || exit
echo "Downloading BladeRF driver"
rm -rf /tmp/bladeRF
git clone https://github.com/Nuand/bladeRF.git
cd bladeRF || exit
git checkout tags/2016.06
mkdir -p build
cd build || exit
$CMAKE ../
echo "Compiling BladeRF driver"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
echo "Downloading FPGA and firmware images"
cd /tmp/bladeRF || exit
wget --tries=3 --retry-connrefused https://www.nuand.com/fx3/bladeRF_fw_latest.img
wget --tries=3 --retry-connrefused https://www.nuand.com/fpga/hostedx40-latest.rbf
sudo mkdir -p /usr/share/Nuand/bladeRF
sudo mv bladeRF_fw_latest.img /usr/share/Nuand/bladeRF/bladeRF_fw.img
sudo mv hostedx40-latest.rbf /usr/share/Nuand/bladeRF/hostedx40.rbf
) >& "$bladerf_install_log"
}
check_install_bladerf_driver(){
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
$SUDO apt-get install -y bladerf libbladerf-dev
$SUDO apt-get install -y bladerf-firmware-fx3
$SUDO apt-get install -y bladerf-fpga-hostedx40
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
install_bladerf_driver_from_source
else
echo_error "BladeRF Installer for OAI does not support automatic build. Install BladeRF compiling sources manually from BladeRF website"
fi
}
flash_firmware_bladerf() {
$SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
}
install_soapy_from_source(){
soapy_install_log=$OPENAIR_DIR/cmake_targets/log/soapy_install_log.txt
echo_info "\nInstalling Soapy EcoSystem from source. The log file for Soapy installation is here: $soapy_install_log "
(
cd /tmp || exit
echo "Downloading SoapySDR"
rm -rf /tmp/soapysdr
git clone -b soapy-sdr-0.7.0 --single-branch https://github.com/pothosware/SoapySDR.git
cd SoapySDR || exit
#git checkout tags/release_003_010_001_001
mkdir -p build
cd build || exit
$CMAKE ../
echo "Compiling SoapySDR"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
cd /tmp || exit
echo "Downloading SoapyRemote"
rm -rf /tmp/soapyremote
git clone -b soapy-remote-0.5.0 --single-branch https://github.com/pothosware/SoapyRemote.git
cd SoapyRemote || exit
#git checkout tags/release_003_010_001_001
mkdir -p build
cd build || exit
cmake ../
echo "Compiling SoapyRemote"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
) >& "$soapy_install_log"
}
install_soapy_iris_from_source(){
iris_install_log=$OPENAIR_DIR/cmake_targets/log/iris_install_log.txt
echo_info "\nInstalling Iris driver from source. The log file for Iris driver installation is here: $iris_install_log "
(
cd /tmp || exit
echo "Downloading SoapyIris"
rm -rf /tmp/sklk-soapyiris
git clone -b soapy-iris-2018.08.0.1 --single-branch https://github.com/skylarkwireless/sklk-soapyiris.git
cd sklk-soapyiris || exit
mkdir -p build
cd build ||exit
cmake ../
echo "Compiling SoapyIris"
make -j"$(nproc)"
$SUDO make install
$SUDO ldconfig
) >& "$iris_install_log"
}
check_install_soapy () {
#if [[ "$OS_DISTRO" == "ubuntu" ]]; then
#first we remove old installation
$SUDO apt-get remove -y soapysdr soapysdr-server libsoapysdr-dev python-soapysdr python3-soapysdr soapysdr-module-remote || true
#$SUDO add-apt-repository -y ppa:myriadrf/drivers
#$SUDO apt-get update
#$SUDO apt-get install -y soapysdr soapysdr-server libsoapysdr-dev python-soapysdr python3-soapysdr soapysdr-module-remote
#elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
# $SUDO $INSTALLER -y install software-properties-common python3-software-properties python-software-properties subversion git python3 python-numpy python3-numpy cmake swig python-dev
install_soapy_from_source
#fi
install_soapy_iris_from_source
}
check_install_ubuntu_packages() {
$SUDO $INSTALLER update -y
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
local LAPACK_LIBNAME="liblapack.so"
local LAPACK_TARGET="/usr/lib/atlas-base/atlas/liblapack.so"
$SUDO apt install -y software-properties-common
case "$(get_distribution_release)" in
"ubuntu20.04")
specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;;
esac
$SUDO $INSTALLER install -y \
$specific_packages \
check \
dialog \
dkms \
gawk \
libboost-all-dev \
libpthread-stubs0-dev \
openvpn \
pkg-config \
python3-dev \
python-pexpect \
sshfs \
swig \
tshark \
uml-utilities \
unzip \
valgrind \
vlan \
exuberant-ctags \
ntpdate \
iperf3 \
android-tools-adb \
wvdial \
python-numpy \
sshpass \
nscd \
bc \
ntp \
python3-scipy \
python3-matplotlib \
bison \
build-essential \
cmake \
cmake-curses-gui \
ninja-build \
doxygen \
doxygen-gui \
texlive-latex-base \
ethtool \
flex \
gdb \
git \
graphviz \
gtkwave \
guile-2.0-dev \
iperf \
iptables \
libxtables-dev \
libatlas-base-dev \
libblas-dev \
liblapack-dev\
liblapacke-dev\
libffi-dev \
libforms-bin \
libforms-dev \
libgcrypt20-dev \
libgmp-dev \
libgtk-3-dev \
libidn2-0-dev \
libidn11-dev \
libmysqlclient-dev \
libpython2.7-dev \
libsctp1 \
libsctp-dev \
libssl-dev \
libtool \
libusb-1.0-0-dev \
libxml2 \
libxml2-dev \
libxslt1-dev \
mscgen \
octave-signal \
openssh-client \
openssh-server \
openssl \
python3 \
subversion \
xmlstarlet \
python3-pip \
libyaml-dev \
wget \
libxpm-dev \
libboost-all-dev \
nettle-dev \
nettle-bin
fi
$SUDO update-alternatives --set "$LAPACK_LIBNAME" "$LAPACK_TARGET"
}
install_asn1c_from_source(){
asn1_install_log=$OPENAIR_DIR/cmake_targets/log/asn1c_install_log.txt
echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log "
(
$SUDO rm -rf /tmp/asn1c
# GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
cd /tmp/asn1c || exit
# better to use a given commit than a branch in case the branch
# is updated and requires modifications in the source of OAI
#git checkout velichkov_s1ap_plus_option_group
git checkout f12568d617dbf48497588f8e227d70388fa217c9
autoreconf -iv
./configure
make -j"$(nproc)"
$SUDO make install
cd - || exit
$SUDO ldconfig
) > "$asn1_install_log" 2>&1
}
#################################################
# 2. compile
################################################
install_nas_tools() {
echo_success "generate .ue_emm.nvram .ue.nvram"
./nvram --gen -c "$1" -o "$2"
./usim --gen -c "$1" -o "$2"
}
################################
# set_openair_env
###############################
set_openair_env(){
fullpath=$(readlink -f "${BASH_SOURCE[0]}")
[ -f "/.$fullpath" ] || fullpath=$(readlink -f "$PWD/$fullpath")
openair_path=${fullpath%/cmake_targets/*}
openair_path=${openair_path%/targets/*}
openair_path=${openair_path%/openair[123]/*}
export OPENAIR_DIR=$openair_path
export OPENAIR1_DIR=$openair_path/openair1
export OPENAIR2_DIR=$openair_path/openair2
export OPENAIR3_DIR=$openair_path/openair3
export OPENAIR_TARGETS=$openair_path/targets
}
if ! check_supported_distribution; then
echo_error "Your distribution $(get_distribution_release) is not supported by oai !"
exit 1
fi
echo_info "Installing packages"
check_install_ubuntu_packages
echo_info "installing ASN.1 compiler"
install_asn1c_from_source
echo_info "installing protobuf/protobuf-c for flexran agent support"
install_protobuf_from_source
install_protobuf_c_from_source
if [ "$1" == "USRP" ] ; then
echo_info "installing packages for USRP support"
install_usrp_uhd_driver
fi
if [ "$1" == "BLADERF" ] ; then
echo_info "installing packages for BLADERF support"
check_install_bladerf_driver
flash_firmware_bladerf
fi
if [ "$1" == "IRIS" ] ; then
echo_info "installing packages for IRIS support"
check_install_soapy
# flash_firmware_iris
fi

View File

@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 2.8)
project (OpenAirInterface)
set ( CMAKE_BUILD_TYPE )
set ( CFLAGS_PROCESSOR_USER "" )
set ( UE_EXPANSION False )
set ( PRE_SCD_THREAD False )
set ( UESIM_EXPANSION False )
set ( ENABLE_VCD_FIFO False )
set ( RF_BOARD "OAI_USRP")
set ( RF_BOARD "None")
set ( TRANSP_PRO "None")
set ( PACKAGE_NAME "")
set ( DEADLINE_SCHEDULER "False" )
@@ -16,4 +16,5 @@ set ( UE_DEBUG_TRACE False )
set ( UE_TIMING_TRACE False )
set ( USRP_REC_PLAY False )
set ( SKIP_SHARED_LIB_FLAG False )
set ( PHYSIM True)
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)

View File

@@ -40,7 +40,15 @@ esac
KERNEL_VERSION=$(uname -r | cut -d '.' -f1)
KERNEL_MAJOR=$(uname -r | cut -d '.' -f2)
SUDO='sudo -E'
#check if we run inside a container
IS_CONTAINER=`egrep -c "docker|podman|kubepods" /proc/self/cgroup || true`
#sudo is not needed when we are root
if [ "$UID" = 0 ]
then
SUDO=''
else
SUDO='sudo -S -E'
fi
###############################
## echo and family
@@ -104,6 +112,8 @@ check_supported_distribution() {
"rhel7") return 0 ;;
"rhel7.6") return 0 ;;
"rhel7.7") return 0 ;;
"rhel7.8") return 0 ;;
"rhel8.2") return 0 ;;
"centos7") return 0 ;;
esac
return 1
@@ -241,10 +251,21 @@ install_protobuf_from_source(){
#wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
#tar -xzvf protobuf-2.6.1.tar.gz --owner $USER --group $USER --no-same-owner
#cd protobuf-2.6.1/
rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0
wget --tries=3 --retry-connrefused https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz
tar -xzvf protobuf-cpp-3.3.0.tar.gz --owner $USER --group $(groups | cut -d" " -f1) --no-same-owner
cd protobuf-3.3.0/
if [ $IS_CONTAINER -eq 0 ]
then
rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0
wget --tries=3 --retry-connrefused https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz
tar -xzvf protobuf-cpp-3.3.0.tar.gz --owner $(id -u) --group $(id -g) --no-same-owner
cd protobuf-3.3.0/
else
export LD_LIBRARY_PATH=/usr/local/lib #protoc needs to know where toclook for shared libs
rm -rf /tmp/protobuf
git clone --depth=1 --branch=v3.3.0 https://github.com/protocolbuffers/protobuf.git /tmp/protobuf
cd /tmp/protobuf
git submodule update --init --recursive
./autogen.sh
fi
./configure
echo "Compiling protobuf"
make -j`nproc`
@@ -279,12 +300,12 @@ install_usrp_uhd_driver_from_source(){
uhd_install_log=$OPENAIR_DIR/cmake_targets/log/uhd_install_log.txt
echo_info "\nInstalling UHD driver from sources. The log file for UHD driver installation is here: $uhd_install_log "
(
cd /tmp
pushd /tmp
echo "Downloading UHD driver"
rm -rf /tmp/uhd
git clone https://github.com/EttusResearch/uhd.git
cd uhd
git checkout tags/v3.13.0.2
git checkout tags/v4.0.0.0
mkdir -p host/build
cd host/build
$CMAKE ../
@@ -292,7 +313,9 @@ install_usrp_uhd_driver_from_source(){
make -j`nproc`
make test
$SUDO make install
$SUDO ldconfig
$SUDO ldconfig -v
popd
rm -rf /tmp/uhd
) >& $uhd_install_log
}
@@ -324,11 +347,20 @@ check_install_usrp_uhd_driver(){
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
$SUDO apt-get -y install libuhd-dev libuhd003 uhd-host
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils cmake
$SUDO -H pip install requests
if [ $IS_CONTAINER -eq 0 ]
then
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils cmake
$SUDO -H pip install requests
else
$SUDO $INSTALLER -y install boost boost-devel cmake3
$SUDO pip3 install mako requests
fi
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
# until EPEL repo hasn't bumped UHD driver to >=3.10 in EPEL, build driver from source
$SUDO $INSTALLER -y remove uhd uhd-devel uhd-firmware
if [ $IS_CONTAINER -eq 0 ]
then
# until EPEL repo hasn't bumped UHD driver to >=3.10 in EPEL, build driver from source
$SUDO $INSTALLER -y remove uhd uhd-devel uhd-firmware
fi
install_usrp_uhd_driver_from_source
else
$SUDO $INSTALLER -y install uhd uhd-devel uhd-firmware
@@ -750,6 +782,8 @@ check_install_oai_software() {
libxml2 \
libxml2-devel \
libxslt-devel \
ninja-build \
make \
openssh-clients \
openssh-server \
openssl \

View File

@@ -19,6 +19,10 @@ if [ "$done_flag" -ot $ASN1_SOURCE_DIR ] ; then
sed -i 's/18446744073709551615))/18446744073709551615U))/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReportItem.c
sed -i 's/18446744073709551615 }/18446744073709551615U }/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReportItem.c
fi
if [ "$ASN1C_PREFIX" = "NGAP_" ] ; then
sed -i 's/18446744073709551615))/18446744073709551615U))/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}VolumeTimedReport-Item.c
sed -i 's/18446744073709551615 }/18446744073709551615U }/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}VolumeTimedReport-Item.c
fi
fi
touch $done_flag

View File

@@ -445,6 +445,7 @@ int logInit (void)
register_log_component("NR_RRC","log",NR_RRC);
register_log_component("NR_MAC","log",NR_MAC);
register_log_component("NR_PHY","log",NR_PHY);
register_log_component("NGAP","",NGAP);
for (int i=0 ; log_level_names[i].name != NULL ; i++)
g_log->level2string[i] = toupper(log_level_names[i].name[0]); // uppercased first letter of level name

View File

@@ -226,6 +226,7 @@ typedef enum {
X2AP,
M2AP,
M3AP,
NGAP,
GNB_APP,
NR_RRC,
NR_MAC,
@@ -397,18 +398,21 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
/* define variable only used in LOG macro's */
# define LOG_VAR(A,B) A B
# else /* T_TRACER: remove all debugging and tracing messages, except errors */
# define LOG_I(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0)/* */
# define LOG_W(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ; } while(0)/* */
# define LOG_E(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x) ; } while(0)/* */
# define LOG_D(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x) ; } while(0)/* */
# define LOG_T(c, x...) /* */
# define LOG_DUMPMSG(c, b, s, x...) /* */
# define LOG_E(c, x...) do { if( g_log->log_component[c].level >= OAILOG_ERR ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x) ;} while (0)
# define LOG_W(c, x...) do { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} while (0)
# define LOG_I(c, x...) do { if( g_log->log_component[c].level >= OAILOG_INFO ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ;} while (0)
# define LOG_D(c, x...) do { if( g_log->log_component[c].level >= OAILOG_DEBUG ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x) ;} while (0)
# define LOG_T(c, x...) do { if( g_log->log_component[c].level >= OAILOG_TRACE ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_TRACE, x) ;} while (0)
# define VLOG(c,l, f, args) do { if( g_log->log_component[c].level >= l ) vlogRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, l, f, args) ; } while (0)
# define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...)
# define LOG_DEBUGFLAG(D) ( 0 )
# define LOG_DUMPFLAG(D) ( 0 )
# define LOG_DEBUGFLAG(D) (g_log->dump_mask & D)
# define LOG_DUMPFLAG(D) (g_log->debug_mask & D)
# define LOG_DUMPMSG(c, f, b, s, x...) do { if(g_log->dump_mask & f) log_dump(c, b, s, LOG_DUMP_CHAR, x) ;} while (0) /* */
# define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)
# define LOG_VAR(A,B)
# define LOG_VAR(A,B) A B
# endif /* T_TRACER */
/* avoid warnings for variables only used in LOG macro's but set outside debug section */
#define GCC_NOTUSED __attribute__((unused))

View File

@@ -814,6 +814,7 @@ static inline unsigned long long int vcd_get_time(void)
return (long long unsigned int)((time.tv_nsec - g_time_start.tv_nsec)) +
((long long unsigned int)time.tv_sec - (long long unsigned int)g_time_start.tv_sec) * 1000000000UL;
#endif
return 0;
}
void vcd_signal_dumper_create_header(void)

View File

@@ -601,11 +601,19 @@ extern int ouput_vcd;
#else /* T_TRACER */
#if ENABLE_VCD
#define VCD_SIGNAL_DUMPER_INIT(aRgUmEnT) vcd_signal_dumper_init(aRgUmEnT)
#define VCD_SIGNAL_DUMPER_CLOSE() vcd_signal_dumper_close()
#define VCD_SIGNAL_DUMPER_CREATE_HEADER() vcd_signal_dumper_create_header()
#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_variable_by_name(vAr1,vAr2)
#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_function_by_name(vAr1,vAr2)
#else
#define VCD_SIGNAL_DUMPER_INIT(aRgUmEnT)
#define VCD_SIGNAL_DUMPER_CLOSE()
#define VCD_SIGNAL_DUMPER_CREATE_HEADER()
#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(vAr1,vAr2)
#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(vAr1,vAr2)
#endif
#endif /* T_TRACER */

View File

@@ -85,6 +85,10 @@ ID = ENB_PHY_MIB
DESC = MIB data
GROUP = ALL:PHY:ENB:WIRESHARK
FORMAT = int,eNB_ID : int,frame : int,subframe : buffer,data
ID = GNB_PHY_MIB
DESC = NR MIB data
GROUP = ALL:PHY:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,frame : int,slot : buffer,data
#MAC logs
ID = ENB_MAC_UE_DL_SDU
@@ -131,6 +135,18 @@ ID = ENB_MAC_UE_DL_RAR_PDU_WITH_DATA
DESC = MAC downlink PDU for an UE
GROUP = ALL:MAC:ENB:WIRESHARK
FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : buffer,data
ID = GNB_MAC_DL_PDU_WITH_DATA
DESC = NR MAC downlink PDU for an UE
GROUP = ALL:MAC:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,CC_id : int,rnti : int,frame : int,slot : int,harq_pid : buffer,data
ID = GNB_MAC_UL_PDU_WITH_DATA
DESC = NR MAC uplink PDU for an UE
GROUP = ALL:MAC:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,CC_id : int,rnti : int,frame : int,slot : int,harq_pid : buffer,data
ID = GNB_MAC_DL_RAR_PDU_WITH_DATA
DESC = NR MAC downlink PDU for RAR
GROUP = ALL:MAC:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,CC_id : int,rnti : int,frame : int,slot : int,harq_pid : buffer,data
#RLC logs
ID = ENB_RLC_DL
@@ -384,6 +400,27 @@ ID = LEGACY_S1AP_TRACE
GROUP = ALL:LEGACY_S1AP:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_NGAP_INFO
DESC = NGAP legacy logs - info level
GROUP = ALL:LEGACY_NGAP:LEGACY_GROUP_INFO:LEGACY
FORMAT = string,log
ID = LEGACY_NGAP_ERROR
DESC = NGAP legacy logs - error level
GROUP = ALL:LEGACY_NGAP:LEGACY_GROUP_ERROR:LEGACY
FORMAT = string,log
ID = LEGACY_NGAP_WARNING
DESC = NGAP legacy logs - warning level
GROUP = ALL:LEGACY_NGAP:LEGACY_GROUP_WARNING:LEGACY
FORMAT = string,log
ID = LEGACY_NGAP_DEBUG
DESC = NGAP legacy logs - debug level
GROUP = ALL:LEGACY_NGAP:LEGACY_GROUP_DEBUG:LEGACY
FORMAT = string,log
ID = LEGACY_NGAP_TRACE
DESC = NGAP legacy logs - trace level
GROUP = ALL:LEGACY_NGAP:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_X2AP_INFO
DESC = X2AP legacy logs - info level
GROUP = ALL:LEGACY_X2AP:LEGACY_GROUP_INFO:LEGACY

View File

@@ -1,5 +1,5 @@
#ifndef _TRACER_DEFS_H_
#define _TRACER_DEFS_H_
#ifndef _COMMON_UTILS_T_DEFS_H_
#define _COMMON_UTILS_T_DEFS_H_
/* types of plots */
#define PLOT_VS_TIME 0
@@ -27,4 +27,4 @@ void *forwarder(char *ip, int port);
void forward(void *forwarder, char *buf, int size);
void forward_start_client(void *forwarder, int socket);
#endif /* _TRACER_DEFS_H_ */
#endif /* _COMMON_UTILS_T_DEFS_H_ */

View File

@@ -1,5 +1,5 @@
#ifndef _TRACER_DEFS_H_
#define _TRACER_DEFS_H_
#ifndef _COMMON_UTILS_T_TRACER_DEFS_H_
#define _COMMON_UTILS_T_TRACER_DEFS_H_
/* types of plots */
#define PLOT_VS_TIME 0
@@ -21,4 +21,4 @@ void t_gui_start(void);
void t_gui_set_input_signal(int eNB, int frame, int subframe, int antenna,
int size, void *buf);
#endif /* _TRACER_DEFS_H_ */
#endif /* _COMMON_UTILS_T_TRACER_DEFS_H_ */

View File

@@ -23,6 +23,8 @@ typedef struct {
int socket;
struct sockaddr_in to;
OBUF buf;
/* LTE traces */
/* ul */
int ul_rnti;
int ul_frame;
@@ -46,6 +48,28 @@ typedef struct {
int rar_frame;
int rar_subframe;
int rar_data;
/* NR traces */
/* NR ul */
int nr_ul_rnti;
int nr_ul_frame;
int nr_ul_slot;
int nr_ul_data;
/* NR dl */
int nr_dl_rnti;
int nr_dl_frame;
int nr_dl_slot;
int nr_dl_data;
/* NR mib */
int nr_mib_frame;
int nr_mib_slot;
int nr_mib_data;
/* NR RAR */
int nr_rar_rnti;
int nr_rar_frame;
int nr_rar_slot;
int nr_rar_data;
/* config */
int no_mib;
int no_sib;
@@ -58,8 +82,13 @@ typedef struct {
int cur_sib;
} ev_data;
void trace(ev_data *d, int direction, int rnti_type, int rnti,
int frame, int subframe, void *buf, int bufsize, int preamble) {
/****************************************************************************/
/* LTE */
/****************************************************************************/
void trace_lte(ev_data *d, int direction, int rnti_type, int rnti,
int frame, int subframe, void *buf, int bufsize, int preamble)
{
ssize_t ret;
int fsf;
int i;
@@ -100,15 +129,17 @@ void trace(ev_data *d, int direction, int rnti_type, int rnti,
if (ret != d->buf.osize) abort();
}
void ul(void *_d, event e) {
void ul(void *_d, event e)
{
ev_data *d = _d;
trace(d, DIRECTION_UPLINK, C_RNTI, e.e[d->ul_rnti].i,
e.e[d->ul_frame].i, e.e[d->ul_subframe].i,
e.e[d->ul_data].b, e.e[d->ul_data].bsize,
NO_PREAMBLE);
trace_lte(d, DIRECTION_UPLINK, C_RNTI, e.e[d->ul_rnti].i,
e.e[d->ul_frame].i, e.e[d->ul_subframe].i,
e.e[d->ul_data].b, e.e[d->ul_data].bsize,
NO_PREAMBLE);
}
void dl(void *_d, event e) {
void dl(void *_d, event e)
{
ev_data *d = _d;
if (e.e[d->dl_rnti].i == 0xffff) {
@@ -119,14 +150,15 @@ void dl(void *_d, event e) {
d->cur_sib++;
}
trace(d, DIRECTION_DOWNLINK,
e.e[d->dl_rnti].i != 0xffff ? C_RNTI : SI_RNTI, e.e[d->dl_rnti].i,
e.e[d->dl_frame].i, e.e[d->dl_subframe].i,
e.e[d->dl_data].b, e.e[d->dl_data].bsize,
NO_PREAMBLE);
trace_lte(d, DIRECTION_DOWNLINK,
e.e[d->dl_rnti].i != 0xffff ? C_RNTI : SI_RNTI, e.e[d->dl_rnti].i,
e.e[d->dl_frame].i, e.e[d->dl_subframe].i,
e.e[d->dl_data].b, e.e[d->dl_data].bsize,
NO_PREAMBLE);
}
void mib(void *_d, event e) {
void mib(void *_d, event e)
{
ev_data *d = _d;
if (d->no_mib) return;
@@ -134,30 +166,141 @@ void mib(void *_d, event e) {
if (d->max_mib && d->cur_mib == d->max_mib) return;
d->cur_mib++;
trace(d, DIRECTION_DOWNLINK, NO_RNTI, 0,
e.e[d->mib_frame].i, e.e[d->mib_subframe].i,
e.e[d->mib_data].b, e.e[d->mib_data].bsize,
NO_PREAMBLE);
trace_lte(d, DIRECTION_DOWNLINK, NO_RNTI, 0,
e.e[d->mib_frame].i, e.e[d->mib_subframe].i,
e.e[d->mib_data].b, e.e[d->mib_data].bsize,
NO_PREAMBLE);
}
void preamble(void *_d, event e) {
void preamble(void *_d, event e)
{
ev_data *d = _d;
trace(d, DIRECTION_UPLINK, NO_RNTI, 0,
e.e[d->preamble_frame].i, e.e[d->preamble_subframe].i,
NULL, 0,
e.e[d->preamble_preamble].i);
trace_lte(d, DIRECTION_UPLINK, NO_RNTI, 0,
e.e[d->preamble_frame].i, e.e[d->preamble_subframe].i,
NULL, 0,
e.e[d->preamble_preamble].i);
}
void rar(void *_d, event e) {
void rar(void *_d, event e)
{
ev_data *d = _d;
trace(d, DIRECTION_DOWNLINK, RA_RNTI, e.e[d->rar_rnti].i,
e.e[d->rar_frame].i, e.e[d->rar_subframe].i,
e.e[d->rar_data].b, e.e[d->rar_data].bsize,
NO_PREAMBLE);
trace_lte(d, DIRECTION_DOWNLINK, RA_RNTI, e.e[d->rar_rnti].i,
e.e[d->rar_frame].i, e.e[d->rar_subframe].i,
e.e[d->rar_data].b, e.e[d->rar_data].bsize,
NO_PREAMBLE);
}
/****************************************************************************/
/* NR */
/****************************************************************************/
#define MAC_NR_START_STRING "mac-nr"
#define MAC_NR_PAYLOAD_TAG 0x01
#define MAC_NR_RNTI_TAG 0x02
#define MAC_NR_FRAME_SLOT_TAG 0x07
#define NR_FDD_RADIO 1
#define NR_TDD_RADIO 2
#define NR_DIRECTION_UPLINK 0
#define NR_DIRECTION_DOWNLINK 1
#define NR_NO_RNTI 0
#define NR_RA_RNTI 2
#define NR_C_RNTI 3
void trace_nr(ev_data *d, int direction, int rnti_type, int rnti,
int frame, int slot, void *buf, int bufsize, int preamble)
{
ssize_t ret;
int i;
d->buf.osize = 0;
PUTS(&d->buf, MAC_NR_START_STRING);
PUTC(&d->buf, NR_TDD_RADIO);
PUTC(&d->buf, direction);
PUTC(&d->buf, rnti_type);
if (rnti_type == NR_C_RNTI || rnti_type == NR_RA_RNTI) {
PUTC(&d->buf, MAC_NR_RNTI_TAG);
PUTC(&d->buf, (rnti>>8) & 255);
PUTC(&d->buf, rnti & 255);
}
#if 0
/* for old versions of wireshark; not sure if correct */
int fsf = (frame << 4) + slot;
PUTC(&d->buf, 4 /* MAC_NR_FRAME_SUBFRAME_TAG */);
PUTC(&d->buf, (fsf>>8) & 255);
PUTC(&d->buf, fsf & 255);
#else
PUTC(&d->buf, MAC_NR_FRAME_SLOT_TAG);
PUTC(&d->buf, (frame>>8) & 255);
PUTC(&d->buf, frame & 255);
PUTC(&d->buf, (slot>>8) & 255);
PUTC(&d->buf, slot & 255);
#endif
PUTC(&d->buf, MAC_NR_PAYLOAD_TAG);
for (i = 0; i < bufsize; i++)
PUTC(&d->buf, ((char *)buf)[i]);
ret = sendto(d->socket, d->buf.obuf, d->buf.osize, 0,
(struct sockaddr *)&d->to, sizeof(struct sockaddr_in));
if (ret != d->buf.osize) abort();
}
void nr_ul(void *_d, event e)
{
ev_data *d = _d;
trace_nr(d, NR_DIRECTION_UPLINK, NR_C_RNTI, e.e[d->nr_ul_rnti].i,
e.e[d->nr_ul_frame].i, e.e[d->nr_ul_slot].i,
e.e[d->nr_ul_data].b, e.e[d->nr_ul_data].bsize, NO_PREAMBLE);
}
void nr_dl(void *_d, event e)
{
ev_data *d = _d;
trace_nr(d, NR_DIRECTION_DOWNLINK, NR_C_RNTI, e.e[d->nr_dl_rnti].i,
e.e[d->nr_dl_frame].i, e.e[d->nr_dl_slot].i,
e.e[d->nr_dl_data].b, e.e[d->nr_dl_data].bsize, NO_PREAMBLE);
}
void nr_mib(void *_d, event e)
{
ev_data *d = _d;
if (d->no_mib) return;
if (d->max_mib && d->cur_mib == d->max_mib) return;
d->cur_mib++;
trace_nr(d, NR_DIRECTION_DOWNLINK, NR_NO_RNTI, 0,
e.e[d->nr_mib_frame].i, e.e[d->nr_mib_slot].i,
e.e[d->nr_mib_data].b, e.e[d->nr_mib_data].bsize, NO_PREAMBLE);
}
void nr_rar(void *_d, event e)
{
ev_data *d = _d;
trace_nr(d, NR_DIRECTION_DOWNLINK, NR_RA_RNTI, e.e[d->nr_rar_rnti].i,
e.e[d->nr_rar_frame].i, e.e[d->nr_rar_slot].i,
e.e[d->nr_rar_data].b, e.e[d->nr_rar_data].bsize, NO_PREAMBLE);
}
/****************************************************************************/
/****************************************************************************/
void setup_data(ev_data *d, void *database, int ul_id, int dl_id, int mib_id,
int preamble_id, int rar_id) {
int preamble_id, int rar_id,
int nr_ul_id, int nr_dl_id, int nr_mib_id, int nr_rar_id)
{
database_event_format f;
int i;
d->ul_rnti = -1;
@@ -174,10 +317,27 @@ void setup_data(ev_data *d, void *database, int ul_id, int dl_id, int mib_id,
d->preamble_frame = -1;
d->preamble_subframe = -1;
d->preamble_preamble = -1;
d->rar_rnti = -1;
d->rar_frame = -1;
d->rar_subframe = -1;
d->rar_data = -1;
d->rar_rnti = -1;
d->rar_frame = -1;
d->rar_subframe = -1;
d->rar_data = -1;
d->nr_ul_rnti = -1;
d->nr_ul_frame = -1;
d->nr_ul_slot = -1;
d->nr_ul_data = -1;
d->nr_dl_rnti = -1;
d->nr_dl_frame = -1;
d->nr_dl_slot = -1;
d->nr_dl_data = -1;
d->nr_mib_frame = -1;
d->nr_mib_slot = -1;
d->nr_mib_data = -1;
d->nr_rar_rnti = -1;
d->nr_rar_frame = -1;
d->nr_rar_slot = -1;
d->nr_rar_data = -1;
#define G(var_name, var_type, var) \
if (!strcmp(f.name[i], var_name)) { \
if (strcmp(f.type[i], var_type)) goto error; \
@@ -247,6 +407,60 @@ void setup_data(ev_data *d, void *database, int ul_id, int dl_id, int mib_id,
if (d->rar_rnti == -1 || d->rar_frame == -1 || d->rar_subframe == -1 ||
d->rar_data == -1) goto error;
/* NR ul: rnti, frame, slot, data */
f = get_format(database, nr_ul_id);
for (i = 0; i < f.count; i++) {
G("rnti", "int", d->nr_ul_rnti);
G("frame", "int", d->nr_ul_frame);
G("slot", "int", d->nr_ul_slot);
G("data", "buffer", d->nr_ul_data);
}
if (d->nr_ul_rnti == -1 || d->nr_ul_frame == -1 || d->nr_ul_slot == -1 ||
d->nr_ul_data == -1)
goto error;
/* NR dl: rnti, frame, slot, data */
f = get_format(database, nr_dl_id);
for (i = 0; i < f.count; i++) {
G("rnti", "int", d->nr_dl_rnti);
G("frame", "int", d->nr_dl_frame);
G("slot", "int", d->nr_dl_slot);
G("data", "buffer", d->nr_dl_data);
}
if (d->nr_dl_rnti == -1 || d->nr_dl_frame == -1 || d->nr_dl_slot == -1 ||
d->nr_dl_data == -1)
goto error;
/* NR MIB: frame, slot, data */
f = get_format(database, nr_mib_id);
for (i = 0; i < f.count; i++) {
G("frame", "int", d->nr_mib_frame);
G("slot", "int", d->nr_mib_slot);
G("data", "buffer", d->nr_mib_data);
}
if (d->nr_mib_frame == -1 || d->nr_mib_slot== -1 || d->nr_mib_data == -1)
goto error;
/* NR RAR: rnti, frame, slot, data */
f = get_format(database, nr_rar_id);
for (i = 0; i < f.count; i++) {
G("rnti", "int", d->nr_rar_rnti);
G("frame", "int", d->nr_rar_frame);
G("slot", "int", d->nr_rar_slot);
G("data", "buffer", d->nr_rar_data);
}
if (d->nr_rar_rnti == -1 || d->nr_rar_frame == -1 || d->nr_rar_slot == -1 ||
d->nr_rar_data == -1)
goto error;
#undef G
return;
error:
@@ -254,7 +468,8 @@ error:
abort();
}
void *receiver(void *_d) {
void *receiver(void *_d)
{
ev_data *d = _d;
int s;
char buf[100000];
@@ -279,7 +494,8 @@ void *receiver(void *_d) {
return 0;
}
void usage(void) {
void usage(void)
{
printf(
"options:\n"
" -d <database file> this option is mandatory\n"
@@ -304,14 +520,16 @@ void usage(void) {
exit(1);
}
int main(int n, char **v) {
int main(int n, char **v)
{
char *database_filename = NULL;
char *input_filename = NULL;
void *database;
event_handler *h;
int in;
int i;
int ul_id, dl_id, mib_id = -1, preamble_id, rar_id;
int ul_id, dl_id, mib_id, preamble_id, rar_id;
int nr_ul_id, nr_dl_id, nr_mib_id, nr_rar_id;
ev_data d;
char *ip = DEFAULT_IP;
int port = DEFAULT_PORT;
@@ -382,6 +600,11 @@ int main(int n, char **v) {
on_off(database, "ENB_PHY_INITIATE_RA_PROCEDURE", is_on, 1);
on_off(database, "ENB_MAC_UE_DL_RAR_PDU_WITH_DATA", is_on, 1);
on_off(database, "GNB_MAC_UL_PDU_WITH_DATA", is_on, 1);
on_off(database, "GNB_MAC_DL_PDU_WITH_DATA", is_on, 1);
on_off(database, "GNB_PHY_MIB", is_on, 1);
on_off(database, "GNB_MAC_DL_RAR_PDU_WITH_DATA", is_on, 1);
/* activate selected traces */
if (socket_send(in, &mt, 1) == -1 ||
socket_send(in, &number_of_events, sizeof(int)) == -1 ||
@@ -398,12 +621,26 @@ int main(int n, char **v) {
mib_id = event_id_from_name(database, "ENB_PHY_MIB");
preamble_id = event_id_from_name(database, "ENB_PHY_INITIATE_RA_PROCEDURE");
rar_id = event_id_from_name(database, "ENB_MAC_UE_DL_RAR_PDU_WITH_DATA");
setup_data(&d, database, ul_id, dl_id, mib_id, preamble_id, rar_id);
nr_ul_id = event_id_from_name(database, "GNB_MAC_UL_PDU_WITH_DATA");
nr_dl_id = event_id_from_name(database, "GNB_MAC_DL_PDU_WITH_DATA");
nr_mib_id = event_id_from_name(database, "GNB_PHY_MIB");
nr_rar_id = event_id_from_name(database, "GNB_MAC_DL_RAR_PDU_WITH_DATA");
setup_data(&d, database, ul_id, dl_id, mib_id, preamble_id, rar_id,
nr_ul_id, nr_dl_id, nr_mib_id, nr_rar_id);
register_handler_function(h, ul_id, ul, &d);
register_handler_function(h, dl_id, dl, &d);
register_handler_function(h, mib_id, mib, &d);
register_handler_function(h, preamble_id, preamble, &d);
register_handler_function(h, rar_id, rar, &d);
register_handler_function(h, nr_ul_id, nr_ul, &d);
register_handler_function(h, nr_dl_id, nr_dl, &d);
register_handler_function(h, nr_mib_id, nr_mib, &d);
register_handler_function(h, nr_rar_id, nr_rar, &d);
d.socket = socket(AF_INET, SOCK_DGRAM, 0);
if (d.socket == -1) {
@@ -424,8 +661,10 @@ int main(int n, char **v) {
if (e.type == -1) break;
if (!(e.type == ul_id || e.type == dl_id || e.type == mib_id ||
e.type == preamble_id || e.type == rar_id)) continue;
if (!(e.type == ul_id || e.type == dl_id || e.type == mib_id ||
e.type == preamble_id || e.type == rar_id ||
e.type == nr_ul_id || e.type == nr_dl_id ||
e.type == nr_mib_id || e.type == nr_rar_id)) continue;
handle_event(h, e);
}

View File

@@ -101,11 +101,11 @@ static inline uint64_t BIT_STRING_to_uint64(BIT_STRING_t *asn) {
shift = ((asn->size - 1) * 8) - asn->bits_unused;
for (index = 0; index < (asn->size - 1); index++) {
result |= asn->buf[index] << shift;
result |= ((uint64_t)asn->buf[index]) << shift;
shift -= 8;
}
result |= asn->buf[index] >> asn->bits_unused;
result |= ((uint64_t)asn->buf[index]) >> asn->bits_unused;
return result;
}

View File

@@ -1,490 +0,0 @@
/*
* 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
*/
#include "assertions.h"
#include "memory_pools.h"
#if T_TRACER
#include <string.h>
#include "T.h"
#endif
/*------------------------------------------------------------------------------*/
const static int mp_debug = 0;
# define MP_DEBUG(x, args...) do { if (mp_debug) fprintf(stdout, "[MP][D]"x, ##args); fflush (stdout); } \
while(0)
/*------------------------------------------------------------------------------*/
#ifndef CHARS_TO_UINT32
#define CHARS_TO_UINT32(c1, c2, c3, c4) (((c1) << 24) | ((c2) << 16) | ((c3) << 8) | (c4))
#endif
#define MEMORY_POOL_ITEM_INFO_NUMBER 2
/*------------------------------------------------------------------------------*/
typedef int32_t items_group_position_t;
typedef int32_t items_group_index_t;
typedef union items_group_positions_u {
uint64_t all;
struct {
items_group_position_t put;
items_group_position_t get;
} ind;
} items_group_positions_t;
typedef struct items_group_s {
items_group_position_t number_plus_one;
volatile uint32_t minimum;
volatile items_group_positions_t positions;
volatile items_group_index_t *indexes;
} items_group_t;
/*------------------------------------------------------------------------------*/
//static const items_group_position_t ITEMS_GROUP_POSITION_INVALID = -1;
static const items_group_index_t ITEMS_GROUP_INDEX_INVALID = -1;
/*------------------------------------------------------------------------------*/
typedef uint32_t pool_item_start_mark_t;
typedef uint32_t pool_item_end_mark_t;
typedef uint32_t memory_pool_data_t;
typedef uint32_t pool_start_mark_t;
typedef uint32_t pools_start_mark_t;
typedef uint8_t pool_id_t;
typedef uint8_t item_status_t;
typedef struct memory_pool_item_start_s {
pool_item_start_mark_t start_mark;
pool_id_t pool_id;
item_status_t item_status;
uint16_t info[MEMORY_POOL_ITEM_INFO_NUMBER];
} memory_pool_item_start_t;
typedef struct memory_pool_item_end_s {
pool_item_end_mark_t end_mark;
} memory_pool_item_end_t;
typedef struct memory_pool_item_s {
memory_pool_item_start_t start;
memory_pool_data_t data[0];
memory_pool_item_end_t end;
} memory_pool_item_t;
typedef struct memory_pool_s {
pool_start_mark_t start_mark;
pool_id_t pool_id;
uint32_t item_data_number;
uint32_t pool_item_size;
items_group_t items_group_free;
memory_pool_item_t *items;
} memory_pool_t;
typedef struct memory_pools_s {
pools_start_mark_t start_mark;
uint32_t pools_number;
uint32_t pools_defined;
memory_pool_t *pools;
} memory_pools_t;
/*------------------------------------------------------------------------------*/
static const uint32_t MAX_POOLS_NUMBER = 20;
static const uint32_t MAX_POOL_ITEMS_NUMBER = 200 * 1000;
static const uint32_t MAX_POOL_ITEM_SIZE = 100 * 1000;
static const pool_item_start_mark_t POOL_ITEM_START_MARK = CHARS_TO_UINT32 ('P', 'I', 's', 't');
static const pool_item_end_mark_t POOL_ITEM_END_MARK = CHARS_TO_UINT32 ('p', 'i', 'E', 'N');
static const item_status_t ITEM_STATUS_FREE = 'F';
static const item_status_t ITEM_STATUS_ALLOCATED = 'a';
static const pool_start_mark_t POOL_START_MARK = CHARS_TO_UINT32 ('P', '_', 's', 't');
static const pools_start_mark_t POOLS_START_MARK = CHARS_TO_UINT32 ('P', 'S', 's', 't');
/*------------------------------------------------------------------------------*/
static inline uint32_t items_group_number_items (items_group_t *items_group) {
return items_group->number_plus_one - 1;
}
static inline uint32_t items_group_free_items (items_group_t *items_group) {
items_group_positions_t positions;
uint32_t free_items;
positions.all = items_group->positions.all;
free_items = items_group->number_plus_one + positions.ind.put - positions.ind.get;
free_items %= items_group->number_plus_one;
return free_items;
}
static inline items_group_index_t items_group_get_free_item (items_group_t *items_group) {
items_group_position_t get_raw;
items_group_position_t put;
items_group_position_t get;
items_group_position_t free_items;
items_group_index_t index = ITEMS_GROUP_INDEX_INVALID;
/* Get current put position */
put = items_group->positions.ind.put % items_group->number_plus_one;
/* Get current get position and increase it */
get_raw = __sync_fetch_and_add (&items_group->positions.ind.get, 1);
get = get_raw % items_group->number_plus_one;
if(put == get) {
/* No more item free, restore previous position */
__sync_fetch_and_sub (&items_group->positions.ind.get, 1);
} else {
/* Get index at current get position */
index = items_group->indexes[get];
if (index <= ITEMS_GROUP_INDEX_INVALID) {
/* Index has not yet been completely freed, restore previous get position */
__sync_fetch_and_sub (&items_group->positions.ind.get, 1);
} else {
if (get_raw == items_group->number_plus_one) {
/* Wrap get position */
__sync_fetch_and_sub (&items_group->positions.ind.get, items_group->number_plus_one);
}
free_items = items_group_free_items(items_group);
/* Updates minimum free items if needed */
while (items_group->minimum > free_items) {
items_group->minimum = free_items;
}
/* Clear index at current get position to indicate that item is free */
items_group->indexes[get] = ITEMS_GROUP_INDEX_INVALID;
}
}
return (index);
}
static inline int items_group_put_free_item (items_group_t *items_group, items_group_index_t index) {
items_group_position_t put_raw;
items_group_position_t put;
/* Get current put position and increase it */
put_raw = __sync_fetch_and_add (&items_group->positions.ind.put, 1);
put = put_raw % items_group->number_plus_one;
if (put_raw == items_group->number_plus_one) {
/* Wrap position */
__sync_fetch_and_sub (&items_group->positions.ind.put, items_group->number_plus_one);
}
AssertError (items_group->indexes[put] <= ITEMS_GROUP_INDEX_INVALID, return (EXIT_FAILURE),
"Index at current put position (%d) is not marked as free (%d)!\n", put, items_group->number_plus_one);
/* Save freed item index at current put position */
items_group->indexes[put] = index;
return (EXIT_SUCCESS);
}
/*------------------------------------------------------------------------------*/
static inline memory_pools_t *memory_pools_from_handler (memory_pools_handle_t memory_pools_handle) {
memory_pools_t *memory_pools;
/* Recover memory_pools */
memory_pools = (memory_pools_t *) memory_pools_handle;
/* Sanity check on passed handle */
AssertError (memory_pools->start_mark == POOLS_START_MARK, memory_pools = NULL,
"Handle %p is not a valid memory pools handle, start mark is missing!\n", memory_pools_handle);
return (memory_pools);
}
static inline memory_pool_item_t *memory_pool_item_from_handler (memory_pool_item_handle_t memory_pool_item_handle) {
void *address;
memory_pool_item_t *memory_pool_item;
/* Recover memory_pools */
address = memory_pool_item_handle - sizeof(memory_pool_item_start_t);
memory_pool_item = (memory_pool_item_t *) address;
/* Sanity check on passed handle */
AssertError (memory_pool_item->start.start_mark == POOL_ITEM_START_MARK, memory_pool_item = NULL,
"Handle %p is not a valid memory pool item handle, start mark is missing!\n", memory_pool_item);
return (memory_pool_item);
}
static inline memory_pool_item_t *memory_pool_item_from_index (memory_pool_t *memory_pool, items_group_index_t index) {
void *address;
address = (void *) memory_pool->items;
address += index * memory_pool->pool_item_size;
return (address);
}
/*------------------------------------------------------------------------------*/
memory_pools_handle_t memory_pools_create (uint32_t pools_number) {
memory_pools_t *memory_pools;
pool_id_t pool;
AssertFatal (pools_number <= MAX_POOLS_NUMBER, "Too many memory pools requested (%d/%d)!\n", pools_number, MAX_POOLS_NUMBER); /* Limit to a reasonable number of pools */
/* Allocate memory_pools */
memory_pools = malloc (sizeof(memory_pools_t));
AssertFatal (memory_pools != NULL, "Memory pools structure allocation failed!\n");
/* Initialize memory_pools */
{
memory_pools->start_mark = POOLS_START_MARK;
memory_pools->pools_number = pools_number;
memory_pools->pools_defined = 0;
/* Allocate pools */
memory_pools->pools = calloc (pools_number, sizeof(memory_pool_t));
AssertFatal (memory_pools->pools != NULL, "Memory pools allocation failed!\n");
/* Initialize pools */
for (pool = 0; pool < pools_number; pool++) {
memory_pools->pools[pool].start_mark = POOL_START_MARK;
}
}
return ((memory_pools_handle_t) memory_pools);
}
char *memory_pools_statistics(memory_pools_handle_t memory_pools_handle) {
memory_pools_t *memory_pools;
pool_id_t pool;
char *statistics;
int printed_chars;
uint32_t allocated_pool_memory;
uint32_t allocated_pools_memory = 0;
items_group_t *items_group;
uint32_t pool_items_size;
/* Recover memory_pools */
memory_pools = memory_pools_from_handler (memory_pools_handle);
AssertFatal (memory_pools != NULL, "Failed to retrieve memory pool for handle %p!\n", memory_pools_handle);
statistics = malloc(memory_pools->pools_defined * 200);
printed_chars = sprintf (&statistics[0], "Pool: size, number, minimum, free, address space and memory used in Kbytes\n");
for (pool = 0; pool < memory_pools->pools_defined; pool++) {
items_group = &memory_pools->pools[pool].items_group_free;
allocated_pool_memory = items_group_number_items (items_group) * memory_pools->pools[pool].pool_item_size;
allocated_pools_memory += allocated_pool_memory;
pool_items_size = memory_pools->pools[pool].item_data_number * sizeof(memory_pool_data_t);
printed_chars += sprintf (&statistics[printed_chars], " %2u: %6u, %6u, %6u, %6u, [%p-%p] %6u\n",
pool, pool_items_size,
items_group_number_items (items_group),
items_group->minimum,
items_group_free_items (items_group),
memory_pools->pools[pool].items,
((void *) memory_pools->pools[pool].items) + allocated_pool_memory,
allocated_pool_memory / (1024));
}
printed_chars = sprintf (&statistics[printed_chars], "Pools memory %u Kbytes\n", allocated_pools_memory / (1024));
return (statistics);
}
int memory_pools_add_pool (memory_pools_handle_t memory_pools_handle, uint32_t pool_items_number, uint32_t pool_item_size) {
memory_pools_t *memory_pools;
memory_pool_t *memory_pool;
pool_id_t pool;
items_group_index_t item_index;
memory_pool_item_t *memory_pool_item;
AssertFatal (pool_items_number <= MAX_POOL_ITEMS_NUMBER, "Too many items for a memory pool (%u/%d)!\n", pool_items_number, MAX_POOL_ITEMS_NUMBER); /* Limit to a reasonable number of items */
AssertFatal (pool_item_size <= MAX_POOL_ITEM_SIZE, "Item size is too big for memory pool items (%u/%d)!\n", pool_item_size, MAX_POOL_ITEM_SIZE); /* Limit to a reasonable item size */
/* Recover memory_pools */
memory_pools = memory_pools_from_handler (memory_pools_handle);
AssertFatal (memory_pools != NULL, "Failed to retrieve memory pool for handle %p!\n", memory_pools_handle);
/* Check number of already created pools */
AssertFatal (memory_pools->pools_defined < memory_pools->pools_number, "Can not allocate more memory pool (%d)!\n", memory_pools->pools_number);
/* Select pool */
pool = memory_pools->pools_defined;
memory_pool = &memory_pools->pools[pool];
/* Initialize pool */
{
memory_pool->pool_id = pool;
/* Item size in memory_pool_data_t items by excess */
memory_pool->item_data_number = (pool_item_size + sizeof(memory_pool_data_t) - 1) / sizeof(memory_pool_data_t);
memory_pool->pool_item_size = (memory_pool->item_data_number * sizeof(memory_pool_data_t)) + sizeof(memory_pool_item_t);
memory_pool->items_group_free.number_plus_one = pool_items_number + 1;
memory_pool->items_group_free.minimum = pool_items_number;
memory_pool->items_group_free.positions.ind.put = pool_items_number;
memory_pool->items_group_free.positions.ind.get = 0;
/* Allocate free indexes */
memory_pool->items_group_free.indexes = malloc(memory_pool->items_group_free.number_plus_one * sizeof(items_group_index_t));
AssertFatal (memory_pool->items_group_free.indexes != NULL, "Memory pool indexes allocation failed!\n");
/* Initialize free indexes */
for (item_index = 0; item_index < pool_items_number; item_index++) {
memory_pool->items_group_free.indexes[item_index] = item_index;
}
/* Last index is not allocated */
memory_pool->items_group_free.indexes[item_index] = ITEMS_GROUP_INDEX_INVALID;
/* Allocate items */
memory_pool->items = calloc (pool_items_number, memory_pool->pool_item_size);
AssertFatal (memory_pool->items != NULL, "Memory pool items allocation failed!\n");
/* Initialize items */
for (item_index = 0; item_index < pool_items_number; item_index++) {
memory_pool_item = memory_pool_item_from_index (memory_pool, item_index);
memory_pool_item->start.start_mark = POOL_ITEM_START_MARK;
memory_pool_item->start.pool_id = pool;
memory_pool_item->start.item_status = ITEM_STATUS_FREE;
memory_pool_item->data[memory_pool->item_data_number] = POOL_ITEM_END_MARK;
}
}
memory_pools->pools_defined ++;
return (0);
}
memory_pool_item_handle_t memory_pools_allocate (memory_pools_handle_t memory_pools_handle, uint32_t item_size, uint16_t info_0, uint16_t info_1) {
memory_pools_t *memory_pools;
memory_pool_item_t *memory_pool_item;
memory_pool_item_handle_t memory_pool_item_handle = NULL;
pool_id_t pool;
items_group_index_t item_index = ITEMS_GROUP_INDEX_INVALID;
/* Recover memory_pools */
memory_pools = memory_pools_from_handler (memory_pools_handle);
AssertError (memory_pools != NULL, {}, "Failed to retrieve memory pool for handle %p!\n", memory_pools_handle);
for (pool = 0; pool < memory_pools->pools_defined; pool++) {
if ((memory_pools->pools[pool].item_data_number * sizeof(memory_pool_data_t)) < item_size) {
/* This memory pool has too small items, skip it */
continue;
}
item_index = items_group_get_free_item(&memory_pools->pools[pool].items_group_free);
if (item_index <= ITEMS_GROUP_INDEX_INVALID) {
/* Allocation failed, skip this pool */
continue;
} else {
/* Allocation succeed, exit searching loop */
break;
}
}
if (item_index > ITEMS_GROUP_INDEX_INVALID) {
/* Convert item index into memory_pool_item address */
memory_pool_item = memory_pool_item_from_index (&memory_pools->pools[pool], item_index);
/* Sanity check on item status, must be free */
AssertFatal (memory_pool_item->start.item_status == ITEM_STATUS_FREE, "Item status is not set to free (%d) in pool %u, item %d!\n",
memory_pool_item->start.item_status, pool, item_index);
memory_pool_item->start.item_status = ITEM_STATUS_ALLOCATED;
memory_pool_item->start.info[0] = info_0;
memory_pool_item->start.info[1] = info_1;
memory_pool_item_handle = memory_pool_item->data;
MP_DEBUG(" Alloc [%2u][%6d]{%6d}, %3u %3u, %6u, %p, %p, %p\n",
pool, item_index,
items_group_free_items (&memory_pools->pools[pool].items_group_free),
info_0, info_1,
item_size,
memory_pools->pools[pool].items,
memory_pool_item,
memory_pool_item_handle);
} else {
MP_DEBUG(" Alloc [--][------]{------}, %3u %3u, %6u, failed!\n", info_0, info_1, item_size);
}
return memory_pool_item_handle;
}
int memory_pools_free (memory_pools_handle_t memory_pools_handle, memory_pool_item_handle_t memory_pool_item_handle, uint16_t info_0) {
memory_pools_t *memory_pools;
memory_pool_item_t *memory_pool_item;
pool_id_t pool;
items_group_index_t item_index;
uint32_t item_size;
uint32_t pool_item_size;
uint16_t info_1;
int result;
/* Recover memory_pools */
memory_pools = memory_pools_from_handler (memory_pools_handle);
AssertError (memory_pools != NULL, return (EXIT_FAILURE), "Failed to retrieve memory pools for handle %p!\n", memory_pools_handle);
/* Recover memory pool item */
memory_pool_item = memory_pool_item_from_handler (memory_pool_item_handle);
AssertError (memory_pool_item != NULL, return (EXIT_FAILURE), "Failed to retrieve memory pool item for handle %p!\n", memory_pool_item_handle);
info_1 = memory_pool_item->start.info[1];
/* Recover pool index */
pool = memory_pool_item->start.pool_id;
AssertFatal (pool < memory_pools->pools_defined, "Pool index is invalid (%u/%u)!\n", pool, memory_pools->pools_defined);
item_size = memory_pools->pools[pool].item_data_number;
pool_item_size = memory_pools->pools[pool].pool_item_size;
item_index = (((void *) memory_pool_item) - ((void *) memory_pools->pools[pool].items)) / pool_item_size;
MP_DEBUG(" Free [%2u][%6d]{%6d}, %3u %3u, %p, %p, %p, %u\n",
pool, item_index,
items_group_free_items (&memory_pools->pools[pool].items_group_free),
memory_pool_item->start.info[0], info_1,
memory_pool_item_handle, memory_pool_item,
memory_pools->pools[pool].items, ((uint32_t) (item_size * sizeof(memory_pool_data_t))));
/* Sanity check on calculated item index */
AssertFatal (memory_pool_item == memory_pool_item_from_index(&memory_pools->pools[pool], item_index),
"Incorrect memory pool item address (%p, %p) for pool %u, item %d!\n",
memory_pool_item,(void *)memory_pool_item_from_index(&memory_pools->pools[pool], item_index), pool, item_index);
/* Sanity check on end marker, must still be present (no write overflow) */
AssertFatal (memory_pool_item->data[item_size] == POOL_ITEM_END_MARK,
"Memory pool item is corrupted, end mark is not present for pool %u, item %d!\n", pool, item_index);
/* Sanity check on item status, must be allocated */
AssertFatal (memory_pool_item->start.item_status == ITEM_STATUS_ALLOCATED,
"Trying to free a non allocated (%x) memory pool item (pool %u, item %d)!\n",
memory_pool_item->start.item_status, pool, item_index);
memory_pool_item->start.item_status = ITEM_STATUS_FREE;
result = items_group_put_free_item(&memory_pools->pools[pool].items_group_free, item_index);
AssertError (result == EXIT_SUCCESS, {}, "Failed to free memory pool item (pool %u, item %d)!\n", pool, item_index);
return (result);
}
void memory_pools_set_info (memory_pools_handle_t memory_pools_handle, memory_pool_item_handle_t memory_pool_item_handle, int index, uint16_t info) {
memory_pools_t *memory_pools;
memory_pool_item_t *memory_pool_item;
pool_id_t pool;
items_group_index_t item_index;
uint32_t item_size;
uint32_t pool_item_size;
AssertFatal (index < MEMORY_POOL_ITEM_INFO_NUMBER, "Incorrect info index (%d/%d)!\n", index, MEMORY_POOL_ITEM_INFO_NUMBER);
/* Recover memory pool item */
memory_pool_item = memory_pool_item_from_handler (memory_pool_item_handle);
AssertFatal (memory_pool_item != NULL, "Failed to retrieve memory pool item for handle %p!\n", memory_pool_item_handle);
/* Set info[1] */
memory_pool_item->start.info[index] = info;
/* Check item validity and log (not mandatory) */
if (1) {
/* Recover memory_pools */
memory_pools = memory_pools_from_handler (memory_pools_handle);
AssertFatal (memory_pools != NULL, "Failed to retrieve memory pool for handle %p!\n", memory_pools_handle);
/* Recover pool index */
pool = memory_pool_item->start.pool_id;
AssertFatal (pool < memory_pools->pools_defined, "Pool index is invalid (%u/%u)!\n", pool, memory_pools->pools_defined);
item_size = memory_pools->pools[pool].item_data_number;
pool_item_size = memory_pools->pools[pool].pool_item_size;
item_index = (((void *) memory_pool_item) - ((void *) memory_pools->pools[pool].items)) / pool_item_size;
MP_DEBUG(" Info [%2u][%6d]{%6d}, %3u %3u, %p, %p, %p, %u\n",
pool, item_index,
items_group_free_items (&memory_pools->pools[pool].items_group_free),
memory_pool_item->start.info[0], memory_pool_item->start.info[1],
memory_pool_item_handle, memory_pool_item,
memory_pools->pools[pool].items, ((uint32_t) (item_size * sizeof(memory_pool_data_t))));
/* Sanity check on calculated item index */
AssertFatal (memory_pool_item == memory_pool_item_from_index(&memory_pools->pools[pool], item_index),
"Incorrect memory pool item address (%p, %p) for pool %u, item %d!\n",
memory_pool_item, (void *)memory_pool_item_from_index(&memory_pools->pools[pool], item_index), pool, item_index);
/* Sanity check on end marker, must still be present (no write overflow) */
AssertFatal (memory_pool_item->data[item_size] == POOL_ITEM_END_MARK,
"Memory pool item is corrupted, end mark is not present for pool %u, item %d!\n", pool, item_index);
/* Sanity check on item status, must be allocated */
AssertFatal (memory_pool_item->start.item_status == ITEM_STATUS_ALLOCATED,
"Trying to free a non allocated (%x) memory pool item (pool %u, item %d)\n",
memory_pool_item->start.item_status, pool, item_index);
}
}

View File

@@ -49,11 +49,14 @@ typedef enum {
MSC_RLC_ENB,
MSC_PDCP_ENB,
MSC_RRC_ENB,
MSC_RRC_GNB,
MSC_IP_ENB,
MSC_S1AP_ENB,
MSC_NGAP_GNB,
MSC_GTPU_ENB,
MSC_GTPU_SGW,
MSC_S1AP_MME,
MSC_NGAP_AMF,
MSC_MMEAPP_MME,
MSC_NAS_MME,
MSC_NAS_EMM_MME,

View File

@@ -16,3 +16,8 @@
#include "openair2/COMMON/gtpv1_u_messages_def.h"
#include "openair2/COMMON/flexran_messages_def.h"
#include "openair2/COMMON/f1ap_messages_def.h"
#include "openair2/COMMON/ngap_messages_def.h"
#if ITTI_SIM
#include "openair2/COMMON/itti_sim_messages_def.h"
#endif

View File

@@ -194,7 +194,8 @@ task_list_t tasks[TASK_MAX];
t->next_timer=UINT64_MAX;
// Proceed expired timer
for ( auto it=t->timer_map.begin() ; it != t->timer_map.end() ; ++it ) {
for ( auto it=t->timer_map.begin() , next_it = it; it != t->timer_map.end() ; it = next_it ) {
++next_it;
if ( it->second.timeout < current_time ) {
MessageDef *message = itti_alloc_new_message(TASK_TIMER, TIMER_HAS_EXPIRED);
message->ittiMsg.timer_has_expired.timer_id=it->first;

View File

@@ -230,6 +230,7 @@ typedef struct IttiMsgText_s {
#include <openair2/COMMON/sctp_messages_types.h>
#include <openair2/COMMON/udp_messages_types.h>
#include <openair2/COMMON/gtpv1_u_messages_types.h>
#include <openair2/COMMON/ngap_messages_types.h>
#include <openair3/SCTP/sctp_eNB_task.h>
#include <openair3/NAS/UE/nas_proc_defs.h>
#include <openair3/NAS/UE/ESM/esmData.h>
@@ -260,6 +261,11 @@ typedef struct IttiMsgText_s {
void *rrc_enb_process_itti_msg(void *);
#include <openair3/SCTP/sctp_eNB_task.h>
#include <openair3/S1AP/s1ap_eNB.h>
#include <openair3/NGAP/ngap_gNB.h>
#ifdef ITTI_SIM
#include <openair2/COMMON/itti_sim_messages_types.h>
#endif
/*
static const char *const messages_definition_xml = {
@@ -312,6 +318,7 @@ void * rrc_enb_process_msg(void*);
TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL,NULL)\
TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_NGAP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_X2AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_M2AP_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_M2AP_MCE, TASK_PRIORITY_MED, 200, NULL, NULL) \
@@ -329,6 +336,7 @@ void * rrc_enb_process_msg(void*);
TASK_DEF(TASK_RLC_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_PDCP_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_NRUE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_NAS_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RAL_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_MSC, TASK_PRIORITY_MED, 200, NULL, NULL)\
@@ -336,6 +344,8 @@ void * rrc_enb_process_msg(void*);
TASK_DEF(TASK_UDP, TASK_PRIORITY_MED, 1000, NULL, NULL)\
TASK_DEF(TASK_CU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_DU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_UE_SIM, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_GNB_SIM, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_MAX, TASK_PRIORITY_MED, 200, NULL, NULL)
#define TASK_DEF(TaskID, pRIO, qUEUEsIZE, FuNc, ThreadFunc) { pRIO, qUEUEsIZE, #TaskID, FuNc, ThreadFunc },

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