<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12338">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Remove redundancy in LAC processing<br><br>Always use LAC which is part of Cell Global ID otherwise we might end up<br>in a situation where separately stored LAC differs.<br><br>Both are described in 3GPP TS 23.008 $2.4 as temporary subscriber data<br>to be stored in VLR. Both are defined in 3GPP TS 23.003. The LAC is part<br>of LAI which is part of CGI so there should be no case when those values<br>differ for a given subscriber.<br><br>Change-Id: I993ebc3e14f25e83124b6d3f8461a4b18f971f8e<br>---<br>M include/osmocom/msc/vlr.h<br>M src/libmsc/gsm_04_08_cc.c<br>M src/libmsc/gsm_09_11.c<br>M src/libmsc/gsm_subscriber.c<br>M src/libmsc/msc_vty.c<br>M src/libvlr/vlr_lu_fsm.c<br>M tests/msc_vlr/msc_vlr_test_call.c<br>M tests/msc_vlr/msc_vlr_test_ss.c<br>8 files changed, 9 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/38/12338/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h</span><br><span>index 2f31063..20a9c0f 100644</span><br><span>--- a/include/osmocom/msc/vlr.h</span><br><span>+++ b/include/osmocom/msc/vlr.h</span><br><span>@@ -142,9 +142,7 @@</span><br><span> /* Newly allocated TMSI that was not yet acked by MS */</span><br><span> uint32_t tmsi_new;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* some redundancy in information below? */</span><br><span> struct osmo_cell_global_id cgi; /* 2.4.16 */</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t lac; /* 2.4.2 */</span><br><span> </span><br><span> char imeisv[GSM23003_IMEISV_NUM_DIGITS+1]; /* 2.2.3 */</span><br><span> char imei[GSM23003_IMEISV_NUM_DIGITS+1]; /* 2.1.9 */</span><br><span>diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c</span><br><span>index a172b47..70f5c29 100644</span><br><span>--- a/src/libmsc/gsm_04_08_cc.c</span><br><span>+++ b/src/libmsc/gsm_04_08_cc.c</span><br><span>@@ -1940,7 +1940,7 @@</span><br><span> GSM48_CC_CAUSE_UNASSIGNED_NR);</span><br><span> }</span><br><span> /* If subscriber is not "attached" */</span><br><span style="color: hsl(0, 100%, 40%);">- if (!vsub->lac) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!vsub->cgi.lai.lac) {</span><br><span> DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) "</span><br><span> "Received '%s' from MNCC with "</span><br><span> "detached subscriber %s\n", data->called.number,</span><br><span>@@ -1979,7 +1979,7 @@</span><br><span> "unallocated channel, paging already "</span><br><span> "started for lac %d.\n",</span><br><span> data->called.number,</span><br><span style="color: hsl(0, 100%, 40%);">- get_mncc_name(msg_type), vsub->lac);</span><br><span style="color: hsl(120, 100%, 40%);">+ get_mncc_name(msg_type), vsub->cgi.lai.lac);</span><br><span> vlr_subscr_put(vsub);</span><br><span> trans_free(trans);</span><br><span> return 0;</span><br><span>diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c</span><br><span>index 43bf48c..3ee6e92 100644</span><br><span>--- a/src/libmsc/gsm_09_11.c</span><br><span>+++ b/src/libmsc/gsm_09_11.c</span><br><span>@@ -287,7 +287,7 @@</span><br><span> }</span><br><span> </span><br><span> /* If subscriber is not "attached" */</span><br><span style="color: hsl(0, 100%, 40%);">- if (!vsub->lac) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!vsub->cgi.lai.lac) {</span><br><span> LOGP(DMM, LOGL_ERROR, "Network-originated session "</span><br><span> "rejected - subscriber is not attached\n");</span><br><span> return NULL;</span><br><span>diff --git a/src/libmsc/gsm_subscriber.c b/src/libmsc/gsm_subscriber.c</span><br><span>index 188807e..0e76efc 100644</span><br><span>--- a/src/libmsc/gsm_subscriber.c</span><br><span>+++ b/src/libmsc/gsm_subscriber.c</span><br><span>@@ -116,12 +116,12 @@</span><br><span> * SCCP connections (if any). */</span><br><span> switch (vsub->cs.attached_via_ran) {</span><br><span> case RAN_GERAN_A:</span><br><span style="color: hsl(0, 100%, 40%);">- return a_iface_tx_paging(vsub->imsi, vsub->tmsi, vsub->lac);</span><br><span style="color: hsl(120, 100%, 40%);">+ return a_iface_tx_paging(vsub->imsi, vsub->tmsi, vsub->cgi.lai.lac);</span><br><span> case RAN_UTRAN_IU:</span><br><span> return ranap_iu_page_cs(vsub->imsi,</span><br><span> vsub->tmsi == GSM_RESERVED_TMSI?</span><br><span> NULL : &vsub->tmsi,</span><br><span style="color: hsl(0, 100%, 40%);">- vsub->lac);</span><br><span style="color: hsl(120, 100%, 40%);">+ vsub->cgi.lai.lac);</span><br><span> default:</span><br><span> break;</span><br><span> }</span><br><span>diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c</span><br><span>index 87adc82..59112a7 100644</span><br><span>--- a/src/libmsc/msc_vty.c</span><br><span>+++ b/src/libmsc/msc_vty.c</span><br><span>@@ -631,7 +631,7 @@</span><br><span> vty_out(vty, " Extension: %s%s", vsub->msisdn,</span><br><span> VTY_NEWLINE);</span><br><span> vty_out(vty, " LAC: %d/0x%x%s",</span><br><span style="color: hsl(0, 100%, 40%);">- vsub->lac, vsub->lac, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ vsub->cgi.lai.lac, vsub->cgi.lai.lac, VTY_NEWLINE);</span><br><span> vty_out(vty, " IMSI: %s%s", vsub->imsi, VTY_NEWLINE);</span><br><span> if (vsub->tmsi != GSM_RESERVED_TMSI)</span><br><span> vty_out(vty, " TMSI: %08X%s", vsub->tmsi,</span><br><span>diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c</span><br><span>index 5d171d5..e635305 100644</span><br><span>--- a/src/libvlr/vlr_lu_fsm.c</span><br><span>+++ b/src/libvlr/vlr_lu_fsm.c</span><br><span>@@ -950,7 +950,7 @@</span><br><span> vsub->lu_fsm = fi;</span><br><span> vsub->msc_conn_ref = lfp->msc_conn_ref;</span><br><span> /* FIXME: send new LAC to HLR? */</span><br><span style="color: hsl(0, 100%, 40%);">- vsub->lac = lfp->new_lai.lac;</span><br><span style="color: hsl(120, 100%, 40%);">+ vsub->cgi.lai.lac = lfp->new_lai.lac;</span><br><span> lfp->vsub = vsub;</span><br><span> /* Tell MSC to associate this subscriber with the given</span><br><span> * connection */</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_call.c b/tests/msc_vlr/msc_vlr_test_call.c</span><br><span>index 83bc84b..852ec32 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_call.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_call.c</span><br><span>@@ -154,7 +154,7 @@</span><br><span> vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI);</span><br><span> VERBOSE_ASSERT(vsub != NULL, == true, "%d");</span><br><span> VERBOSE_ASSERT(strcmp(vsub->imsi, IMSI), == 0, "%d");</span><br><span style="color: hsl(0, 100%, 40%);">- V_ASSERT("LAC", vsub->lac, == 23, "%u");</span><br><span style="color: hsl(120, 100%, 40%);">+ V_ASSERT("LAC", vsub->cgi.lai.lac, == 23, "%u");</span><br><span> vlr_subscr_put(vsub);</span><br><span> }</span><br><span> </span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c</span><br><span>index d8167bd..70b7b1f 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_ss.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_ss.c</span><br><span>@@ -68,7 +68,7 @@</span><br><span> vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI);</span><br><span> VERBOSE_ASSERT(vsub != NULL, == true, "%d");</span><br><span> VERBOSE_ASSERT(strcmp(vsub->imsi, IMSI), == 0, "%d");</span><br><span style="color: hsl(0, 100%, 40%);">- V_ASSERT("LAC", vsub->lac, == 23, "%u");</span><br><span style="color: hsl(120, 100%, 40%);">+ V_ASSERT("LAC", vsub->cgi.lai.lac, == 23, "%u");</span><br><span> vlr_subscr_put(vsub);</span><br><span> </span><br><span> bss_sends_clear_complete();</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12338">change 12338</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12338"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I993ebc3e14f25e83124b6d3f8461a4b18f971f8e </div>
<div style="display:none"> Gerrit-Change-Number: 12338 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>