Change in ...osmo-bsc[master]: gsm_08_08.c: always pick first msc for unsolicit paging responses

dexter gerrit-no-reply at lists.osmocom.org
Fri Aug 16 08:48:16 UTC 2019


dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/15227


Change subject: gsm_08_08.c: always pick first msc for unsolicit paging responses
......................................................................

gsm_08_08.c: always pick first msc for unsolicit paging responses

When osmo-bsc receives a paging response via the A-bis interface it
tries to find the MSC which is in charge for the paging. This is due to
the fact that osmo-bsc supports multiple msc connections, which is not
specified by 3gpp specs.

In an MT-CSFB call the MSC pages the UE via the SGs interface. Then the
UE falls back to 2G. It then reports back as MS on the A-Bis interface
with the paging response directly. In those cases osmo-bsc will not be
able to determine an MSC in charge, so we will forward the paging
response to the first configured MSC.

Change-Id: I633870030fad35d0a29dfafd6d118e2caa4ec3c9
Related: SYS#4624
---
M src/osmo-bsc/gsm_08_08.c
1 file changed, 16 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/15227/1

diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c
index 4dc4883..43117a8 100644
--- a/src/osmo-bsc/gsm_08_08.c
+++ b/src/osmo-bsc/gsm_08_08.c
@@ -323,8 +323,8 @@
 	subscr = extract_sub(conn, msg);
 
 	if (!subscr) {
-		LOGP(DMSC, LOGL_ERROR, "Got paged but no subscriber found.\n");
-		return NULL;
+		LOGP(DMSC, LOGL_INFO, "Got paging response but no subscriber found, will now (blindly) deliver the paging response to the first configured MSC!\n");
+		goto blind;
 	}
 
 	pag_msc = paging_get_msc(conn_get_bts(conn), subscr);
@@ -344,7 +344,20 @@
 		return msc;
 	}
 
-	LOGP(DMSC, LOGL_ERROR, "Got paged but no request found.\n");
+	LOGP(DMSC, LOGL_INFO, "Got paging response but no request found, will now (blindly) deliver the paging response to the first configured MSC!\n");
+
+blind:
+	/* In the case of an MT CSFB call we will get a paging response from
+	 * the BTS without a preceding paging request via A-Interface. In those
+	 * cases the MSC will page the subscriber via SGs interface, so the BSC
+	 * can not know about the paging in advance. In those cases we can not
+	 * know the MSC which is in charge. The only meaningful option we have
+	 * is to deliver the paging response to the first configured MSC
+	 * blindly. */
+	msc = llist_first_entry_or_null(&bsc->mscs, struct bsc_msc_data, entry);
+	if (msc)
+		return msc;
+	LOGP(DMSC, LOGL_ERROR, "Unable to find any suitable MSC to deliver paging response!\n");
 	return NULL;
 }
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I633870030fad35d0a29dfafd6d118e2caa4ec3c9
Gerrit-Change-Number: 15227
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190816/4a260f99/attachment.html>


More information about the gerrit-log mailing list