From ca6bc1d10f2a37511a3967d52b57c74b6b3768c7 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Mon, 5 Oct 2009 14:00:14 +0200 Subject: [PATCH] [gsm0408] Add parameter to gsm48_send_rr_ciph_mode for controling the response This parameter controls if the response should include the IMEISV or not. This will be set by the MSC and this is why this parameter was added. --- openbsc/include/openbsc/gsm_04_08.h | 2 +- openbsc/src/gsm_04_08_utils.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h index feb445b85..485e240cd 100644 --- a/openbsc/include/openbsc/gsm_04_08.h +++ b/openbsc/include/openbsc/gsm_04_08.h @@ -724,7 +724,7 @@ int gsm48_generate_mid_from_imsi(u_int8_t *buf, const char* imsi); int gsm48_mi_to_string(char *string, const int str_len, const u_int8_t *mi, const int mi_len); int gsm48_send_rr_release(struct gsm_lchan *lchan); -int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan); +int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv); int gsm48_send_rr_app_info(struct gsm_lchan *lchan, u_int8_t apdu_id, u_int8_t apdu_len, u_int8_t *apdu); diff --git a/openbsc/src/gsm_04_08_utils.c b/openbsc/src/gsm_04_08_utils.c index 88edc7dc0..ef9e59c77 100644 --- a/openbsc/src/gsm_04_08_utils.c +++ b/openbsc/src/gsm_04_08_utils.c @@ -459,7 +459,7 @@ int gsm48_handle_paging_resp(struct msgb *msg, struct gsm_subscriber *subscr) } /* Chapter 9.1.9: Ciphering Mode Command */ -int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan) +int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv) { struct msgb *msg = gsm48_msgb_alloc(); struct gsm48_hdr *gh; @@ -477,7 +477,7 @@ int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan) gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); gh->proto_discr = GSM48_PDISC_RR; gh->msg_type = GSM48_MT_RR_CIPH_M_CMD; - gh->data[0] = 0x10 | (ciph_mod_set & 0xf); + gh->data[0] = (want_imeisv & 0x1) << 4 | (ciph_mod_set & 0xf); return rsl_encryption_cmd(msg); }