* 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
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.
* 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
* 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.
* 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.