<p>neels <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/20671">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  fixeria: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">drop features 'core-location-area-code' and 'core-cell-identity'<br><br>This feature apparently assigned a fixed LAC and CI to a specific MSC, but<br>looking at the implementation was obviously not useful.<br><br>Keep the vty commands for legacy compat, now without effect besides logging an<br>error via vty_out().<br><br>Related: OS#4751<br>Change-Id: I6bee704e7e5d5b6b86473323bae1fa9fce9241ee<br>---<br>M include/osmocom/bsc/bsc_msc_data.h<br>M src/osmo-bsc/bsc_vty.c<br>M src/osmo-bsc/osmo_bsc_filter.c<br>M src/osmo-bsc/osmo_bsc_msc.c<br>M tests/vty_test_runner.py<br>5 files changed, 13 insertions(+), 69 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h</span><br><span>index 5622a42..e5f48d1 100644</span><br><span>--- a/include/osmocom/bsc/bsc_msc_data.h</span><br><span>+++ b/include/osmocom/bsc/bsc_msc_data.h</span><br><span>@@ -128,8 +128,6 @@</span><br><span> </span><br><span>      /* Connection data */</span><br><span>        struct osmo_plmn_id core_plmn;</span><br><span style="color: hsl(0, 100%, 40%);">-  int core_lac;</span><br><span style="color: hsl(0, 100%, 40%);">-   int core_ci;</span><br><span> </span><br><span>     /* audio codecs */</span><br><span>   struct gsm48_multi_rate_conf amr_conf;</span><br><span>diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c</span><br><span>index bdabe88..e91e01c 100644</span><br><span>--- a/src/osmo-bsc/bsc_vty.c</span><br><span>+++ b/src/osmo-bsc/bsc_vty.c</span><br><span>@@ -5976,12 +5976,6 @@</span><br><span>         if (msc->core_plmn.mcc != GSM_MCC_MNC_INVALID)</span><br><span>            vty_out(vty, " core-mobile-country-code %s%s",</span><br><span>                     osmo_mcc_name(msc->core_plmn.mcc), VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-     if (msc->core_lac != -1)</span><br><span style="color: hsl(0, 100%, 40%);">-             vty_out(vty, " core-location-area-code %d%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                 msc->core_lac, VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">- if (msc->core_ci != -1)</span><br><span style="color: hsl(0, 100%, 40%);">-              vty_out(vty, " core-cell-identity %d%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                      msc->core_ci, VTY_NEWLINE);</span><br><span> </span><br><span>   if (msc->audio_length != 0) {</span><br><span>             int i;</span><br><span>@@ -6105,25 +6099,21 @@</span><br><span>     return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN_ATTR(cfg_net_bsc_lac,</span><br><span style="color: hsl(0, 100%, 40%);">-    cfg_net_bsc_lac_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-    "core-location-area-code <0-65535>",</span><br><span style="color: hsl(0, 100%, 40%);">-    "Use this location area code for the core network\n" "LAC value\n",</span><br><span style="color: hsl(0, 100%, 40%);">-         CMD_ATTR_IMMEDIATE)</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_DEPRECATED(cfg_net_bsc_lac,</span><br><span style="color: hsl(120, 100%, 40%);">+              cfg_net_bsc_lac_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+          "core-location-area-code <0-65535>",</span><br><span style="color: hsl(120, 100%, 40%);">+          "Legacy configuration that no longer has any effect\n-\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct bsc_msc_data *data = bsc_msc_data(vty);</span><br><span style="color: hsl(0, 100%, 40%);">-  data->core_lac = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+    vty_out(vty, "%% Deprecated 'core-location-area-code' config no longer has any effect%s", VTY_NEWLINE);</span><br><span>    return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN_ATTR(cfg_net_bsc_ci,</span><br><span style="color: hsl(0, 100%, 40%);">-     cfg_net_bsc_ci_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-     "core-cell-identity <0-65535>",</span><br><span style="color: hsl(0, 100%, 40%);">-         "Use this cell identity for the core network\n" "CI value\n",</span><br><span style="color: hsl(0, 100%, 40%);">-       CMD_ATTR_IMMEDIATE)</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_DEPRECATED(cfg_net_bsc_ci,</span><br><span style="color: hsl(120, 100%, 40%);">+               cfg_net_bsc_ci_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+           "core-cell-identity <0-65535>",</span><br><span style="color: hsl(120, 100%, 40%);">+               "Legacy configuration that no longer has any effect\n-\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct bsc_msc_data *data = bsc_msc_data(vty);</span><br><span style="color: hsl(0, 100%, 40%);">-  data->core_ci = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+     vty_out(vty, "%% Deprecated 'core-cell-identity' config no longer has any effect%s", VTY_NEWLINE);</span><br><span>         return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c</span><br><span>index f664231..497b3e4 100644</span><br><span>--- a/src/osmo-bsc/osmo_bsc_filter.c</span><br><span>+++ b/src/osmo-bsc/osmo_bsc_filter.c</span><br><span>@@ -92,26 +92,11 @@</span><br><span>      return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int has_core_identity(struct bsc_msc_data *msc)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       if (msc->core_plmn.mnc != GSM_MCC_MNC_INVALID)</span><br><span style="color: hsl(0, 100%, 40%);">-               return 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       if (msc->core_plmn.mcc != GSM_MCC_MNC_INVALID)</span><br><span style="color: hsl(0, 100%, 40%);">-               return 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       if (msc->core_lac != -1)</span><br><span style="color: hsl(0, 100%, 40%);">-             return 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       if (msc->core_ci != -1)</span><br><span style="color: hsl(0, 100%, 40%);">-              return 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /**</span><br><span>  * Messages coming back from the MSC.</span><br><span>  */</span><br><span> int bsc_scan_msc_msg(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct bsc_msc_data *msc;</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm48_loc_area_id *lai;</span><br><span>       struct gsm48_hdr *gh;</span><br><span>        uint8_t pdisc;</span><br><span>       uint8_t mtype;</span><br><span>@@ -130,19 +115,7 @@</span><br><span>                return 0;</span><br><span> </span><br><span>        mtype = gsm48_hdr_msg_type(gh);</span><br><span style="color: hsl(0, 100%, 40%);">- msc = conn->sccp.msc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (mtype == GSM48_MT_MM_LOC_UPD_ACCEPT) {</span><br><span style="color: hsl(0, 100%, 40%);">-              struct gsm_bts *bts = conn_get_bts(conn);</span><br><span style="color: hsl(0, 100%, 40%);">-               if (bts && has_core_identity(msc)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    if (msgb_l3len(msg) >= sizeof(*gh) + sizeof(*lai)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                         /* overwrite LAI in the message */</span><br><span style="color: hsl(0, 100%, 40%);">-                              lai = (struct gsm48_loc_area_id *) &gh->data[0];</span><br><span style="color: hsl(0, 100%, 40%);">-                         gsm48_generate_lai2(lai, bts_lai(bts));</span><br><span style="color: hsl(0, 100%, 40%);">-                 }</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-               return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-       } else if (mtype == GSM48_MT_MM_INFO) {</span><br><span style="color: hsl(120, 100%, 40%);">+       if (mtype == GSM48_MT_MM_INFO) {</span><br><span>             bsc_patch_mm_info(conn, &gh->data[0], length);</span><br><span>        }</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c</span><br><span>index 583b6ff..772bea5 100644</span><br><span>--- a/src/osmo-bsc/osmo_bsc_msc.c</span><br><span>+++ b/src/osmo-bsc/osmo_bsc_msc.c</span><br><span>@@ -229,8 +229,6 @@</span><br><span>                 .mcc = GSM_MCC_MNC_INVALID,</span><br><span>          .mnc = GSM_MCC_MNC_INVALID,</span><br><span>  };</span><br><span style="color: hsl(0, 100%, 40%);">-      msc_data->core_ci = -1;</span><br><span style="color: hsl(0, 100%, 40%);">-      msc_data->core_lac = -1;</span><br><span> </span><br><span>      msc_data->nr = nr;</span><br><span>        msc_data->allow_emerg = 1;</span><br><span>@@ -285,8 +283,8 @@</span><br><span>          cgi.lai.plmn.mnc = msc->core_plmn.mnc;</span><br><span>            cgi.lai.plmn.mnc_3_digits = msc->core_plmn.mnc_3_digits;</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       cgi.lai.lac = (msc->core_lac != -1) ? msc->core_lac : bts->location_area_code;</span><br><span style="color: hsl(0, 100%, 40%);">- cgi.cell_identity = (msc->core_ci != -1) ? msc->core_ci : bts->cell_identity;</span><br><span style="color: hsl(120, 100%, 40%);">+        cgi.lai.lac = bts->location_area_code;</span><br><span style="color: hsl(120, 100%, 40%);">+     cgi.cell_identity = bts->cell_identity;</span><br><span> </span><br><span>       return &cgi;</span><br><span> }</span><br><span>diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py</span><br><span>index c96965c..34ddcc7 100755</span><br><span>--- a/tests/vty_test_runner.py</span><br><span>+++ b/tests/vty_test_runner.py</span><br><span>@@ -172,21 +172,6 @@</span><br><span>         res = self.vty.command("show network")</span><br><span>         self.assertTrue(res.startswith('BSC is on Country Code') >= 0)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def testMscDataCoreLACCI(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        self.vty.enable()</span><br><span style="color: hsl(0, 100%, 40%);">-        res = self.vty.command("show running-config")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEqual(res.find("core-location-area-code"), -1)</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEqual(res.find("core-cell-identity"), -1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        self.vty.command("configure terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.vty.command("msc 0")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.vty.command("core-location-area-code 666")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.vty.command("core-cell-identity 333")</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        res = self.vty.command("show running-config")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertTrue(res.find("core-location-area-code 666") > 0)</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertTrue(res.find("core-cell-identity 333") > 0)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </span><br><span> def add_bsc_test(suite, workdir):</span><br><span>     if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc/osmo-bsc")):</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/20671">change 20671</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/c/osmo-bsc/+/20671"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I6bee704e7e5d5b6b86473323bae1fa9fce9241ee </div>
<div style="display:none"> Gerrit-Change-Number: 20671 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>