Commit Graph

277 Commits

Author SHA1 Message Date
Xavier Arteaga e832769ae6 Updated copyright 2020-03-16 11:26:06 +01:00
Pedro Alvarez bd3598f774 Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h. 2020-03-06 11:57:07 +00:00
Andre Puschmann a8bbe551ac move thread class into srslte namespace to avoid ambiguity between std::thread 2020-03-03 16:22:04 +01:00
Pedro Alvarez 746de79859 Adding const to some setters (adressing Francisco's comments). 2020-02-26 18:15:13 +00:00
Pedro Alvarez 126e6126fa Removed unused function. 2020-02-26 18:15:13 +00:00
Pedro Alvarez 38411a8417 Clang-formated the EPC in preperation for PR. 2020-02-26 18:15:13 +00:00
Pedro Alvarez 3d4f300b6f Moved some helper setters/getters to hss_ue_ctx_t to remove more useless lookups. 2020-02-26 18:15:13 +00:00
Pedro Alvarez 469c3ad273 Removed more useless lookups. 2020-02-26 18:15:13 +00:00
Pedro Alvarez 93fbf741d7 Remove unecessary context lookup in increment_ue_sqn 2020-02-26 18:15:13 +00:00
Pedro Alvarez 4f62e6c08c Started to remove unecesssary lookups in gen_auth_info_answer_milenage 2020-02-26 18:15:13 +00:00
Pedro Alvarez a99ce1fc51 Started to remove unecesssary lookups in gen_auth_info_answer_xor 2020-02-26 18:15:13 +00:00
Pedro Alvarez 98400f65e2 Changed hss ue_ctx map to use unique pointers. 2020-02-26 18:15:13 +00:00
Pedro Alvarez 58bd5631e3 Starting to change map in HSS to use uinque_ptr. 2020-02-26 18:15:13 +00:00
Merlin Chlosta c2e95b1e2a Reject TAU to force UE to reconnect 2020-01-28 11:50:28 +00:00
Pedro Alvarez 48f9df8615 Applied clang-format to all of the srsepc folder. 2019-10-18 15:40:40 +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
Andre Puschmann 5faa819dcd fixing uninitialized class members found by coverity 2019-07-08 11:12:46 +01:00
Pedro Alvarez b97d1191f4 Added more debug info at eNB GTP-U. Changed the pdcp_entity to follow the standard more strictly for RLC AM DRBs. 2019-06-27 17:09:52 +02:00
Pedro Alvarez 50506ffa26 Changed NAS initialization from init function to constructor. Continuing to add the logic to handle attach request as a Uplink NAS message. Added debug log to s1ap::send_downling_nas_message. 2019-06-24 21:27:08 +02:00
Pedro Alvarez 20ee17088f Starting to add handling of attach request as a Uplink NAS transport message. 2019-06-24 21:27:08 +02:00
Pedro Alvarez d67d18cc6b Removing deplicated error codes. 2019-06-07 13:51:56 +02:00
Andre Puschmann 64dd4c1fc4 fix issue when packing service reject fails and NAS uses initialized logger 2019-04-30 13:59:06 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Andre Puschmann 205db6f229 add missing license headers 2019-04-26 21:20:12 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
Pedro Alvarez 1bac758a85 EPC now sends service reject to a UE that sends service request with bad integrity. 2019-04-12 16:24:57 +02:00
Joseph Giovatto fa99aa590e added support for optional ue static ip address (rebase #225) 2019-04-11 15:55:46 +02:00
Pedro Alvarez 3ad19f21b6 Adding per UE authentication algorithm choice to the HSS and users_db.csv. 2019-04-09 17:17:02 +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 9463b95dc1 Remove unused mutex in the SPGW. 2019-04-03 09:52:18 +02:00
Pedro Alvarez 3933b269d7 Added GTP-C message passing between MME and SPGW using UNIX sockets.
* Added S11 sockets to SPGW select and MME select
  * Added send_s11_pdu message to SPGW and MME
  * Remove pointer for replies in handle_s11_pdu
2019-04-03 09:52:18 +02:00
Pedro Alvarez 3e9f10e20d Adding S11 initialization in MME and SPGW as unix sockets. 2019-04-03 09:52:18 +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 6e500c5b86 Changed initilization of the NAS at the EPC, to make it easier to add new interfaces. 2019-03-20 14:00:02 +01:00
Pedro Alvarez add60c1288 Applied clang-format to the EPC. 2019-03-20 14:00:02 +01:00
Pedro Alvarez 179aeddfa2 Added encryption of security mode command and attach accept again. Attach is working with encryption. 2019-01-11 18:13:29 +00:00
Pedro Alvarez 997c24c099 Added config of cipher_algo and integ_algo initialization in NAS class. 2018-12-18 18:27:31 +00:00
Pedro Alvarez 5eacdd5418 Fixed compilation issues. Attach failing with COTS UE. 2018-12-18 16:48:25 +00:00
Pedro Alvarez 31a25067f5 Merging David Ruprecth's mme_msg_encryption branch into next. Not compiling. 2018-12-18 12:03:52 +00:00
David Rupprecht c480e57721 Config based security algorithm selection 2018-11-19 15:34:57 +01:00
David Rupprecht e547883a8f Wrapper functions for integrity generate 2018-11-18 20:30:22 +01:00
David Rupprecht 7eef2c1c4b start with decryption function 2018-11-15 23:02:30 +01:00
Andre Puschmann 23836a8ab3 Merge branch 'next' into nas_cleanup 2018-10-22 11:26:00 +02:00
Pedro Alvarez 3cddad79cc Adding ability to configure names of TUN interfaces. (#277)
* added config option for tun dev names vs fixed names added config option for M1-U interface addr

* Added options to sgi_mb tun name.

* Added some comments to mbms.conf.example

* Added some comments to example configs to explain the new values.
2018-10-05 11:12:31 +02:00
Pedro Alvarez 35ca9ffd34 Adding TTL option 2018-10-04 14:44:26 +02:00
Pedro Alvarez 3ecacdf3a6 Adding selection of local interface at the MBMS-GW. 2018-10-04 14:44:26 +02:00
Pedro Alvarez 8dc029cc47 Merging next into NAS cleanup. 2018-09-25 18:56:03 +01:00
Andre Puschmann 860d8af911 Merge branch 'master' into next 2018-09-24 15:50:10 +02:00
Zhe Huang 8b526e1c20 Fix SQN incrementation arithmetic (#212)
* Fix SQN incrementation arithmetic

Current implementation of increment_sqn function increments the 48 bits
SQN directly by 1 which is incorrect according to 3GPP TS 33.102 version
11.5.1 Annex C. This bug causes commercial UEs to report AUTHENTICATION
FAILURE EMM cause #21 "synch failure" when SQN is out of sync.

According to 3GPP TS 33.102 version 11.5.1 Annex C, 48 bits SQN consists
of 43 bits SEQ and 5 bits IND parts where SEQ are incremented during
generation of authentication vector or resync procedure. A
new IND value is also assigned when an authentication vector is
generated. However, resync procedure will use the same IND value.

This patch implements the increment_sqn function according to 3GPP TS
33.102 version 11.5.1 Annex C. A new function increment_seq_after_resync
is added to handle the special case of SQN arithmetic during SQN
resynchronization.

This patch is tested with two comercial UEs (Oneplus One and Oneplus 3T).

* Fix the maximum value of SEQ value to be 2^43-1

The SEQ value is 43 bits long and previous maximum value has a typo (one
extra F) which allows SEQ value to be 2^47-1. This patch corrects the typo.
2018-09-24 11:28:07 +02:00