Change in osmo-bsc[master]: handover_fsm: adjust inter-BSC HO failure handling to spec

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
Thu Oct 11 15:15:24 UTC 2018


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


Change subject: handover_fsm: adjust inter-BSC HO failure handling to spec
......................................................................

handover_fsm: adjust inter-BSC HO failure handling to spec

Inter-BSC outgoing lacked the required BSSMAP HO Failure dispatch.

Not all cases should send BSSMAP HO Failure, name the relevant spec paragraphs
in comments and adjust handling.

Related: osmo-ttcn3-hacks If772dbbc5f9790d3f911465e1303dd0a99811154
Change-Id: I0980cacb9713e41a1eef3a0a7f6cc892e8a20da5
---
M src/osmo-bsc/handover_fsm.c
1 file changed, 33 insertions(+), 2 deletions(-)



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

diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 90d5f6c..4286084 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -40,6 +40,7 @@
 #include <osmocom/bsc/osmo_bsc_lcls.h>
 #include <osmocom/bsc/mgw_endpoint_fsm.h>
 #include <osmocom/bsc/codec_pref.h>
+#include <osmocom/bsc/gsm_08_08.h>
 
 #define LOG_FMT_BTS "bts %u lac-ci %u-%u arfcn-bsic %d-%d"
 #define LOG_ARGS_BTS(bts) \
@@ -697,9 +698,39 @@
 				result = HO_RESULT_ERROR;
 			} else
 				result = bsc_tx_bssmap_ho_complete(conn, ho->new_lchan);
-		} else {
+		}
+		/* Not 'else': above checks may still result in HO_RESULT_ERROR. */
+		if (result == HO_RESULT_ERROR) {
+			/* Return a BSSMAP Handover Failure, as described in 3GPP TS 48.008 3.1.5.2.2
+			 * "Handover Resource Allocation Failure" */
 			bsc_tx_bssmap_ho_failure(conn);
-			/* TODO: Also send BSSMAP Clear Request? */
+		}
+	} else if (ho->scope & HO_INTER_BSC_OUT) {
+		switch (result) {
+		case HO_RESULT_OK:
+			break;
+		case HO_RESULT_FAIL_RR_HO_FAIL:
+			/* Return a BSSMAP Handover Failure, as described in 3GPP TS 48.008 3.1.5.3.2
+			 * "Handover Failure" */
+			bsc_tx_bssmap_ho_failure(conn);
+			break;
+		default:
+		case HO_RESULT_FAIL_TIMEOUT:
+			switch (ho->fi->state) {
+			case HO_OUT_ST_WAIT_HO_COMMAND:
+				/* MSC never replied with a Handover Command. Fail and ignore the
+				 * handover, continue to use the lchan. */
+				break;
+			default:
+			case HO_OUT_ST_WAIT_CLEAR:
+				/* 3GPP TS 48.008 3.1.5.3.3 "Abnormal Conditions": if neither MS reports
+				 * HO Failure nor the MSC sends a Clear Command, we should release the
+				 * dedicated radio resources and send a Clear Request to the MSC. */
+				lchan_release(conn->lchan, false, true, GSM48_RR_CAUSE_ABNORMAL_TIMER);
+				/* Once the channel release is through, the BSSMAP Clear will follow. */
+				break;
+			}
+			break;
 		}
 	}
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0980cacb9713e41a1eef3a0a7f6cc892e8a20da5
Gerrit-Change-Number: 11314
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/20181011/451e4f5a/attachment.htm>


More information about the gerrit-log mailing list