Change in osmo-msc[master]: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB

pespin gerrit-no-reply at lists.osmocom.org
Tue Apr 27 16:23:24 UTC 2021


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 )


Change subject: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB
......................................................................

WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB

Since recently, osmo-bsc behaves strictly as per specs, meaning it will
only send the "Cell selection indicator after release of all TCH and SDCCH IE"
in RR Channel Release iff:
* "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC
* "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information"
  in the HandoverRequest sent MSC->BSC.
On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw
ignored and not taken into account.

Hence, let's update osmo-msc to also behave correctly by sending the
Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in
CSFB support when running against newer osmo-bsc.

Let's keep sending the CSFB Indicator in ClearCommand as we used too, in
order to keep compatibility with older BSCs (as per spec).

Related: SYS#5337
Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc
---
M include/osmocom/msc/ran_msg.h
M src/libmsc/gsm_04_08.c
M src/libmsc/msc_a.c
M src/libmsc/ran_msg_a.c
4 files changed, 15 insertions(+), 2 deletions(-)



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

diff --git a/include/osmocom/msc/ran_msg.h b/include/osmocom/msc/ran_msg.h
index 3b08b46..1303ba3 100644
--- a/include/osmocom/msc/ran_msg.h
+++ b/include/osmocom/msc/ran_msg.h
@@ -220,6 +220,8 @@
 		} cipher_mode_reject;
 		struct {
 			const char *imsi;
+			bool last_eutran_plmn_present;
+			struct osmo_plmn_id last_eutran_plmn;
 		} common_id;
 		struct {
 			enum gsm48_reject_value cause;
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 6379059..8d3a71f 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1372,8 +1372,12 @@
 		.msg_type = RAN_MSG_COMMON_ID,
 		.common_id = {
 			.imsi = msc_a_vsub(msc_a)->imsi,
+			.last_eutran_plmn_present = false /*TODO*/,
 		},
 	};
+	if (msg.common_id.last_eutran_plmn_present) {
+		/*TODO: fill last_eutran_plmn_present */
+	}
 	return msc_a_ran_down(msc_a, MSC_ROLE_I, &msg);
 }
 
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 0645c54..fcde47c 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -1648,9 +1648,12 @@
 		.msg_type = RAN_MSG_COMMON_ID,
 		.common_id = {
 			.imsi = vsub->imsi,
+			.last_eutran_plmn_present = false /*TODO*/,
 		},
 	};
-
+	if (msg.common_id.last_eutran_plmn_present) {
+		/*TODO: fill last_eutran_plmn_present */
+	}
 	return msc_a_ran_down(msc_a, to_role, &msg);
 }
 
diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c
index 2890076..4cce289 100644
--- a/src/libmsc/ran_msg_a.c
+++ b/src/libmsc/ran_msg_a.c
@@ -1218,7 +1218,11 @@
 		return ran_a_make_assignment_command(caller_fi, &ran_enc_msg->assignment_command);
 
 	case RAN_MSG_COMMON_ID:
-		return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL, NULL);
+		return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL,
+						ran_enc_msg->common_id.last_eutran_plmn_present ?
+							&ran_enc_msg->common_id.last_eutran_plmn :
+							NULL
+						);
 
 	case RAN_MSG_CIPHER_MODE_COMMAND:
 		return ran_a_make_cipher_mode_command(caller_fi, &ran_enc_msg->cipher_mode_command);

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

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc
Gerrit-Change-Number: 23915
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210427/1852dbba/attachment.htm>


More information about the gerrit-log mailing list