Commit Graph

488 Commits

Author SHA1 Message Date
Francisco Paisana 8980810061 added some util print functions and fixed the issue with sync::cell_select when the last cell search was not successful 2019-10-23 17:32:32 +02:00
Andre Puschmann 82e3fd1052 fix uninitialized vars in RRC 2019-10-18 16:38:55 +02:00
Andre Puschmann 891a66a2e5 make the establishment cause a paramter when sending a connection request
needed to signal a mo_sig establishment cause after a RLF
2019-10-18 16:38:55 +02:00
Andre Puschmann c24b25f42e after RLF store PCI of current serving cell
the PCI is needed for the reestablishment request in case
the new serving cell has changed
2019-10-18 16:38:55 +02:00
Francisco Paisana 9bcb268421 added for-range loop and bool decay checks to clang-tidy. Applied some of the recommendations of clang-tidy to nas.cc 2019-10-18 12:36:17 +02:00
Andre Puschmann cf548fe807 nas: add handling of T3410/T3411 2019-10-15 10:13:21 +02:00
Andre Puschmann 35307a047a make UE switch_on non-blocking
this allows a simpler main that just signals NAS to switch on the UE
but doesn't block until the action is completed.

For making sure the UE also attached if the first attempt failed
the NAS needs to be extended to support the correct timers.
2019-10-15 10:13:21 +02:00
Francisco Paisana 81a466a641 since we moved cell search to the background thread, cell reselection prints a error message that it cannot start. In fact it already started. It is just waiting for the cell search to finish. This PR fixes this 2019-10-14 15:18:15 +02:00
Francisco Paisana e67f66e539 moved cell search completed signal from the background thread to the stack thread 2019-10-14 11:44:40 +02:00
Ismael Gomez 1d83bb08e2 Changes in ACK procedure to support CA. Tested 1 cell in SISO/MIMO 2019-10-14 11:20:35 +02:00
Francisco Paisana b1496317d5 fixed the pcch proc issue by letting the cell selection explicitly propagate its result to the pcch_process_proc 2019-10-11 15:22:32 +02:00
Andre Puschmann 3c6ff0da30 make NAS logging less verbose 2019-10-09 11:53:27 +02:00
Andre Puschmann c5f52adfba nas: fix issue in which NAS wouldn't allow to attach once it failed
the main issue was the plmn_selected variable. the solution
was to create a function to enter the deregistered state that resets the variable
and performs all other actions that need to be performed, like clearing
EPS bearers.

