diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 2f31063a6..20a9c0f24 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -142,9 +142,7 @@ struct vlr_subscr { /* Newly allocated TMSI that was not yet acked by MS */ uint32_t tmsi_new; - /* some redundancy in information below? */ struct osmo_cell_global_id cgi; /* 2.4.16 */ - uint16_t lac; /* 2.4.2 */ char imeisv[GSM23003_IMEISV_NUM_DIGITS+1]; /* 2.2.3 */ char imei[GSM23003_IMEISV_NUM_DIGITS+1]; /* 2.1.9 */ diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 5500f6f28..5567da9d0 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -1939,7 +1939,7 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) GSM48_CC_CAUSE_UNASSIGNED_NR); } /* If subscriber is not "attached" */ - if (!vsub->lac) { + if (!vsub->cgi.lai.lac) { DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " "Received '%s' from MNCC with " "detached subscriber %s\n", data->called.number, @@ -1978,7 +1978,7 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) "unallocated channel, paging already " "started for lac %d.\n", data->called.number, - get_mncc_name(msg_type), vsub->lac); + get_mncc_name(msg_type), vsub->cgi.lai.lac); vlr_subscr_put(vsub); trans_free(trans); return 0; diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 43bf48c56..3ee6e9247 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -287,7 +287,7 @@ static struct gsm_trans *establish_nc_ss_trans(struct gsm_network *net, } /* If subscriber is not "attached" */ - if (!vsub->lac) { + if (!vsub->cgi.lai.lac) { LOGP(DMM, LOGL_ERROR, "Network-originated session " "rejected - subscriber is not attached\n"); return NULL; diff --git a/src/libmsc/gsm_subscriber.c b/src/libmsc/gsm_subscriber.c index 188807e92..0e76efc11 100644 --- a/src/libmsc/gsm_subscriber.c +++ b/src/libmsc/gsm_subscriber.c @@ -116,12 +116,12 @@ static int msc_paging_request(struct vlr_subscr *vsub) * SCCP connections (if any). */ switch (vsub->cs.attached_via_ran) { case RAN_GERAN_A: - return a_iface_tx_paging(vsub->imsi, vsub->tmsi, vsub->lac); + return a_iface_tx_paging(vsub->imsi, vsub->tmsi, vsub->cgi.lai.lac); case RAN_UTRAN_IU: return ranap_iu_page_cs(vsub->imsi, vsub->tmsi == GSM_RESERVED_TMSI? NULL : &vsub->tmsi, - vsub->lac); + vsub->cgi.lai.lac); default: break; } diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 5622c024c..3079bc3a0 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -631,7 +631,7 @@ static void subscr_dump_full_vty(struct vty *vty, struct vlr_subscr *vsub) vty_out(vty, " Extension: %s%s", vsub->msisdn, VTY_NEWLINE); vty_out(vty, " LAC: %d/0x%x%s", - vsub->lac, vsub->lac, VTY_NEWLINE); + vsub->cgi.lai.lac, vsub->cgi.lai.lac, VTY_NEWLINE); vty_out(vty, " RAN: %s%s", ran_type_name(vsub->cs.attached_via_ran), VTY_NEWLINE); vty_out(vty, " IMSI: %s%s", vsub->imsi, VTY_NEWLINE); diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c index 5d171d5ed..e635305fa 100644 --- a/src/libvlr/vlr_lu_fsm.c +++ b/src/libvlr/vlr_lu_fsm.c @@ -950,7 +950,7 @@ static int assoc_lfp_with_sub(struct osmo_fsm_inst *fi, struct vlr_subscr *vsub) vsub->lu_fsm = fi; vsub->msc_conn_ref = lfp->msc_conn_ref; /* FIXME: send new LAC to HLR? */ - vsub->lac = lfp->new_lai.lac; + vsub->cgi.lai.lac = lfp->new_lai.lac; lfp->vsub = vsub; /* Tell MSC to associate this subscriber with the given * connection */ diff --git a/tests/msc_vlr/msc_vlr_test_call.c b/tests/msc_vlr/msc_vlr_test_call.c index 4a4f2436a..b1ff2c0f3 100644 --- a/tests/msc_vlr/msc_vlr_test_call.c +++ b/tests/msc_vlr/msc_vlr_test_call.c @@ -154,7 +154,7 @@ static void standard_lu() vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI); VERBOSE_ASSERT(vsub != NULL, == true, "%d"); VERBOSE_ASSERT(strcmp(vsub->imsi, IMSI), == 0, "%d"); - VAL_ASSERT("LAC", vsub->lac, == 23, "%u"); + VAL_ASSERT("LAC", vsub->cgi.lai.lac, == 23, "%u"); vlr_subscr_put(vsub); } diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c index 4e8077eb7..832293c52 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.c +++ b/tests/msc_vlr/msc_vlr_test_ss.c @@ -68,7 +68,7 @@ static void perform_lu(void) vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI); VERBOSE_ASSERT(vsub != NULL, == true, "%d"); VERBOSE_ASSERT(strcmp(vsub->imsi, IMSI), == 0, "%d"); - VAL_ASSERT("LAC", vsub->lac, == 23, "%u"); + VAL_ASSERT("LAC", vsub->cgi.lai.lac, == 23, "%u"); vlr_subscr_put(vsub); bss_sends_clear_complete();