<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-hlr/+/14778">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">VTY: add subscriber update network-access-mode<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>M doc/manuals/vty/hlr_vty_reference.xml<br>M src/hlr_vty_subscr.c<br>M tests/test_subscriber.vty<br>3 files changed, 82 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/vty/hlr_vty_reference.xml b/doc/manuals/vty/hlr_vty_reference.xml</span><br><span>index e5fd0f2..71a0236 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 network-access-mode (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='network-access-mode' doc='Set Network Access Mode (NAM) of the subscriber' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='none' doc='Do not allow access to circuit switched or packet switched services' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='cs' doc='Allow access to circuit switched services only' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='ps' doc='Allow access to packet switched services only' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='cs+ps' doc='Allow access to both circuit and packet switched services' /></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>diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c</span><br><span>index 3078577..73dfab6 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 "network-access-mode (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 Network Access Mode (NAM) of the subscriber\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Do not allow access to circuit switched or packet switched services\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to circuit switched services only\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to packet switched services only\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Allow access to both circuit and packet switched services\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..8e9026d 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 network-access-mode (none|cs|ps|cs+ps)</span><br><span> </span><br><span> OsmoHLR# subscriber?</span><br><span>   subscriber  Subscriber management commands</span><br><span>@@ -125,10 +126,11 @@</span><br><span>     MSISDN: 423</span><br><span> </span><br><span> OsmoHLR# subscriber imsi 123456789023000 update ?</span><br><span style="color: hsl(0, 100%, 40%);">-  msisdn  Set MSISDN (phone number) of the subscriber</span><br><span style="color: hsl(0, 100%, 40%);">-  aud2g   Set 2G authentication data</span><br><span style="color: hsl(0, 100%, 40%);">-  aud3g   Set UMTS authentication data (3G, and 2G with UMTS AKA)</span><br><span style="color: hsl(0, 100%, 40%);">-  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%);">+  msisdn               Set MSISDN (phone number) of the subscriber</span><br><span style="color: hsl(120, 100%, 40%);">+  aud2g                Set 2G authentication data</span><br><span style="color: hsl(120, 100%, 40%);">+  aud3g                Set UMTS authentication data (3G, and 2G with UMTS AKA)</span><br><span style="color: hsl(120, 100%, 40%);">+  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%);">+  network-access-mode  Set Network Access Mode (NAM) 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 network-access-mode 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 network-access-mode 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 network-access-mode 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 network-access-mode 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: 4 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>