[PATCH] osmo-bsc[master]: HO: If handover logic is used to do assignment, signal assig...

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 Jan 19 03:03:58 UTC 2018


Review at  https://gerrit.osmocom.org/5906

HO: If handover logic is used to do assignment, signal assignment result

Change-Id: I465caef03626e67d9b3a21bdf730589b9852c211
---
M include/osmocom/bsc/signal.h
M src/libbsc/bsc_api.c
2 files changed, 31 insertions(+), 0 deletions(-)


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

diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h
index 58d9acf..9c0d5a3 100644
--- a/include/osmocom/bsc/signal.h
+++ b/include/osmocom/bsc/signal.h
@@ -85,6 +85,8 @@
 	S_LCHAN_ACTIVATE_NACK,		/* 08.58 Channel Activate NACK */
 	S_LCHAN_HANDOVER_COMPL,		/* 04.08 Handover Completed */
 	S_LCHAN_HANDOVER_FAIL,		/* 04.08 Handover Failed */
+	S_LCHAN_ASSIGNMENT_COMPL,	/* 04.08 Assignment Completed */
+	S_LCHAN_ASSIGNMENT_FAIL,	/* 04.08 Assignment Failed */
 	S_LCHAN_HANDOVER_DETECT,	/* 08.58 Handover Detect */
 	S_LCHAN_MEAS_REP,		/* 08.58 Measurement Report */
 };
diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c
index 3592c00..ec64bb8 100644
--- a/src/libbsc/bsc_api.c
+++ b/src/libbsc/bsc_api.c
@@ -436,6 +436,21 @@
 	struct gsm48_hdr *gh;
 	struct bsc_api *api = conn->network->bsc_api;
 
+	if (conn->ho_lchan) {
+		struct lchan_signal_data sig;
+		struct gsm48_hdr *gh = msgb_l3(msg);
+
+		DEBUGP(DRR, "ASSIGNMENT COMPLETE cause = %s\n",
+			rr_cause_name(gh->data[0]));
+
+		sig.lchan = msg->lchan;
+		sig.mr = NULL;
+		osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_COMPL, &sig);
+		/* FIXME: release old channel */
+
+		return;
+	}
+
 	if (conn->secondary_lchan != msg->lchan) {
 		LOGP(DMSC, LOGL_ERROR, "Assignment Compl should occur on second lchan.\n");
 		return;
@@ -471,6 +486,20 @@
 	uint8_t *rr_failure;
 	struct gsm48_hdr *gh;
 
+	if (conn->ho_lchan) {
+		struct lchan_signal_data sig;
+		struct gsm48_hdr *gh = msgb_l3(msg);
+
+		DEBUGP(DRR, "ASSIGNMENT FAILED cause = %s\n",
+			rr_cause_name(gh->data[0]));
+
+		sig.lchan = msg->lchan;
+		sig.mr = NULL;
+		osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_FAIL, &sig);
+		/* FIXME: release allocated new channel */
+
+		return;
+	}
 
 	if (conn->lchan != msg->lchan) {
 		LOGP(DMSC, LOGL_ERROR, "Assignment failure should occur on primary lchan.\n");

-- 
To view, visit https://gerrit.osmocom.org/5906
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I465caef03626e67d9b3a21bdf730589b9852c211
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list