Commit Graph

303 Commits

Author SHA1 Message Date
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
Pedro Alvarez 9350e03810 Changed detach request and tracking area update request to nas.cc 2018-08-29 17:47:34 +01:00
Pedro Alvarez a9e5b3b8e9 Changed service request to nas.cc 2018-08-29 14:52:09 +01:00
Pedro Alvarez 3337f21ffa Added handle GUTI attach from known UE again. 2018-08-28 15:29:26 +01: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 9e808ff968 Starting to handle NAS initial UE messages as static methods of the nas class. 2018-08-24 18:15:06 +01:00
Pedro Alvarez e3286897ce Changed the rest of the nas handling to use send_downlink_nas_transport. 2018-08-22 16:59:40 +01:00
Pedro Alvarez f1d30c7f23 Changed handle guti_attach_from_known_ue and unknown_ue to use send_downstream_nas_message. 2018-08-22 15:00:01 +01:00
Pedro Alvarez dd725be60c Changed pack identity request. 2018-08-21 18:29:28 +01:00
Pedro Alvarez 65a5139751 Fixed mistake in downlink nas transport. Changing authication request to use downlink_nas_transport. 2018-08-21 17:51:00 +01:00
Pedro Alvarez 21c34b9ce5 Changing security mode complete to use downlink nas transport 2018-08-21 16:05:08 +01:00
Pedro Alvarez 93222f582c Changed authentication response to use downlink_nas_transport(). 2018-08-21 15:17:08 +01:00
Pedro Alvarez 3073ab6822 Changed dettach request to use downlink nas transport. 2018-08-21 14:11:28 +01:00
Pedro Alvarez 749e84315a Starting to add send_downlink_nas_transport helper function. 2018-08-21 12:57:23 +01:00
Pedro Alvarez 872f7adc49 Added find imsi from TMSI helper function. 2018-08-20 17:59:50 +01:00
Pedro Alvarez fa0c8d5995 Moved most of IMSI attach request into nas.cc. 2018-08-20 16:48:16 +01:00
Pedro Alvarez f6b8982939 Moved most of the GUTI attach to nas.cc. 2018-08-20 15:48:23 +01:00
Pedro Alvarez c518d3fde3 Starting to move inital UE messages to nas.cc. Breaking up attach request handling into smaller functions. 2018-08-16 17:45:39 +01:00
Pedro Alvarez 55675eb532 Fixed bug in setting MCC and MNC in attach accept. Attach seems to be working again. 2018-08-15 18:13:36 +01:00
Pedro Alvarez 7c53330bec Fixed NAS initialization. Attach request seems to work again now. 2018-08-14 13:59:05 +01:00
Pedro Alvarez 4ba777c9c3 Added nas log. Fixed gen_auth_info_anwser. Authentication is working again. 2018-07-24 18:38:16 +01:00
Pedro Alvarez de8679b536 Continuing to cleanup. Starting to compile again. 2018-07-23 15:30:19 +01:00
Pedro Alvarez 406d198eac Cleaning up nas.cc 2018-07-23 12:38:40 +01:00
Pedro Alvarez f03967776a Continuing to clean nas.cc 2018-07-20 19:50:46 +01:00
Pedro Alvarez 6ef3124fc9 Fixed up release ue ctx command. 2018-07-20 14:54:03 +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 d8f1b3c88d Moved uplink nas messages to nas.cc. s1ap_nas_transport is compiling. 2018-07-17 18:33:10 +01:00
Pedro Alvarez 1bad88a432 Changing integrity functions in nas.cc 2018-07-16 19:41:27 +01:00
Pedro Alvarez 5fd337a7ad Continue to move uplink NAS into nas.cc. 2018-07-16 19:05:53 +01:00
Pedro Alvarez 4d40e9ca2d Temporarilly changing ESM state back to previous definition. 2018-07-16 15:21:03 +01:00
Pedro Alvarez c1eff4ce73 Changing pack accept 2018-07-16 14:55:36 +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
Pedro Alvarez f33fcf65bf Fixing up S1AP context management procedures to use the new class. 2018-07-13 18:31:05 +01:00
Pedro Alvarez 4c164acbc3 Moving many of the functions fron s1ap_nas_transport to it's own NAS class. 2018-07-13 17:28:20 +01:00
Pedro Alvarez 41a5788cc7 Adding nas.h 2018-07-13 15:27:38 +01:00
Pedro Alvarez 151efc61d5 Added s1ap_tx_pdu function. This function will record to pcap if PCAP is enabled. 2018-07-10 15:18:31 +01:00
Pedro Alvarez b89ad628e2 Added config option to enable pcap. 2018-07-10 14:23:21 +01:00
Pedro Alvarez ba5708dc60 Starting to add S1AP pcap to EPC. 2018-07-09 19:17:31 +01:00
Pedro Alvarez 1dc5836365 Adding SGi-mb mask to config 2018-07-06 11:52:04 +01:00
Pedro Alvarez 0a6540d8bf Saving QCI into ESM context. Different QCIs should be working now. 2018-06-27 17:45:19 +01:00
Pedro Alvarez 66db3deeb4 Starting to add Bearer QoS parameter to create session request. 2018-06-27 15:10:17 +01:00
Pedro Alvarez f9e3d3a1f7 Added mechanisms to read and write QCI from/to user_db.csv. 2018-06-26 17:39:23 +01:00
Pedro Alvarez b8bb270ac7 Cosmetic fix. 2018-06-26 12:08:42 +01:00
Pedro Alvarez f301bb6373 Merging next into op_vs_opc and resolving conflicts. 2018-06-26 11:36:40 +01:00
Pedro Alvarez d44a3c44ca Making sure eKSI is changed on re-synch. Re-synch on SYSMOCOM USIMs seem to work. 2018-06-25 12:48:11 +01:00
Pedro Alvarez 11b51e7cb4 Merge branch 'next' into epc_sigpipe 2018-06-22 10:59:54 +01:00
Pedro Alvarez 6a32b5b047 Starting to separate the increment of SQN into a seperate function. 2018-06-19 18:09:14 +01:00
Pedro Alvarez bd39d8bac2 Fixed bug in getting OPc. Removed debug print. Fixed test12345. UE is still having re-synch issues. 2018-06-18 19:32:50 +01:00
Pedro Alvarez 0d61011d13 Changing user_db.csv to allow users to choose OP/OPc. 2018-06-18 17:21:06 +01:00
yagoda fac8bb7b7a adding mbms-gw broadcast support, adding parameter for automatic mbms service start 2018-05-17 16:25:17 +02:00
yagoda e4c3f0bc30 adding mbms-gw and mch generation tables 2018-05-15 17:27:10 +02:00
David Rupprecht 01985fbffa private internal nas methods 2018-04-30 21:24:11 +02:00
Pedro Alvarez 362c856e53 Changed UE set to be accessible from SCTP association. 2018-04-18 11:28:01 +01:00
Pedro Alvarez 300b9e7757 Starting to add UEs to the eNB context again. 2018-04-16 14:54:55 +01:00
Pedro Alvarez a6fbdb62cd Adding function to mark the UE as present to in the eNB 2018-04-12 17:17:49 +01: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
Andre Puschmann 2227b0fb26 Merge branch 'epc' into next 2018-03-29 12:12:59 +02:00
Andre Puschmann ded550b793 remove unneeded boost includes 2018-03-29 10:28:36 +02:00
Pedro Alvarez 49a830e548 Making sure TAU requests are counted. 2018-03-28 11:02:41 +01:00
Pedro Alvarez b1f4ee47d1 Temporally removed unhandled UE cap info. 2018-03-26 11:58:35 +01:00
Pedro Alvarez d82c0b7f6b Adding handling of detach request. 2018-03-22 22:42:31 +00:00
Pedro Alvarez b73a4da8f9 Starting to add support to NAS detach request. 2018-03-22 18:54:06 +00:00
Pedro Alvarez f4f8f746da Merging changes from epc branch into guti_attach branch. 2018-03-20 16:10:36 +00:00
Pedro Alvarez d932a2ad85 Starting to add the ability to handle UE context release complete. 2018-03-15 20:04:50 +00:00
Pedro Alvarez 1f3ccb9bda Fixed bug in integrity check, UE is IMSI attaching again. 2018-03-14 18:07:07 +00:00
Pedro Alvarez 9617a63d27 continuing to change the way context is stored. Compiling now. 2018-03-14 15:39:43 +00:00
Pedro Alvarez 7d37c6b9c3 Continuing to fix compilation issues. Starting to change S1AP to use the new functions to store ctx. 2018-03-14 13:36:20 +00:00
Pedro Alvarez be84ee854a Changing the way that ECM context is stored to keep uplink teids active when the context is release. 2018-03-14 11:14:44 +00:00
Pedro Alvarez be09457ccb Starting to make sure that UL S1-U fteid and S11 SGW ctr fteid are kept, even when UE context release is called. 2018-03-12 16:18:32 +00:00
Pedro Alvarez ff8818590a Changing SPGW's handle_create_session_request to check weather GTP context already exists. 2018-03-09 21:30:33 +00:00
Pedro Alvarez d5478ff7a2 Starting to use EMM state to know whether attach request or service request are initiating the NAS. 2018-03-09 16:25:59 +00:00
Pedro Alvarez 6583d6b2e5 Changing handle UE context release to send release access bearer request instead od delte session request. 2018-03-08 15:55:53 +00:00