aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-06-21 22:15:53 +0200
committerlaforge <laforge@osmocom.org>2020-08-17 11:17:41 +0000
commit544a32f271291ae37b729ceba86c835c1bedaa14 (patch)
tree21cdeefa33a0ecc82d9bf204b006ef20d1ddf33b /src
parenta908b43e59fedf42684e705648d95494ff16415d (diff)
Send "BSSMAP CommonID" to tell BSC about the IMSI
We're already sending the RANAP CommonID message to the RNC, let's do the same using BSSMAP CommonId towards the BSC. This way the BSC knows about the IMSI of the served subscriber, which is very useful for logging/debugging. Change-Id: I2552736477663adb250c55728093500e8ae83ebb Closes: OS#2969 Depends: libosmocore.git I353adc1aa72377f7d4b3336d2ff47791fb73d62c
Diffstat (limited to 'src')
-rw-r--r--src/libmsc/ran_msg_a.c3
-rw-r--r--src/libvlr/vlr_access_req_fsm.c11
-rw-r--r--src/libvlr/vlr_lu_fsm.c11
3 files changed, 11 insertions, 14 deletions
diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c
index 1fa8ccbce..8158e91d0 100644
--- a/src/libmsc/ran_msg_a.c
+++ b/src/libmsc/ran_msg_a.c
@@ -1223,6 +1223,9 @@ static struct msgb *_ran_a_encode(struct osmo_fsm_inst *caller_fi, const struct
case RAN_MSG_ASSIGNMENT_COMMAND:
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);
+
case RAN_MSG_CIPHER_MODE_COMMAND:
return ran_a_make_cipher_mode_command(caller_fi, &ran_enc_msg->cipher_mode_command);
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index 73f343570..b3660ff8b 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -246,16 +246,13 @@ static void _proc_arq_vlr_node2_post_ciph(struct osmo_fsm_inst *fi)
{
struct proc_arq_priv *par = fi->priv;
struct vlr_subscr *vsub = par->vsub;
+ int rc;
LOGPFSM(fi, "%s()\n", __func__);
- if (par->is_utran) {
- int rc;
- rc = par->vlr->ops.tx_common_id(par->msc_conn_ref);
- if (rc)
- LOGPFSML(fi, LOGL_ERROR,
- "Error while sending Common ID (%d)\n", rc);
- }
+ rc = par->vlr->ops.tx_common_id(par->msc_conn_ref);
+ if (rc)
+ LOGPFSML(fi, LOGL_ERROR, "Error while sending Common ID (%d)\n", rc);
vsub->conf_by_radio_contact_ind = true;
if (vsub->loc_conf_in_hlr_ind == false) {
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index d5425e7a3..53e614d8e 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -818,18 +818,15 @@ static void vlr_loc_upd_post_ciph(struct osmo_fsm_inst *fi)
{
struct lu_fsm_priv *lfp = lu_fsm_fi_priv(fi);
struct vlr_subscr *vsub = lfp->vsub;
+ int rc;
LOGPFSM(fi, "%s()\n", __func__);
OSMO_ASSERT(vsub);
- if (lfp->is_utran) {
- int rc;
- rc = lfp->vlr->ops.tx_common_id(lfp->msc_conn_ref);
- if (rc)
- LOGPFSML(fi, LOGL_ERROR,
- "Error while sending Common ID (%d)\n", rc);
- }
+ rc = lfp->vlr->ops.tx_common_id(lfp->msc_conn_ref);
+ if (rc)
+ LOGPFSML(fi, LOGL_ERROR, "Error while sending Common ID (%d)\n", rc);
vsub->conf_by_radio_contact_ind = true;
/* Update LAI */