Commit Graph

170 Commits

Author SHA1 Message Date
Xavier Arteaga 080b4a327c SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed. 2019-05-17 18:13:51 +02:00
Andre Puschmann 65f50cd7ba introduce new UE layer design
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
2019-05-17 17:46:28 +02:00
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 2019-05-16 12:35:01 +02:00
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 2019-05-16 12:35:01 +02:00
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 2019-05-16 12:35:01 +02:00
Francisco Paisana 7be183c223 rework scheduler 2019-05-14 22:34:50 +02:00
Andre Puschmann e77adbe5a5 fix uninitialized members in ue_interface 2019-05-02 12:43:19 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
David Rupprecht b84e49310e Enable encryption in reconfiguration and after security mode command (NOT TEST) 2019-04-11 21:38:01 +02:00
David Rupprecht eb3a83ac45 User Plane key in configuration interface 2019-04-11 21:38:01 +02:00
Pedro Alvarez ca603810ce Adding Downlink data notification and paging functionality to the EPC.
This entails:

  * Adding S1AP paging messaging to the MME.
  * Adding the Downlink Data Notification, Donlink Data Notification Acknoledgment, and Downlink Data Notification Failure Messages.
  * Adding the logic at the GTP-U to detect that Downlink Data notification needs to be sent.
  * Proper handling of the new GTP-C messages at the MME GTPC and SPGW GTPC classes
  * Add queuing mechanisms at the GTP-U while waiting for paging response. Queue is flushed when paging fails (timeout or other).
  * Make sure eNB's SCTP information is properly stored.
  * Make sure UE's GUTI information is properly stored.
2019-04-09 16:59:44 +02:00
Pedro Alvarez 1db959c661 Added NAS timer functionality to the EPC. This entails:
* Adding timer creation at NAS using timerfd_create
  * Adding the ability to add and remove the timer file descriptor to the MME main select loop
  * Adding the ability to the MME for the NAS to check if a timer is running
  * Adding the timer expiry handling functionality at the MME
2019-04-08 13:05:54 +02:00
Pedro Alvarez 5f7b6ba79e Split GTP-C and GTP-U functionality into seperate classes in the SPGW. Added GTP-U specific logging in the EPC. Added handle_s11_pdu function to both the MME GTP-C entity and the SPGW GTP-C entity. 2019-04-02 09:17:00 +02:00
Pedro Alvarez add60c1288 Applied clang-format to the EPC. 2019-03-20 14:00:02 +01:00
Francisco Paisana 0204db2e12 new asn1 rrc library 2019-01-17 17:43:13 +01:00
Andre Puschmann d6196ba234 simplify RRC-NAS interface and only have msg as param (RRC selects LCID) 2018-12-10 17:48:52 +01:00
Andre Puschmann c3441046c9 simplify RLC buffer status query procedures
- add a simple and low-overhead has_data() method to check whether
  an RLC entity has data to transmit or not
- use this method for all calls that are actually not interested
  in the amount of data to send
- use the more expensive get_buffer_state() for all cases where
  the actual size of the buffer is of importance
