<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>