Commit Graph

1884 Commits

Author SHA1 Message Date
David Rupprecht 24123313bf Added MAC NR RA procedure with a minimal test case 2021-02-16 09:42:09 +01:00
Xavier Arteaga 2e39e103f8 Minor NR related corrections 2021-02-15 12:54:17 +01:00
Xavier Arteaga 9faa2d5fcd SRSUE: Automatic DL-HARQ Reset for every TTI and Generate PUCCH baseband signal 2021-02-15 12:54:17 +01:00
Xavier Arteaga d807ccc3dd SRSUE: Initial NR-PUCCH HARQ feedback 2021-02-15 12:54:17 +01:00
Xavier Arteaga 818f3ea7c7 Initial NR-PDSCH HARQ-ACK/NACK procedure 2021-02-15 12:54:17 +01:00
Andre Puschmann f0818275f0 ue,phy: reduce log level when 2nd grant for same PID is registered
this resolves issue #2277 in which a warning was logged when
the CC worker decoded a 2nd phantom PDDCH.

It's difficult to avoid this 2nd PDDCH without addional computation
that we don't want add at this stage.

Rather than filtering out the Warning in the log post-processing,
we reduce the log level to info.
2021-02-13 11:03:45 +01:00
Francisco dc4283c572 added cmake functions as helpers to set labels in ctests 2021-02-12 20:27:31 +01:00
Pedro Alvarez dd6d6f731d Passing SN provided by upper layers to PDCP entity. Using it to calculate TX_COUNT if passed. 2021-02-12 11:57:36 +00:00
David Rupprecht 4789860bdd Fixes a mismatching between bands in the band combination and feature set 2021-02-12 12:42:37 +01:00
David Rupprecht 14cc25f181 Fixes crash due to not exisiting pointer to log in run time 2021-02-11 15:12:48 +01:00
faluco 62fcf04083 Ported the all radio classes to use srslog. 2021-02-11 14:23:14 +01:00
Francisco c2dfe615e7 fixed alignment of LIBLTE_BYTE_MSG_STRUCT to reflect the one of byte_buffer. Add bzero in liblte packers 2021-02-11 13:09:06 +00:00
faluco 9d15a44c73
Port lib/phy to srslog (#2298)
* - Ported the channel class to srslog.
- Removed all newlines of log messages in lib/phy.

* Remove more newlines that use the C debug macros.
2021-02-10 13:46:25 +01:00
Andre Puschmann 6eed6f622f mac_nr: update RA related function in MAC/PHY interface
* expose interface to trigger PRACH from MAC
* indicate PRACH tx from PHY
* add temporary RAR PDU handling with Msg3 grant indication to PHY
2021-02-08 22:15:09 +01:00
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 2021-02-07 18:48:21 +00:00
Francisco 04ab4eefcd use new make_byte_buffer() helper method to create unique_byte_buffers 2021-02-07 18:48:21 +00:00
Francisco 1e2153769e remove byte buffer pool cleanup method and unnecessary mutexes 2021-02-07 18:48:21 +00:00
Francisco 0c7c317be5 refactor byte_buffer class and move it to separate file 2021-02-07 18:48:21 +00:00
Pedro Alvarez bb0e31feda Reduce log level of SDUs dropped in the stack to info. Added ul_dropped_sdus to stack metrics. 2021-02-05 16:48:04 +00:00
Xavier Arteaga aef0397658 SRSUE: NR worker reset Tx buffer and PUSCH data payload bytes from 0 to 255 2021-02-05 15:55:03 +01:00
Xavier Arteaga a19671802e Added SRSUE NR-PUSCH initial procedures 2021-02-05 15:55:03 +01:00
David Rupprecht 3dab82c42f Added interface that allows to update the lcid in case of a nr reconfiguration
nr rrc updates gw lcid if reconf was received
2021-02-05 11:08:08 +01:00
faluco 821925a273 - Upgrade to srslog the loggers in lib/mac.
- Adapted users of these classes and tests.
2021-02-04 18:37:00 +01:00
Xavier Arteaga a8099d0df9 Fix SRSUE compilation without 5GNR 2021-02-04 10:51:47 +01:00
Xavier Arteaga a2d9b436d9 SRSUE: add NR stack to PHY and initial decoded PDU push 2021-02-04 10:51:47 +01:00
Xavier Arteaga e65c145704 SRSUE: Added hard-coded NR-PUSCH resources 2021-02-04 10:51:47 +01:00
Xavier Arteaga 77f0a53abd Added DCI Format 0_0 unpacking and more NR-PUSCH procedures 2021-02-04 10:51:47 +01:00
Xavier Arteaga b150e45129 Renamed NR-PHY state and fix license headers 2021-02-04 10:51:47 +01:00
Andre Puschmann 8e13f04684 mac_pcap: refactor MAC PCAP and include NR RAT into same object
after adding the thread-safe PCAP writer functionality to the EUTRA
MAC object it became clear that we don't wont to replicate the
same for the NR object.

This patch therefore refactors the class that now supports both EUTRA and
NR rats. The old mac_nr_pcap.[h/cc] has been deleted. All test-cases
and usages now use the new object that needs to pass the RAT type in
the ctor.

this patch addresses the last open point of #2160
2021-02-03 17:21:57 +01:00
faluco a7bb3ce7d0 Remove unused variable in vnf_phy_nr. 2021-02-03 14:15:27 +01:00
faluco 79eca0980d - Ported fsm.h to srslog.
- Adapted and removed old loggers in tests and code that used fsm.h
2021-02-03 14:15:27 +01:00
faluco d37a07a47f Replaced loggers in buffer_pool.h 2021-02-03 14:15:27 +01:00
faluco f8485fb799 Replaced loggers to srslog in PNF and VNF classes. 2021-02-03 14:15:27 +01:00
Andre Puschmann a827350f7c mux: avoid unneeded call to msg3_flush() in ctor
this causes a debug log line as the first message in every ue.log because
the loggers/loglevels aren't configured yet.

22:10:02.463396 [MAC ] [D] [    0] Msg3 buffer flushed

the msg3_flush isn't needed because all variables are initialized.
2021-02-03 10:24:32 +01:00
Andre Puschmann ecf7eaec5c ue_stack_lte: expose MAC NR interface for NSA configs 2021-02-03 10:23:18 +01:00
Andre Puschmann 5ec78be872 nas: log switch on/off in info mode 2021-02-03 09:55:26 +01:00
Xavier Arteaga aaa789f530 Removed unused logger 2021-02-02 15:23:14 +01:00
Xavier Arteaga 92c4a38fc2 Fix logger for NR PHY 2021-02-02 15:23:14 +01:00
Xavier Arteaga 2421f2cd99 Multiple PHY fixes and NR-PHY configuration refactor 2021-02-02 15:23:14 +01:00
Xavier Arteaga b652cd68a5 Refactored NR PHY configuration to accept multiple CORESETs/SearchSpaces 2021-02-02 15:23:14 +01:00
Xavier Arteaga 10a7b63c6a NR-UE PHY transmits PRACH in all oportunities 2021-02-02 15:23:14 +01:00
Andre Puschmann df967d95b1 rrc_nr: extract new UE identity from RRC reconfig that tell MAC
required for contention-free RA on NR carrier
2021-02-02 14:13:25 +01:00
Andre Puschmann f5c945dc2f mac_nr: add interface to set C-RNTI and contention ID from RRC
used during contention-based/free RA
2021-02-02 14:13:25 +01:00
faluco ac62e3c398 Fix the priority of logging levels in places where we before logging we check if a certain log level is enabled. 2021-02-01 20:18:55 +01:00
Andre Puschmann cbedb65247 nas: log warning when NAS timer expires
this allows to let test cases fail based on warnings when
NAS events/actions timeout
2021-02-01 17:08:57 +01:00
Andre Puschmann dadb34f0ab rrc: fix missing newline in console output 2021-02-01 14:26:49 +01:00
Andre Puschmann 1aadc5c53e mac_nr: tiny cleanups of MAC class, use of new logger 2021-02-01 09:58:43 +01:00
Andre Puschmann 73cb0dabf2 mac_nr: move UE MAC class into own subfolder
this should simplify further MAC NR extensions and lead
to a more organized folder structure
2021-02-01 09:58:43 +01:00
Andre Puschmann 1a23b2f9bb ue: don't show NR PDSCH constallation plot in normal EUTRA mode
only initialize NR PDSCH plot when nof NR worker is greater 0
2021-02-01 09:58:27 +01:00
Andre Puschmann da9e3363f1 mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
2021-01-30 11:58:25 +01:00
Andre Puschmann cc750d96ee nas: when receiving detach request, don't enter plmn_search automatically
this patch fixes an issue with TC_9_3_1_17 after the "send attach in RRC connected" issue
has been fixed. The TC failed because the UE would always attempt to re-attach, even
after receiving an explicit detach request WITHOUT re-attach from the network.

According to TS 24.301 Sec. 5.5.2.3.2 the handling of that message largely depends
on the detach cause sent by network. Since we don't currently parse and handle
that the simplest solution here is to just enter deregistered:::null.

The patch is also part of the fix for issue #2237
2021-01-29 17:49:46 +01:00
Andre Puschmann 2576ada9e1 nas: do not abort attach procedure if RRC is already connected
this is an attempt to fix issue #2237 that cause the UE to fail to
attach because the attach request wasn't resent after T3410+T3411
expired.

this was only because RRC wasn't idle at that stage and the attach
request generation was aborted.

The patch fixes this by passing the NAS PDU directly to RRC in
connected state.

The patch also converts the blocking PDU alloc to a non-blocking one.
2021-01-29 17:49:46 +01:00
faluco 5981469f9f
Upgrade loggers in srsue (#2163)
* Replaced UE logger in the ue class.

* Replaced loggers in the main phy class and prach.

* Replaced loggers in phy common and ta_control.

* Replace loggers in cc and sf workers.

* Replaced loggers in intra_measure, scell_recv, search, sfn_sync, sync.

* Remove last uses of the old loggers in the main phy class.

* Remove stray newline in logs.

* Replaced loggers in ue gw.

* - Started to replace loggers in the ue stack.
- Replaced loggers in usim and pcsc.
- Adapted nas and usim tests.

* Replace loggers in nas.

* Added missing log init calls in two previously modified tests.

* Replaced logger in nas idle procs.

* Replaced loggers in nas emm state.

* Replaced loggers in tft packet filter and adapted tft test.

* Replaced loggers in main RRC class.

* Replaced loggers in RRC cell.

* Replaced loggers in RRC meas.

* Replaced loggers in rrc procedures.

* Started logger replacement in MAC layer, more precisely in demux and dl_harq classes.
Been unable to inject loggers in construction for dl_tb_process due to very weird static assertions in the std::vector code being the type not constructible which is not true, so instead use the main MAC logger directly.

* Replaced loggers in mac mux class.

* Replaced loggers in mac pro_bsr.

* Replaced loggers in mac proc phr.

* Replaced loggers in mac proc SR and RA.

* Replace loggers in mac UL HARQ.

* Replaced loggers in main ue stack class.

* Fixed nas test crashing due to a null string.

* Ported mac_test to use the new loggers.

* Removed TTI reporting for the PHY log as the old logger did.

* Replaced loggers in UE phy tests.

* Configure loggers in nas_test.

* Replaced loggers in rrc_meas_test.

* Replaced loggers in rrc_reconfig_test.

* Added missing newline in tft_test.

* Fix compilation errors in TTCN3 tests.

* Fix linker error detected in CI and warning.

* Replaced loggers in TTCN3 tests.

* Fix a text replace error in some log messages.

* Remove trailing newlines from log entries.

* Remove old logger from rrc.

* Flush backend before printing the test status.

* - Fix compilation error from previous rebase.
- Remove trailing newlines from some missing log entries.
2021-01-28 17:17:43 +01:00
David Rupprecht 42aa5c4499 Fixed order to set c1 ind ul_dcch_msg 2021-01-28 17:15:52 +01:00
Andre Puschmann 4709bacefd srsue: add DL NR-ARFCN param
* add PHY param to set DL NR-ARFCN
* use new band_helper class to convert ARFCNs to supported bands
* signal supported NR bands in UE capabilities
2021-01-28 12:06:02 +01:00
David Rupprecht 9ccc36d4fa Make fake measurement frequency depend on measurement config 2021-01-27 10:37:09 +01:00
David Rupprecht 1b19ee40e7 Added usim features for key derivation 2021-01-27 10:37:09 +01:00
David Rupprecht ceda458bb3 Added MAC NR to EUTRA and NR with stack interfaces including MAC config build
Moved MAC logical channel config to MAC interface types
2021-01-27 10:37:09 +01:00
David Rupprecht e0420049e3 Build infrastucture for reconfig 2021-01-27 10:37:09 +01:00
David Rupprecht 64299960bd Added procedure for NR reconfiguration and RRC with NR complete 2021-01-27 10:37:09 +01:00
David Rupprecht 99c3aa9ba2 Refactor assert to TESTASSERT in unit test 2021-01-26 21:19:37 +01:00
Xavier Arteaga 13c594651e Apply minor NR GUI comments 2021-01-25 22:04:55 +01:00
Xavier Arteaga 2baccc8b13 Set NR-PDSCH default table to 256QAM 2021-01-25 22:04:55 +01:00
Xavier Arteaga 3ee667c4a5 SRSUE: added NR-PDSCH constellation in GUI 2021-01-25 22:04:55 +01:00
Xavier Arteaga 59114206ae SRSUE: Unify PRACH reconfiguration conditions 2021-01-21 21:11:15 +01:00
Andre Puschmann a09fb95c25 proc_ra: protect RA procedure from concurrent thread access
that patch addreses issue #2199 by defering RA-related calls that
are executed from within PHY workers.

The time-critical bits of more complex functions such as tb_decoded()
are still executed in the PHY worker thread but the state machine
manipulation is defered.
2021-01-20 17:12:10 +01:00
Ismael Gomez a6423442c2
Refactor NR RA files and fix header includes all over library (#2162)
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test

* Minor refactors in NR workers and ue_dl

* Fix include issues

* fix compilation issues
2021-01-20 15:46:46 +01:00
Xavier Arteaga 8a3d70f6da Fix intra-cell measurement ringbuffer overflow 2021-01-19 22:20:50 +01:00
Ismael Gomez a360580999 Run PRACH workers before cc_workers fixes memory corruption when PRACH workers run in foreground (eg in ZMQ) 2021-01-12 21:30:57 +01:00
David Rupprecht a89477a805 Hardcoded Samsung caps can be activated with if 1 in rrc_nr.cc 2021-01-12 20:23:35 +01:00
David Rupprecht bc2e230461 Enable UM mode for Amarisoft 2021-01-12 20:23:35 +01:00
David Rupprecht da0e64c51a Add non_crit_ext for irat parameter 2021-01-12 11:07:52 +01:00
David Rupprecht ffe513415c stop gw in srsue nas test 2021-01-08 17:20:31 +01:00
David Rupprecht 1a10c783b5 Faking measurements 2021-01-08 17:20:08 +01:00
David Rupprecht f7d313147a Added infrastrukture for measurements
Init rrc_nr as part of the LTE stack
2021-01-08 17:20:08 +01:00
David Rupprecht 4305929ec7 Hardcoded NR/MRDC-Capabilities 2021-01-08 17:20:08 +01:00
David Rupprecht b79eef0860 Introducing nr_rrc <-> rrc interface for eutra and nr cap query 2021-01-08 17:20:08 +01:00
David Rupprecht 020d0dacc8 add the additional sec cap to NAS attach request
use same capabilities that are signaled for EUTRA
2021-01-08 17:20:08 +01:00
David Rupprecht 9eb0b72cb4 Added rrc function has_nr_dc 2021-01-08 17:20:08 +01:00
Andre Puschmann 37fc1c59e3 fix DRB release logging
this caused wrong logs because the LCID was printed based on the assumption
that the DRB LCID is alwasy 2 + drb ID

Use drb_id as drb_cfg key
2021-01-08 17:20:08 +01:00
faluco 63bd43fa52 Upgrade the swapping logic of the file sink to use the new srslog functionality. 2020-12-30 19:23:20 +01:00
Xavier Arteaga b3200d9ef5 Renaming common UL/DL DMRS related types and initial NR PUSCH implementation 2020-12-30 13:39:08 +01:00
Andre Puschmann 52da9eb46f srsue,phy: fix setting of PHY log level
probably a regression from the new log system integration.
it was disabling PHY logs, from PRACH for example.
2020-12-28 21:21:44 +01:00
Andre Puschmann 3573644624 srsue: fix stdout metrics print when scells aren't configured yet
during MAC reset, scells are reset to and their PCI is set to UINT32_MAX
which results in malformatted stdout prints, see below:

Random Access Transmission: seq=16, ra-rnti=0x2
Random Access Transmission: seq=14, ra-rnti=0x2
 0   4   -24    24  -1.1u   1.0   140  0.50    0.0     0%   0.0   0.0    0.0    0.0    67%
 14294967295   0.0   0.0  -1.1u   0.0   0.0   0.0    0.0     0%   0.0   0.0    0.0    0.0     0%
 24294967295   0.0   0.0  -1.1u   0.0   0.0   0.0    0.0     0%   0.0   0.0    0.0    0.0     0%
 34294967295   0.0   0.0  -1.1u   0.0   0.0   0.0    0.0     0%   0.0   0.0    0.0    0.0     0%

this patch checks the configured PCI value against UINT32_MAX and
prints "n/a" in case the scells aren't set yet.
2020-12-28 21:21:44 +01:00
Xavier Arteaga 909e5de34f Fix NR workers 2020-12-28 10:11:08 +01:00
Francisco Paisana e27c0869e5 update RRC ASN1 to 2020-09 v15.11 2020-12-17 17:55:58 +01:00
Francisco Paisana 6803f48cc0 cell selection and reest rrc procedures were causing a callstack reentrancy problem. This issue was circumvented with a defer_task call 2020-12-17 01:39:59 +01:00
Andre Puschmann c8801578df gw: use std::chrono for metrics and fix nan display
* replace gettimeofday with std::chrono
* fix nan printing when nof_tti is zero (at startup)
2020-12-16 20:39:21 +01:00
David Rupprecht 81609d48dd Added measurment report for interrat nr15
Added function for removing interrat triggers
2020-12-16 14:12:38 +01:00
David Rupprecht 5df2fb1fa1 Added rrc has nr neighbour cells 2020-12-16 14:12:38 +01:00
David Rupprecht 0e4d77da76 Refactor eutra reporting code and add report triggers for inter rat measurements 2020-12-16 14:12:38 +01:00
David Rupprecht e4e67eebce Added infrastucture to process measurments and evaluate interrat triggers 2020-12-16 14:12:38 +01:00
David Rupprecht 25e5b88704 Added NR range_to_value function and debug logging for measurements 2020-12-16 14:12:38 +01:00
David Rupprecht ce4526a935 Extended measurements interrat nr r15 testcase with measurements 2020-12-16 14:12:38 +01:00
David Rupprecht 826dd32c89 Rename meas_cell to meas_cell_eutra
Added meas_cell_nr class

Make meas_cell list as template class

Inheritance rrc_cell to meas_cell_nr
Added process_new_cell_meas_nr function
2020-12-16 14:12:38 +01:00
David Rupprecht 62b558fccf Move rat type to common header
Removed phy measurement from rrc interface phy

Updated rrc interface for handling measurements
2020-12-16 14:12:38 +01:00
Francisco Paisana 0f693b36b2 changed pdu latency calculation to std chrono 2020-12-14 13:47:05 +01:00
Codebot 43082e8d6a enb/ue: turn various warning messages into info
turn events that may happen in the normal life of a eNB/UE
into info rather than warning to allow strict
warning/error checking in tests.
2020-12-12 15:59:27 +01:00
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 2020-12-12 15:59:27 +01:00
David Rupprecht d4fb2dfb16 Added handling of inter rat measurement config function
Make report config more agonistic
2020-12-12 15:59:27 +01:00