mirror of https://github.com/PentHertz/srsLTE.git
* 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. |
||
---|---|---|
.. | ||
hss.h |