osmo-msc/openbsc/src/gprs
Jacob Erlbeck 81ffb740f7 sgsn: Remove inactive LLME/MM after inactivity timeout
Currently old LLMEs and MM contexts that haven't been explicitly
detached or cancelled are not removed until another request with the
same IMSI is made. These stale entries may accumulate over time and
severely compromise the operation of the SGSN.

This patch implements age based LLME expiry, when the maximum age has
been reached, the corresponding MM context is cancelled. If such an MM
context doesn't exist, the LLME is unassigned directly.

The implementation works as follows.
 - llme->age_timestamp is reset on each received PTP LLC message
 - sgsn_llme_check_cb is invoked periodically (each 30s)
 - sgsn_llme_check_cb sets the age_timestamp to the current time if
   it has been reset
 - sgsn_llme_check_cb computes the age and expires the LLME if
   it exceeds gprs_max_time_to_idle()

Ticket: OW#1364
Sponsored-by: On-Waves ehf

[hfreyther: Fix typo in comment LMME -> LLME]
2015-01-26 08:51:50 +01:00
..
.gitignore update gitignore 2011-01-14 14:38:42 +01:00
Makefile.am sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
crc24.c misc: Remove sys/types.h includes from the files 2011-04-18 17:31:39 +02:00
gb_proxy.c gbproxy: Honour the BSS TLLI type when creating an SGSN TLLI 2014-11-11 22:44:32 +01:00
gb_proxy_main.c Use port number #defines for VTY and CTRL ports 2014-08-24 17:54:49 +02:00
gb_proxy_patch.c gbproxy: Patch BSSGP P-TMSI in PAGING PS messages 2014-10-27 11:59:28 +01:00
gb_proxy_peer.c gbproxy: Rename the field 'enabled_tllis' to 'logical_links' 2014-10-09 17:45:14 +02:00
gb_proxy_tlli.c gbproxy: Reset TLLIs when the link_info is found by IMSI/P-TMSI 2014-12-02 09:00:09 +01:00
gb_proxy_vty.c gbproxy: Fixed VTY doc for delete-gbproxy-link 2014-11-05 00:24:13 +01:00
gprs_gb_parse.c gprs: Move TLV parser functions to gprs_utils.c and rename them 2014-12-23 15:08:52 +01:00
gprs_gmm.c sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
gprs_gsup_client.c gprs: Return 0 from gsup_client_connect if ok or retry timer enabled 2015-01-26 08:41:52 +01:00
gprs_gsup_messages.c gprs: Implement PURGE_MS GSUP messages 2015-01-18 18:33:13 +01:00
gprs_llc.c sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
gprs_llc_parse.c gprs: Separate LLC parsing from LLC state handling 2014-06-04 16:29:30 +02:00
gprs_llc_vty.c sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
gprs_sgsn.c sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
gprs_sndcp.c sgsn: Prevent memory leak and double free 2014-10-10 17:43:40 +02:00
gprs_sndcp.h src: use namespace prefix osmo_timer* for timer functions 2011-05-06 12:11:06 +02:00
gprs_sndcp_vty.c gprs: Fix compiler warnings ini gprs_sndcp_vty.c 2014-04-04 12:49:38 +02:00
gprs_subscriber.c sgsn: Add SGSN_ERROR_CAUSE_NONE and use it instead of 0 2015-01-20 16:13:48 +01:00
gprs_utils.c gprs: Add GPRS timer conversion functions 2015-01-26 08:41:52 +01:00
gsm_04_08_gprs.c gprs: Move protocol value_strings to gsm_04_08_gprs.c 2015-01-18 18:13:06 +01:00
osmo_sgsn.cfg [GPRS] SGSN: specify the local bind address in the config file 2010-06-02 23:18:40 +02:00
sgsn_auth.c sgsn: Add SGSN_ERROR_CAUSE_NONE and use it instead of 0 2015-01-20 16:13:48 +01:00
sgsn_ctrl.c libctrl: Follow rename of controlif_setup -> ctrl_interface_setup 2014-08-21 15:34:28 +02:00
sgsn_libgtp.c sgsn: Delete PDP contexts properly 2014-10-27 10:25:13 +01:00
sgsn_main.c sgsn: Remove inactive LLME/MM after inactivity timeout 2015-01-26 08:51:50 +01:00
sgsn_vty.c sgsn: Restructure the 'update-subscriber' command 2015-01-20 16:14:01 +01:00