aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/msc/gsm_data.h
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-12-15 03:02:27 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2017-12-20 23:07:10 +0100
commit2ff5bcdc387a7eb5135e5a54d55027502952c86b (patch)
tree602296791799e12d7f1aab0f635694d211c69ac8 /include/osmocom/msc/gsm_data.h
parentc1d69256f61e6bc7bdcbbd1b4df6a779c7883891 (diff)
fix paging: add timeout to discard unsuccessful paging
Currently, if there is no reply from the BSS / RNC, a subscriber will remain as "already paged" forever, and is never going to be paged again. Even on IMSI Detach, the pending request will keep a ref count on the vlr_subscr. Add a paging timeout, as gsm_network->paging_timeout and in the VTY on the 'msc' node as 'paging timeout (default|<1-65535>'. (There is a 'network' / 'T3113' in OsmoBSC, but to not confuse the two, give this a different name.) Add test_ms_timeout_paging() test to verify the timeout works. I hit this while testing Paging across multiple hNodeB, when a UE lost connection to the hNodeB. I noticed that no matter how long I wait, no Paging is sent out anymore, and found this embarrassing issue. Good grief... The choice of 10 seconds is taken from https://osmocom.org/issues/2756 Change-Id: I2db6f1e2ad341cf9c2cc7a21ec2fca0bae5b2db5
Diffstat (limited to 'include/osmocom/msc/gsm_data.h')
-rw-r--r--include/osmocom/msc/gsm_data.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 6349fe0d3..1b0bff9df 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -344,6 +344,7 @@ enum gsm_auth_policy {
GSM_AUTH_POLICY_REGEXP, /* accept IMSIs matching given regexp */
};
+#define MSC_PAGING_RESPONSE_TIMER_DEFAULT 10
struct gsm_tz {
int override; /* if 0, use system's time zone instead. */
@@ -408,6 +409,7 @@ struct gsm_network {
unsigned int num_bts;
struct llist_head bts_list;
+ unsigned int paging_response_timer;
/* timer to expire old location updates */
struct osmo_timer_list subscr_expire_timer;