2018-12-10 17:48:52 +01:00
Pedro Alvarez dc727a192b Changing way UL NAS count is used to generate the K_enb. 2018-11-30 21:42:43 +01:00
Andre Puschmann db910cb84b add CSV metrics for eNB 2018-11-20 12:15:04 +01:00
Andre Puschmann 8a1368c8d6 send connection reject if MME isn't connected 2018-11-16 14:56:39 +01:00
Andre Puschmann 0af19b070c add function to query if RLC bearer exists to UE interface 2018-11-02 21:28:03 +01:00
Andre Puschmann 1ed225a10b add getter for IPv4 and IPv6 addresses 2018-10-26 13:09:03 +02:00
Pedro Alvarez 5c29dba741 Changed Interface between NAS and GW to avoid the GW start function being called twice in IPv4v6 mode. 2018-10-26 11:42:27 +02:00
Pedro Alvarez ac1c300126 Adding the ability to set the interface local link IPv6 address. 2018-10-26 11:42:27 +02:00
Pedro Alvarez 8dc029cc47 Merging next into NAS cleanup. 2018-09-25 18:56:03 +01:00
Andre Puschmann 184539b87d add LCID change API to UE interface, add method to reestablish single RLC bearer 2018-09-18 15:09:24 +02:00
Ismael Gomez bc9d342959
New optimization on the PHY for both UE and eNodeB (#251)
* New parallel Turbodecoder implementation in SSE/AVX 16-bit and 8-bit

* Optimised UL Interleaver

* Include TB CRC calculation in FEC encoder

* New threading priorities
2018-09-04 17:51:35 +02:00
Pedro Alvarez 0d80ae795b Added IMSI attach from unknown UE as a static function. 2018-08-27 19:17:23 +01:00
Pedro Alvarez 860e1b5491 Changing Handling of initial UE NAS messages to use static methods. Handling of unknown GUTI attach request should be ok. 2018-08-27 16:06:18 +01:00
Pedro Alvarez 93222f582c Changed authentication response to use downlink_nas_transport(). 2018-08-21 15:17:08 +01:00
Pedro Alvarez f6b8982939 Moved most of the GUTI attach to nas.cc. 2018-08-20 15:48:23 +01:00
Pedro Alvarez 7077530a29 Merge branch 'next' into nas_cleanup 2018-08-13 11:59:23 +01:00
Andre Puschmann f56592b0fe add getter for PDCP ul/dl counter 2018-08-08 16:26:32 +02:00
Andre Puschmann 91492b87ef add del_bearer for RLC/PDCP 2018-08-06 13:17:51 +02:00
Andre Puschmann 3b8371d090 add detach support (for switch off) 2018-08-06 11:10:12 +02:00
Andre Puschmann ee5b055829 rename pdcp function for GW to is_lcid_enabled() 2018-07-25 15:09:19 +02:00
Andre Puschmann b8438e9cc3 extend PDCP interface to allow non-blocking write of SDUs 2018-07-24 15:49:09 +02:00
Pedro Alvarez de8679b536 Continuing to cleanup. Starting to compile again. 2018-07-23 15:30:19 +01:00
Pedro Alvarez f03967776a Continuing to clean nas.cc 2018-07-20 19:50:46 +01:00
Pedro Alvarez b25c12a084 Fixing nas.cc 2018-07-18 19:25:59 +01:00
Pedro Alvarez 85672d4a3f Fixing up s1ap.cc 2018-07-18 17:25:37 +01:00
Pedro Alvarez 3663d59920 Starting to add s1ap_interface_gtpc and s1ap_interface_nas. Adapting send initial context setup request accordingly. 2018-07-16 13:50:12 +01:00
Ismael Gomez 589e569ce9
Changes on srsENB mutexing logic to fix general race condition and deadlock issues (#229)
* fixed some issues with the UL scheduling

* Hack to fix UL scheduler

* minor fix

* Cleaned up code and fixed issue with the update_allocation function

* fixed the console printing in the enb

* log/console fix

* fixed the log print

* added a normalization factor

* RLC: entity uses dynamic instances. Simplified stop/reset/reestablish procedure. Added non-blocking interface

* Limit decimals in metrics stdout

* Changed mutexes to rwlock in RLC/RRC/MAC/PDCP to fix race conditions when removing users

* Fix deadlock bug for MIMO

* Remove headers

* Fix missing unlock causing overflows

* Do not decrease CQI when PUCCH (this is a temporal fix, requires to reduce the maximum MCS)

* Fix mutex unlock in worker

* Configurable RLC tx buffer. Default to 512 for enodeb

* Check NULL SDU in write_sdu()

* Protect RLC objects and tx_queue from being destroyed while using it

* Remove superfluous code

* Disable SIB logging

* Fix block_queue for enb
2018-07-05 11:00:19 +02:00
Ismael Gomez 8c92f3fddc
Improvements and fixes on srsENB scheduler (#228) 2018-06-29 11:25:22 +02:00
Pedro Alvarez 66db3deeb4 Starting to add Bearer QoS parameter to create session request. 2018-06-27 15:10:17 +01:00
Andre Puschmann 064d7bd2dc use original UE establishment cause in S1AP initial UE message 2018-06-25 18:19:57 +02:00
Ismael Gomez 6120f20290
Changes in RRC and S1AP to make enb more robust on UE add/rem operations.
* Consolidated functions in S1AP

* Fixed ASAN in some GCC

* Stop quicker the enb

* Minor typo edit

* Fixed mutexing issues in RRC and possibly RLC/PDCP when adding/removing users
2018-06-12 17:31:07 +02:00
Andre Puschmann 61d525ea80 Merge branch 'next' into embms_merge_final 2018-05-22 10:39:05 +02:00
Ismael Gomez 467ba4e326 Average sampling offset estimate before adjusting timing to be more robust against EVA and ETU fading 2018-05-21 23:00:57 +02:00
Andre Puschmann 9ce3be974a Merge branch 'next' into embms_merge_final 2018-05-15 22:32:56 +02:00
yagoda e4c3f0bc30 adding mbms-gw and mch generation tables 2018-05-15 17:27:10 +02:00
yagoda ec918eab76 adding support for embms in common functions and interfaces 2018-05-15 16:50:57 +02:00
Andre Puschmann 3fe6dad323 adding hard SIM card support using PCSC 2018-05-15 12:40:29 +02:00
Ismael Gomez ffb8337be7 Merge branch 'next' into sync_states 2018-04-12 18:30:19 +02:00
Xavier Arteaga 15173c5c30 Added gaussian filter configuration options in srsue.conf 2018-04-10 13:25:26 +02:00
Ismael Gomez edd9cbf4dc Merge branch 'next' into sync_states 2018-04-10 09:35:21 +02:00
David Rupprecht 06d4559294 Change include path absolut to project dir 2018-04-01 18:08:24 +02:00
David Rupprecht 9d71bec7b6 Unified include guards 2018-03-31 19:04:04 +02:00
Ismael Gomez b3be54b274 Attach and paging ok. Reselection on IDLE not working 2018-03-21 10:46:24 +01:00
Ismael Gomez f88f465c97 Refactored NAS/RRC/PHY cell_search/selection procedures 2018-03-19 14:14:51 +01:00
Ismael Gomez 86d4ce52e0 Make intra-frequency measurement period/length a parameter 2018-03-15 12:27:55 +01:00
Ismael Gomez f9d770e50e Added option for Doppler frequency correction 2018-03-14 17:30:55 +01:00
Ismael Gomez c2098ad626 Removed unused sample offset correction 2018-03-13 18:52:21 +01:00
Ismael Gomez 3adc6b5cbc
Merge pull request #158 from softwareradiosystems/csi
Csi
2018-03-07 14:40:57 +01:00
Ismael Gomez 13efa740e8 Changed logic in RRC/NAS/PHY for cell/plmn search to avoid stucking in IDLE 2018-03-06 22:20:38 +01:00
Ismael Gomez 90553e830d Fixed cell search for non-home PLMN 2018-03-05 13:07:24 +01:00
Ismael Gomez 91664ef2be Do sell reselection on IDLE by phch_recv thread instead of worker 2018-03-04 11:55:58 +01:00
Xavier Arteaga 8cabfa82cf Added CSI report enable option in SRS UE 2018-02-28 12:30:34 +01:00
Ismael Gomez cfaa5e9b28 Fix previous commit could not HO more than once due to not refreshing serving cell after 1st HO 2018-02-25 19:13:12 +01:00
Ismael Gomez 56df710d1f Add rx_gain_offset interface for RSRP calibration 2018-02-21 11:51:55 +01:00
Pedro Alvarez cc9845ef07 Merging HSS resynch functionality from David Rupprecht. Resolving conflict in user_db.csv. 2018-02-09 15:04:22 +00:00
Ismael Gomez a279ab47f0 Improved neighbour cell accuracy. Changed RRC to avoid segfault when neighbour cell addition 2018-02-02 19:31:22 +01:00
David Rupprecht 5db5399b2f Added HSS sync support (not tested) 2018-01-29 16:12:36 +01:00
David Rupprecht 3ead643c64 Introducing epc interfaces for hss and srsepc namespace 2018-01-29 16:12:36 +01:00
Andre Puschmann 74138071db move radio bearer definition to RRC 2018-01-12 14:57:38 +01:00
Ismael Gomez b0a2fa3b0b Merge branch 'enbmimo' into mob_crypto_mimo 2017-12-04 12:10:46 -06:00
Ismael Gomez 48dfc08fa3 Fixed SIC for PSS using channel estimates, added option to disable it (not usable on synchronous same-site cells). Use PSS CE in SSS decoding 2017-12-03 22:13:07 -06:00
Ismael Gomez 5c31800ccb Fixed HO with ciphering 2017-12-02 22:43:35 +01:00
Ismael Gomez 9a255b477a Merge branch 'crypto' into mobility_crypto 2017-12-02 12:23:05 +01:00
Paul Sutton 1a323770c9 Added support for AS ciphering 2017-12-01 19:19:38 +00:00
Ismael Gomez f1c6bcd252 Merge branch 'next' into mobility 2017-11-30 20:13:06 +01:00
Ismael Gomez dd8bacf466 Calibrated CFO loop default values 2017-11-30 20:01:35 +01:00
Paul Sutton 84724d2ab1 NAS-plane encryption working (thanks to David Rupprecht) 2017-11-30 17:09:12 +00:00
Ismael Gomez 3a0ab02264 S1/X2 handover tested and working 2017-11-27 13:57:05 +01:00
Ismael Gomez 8447c965e3 Fixing RSRP measurements 2017-11-25 10:40:53 +01:00
Ismael Gomez d428760b20 Merge branch 'next' into mobility 2017-11-24 12:02:41 +01:00
Ismael Gomez 408545dab8 X2 (constant NCC) working 2017-11-23 19:46:34 +01:00
Paul Sutton 4877c7ab07 Adding support for GUTI attach 2017-11-23 18:42:48 +00:00
Ismael Gomez 12d8b373c7 srsUE takes and reports intra-frequency measurements correctly 2017-11-20 10:02:39 +01:00
Xavier Arteaga 75957d41d7 Added DCI formats 2 and 2a inScheduler. Improved UE PHCH, corrected some MIMO bugs on both sides. 2017-11-08 17:10:16 +01:00
Xavier Arteaga 96a6d6ae9f Merge branch 'next' into enbmimo 2017-10-27 16:25:03 +02:00
Xavier Arteaga 6985682ef0 Added 2nd Codeword interface in scheduler, plus pmi close loop reporting 2017-10-26 17:09:28 +02:00
Xavier Arteaga af669a6cbb Added RI reporting in enb and optimised RI computing calling time 2017-10-24 10:07:54 +02:00
Ismael Gomez 85571c47cd Added option to ue.conf to configure CFO EMA (set default to 0.4) 2017-10-20 12:34:34 -04:00
Xavier Arteaga 21355de77e Added TM3 (1 layer only) eNB support at RRC 2017-10-11 17:00:49 +02:00
Ismael Gomez 1c677f7183 Read Home PLMN from IMSI 2017-10-07 21:58:08 +02:00
Ismael Gomez 2159ad3280 Added support for roaming PLMN 2017-10-07 21:31:13 +02:00
Paul Sutton 428e5955df Fix for SPGW address issue for GTP bearers - now using addresses from bearer setup requests
htonl fix
2017-10-02 13:04:40 +01:00
Ismael Gomez 92144ce15d Revert "Handle RRC ConnectionReject at eNodeB and UE"
This reverts commit b6f905e2df.
2017-09-26 18:26:57 +02:00