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/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: Properly reject CM Re-Establishment Request ...................................................................... Properly reject CM Re-Establishment Request Even if we're not implementing CM re-establishment, we should give the MS a clear indication that we don't do and follow the related procedures of TS 24.008 by sending CM SERVICE REJECT. Closes: OS#2869 Change-Id: I1c0473647295456fd635b8df6079ee48695dcf2e --- M src/libmsc/gsm_04_08.c 1 file changed, 22 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index ea40a96..51eb1c0 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -740,6 +740,26 @@ return 0; } +/* Receive a CM Re-establish Request */ +static int gsm48_rx_cm_reest_req(struct gsm_subscriber_connection *conn, struct msgb *msg) +{ + uint8_t mi_type; + char mi_string[GSM48_MI_SIZE]; + struct gsm48_hdr *gh = msgb_l3(msg); + + uint8_t classmark2_len = gh->data[1]; + uint8_t *classmark2 = gh->data+2; + uint8_t mi_len = *(classmark2 + classmark2_len); + uint8_t *mi = (classmark2 + classmark2_len + 1); + + gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); + mi_type = mi[0] & GSM_MI_TYPE_MASK; + DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST MI(%s)=%s\n", gsm48_mi_type_name(mi_type), mi_string); + + /* we don't support CM call re-establishment */ + return msc_gsm48_tx_mm_serv_rej(conn, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); +} + static int gsm48_rx_mm_imsi_detach_ind(struct gsm_subscriber_connection *conn, struct msgb *msg) { struct gsm_network *network = conn->network; @@ -1039,7 +1059,7 @@ rc = gsm48_rx_mm_imsi_detach_ind(conn, msg); break; case GSM48_MT_MM_CM_REEST_REQ: - DEBUGP(DMM, "CM REESTABLISH REQUEST: Not implemented\n"); + rc = gsm48_rx_cm_reest_req(conn, msg); break; case GSM48_MT_MM_AUTH_RESP: rc = gsm48_rx_mm_auth_resp(conn, msg); @@ -3187,6 +3207,7 @@ switch (msg_type) { case GSM48_MT_MM_LOC_UPD_REQUEST: case GSM48_MT_MM_CM_SERV_REQ: + case GSM48_MT_MM_CM_REEST_REQ: case GSM48_MT_MM_AUTH_RESP: case GSM48_MT_MM_AUTH_FAIL: case GSM48_MT_MM_ID_RESP: -- To view, visit https://gerrit.osmocom.org/6033 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I1c0473647295456fd635b8df6079ee48695dcf2e Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder