Change in osmo-msc[master]: drop msc_compl_l3() return value

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

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Fri Nov 30 02:45:47 UTC 2018


Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12029


Change subject: drop msc_compl_l3() return value
......................................................................

drop msc_compl_l3() return value

msc_compl_l3() always returns MSC_CONN_ACCEPT, because the conn FSM handles (or
should handle) all reject cases. The accept/reject return value is a legacy
from libbsc internally passing a conn over to libmsc, in osmo-nitb.

Drop enum msc_compl_l3_rc.
Change msc_compl_l3_rc() to return void.
Change all callers to always act like for acceptance, as they always did anyway.
Drop some local variables now no longer needed.
Adjust the comment to msc_compl_l3().
Drop a bunch of #if-0'd code from msc_compl_l3().

Change-Id: I759d15f4e820d5fc16397ed7210ce92308e52a09
---
M include/osmocom/msc/osmo_msc.h
M src/libmsc/a_iface_bssap.c
M src/libmsc/iucs.c
M src/libmsc/osmo_msc.c
4 files changed, 11 insertions(+), 51 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/29/12029/1

diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h
index ad81da5..674de3b 100644
--- a/include/osmocom/msc/osmo_msc.h
+++ b/include/osmocom/msc/osmo_msc.h
@@ -40,11 +40,6 @@
 	SUBSCR_CONN_S_RELEASED,
 };
 
-enum msc_compl_l3_rc {
-	MSC_CONN_ACCEPT = 0,
-	MSC_CONN_REJECT = 1,
-};
-
 struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,
 							enum ran_type via_ran, uint16_t lac);
 
@@ -59,8 +54,8 @@
 
 void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci);
 int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause);
-int msc_compl_l3(struct gsm_subscriber_connection *conn,
-		 struct msgb *msg, uint16_t chosen_channel);
+void msc_compl_l3(struct gsm_subscriber_connection *conn,
+		  struct msgb *msg, uint16_t chosen_channel);
 void msc_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg);
 int msc_classmark_request_then_cipher_mode_cmd(struct gsm_subscriber_connection *conn, bool umts_aka,
 					       bool retrieve_imeisv);
diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c
index 9a2333d..77d84b3 100644
--- a/src/libmsc/a_iface_bssap.c
+++ b/src/libmsc/a_iface_bssap.c
@@ -260,8 +260,6 @@
 	uint16_t lac = 0;
 	uint8_t data_length;
 	const uint8_t *data;
-	int rc;
-
 	struct gsm_network *network = a_conn_info->network;
 	struct gsm_subscriber_connection *conn;
 
@@ -345,17 +343,8 @@
 	conn = subscr_conn_allocate_a(a_conn_info, network, lac, scu, a_conn_info->conn_id);
 
 	/* Handover location update to the MSC code */
-	rc = msc_compl_l3(conn, msg, 0);
-
-	if (rc == MSC_CONN_ACCEPT) {
-		LOGP(DMSC, LOGL_INFO, "User has been accepted by MSC.\n");
-		return 0;
-	} else if (rc == MSC_CONN_REJECT)
-		LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC.\n");
-	else
-		LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC (unknown error)\n");
-
-	return -EINVAL;
+	msc_compl_l3(conn, msg, 0);
+	return 0;
 }
 
 /* Endpoint to handle BSSMAP classmark update */
diff --git a/src/libmsc/iucs.c b/src/libmsc/iucs.c
index 95bbbee..c3fea0d 100644
--- a/src/libmsc/iucs.c
+++ b/src/libmsc/iucs.c
@@ -142,7 +142,6 @@
 int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg,
 			uint16_t *lac)
 {
-	int rc;
 	struct ranap_ue_conn_ctx *ue_ctx;
 	struct gsm_subscriber_connection *conn;
 
@@ -174,7 +173,6 @@
 		OSMO_ASSERT(pdisc != GSM48_PDISC_RR);
 
 		msc_dtap(conn, msg);
-		rc = 0;
 	} else {
 		/* allocate a new connection */
 
@@ -191,10 +189,10 @@
 			abort();
 
 		/* ownership of conn hereby goes to the MSC: */
-		rc = msc_compl_l3(conn, msg, 0);
+		msc_compl_l3(conn, msg, 0);
 	}
 
-	return rc;
+	return 0;
 }
 
 int iu_rab_act_cs(struct gsm_trans *trans)
diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c
index f2c84e6..9a371a4 100644
--- a/src/libmsc/osmo_msc.c
+++ b/src/libmsc/osmo_msc.c
@@ -87,37 +87,15 @@
 		gsm411_sapi_n_reject(conn);
 }
 
-/* receive a Level 3 Complete message and return MSC_CONN_ACCEPT or
- * MSC_CONN_REJECT */
-int msc_compl_l3(struct gsm_subscriber_connection *conn,
-		 struct msgb *msg, uint16_t chosen_channel)
+/* receive a Level 3 Complete message.
+ * Ownership of the conn is completely passed to the conn FSM, i.e. for both acceptance and rejection,
+ * the conn FSM shall decide when to release this conn. It may already be discarded before this exits. */
+void msc_compl_l3(struct gsm_subscriber_connection *conn,
+		  struct msgb *msg, uint16_t chosen_channel)
 {
 	msc_subscr_conn_get(conn, MSC_CONN_USE_COMPL_L3);
 	gsm0408_dispatch(conn, msg);
-
 	msc_subscr_conn_put(conn, MSC_CONN_USE_COMPL_L3);
-
-	/* Always return acceptance, because even if the conn was not accepted,
-	 * we assumed ownership of it and the caller shall not interfere with
-	 * that. We may even already have discarded the conn. */
-	return MSC_CONN_ACCEPT;
-
-#if 0
-	/*
-	 * If this is a silent call we want the channel to remain open as long as
-	 * possible and this is why we accept this connection regardless of any
-	 * pending transaction or ongoing operation.
-	 */
-	if (conn->silent_call)
-		return MSC_CONN_ACCEPT;
-	if (conn->loc_operation || conn->sec_operation || conn->anch_operation)
-		return MSC_CONN_ACCEPT;
-	if (trans_has_conn(conn))
-		return MSC_CONN_ACCEPT;
-
-	LOGP(DRR, LOGL_INFO, "MSC Complete L3: Rejecting connection.\n");
-	return MSC_CONN_REJECT;
-#endif
 }
 
 /* Receive a DTAP message from BSC */

-- 
To view, visit https://gerrit.osmocom.org/12029
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I759d15f4e820d5fc16397ed7210ce92308e52a09
Gerrit-Change-Number: 12029
Gerrit-PatchSet: 1
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181130/a0dfbaa4/attachment.htm>


More information about the gerrit-log mailing list