<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-hlr/+/14778">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">VTY: add subscriber update nam<br><br>Allow updating the NAM (Network Access Mode) of subscribers with the<br>VTY. This is important for the subscriber create on demand use case<br>where subscribers get created without access to PS and CS NAM by<br>default. Regenerate hlr_vty_reference.xml.<br><br>Related: OS#2542<br>Change-Id: I231e03219355ebe6467d62ae2e40bef9d8303e3b<br>---<br>A doc/manuals/chapters/counters_generated.adoc<br>M doc/manuals/vty/hlr_vty_reference.xml<br>M src/hlr_vty_subscr.c<br>M tests/test_subscriber.vty<br>4 files changed, 93 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/78/14778/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/chapters/counters_generated.adoc b/doc/manuals/chapters/counters_generated.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..f8f64f5</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/counters_generated.adoc</span><br><span>@@ -0,0 +1,14 @@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// autogenerated by show asciidoc counters</span><br><span style="color: hsl(120, 100%, 40%);">+These counters and their description based on OsmoHLR 1.0.0.41-16e4 (OsmoHLR).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Rate Counters</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// generating tables for rate_ctr_group</span><br><span style="color: hsl(120, 100%, 40%);">+== Osmo Stat Items</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// generating tables for osmo_stat_items</span><br><span style="color: hsl(120, 100%, 40%);">+== Osmo Counters</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// generating tables for osmo_counters</span><br><span style="color: hsl(120, 100%, 40%);">+// there are no ungrouped osmo_counters</span><br><span>diff --git a/doc/manuals/vty/hlr_vty_reference.xml b/doc/manuals/vty/hlr_vty_reference.xml</span><br><span>index e5fd0f2..ef3c360 100644</span><br><span>--- a/doc/manuals/vty/hlr_vty_reference.xml</span><br><span>+++ b/doc/manuals/vty/hlr_vty_reference.xml</span><br><span>@@ -811,6 +811,22 @@</span><br><span>         <param name='IMEI' doc='Set IMEI (use for debug only!)' /></span><br><span>       </params></span><br><span>     </command></span><br><span style="color: hsl(120, 100%, 40%);">+    <command id='subscriber (imsi|msisdn|id|imei) IDENT update nam (none|cs|ps|cs+ps)'></span><br><span style="color: hsl(120, 100%, 40%);">+      <params></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='subscriber' doc='Subscriber management commands' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='imsi' doc='Identify subscriber by IMSI' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='msisdn' doc='Identify subscriber by MSISDN (phone number)' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='id' doc='Identify subscriber by database ID' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='imei' doc='Identify subscriber by IMEI' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='IDENT' doc='IMSI/MSISDN/ID/IMEI of the subscriber' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='update' doc='Set or update subscriber data' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='nam' doc='Set NAM (Network Access Mode) of the subscriber' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='none' doc='Do not allow any NAM' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='cs' doc='Allow access to circuit switched NAM' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='ps' doc='Allow access to packet switched NAM' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='cs+ps' doc='Allow access to circuit and packet switched NAM' /></span><br><span style="color: hsl(120, 100%, 40%);">+      </params></span><br><span style="color: hsl(120, 100%, 40%);">+    </command></span><br><span>   </node></span><br><span>   <node id='config'></span><br><span>     <name>config</name></span><br><span>@@ -1027,8 +1043,7 @@</span><br><span>     </command></span><br><span>     <command id='stats reporter log'></span><br><span>       <params></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='stats' doc='Configure stats sub-system' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='reporter' doc='Configure a stats reporter' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='stats' doc='Configure stats sub-system' />        <param name='reporter' doc='Configure a stats reporter' /></span><br><span>         <param name='log' doc='Report to the logger' /></span><br><span>       </params></span><br><span>     </command></span><br><span>diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c</span><br><span>index 3078577..4c57831 100644</span><br><span>--- a/src/hlr_vty_subscr.c</span><br><span>+++ b/src/hlr_vty_subscr.c</span><br><span>@@ -577,6 +577,33 @@</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(subscriber_nam,</span><br><span style="color: hsl(120, 100%, 40%);">+      subscriber_nam_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+      SUBSCR_UPDATE "nam (none|cs|ps|cs+ps)",</span><br><span style="color: hsl(120, 100%, 40%);">+      SUBSCR_UPDATE_HELP</span><br><span style="color: hsl(120, 100%, 40%);">+      "Set NAM (Network Access Mode) of the subscriber\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Do not allow any NAM\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to circuit switched NAM\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to packet switched NAM\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to circuit and packet switched NAM\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  struct hlr_subscriber subscr;</span><br><span style="color: hsl(120, 100%, 40%);">+ const char *id_type = argv[0];</span><br><span style="color: hsl(120, 100%, 40%);">+        const char *id = argv[1];</span><br><span style="color: hsl(120, 100%, 40%);">+     bool nam_cs = strstr(argv[2], "cs");</span><br><span style="color: hsl(120, 100%, 40%);">+        bool nam_ps = strstr(argv[2], "ps");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      if (get_subscr_by_argv(vty, id_type, id, &subscr))</span><br><span style="color: hsl(120, 100%, 40%);">+                return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (nam_cs != subscr.nam_cs)</span><br><span style="color: hsl(120, 100%, 40%);">+          hlr_subscr_nam(g_hlr, &subscr, nam_cs, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (nam_ps != subscr.nam_ps)</span><br><span style="color: hsl(120, 100%, 40%);">+          hlr_subscr_nam(g_hlr, &subscr, nam_ps, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> void hlr_vty_subscriber_init(void)</span><br><span> {</span><br><span>@@ -590,4 +617,5 @@</span><br><span>        install_element(ENABLE_NODE, &subscriber_no_aud3g_cmd);</span><br><span>  install_element(ENABLE_NODE, &subscriber_aud3g_cmd);</span><br><span>     install_element(ENABLE_NODE, &subscriber_imei_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element(ENABLE_NODE, &subscriber_nam_cmd);</span><br><span> }</span><br><span>diff --git a/tests/test_subscriber.vty b/tests/test_subscriber.vty</span><br><span>index 265f8fa..2627ee3 100644</span><br><span>--- a/tests/test_subscriber.vty</span><br><span>+++ b/tests/test_subscriber.vty</span><br><span>@@ -12,6 +12,7 @@</span><br><span>   subscriber (imsi|msisdn|id|imei) IDENT update aud3g none</span><br><span>   subscriber (imsi|msisdn|id|imei) IDENT update aud3g milenage k K (op|opc) OP_C [ind-bitlen] [<0-28>]</span><br><span>   subscriber (imsi|msisdn|id|imei) IDENT update imei (none|IMEI)</span><br><span style="color: hsl(120, 100%, 40%);">+  subscriber (imsi|msisdn|id|imei) IDENT update nam (none|cs|ps|cs+ps)</span><br><span> </span><br><span> OsmoHLR# subscriber?</span><br><span>   subscriber  Subscriber management commands</span><br><span>@@ -129,6 +130,7 @@</span><br><span>   aud2g   Set 2G authentication data</span><br><span>   aud3g   Set UMTS authentication data (3G, and 2G with UMTS AKA)</span><br><span>   imei    Set IMEI of the subscriber (normally populated from MSC, no need to set this manually)</span><br><span style="color: hsl(120, 100%, 40%);">+  nam     Set NAM (Network Access Mode) of the subscriber</span><br><span> </span><br><span> OsmoHLR# subscriber imsi 123456789023000 update msisdn ?</span><br><span>   none    Remove MSISDN (phone number)</span><br><span>@@ -437,3 +439,35 @@</span><br><span>     IMSI: 000000000000099</span><br><span>     MSISDN: none</span><br><span>     IMEI: 12345 (INVALID LENGTH!)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 create</span><br><span style="color: hsl(120, 100%, 40%);">+% Created subscriber 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    ID: 101</span><br><span style="color: hsl(120, 100%, 40%);">+    IMSI: 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    MSISDN: none</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 update nam none</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 show</span><br><span style="color: hsl(120, 100%, 40%);">+    ID: 101</span><br><span style="color: hsl(120, 100%, 40%);">+    IMSI: 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    MSISDN: none</span><br><span style="color: hsl(120, 100%, 40%);">+    CS disabled</span><br><span style="color: hsl(120, 100%, 40%);">+    PS disabled</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 update nam cs</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 show</span><br><span style="color: hsl(120, 100%, 40%);">+    ID: 101</span><br><span style="color: hsl(120, 100%, 40%);">+    IMSI: 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    MSISDN: none</span><br><span style="color: hsl(120, 100%, 40%);">+    PS disabled</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 update nam ps</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 show</span><br><span style="color: hsl(120, 100%, 40%);">+    ID: 101</span><br><span style="color: hsl(120, 100%, 40%);">+    IMSI: 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    MSISDN: none</span><br><span style="color: hsl(120, 100%, 40%);">+    CS disabled</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 update nam cs+ps</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 show</span><br><span style="color: hsl(120, 100%, 40%);">+    ID: 101</span><br><span style="color: hsl(120, 100%, 40%);">+    IMSI: 123456789023000</span><br><span style="color: hsl(120, 100%, 40%);">+    MSISDN: none</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoHLR# subscriber imsi 123456789023000 delete</span><br><span style="color: hsl(120, 100%, 40%);">+% Deleted subscriber for IMSI '123456789023000'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-hlr/+/14778">change 14778</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-hlr/+/14778"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-hlr </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I231e03219355ebe6467d62ae2e40bef9d8303e3b </div>
<div style="display:none"> Gerrit-Change-Number: 14778 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>