Change in ...osmo-iuh[master]: iu_client: introduce UE field free_on_release

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

lynxis lazus gerrit-no-reply at lists.osmocom.org
Tue Sep 10 17:14:06 UTC 2019


lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/15474


Change subject: iu_client: introduce UE field free_on_release
......................................................................

iu_client: introduce UE field free_on_release

Allow to free UE ctx when receiving a Iu Release Complete.
In preparation of ranap_iu_tx_release_free() it requires
a field to free the Iu ctx on it's own without depending
on the upstream user.

Change-Id: Iac41cd3cce3232d01b2f7ede0cc46226c2cfb6c0
---
M include/osmocom/ranap/iu_client.h
M src/iu_client.c
2 files changed, 11 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/74/15474/1

diff --git a/include/osmocom/ranap/iu_client.h b/include/osmocom/ranap/iu_client.h
index 9da611b..78bb047 100644
--- a/include/osmocom/ranap/iu_client.h
+++ b/include/osmocom/ranap/iu_client.h
@@ -31,6 +31,8 @@
 	struct gprs_ra_id ra_id;
 	enum ranap_nsap_addr_enc rab_assign_addr_enc;
 	bool notification; /* send notification to the upstream user */
+	/* if true the ue_ctx will be free on Iu release complete */
+	bool free_on_release;
 	/* Will be set when the Iu Release Command has been sent */
 	struct osmo_timer_list release_timeout;
 };
diff --git a/src/iu_client.c b/src/iu_client.c
index fe1b880..5072cba 100644
--- a/src/iu_client.c
+++ b/src/iu_client.c
@@ -129,6 +129,7 @@
 	ctx->rnc = rnc;
 	ctx->conn_id = conn_id;
 	ctx->notification = true;
+	ctx->free_on_release = false;
 	osmo_timer_setup(&ctx->release_timeout,
 			(void *)(void *) ranap_iu_free_ue,
 			ctx);
@@ -500,6 +501,7 @@
 			     int timeout)
 {
 	ctx->notification = false;
+	ctx->free_on_release = true;
 	int ret = ranap_iu_tx_release(ctx, cause);
 	if (ret) {
 		ranap_iu_free_ue(ctx);
@@ -851,6 +853,13 @@
 			break;
 
 		global_iu_event(ue, RANAP_IU_EVENT_LINK_INVALIDATED, NULL);
+
+		/* A RANAP_IU_EVENT_LINK_INVALIDATED, can lead to a free */
+		ue = ue_conn_ctx_find(prim->u.disconnect.conn_id);
+		if (!ue)
+			break;
+		if (ue->free_on_release)
+			ranap_iu_free_ue(ue);
 		break;
 	case OSMO_PRIM(OSMO_SCU_PRIM_N_DATA, PRIM_OP_INDICATION):
 		/* connection-oriented data received */

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/15474
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-iuh
Gerrit-Branch: master
Gerrit-Change-Id: Iac41cd3cce3232d01b2f7ede0cc46226c2cfb6c0
Gerrit-Change-Number: 15474
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190910/6569c944/attachment.htm>


More information about the gerrit-log mailing list