diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2019-10-08 14:30:59 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2019-10-08 20:31:25 +0000 |
commit | afadd102bf1b3a187218a9d79687c4750a035100 (patch) | |
tree | d99c190335381ec710a384f87dac725c3d01c2a5 /src/sgsn/gprs_ranap.c | |
parent | 12235310af015fe3f4645ffbfc18950e89d23aa0 (diff) |
ranap: add non-spec X1001
When the SGSN releases a RANAP connection, it sends a Release Command
and waits for a Release Complete. Use X1001 to release the Iu connection
when the Release Complete is lost/never received.
Change-Id: I39a0169c22a4ac430b3d6f3c281d1f381eaa4756
Diffstat (limited to 'src/sgsn/gprs_ranap.c')
-rw-r--r-- | src/sgsn/gprs_ranap.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/sgsn/gprs_ranap.c b/src/sgsn/gprs_ranap.c index 9c7a5dbb0..7a3349192 100644 --- a/src/sgsn/gprs_ranap.c +++ b/src/sgsn/gprs_ranap.c @@ -25,6 +25,7 @@ #include <gtp.h> #include <osmocom/core/rate_ctr.h> +#include <osmocom/core/tdef.h> #include <osmocom/ranap/ranap_common.h> @@ -162,8 +163,6 @@ int sgsn_ranap_iu_event(struct ranap_ue_conn_ctx *ctx, enum ranap_iu_event_type return rc; } -/* TODO: use timers */ -#define TIMEOUT_RANAP_RELEASE_SEC 5 void sgsn_ranap_iu_free(struct sgsn_mm_ctx *ctx) { if (!ctx) @@ -179,15 +178,19 @@ void sgsn_ranap_iu_free(struct sgsn_mm_ctx *ctx) void sgsn_ranap_iu_release_free(struct sgsn_mm_ctx *ctx, const struct RANAP_Cause *cause) { + unsigned long X1001; + if (!ctx) return; if (!ctx->iu.ue_ctx) return; + X1001 = osmo_tdef_get(sgsn->cfg.T_defs, -1001, OSMO_TDEF_S, -1); + ranap_iu_tx_release_free(ctx->iu.ue_ctx, cause, - TIMEOUT_RANAP_RELEASE_SEC); + (int) X1001); ctx->iu.ue_ctx = NULL; } |