278 Commits (e2b10307ea23a48eb4832f9e7459bbd05d49aa5c)

Author SHA1 Message Date
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.
6 years ago
Pedro Alvarez 9350e03810 Changed detach request and tracking area update request to nas.cc 6 years ago
Pedro Alvarez a9e5b3b8e9 Changed service request to nas.cc 6 years ago
Pedro Alvarez 3337f21ffa Added handle GUTI attach from known UE again. 6 years ago
Pedro Alvarez 0d80ae795b Added IMSI attach from unknown UE as a static function. 6 years ago
Pedro Alvarez 860e1b5491 Changing Handling of initial UE NAS messages to use static methods. Handling of unknown GUTI attach request should be ok. 6 years ago
Pedro Alvarez 9e808ff968 Starting to handle NAS initial UE messages as static methods of the nas class. 6 years ago
Pedro Alvarez e3286897ce Changed the rest of the nas handling to use send_downlink_nas_transport. 6 years ago
Pedro Alvarez f1d30c7f23 Changed handle guti_attach_from_known_ue and unknown_ue to use send_downstream_nas_message. 6 years ago
Pedro Alvarez dd725be60c Changed pack identity request. 6 years ago
Pedro Alvarez 65a5139751 Fixed mistake in downlink nas transport. Changing authication request to use downlink_nas_transport. 6 years ago
Pedro Alvarez 21c34b9ce5 Changing security mode complete to use downlink nas transport 6 years ago
Pedro Alvarez 93222f582c Changed authentication response to use downlink_nas_transport(). 6 years ago
Pedro Alvarez 3073ab6822 Changed dettach request to use downlink nas transport. 6 years ago
Pedro Alvarez 749e84315a Starting to add send_downlink_nas_transport helper function. 6 years ago
Pedro Alvarez 872f7adc49 Added find imsi from TMSI helper function. 6 years ago
Pedro Alvarez fa0c8d5995 Moved most of IMSI attach request into nas.cc. 6 years ago
Pedro Alvarez f6b8982939 Moved most of the GUTI attach to nas.cc. 6 years ago
Pedro Alvarez c518d3fde3 Starting to move inital UE messages to nas.cc. Breaking up attach request handling into smaller functions. 6 years ago
Pedro Alvarez 55675eb532 Fixed bug in setting MCC and MNC in attach accept. Attach seems to be working again. 6 years ago
Pedro Alvarez 7c53330bec Fixed NAS initialization. Attach request seems to work again now. 6 years ago
Pedro Alvarez 4ba777c9c3 Added nas log. Fixed gen_auth_info_anwser. Authentication is working again. 7 years ago
Pedro Alvarez de8679b536 Continuing to cleanup. Starting to compile again. 7 years ago
Pedro Alvarez 406d198eac Cleaning up nas.cc 7 years ago
Pedro Alvarez f03967776a Continuing to clean nas.cc 7 years ago
Pedro Alvarez 6ef3124fc9 Fixed up release ue ctx command. 7 years ago
Pedro Alvarez b25c12a084 Fixing nas.cc 7 years ago
Pedro Alvarez 85672d4a3f Fixing up s1ap.cc 7 years ago
Pedro Alvarez d8f1b3c88d Moved uplink nas messages to nas.cc. s1ap_nas_transport is compiling. 7 years ago
Pedro Alvarez 1bad88a432 Changing integrity functions in nas.cc 7 years ago
Pedro Alvarez 5fd337a7ad Continue to move uplink NAS into nas.cc. 7 years ago
Pedro Alvarez 4d40e9ca2d Temporarilly changing ESM state back to previous definition. 7 years ago
Pedro Alvarez c1eff4ce73 Changing pack accept 7 years ago
Pedro Alvarez 3663d59920 Starting to add s1ap_interface_gtpc and s1ap_interface_nas. Adapting send initial context setup request accordingly. 7 years ago
Pedro Alvarez f33fcf65bf Fixing up S1AP context management procedures to use the new class. 7 years ago
Pedro Alvarez 4c164acbc3 Moving many of the functions fron s1ap_nas_transport to it's own NAS class. 7 years ago
Pedro Alvarez 41a5788cc7 Adding nas.h 7 years ago
Pedro Alvarez 151efc61d5 Added s1ap_tx_pdu function. This function will record to pcap if PCAP is enabled. 7 years ago
Pedro Alvarez b89ad628e2 Added config option to enable pcap. 7 years ago
Pedro Alvarez ba5708dc60 Starting to add S1AP pcap to EPC. 7 years ago
Pedro Alvarez 1dc5836365 Adding SGi-mb mask to config 7 years ago
Pedro Alvarez 0a6540d8bf Saving QCI into ESM context. Different QCIs should be working now. 7 years ago
Pedro Alvarez 66db3deeb4 Starting to add Bearer QoS parameter to create session request. 7 years ago
Pedro Alvarez f9e3d3a1f7 Added mechanisms to read and write QCI from/to user_db.csv. 7 years ago
Pedro Alvarez b8bb270ac7 Cosmetic fix. 7 years ago
Pedro Alvarez f301bb6373 Merging next into op_vs_opc and resolving conflicts. 7 years ago
Pedro Alvarez d44a3c44ca Making sure eKSI is changed on re-synch. Re-synch on SYSMOCOM USIMs seem to work. 7 years ago
Pedro Alvarez 11b51e7cb4 Merge branch 'next' into epc_sigpipe 7 years ago
Pedro Alvarez 6a32b5b047 Starting to separate the increment of SQN into a seperate function. 7 years ago
Pedro Alvarez bd39d8bac2 Fixed bug in getting OPc. Removed debug print. Fixed test12345. UE is still having re-synch issues. 7 years ago
Pedro Alvarez 0d61011d13 Changing user_db.csv to allow users to choose OP/OPc. 7 years ago
yagoda fac8bb7b7a adding mbms-gw broadcast support, adding parameter for automatic mbms service start 7 years ago
yagoda e4c3f0bc30 adding mbms-gw and mch generation tables 7 years ago
David Rupprecht 01985fbffa private internal nas methods 7 years ago
Pedro Alvarez 362c856e53 Changed UE set to be accessible from SCTP association. 7 years ago
Pedro Alvarez 300b9e7757 Starting to add UEs to the eNB context again. 7 years ago
Pedro Alvarez a6fbdb62cd Adding function to mark the UE as present to in the eNB 7 years ago
David Rupprecht 06d4559294 Change include path absolut to project dir 7 years ago
David Rupprecht 9d71bec7b6 Unified include guards 7 years ago
Andre Puschmann 2227b0fb26 Merge branch 'epc' into next 7 years ago
Andre Puschmann ded550b793 remove unneeded boost includes 7 years ago
Pedro Alvarez 49a830e548 Making sure TAU requests are counted. 7 years ago
Pedro Alvarez b1f4ee47d1 Temporally removed unhandled UE cap info. 7 years ago
Pedro Alvarez d82c0b7f6b Adding handling of detach request. 7 years ago
Pedro Alvarez b73a4da8f9 Starting to add support to NAS detach request. 7 years ago
Pedro Alvarez f4f8f746da Merging changes from epc branch into guti_attach branch. 7 years ago
Pedro Alvarez d932a2ad85 Starting to add the ability to handle UE context release complete. 7 years ago
Pedro Alvarez 1f3ccb9bda Fixed bug in integrity check, UE is IMSI attaching again. 7 years ago
Pedro Alvarez 9617a63d27 continuing to change the way context is stored. Compiling now. 7 years ago
Pedro Alvarez 7d37c6b9c3 Continuing to fix compilation issues. Starting to change S1AP to use the new functions to store ctx. 7 years ago
Pedro Alvarez be84ee854a Changing the way that ECM context is stored to keep uplink teids active when the context is release. 7 years ago
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. 7 years ago
Pedro Alvarez ff8818590a Changing SPGW's handle_create_session_request to check weather GTP context already exists. 7 years ago
Pedro Alvarez d5478ff7a2 Starting to use EMM state to know whether attach request or service request are initiating the NAS. 7 years ago
Pedro Alvarez 6583d6b2e5 Changing handle UE context release to send release access bearer request instead od delte session request. 7 years ago
Pedro Alvarez 2b84e78389 Adding release access bearer request to SPGW. Compiling now. 7 years ago
Pedro Alvarez 2cc4959667 Adding release access bearers request. 7 years ago
Pedro Alvarez 3b338067c9 Changing Delete session request to delete GTP-C context. 7 years ago
Pedro Alvarez a3b31966b8 Changing Activate EPS bearer function to work with IMSI. 7 years ago
Pedro Alvarez 98345ed6a2 Adapting send modify bearer request to new GTP-C context 7 years ago
Pedro Alvarez 0c50ccef1c Changed create session request to keep GTPC context. 7 years ago
Pedro Alvarez e499fffe01 Starting to save GTP-C context in a map, to keep the GTP-C connection even when the NAS connection is released. 7 years ago
Pedro Alvarez e9213f807d Starting to change SPGW to handle release access bearers request. Changing MME GTPC entity to contain an IMSI to sgw_ctr_fteid and ctr_teid to IMSI maps. 7 years ago
Pedro Alvarez 5488609096 Resolving conflicts from merging next. Adding the functionality of echoing the attach type. 7 years ago
Pedro Alvarez 01cf00700a Adding DNS config options 7 years ago
Pedro Alvarez 0cb1127f93 Sending Service reject to UE as a temporary handling of service requests (Thanks to Merlin Chlosta). 7 years ago
Pedro Alvarez 01e5642882 Replying same attach type to the UE as in the attach request. 7 years ago
Pedro Alvarez ecb846717c Starting to handle UE capability info indication 7 years ago
Pedro Alvarez d301d7599f Quick and dirty hack to not send activate default eps bearer when a service request is received. 7 years ago
Pedro Alvarez d913fdd499 Adding EMM information message. 7 years ago
Pedro Alvarez bdc72c65c4 Adding print to debug TPC issue. 7 years ago
Pedro Alvarez 5f4613bffd Fixing conflicts from merge. 7 years ago
Pedro Alvarez c6e2f144d7 Merging next into guti_attach branch 7 years ago
Pedro Alvarez c02b67b709 Sending initial context setup request on receiving service request 7 years ago
Pedro Alvarez fc0f1e4c23 Sendind intial context setup in response to service request. 7 years ago
Pedro Alvarez 4ee08fdeca Changing send initial context setup request to not need the create session response struct. 7 years ago
Pedro Alvarez 2cb1f27ddb Adding UE context release command. Fixing issue when identity response is integrity protected. 7 years ago
Pedro Alvarez 24d394d8ca Fixed some compilation issues. 7 years ago
FabianEckermann 148c0a97bd Read MME APN from epc config 7 years ago
Pedro Alvarez 7ae2975de4 Starting to get M-TMSI from service request. 7 years ago