The patch also extends the SS to support AT commands to enable/disable
data services and now succesfully passes TC_9_2_2_1_7
2019-10-09 11:34:49 +02:00
Francisco Paisana 2fb830fcfa moved cell search to background task thread pool, and provided a stack interface to rrc to call "start_cell_search". Once completed, the background task signals back to RRC 2019-10-04 22:01:44 +02:00
Andre Puschmann 0467d8bc84 rework neighbor cell handling 2019-10-04 16:25:02 +02:00
Andre Puschmann c7f0caa24a add TTI field to MAC dl/ul grants and fix PCAP to include TTI 2019-10-02 16:49:46 +02:00
Francisco Paisana 6db0e474be moved RA waiting procedure to a background task of the stack thread pool 2019-10-02 11:04:47 +02:00
Xavier Arteaga efdec15964 Renamed lock_guard (lg) to lock 2019-10-02 11:03:03 +02:00
Xavier Arteaga 665f899a74 Fixed some coverity and Clang tidy warnings 2019-10-02 11:03:03 +02:00
Andre Puschmann f94d2537a3 nas: send identity response integrity protected if security ctxt is present 2019-10-01 20:59:00 +02:00
Andre Puschmann bb84b27f0b fix RRC connect proc in NAS to allow reattch after detach 2019-10-01 20:59:00 +02:00
Francisco Paisana e92632e729 zero-initialized mbms rrc interface types 2019-09-30 21:05:32 +02:00
Francisco Paisana fc9bb3c934 removed rrc asn1 header include from the ue_interfaces and phy 2019-09-30 21:05:32 +02:00
Andre Puschmann 2f47010eb6 fix various uninitialized vars 2019-09-24 13:23:30 +02:00
Xavier Arteaga 35f85c651c SRSUE: Added SCell synchronizer and measurements based on reference signals 2019-09-20 16:20:31 +02:00
Xavier Arteaga 8e17aba5d8 Improved SSS decoding and improved scell_search_test 2019-09-20 16:20:31 +02:00
Xavier Arteaga 54974d935e SRSUE PHY: unitialised values and attributes clean-tidy up 2019-09-20 16:03:37 +02:00
Xavier Arteaga 78fcc11a30 Fixes minor unitialised/leaked memory 2019-09-20 16:03:37 +02:00
Ismael Gomez 0984debe1b
Fix issues with RLF in B210 and X300 (#669)
* Calling tx_end() from radio_reset() causes long execution time in B210. Using boolean to call later instead. Fixes RLF failing in B210. Checked in X300

* Fix issue #655
2019-09-20 15:41:16 +02:00
Francisco Paisana 946ead06e8 using an interface between the stack and lower mac to process demux pdus. 2019-09-19 10:19:46 +02:00
Francisco Paisana 63457f195c extented queue test 2019-09-18 12:18:33 +02:00
Francisco Paisana a2d7b2320a placed GW packets in the same thread as UE stack thread 2019-09-18 12:18:33 +02:00
Francisco Paisana 647c624423 created a multiqueue handler, and started using it for the ue stack 2019-09-18 12:18:33 +02:00
Andre Puschmann 9e1c46dfb0 add initial TTCN3 code 2019-09-17 21:56:47 +02:00
Andre Puschmann 08ca9ebd4e write BCH to PCAP
this patch moves the BCH payload buffer into the UE sync object and
therefore allows to pass it to the MAC for PCAP logging
2019-09-17 21:56:06 +02:00
Ismael Gomez a3932f9bea Minor change to fix coverty issue 2019-09-17 14:22:38 +02:00
Xavier Arteaga 1a567a764e SRSUE: Call Radio tx-end when PHY is reseted and removed redundant attribute is_start_of_burst. 2019-09-12 09:49:56 +02:00
Andre Puschmann 513c7b12e3 remove warning and replace with pragma message 2019-09-09 17:28:53 +02:00
Ismael Gomez cbb1bbfaa1 Fix multiple PRACHs after SR fail and a minor issue in HO 2019-09-07 22:59:57 +02:00
Ismael Gomez bfddc55148
RRC-PHY interface (#639)
RRC-PHY interface refactor. Moved RRC-MAC interface to rrc_asn1_utils and created RRC-PHY interface also in rrc_asn1_utils. All ASN1 includes should be made from rrc_asn1_utils only keeping ue_interfaces clean of ASN1

Tested with different common and dedicated configurations (64QAM UL, 256QAM, CA, SRS enabled/disabled, etc)
2019-09-04 16:59:10 +02:00
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
2019-09-04 15:28:09 +02:00
Ismael Gomez 69edee4e6c
Fix issues in uplink QoS (#636)
Fix bugs in Long BSR and Truncated BSR and added unit tests
2019-09-02 22:48:41 +02:00
Francisco Paisana c9d3b61038 added resumable procedures to make RRC and NAS non-blocking 2019-08-08 10:56:54 +02:00
Andre Puschmann 7847c8da5e extend ue cap handler to support multiple RATs 2019-07-29 15:12:13 +02:00
yagoda 408400bee6 adding fixes and tests for eMBMS 2019-07-21 22:27:17 +02:00
Xavier Arteaga f653472aa8 SRSUE: SCell parameters condensed in a single structure 2019-07-19 18:10:23 +02:00
Xavier Arteaga b5685c8f09 SRSUE: Fixed HO with carrier aggregation 2019-07-19 18:10:23 +02:00
Ismael Gomez feafec2725 Fix srsENB PHY log and reorganized expert args 2019-07-17 12:40:57 +02:00
Andre Puschmann 886858a30a remove expert config and split into PHY and general config, cleanup ue.conf.example 2019-07-15 06:18:34 -04:00
Andre Puschmann b46a71c2d8 add RRC metrics and remove extra methods to query RRC state 2019-07-13 14:33:43 +02:00
Andre Puschmann 4e86b2f6b2 introduce layerd architecture we use for UE to eNB
- this allows flexible use of different PHYs and radios
- use common radio_multi (moved to lib)
2019-07-12 04:17:56 +02:00
Ismael Gomez abdb880b3b Remove unused mux_is_transmitted local variable 2019-07-08 17:14:25 +02:00
Ismael Gomez 773c2a9721 Fixed multiple issues in Random Access procedure and extended MAC test 2019-07-08 17:14:25 +02:00
Xavier Arteaga 5dcf3b3563 Fix phy memory leaks 2019-07-08 17:13:32 +02:00
Andre Puschmann 5faa819dcd fixing uninitialized class members found by coverity 2019-07-08 11:12:46 +01:00
Andre Puschmann 92f0d58856 mac: move further init/config into ctor to allow early logging, etc. 2019-07-05 17:24:06 +02:00
Pedro Alvarez a868a13409 Fix compilation error when PCSC is enabled. 2019-07-05 16:53:17 +02:00
Francisco Paisana 58e2e51044 removed rlc_interfaces. The rlc_cnfg types are now part of the rrc_interface_types. Removed implicit RB initialization in the RLC. 2019-07-05 10:44:15 +02:00
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 2019-07-05 10:44:15 +02:00
Francisco Paisana bb0dbf0f1c created a asn1 utils with helper functions and types related to the asn1. These types/functions will help isolate the rrc_asn1 lib from most of the layers, reducing this way the compile times, and leading to better isolation. This will also make the transition to NR smoother. I removed the asn1 types from the NAS and USIM interface so far. 2019-07-05 10:44:15 +02:00
Xavier Arteaga 4a0ebe0cca SRSUE: reviewed UE capabilities for 64QAM according to 3GPP 36.306 2019-07-02 16:36:06 +02:00
Andre Puschmann 1dea4add2a stack: fix issue where stack thread was exited before stop_impl was called 2019-06-27 14:51:33 +02:00
Andre Puschmann 58763fb714 stack: move initialization of log object into ctor
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
2019-06-27 14:51:33 +02:00
Ismael Gomez 9e6a9e0d03 Fix reestablishment mutex lock when called from RLC max retx 2019-06-26 18:14:54 +02:00
Pedro Alvarez 8f5ad55c4a Added attach request as a UL info trasnfer in the UE. Added interface to remove eps bearer map when going idle. Fixed bug in GW in assignment of IPv4 addresses. UE seems to rebound from the service reject now. 2019-06-26 18:04:41 +02:00
Andre Puschmann a3d95c8370 simplify SDU allocation and remove unneeded checks 2019-06-26 17:57:25 +02:00
Andre Puschmann 2599b1824d reorder stack members and their loggers for correct destruction 2019-06-26 17:57:25 +02:00
Andre Puschmann 8333a9be57 fix dtor of PHY when stack init fails 2019-06-26 17:57:25 +02:00
Andre Puschmann db224335a7 add MUX step function for PBR counting 2019-06-26 17:57:25 +02:00
Andre Puschmann da35f41dd5 rework MAC logical channel prioritization 2019-06-26 17:57:25 +02:00
Francisco Paisana 8f8d9f3f30 applied changes in the stack internal method naming 2019-06-21 13:01:41 +02:00
Francisco Paisana ce29ed545d moved mac thread to the stack. Protect the interface of the stack with PHY and gateway via a queue of tasks 2019-06-21 13:01:41 +02:00
Francisco Paisana 62eb96366c moved gw metrics out of stack_metrics_t 2019-06-20 15:26:52 +02:00
Francisco Paisana 10a56e2a84 moved GW out of the UE stack. This is important to keep concurrency out of the stack once it becomes single-threaded 2019-06-20 15:26:52 +02:00
Xavier Arteaga c7be984819 sync.h uses lock_guard for mutex 2019-06-19 11:49:55 +02:00
Xavier Arteaga cd036d8760 SRSUE: proc_ra.h/.cc use C++11 mutex 2019-06-19 11:49:55 +02:00
Xavier Arteaga 5d87aece0f SRSUE: mac.h/.cc mutexes changed to C++11 and set initial values 2019-06-19 11:49:55 +02:00
Xavier Arteaga 9068280896 SRSUE: Sync.h/.cc mutexes changed to C++11 std::mutex and fixed attributes initialisation 2019-06-19 11:49:55 +02:00
Xavier Arteaga 810ce0358e SRSUE: removed CLang tidy warnings in phy.h and phy.cc except unused. Use smaer pointers for workers. 2019-06-19 11:49:55 +02:00
Andre Puschmann 01679dbc8d rearrange class members to make sure logs get destructed after stack components 2019-06-18 20:50:23 +02:00
Andre Puschmann ad2b5d7635 pcsc: fix uninitialized variable and class dtor 2019-06-18 20:50:23 +02:00
Xavier Arteaga 1f4cf8121b SRSUE: Initial UL channel simulator 2019-06-11 12:06:11 +02:00
Xavier Arteaga ad9808c2aa SRSUE: SCell include files rearange 2019-06-11 10:34:49 +02:00
Xavier Arteaga ceac7a02c8 SRSUE: moved sync SCell classes in new namespace 2019-06-11 10:34:49 +02:00
Pedro Alvarez 6d05265d92 Adding mutex to protect the tft_filter map. 2019-06-07 21:40:03 +02:00
Andre Puschmann 2b7b4d0e7e remove hard-coded LCID for dedicated bearer in GW 2019-06-07 21:40:03 +02:00
Pedro Alvarez 7a184a8cd8 Added log to tft_packet_filter. 2019-06-07 21:40:03 +02:00
Pedro Alvarez 39f5b03674 Removed empty line. Changed comment. Removed unused variables. 2019-06-07 21:40:03 +02:00
Pedro Alvarez 2723aa9b12 Added EPS bearer id to apply_tft interface. Sending packets to the correct LCID if they match the packet filter. 2019-06-07 21:40:03 +02:00
Pedro Alvarez e2ca02bbe4 Starting to add match methods to tft_packet_filter 2019-06-07 21:40:03 +02:00
Pedro Alvarez 272e40a60d Started to add a lookup in the gw to see if there is a match in the packet filter. 2019-06-07 21:40:03 +02:00
Pedro Alvarez 190a0ff37e Adding test to unpacking of the packet filters. 2019-06-07 21:40:03 +02:00
Pedro Alvarez a8eaf16881 Starting to add a structure for the packet filters. 2019-06-07 21:40:03 +02:00
Pedro Alvarez a7e0a0624b Starting to add interface apply_traffic_flow_template between NAS and GW. 2019-06-07 21:40:03 +02:00
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 2019-06-07 15:41:56 +02:00
Pedro Alvarez d67d18cc6b Removing deplicated error codes. 2019-06-07 13:51:56 +02:00
Ismael Gomez c2e9817f41 Possible solution to RLC Reestablishment 2019-06-06 14:34:25 +02:00
Andre Puschmann 3f613d7183 nas/gw/rrc: make LCID for DRB dynamic
- add interface to RRC to allow NAS to query the DRB for a given
  EPS bearer id
- extend interface for NAS to setup GW to also pass LCID of bearer
- in NAS, use this new interface to pass actual LCID of the default
  DRB when creating the TUN device
2019-06-05 20:50:52 +02:00
Andre Puschmann b2a35f6b5a nas: add parser and sender for modify EPS bearer context messages 2019-06-05 17:41:46 +02:00
Andre Puschmann dcb04c6461 turn usim object into a unique_ptr 2019-06-05 17:41:46 +02:00