https://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092016-03-11T09:18:09ZOpen Source Mobile CommunicationsOsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=10772016-03-11T09:18:09Zlaforge
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-high2 closed" href="/issues/1592">Feature #1592</a>: VLR in libmsc, to connect to HLR asynchronously</i> added</li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=10792016-03-11T09:18:14Zlaforge
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-1 priority-1 priority-lowest" href="/issues/1643">Feature #1643</a>: programmatic access to new asynchronous external HLR</i> added</li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=12822016-04-28T19:25:10Zlaforge
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=12832016-04-28T19:25:32Zlaforge
<ul><li><strong>Assignee</strong> set to <i>laforge</i></li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=15092016-06-01T14:43:39Zlaforge
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>external interface to change nam_ps flag from outside HLR</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>propagate nam_ps changes to SGSN (cancel subscriber)</i> added</li><li><strong>% Done</strong> changed from <i>0</i> to <i>30</i></li></ul><p>In 3GPP spec language, this is the 'network access mode (nam) gprs' flag of each subscriber, which is stored in the HLR.</p>
<p>Our new osmo-gsup-hlr database contains nam_cs / nam_ps columns for each subscriber, and if nam_ps is not set for a LU from a SGSN, then it is rejected with GMM_CAUSE_GPRS_NOTALLOWED.</p>
What we still need though is
<ul>
<li>a method to change this flag in the HLR itself (see external interface to change the HLR <a class="issue tracker-2 status-5 priority-4 priority-high2 closed" title="Feature: VLR in libmsc, to connect to HLR asynchronously (Closed)" href="https://projects.osmocom.org/issues/1592">#1592</a>)</li>
<li>a method to propagate if a change is made after a subscriber is already attached. I.e. the LU proceeds, as at LU time nam_ps == true. But then the flag is changed. We need to cancel (remove) the record from the SGSN, and the SGSN needs to handle that cancellation in a reasonable way.</li>
</ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=27832017-01-12T13:13:04Zlaforge
<ul><li><strong>Priority</strong> changed from <i>Normal</i> to <i>Urgent</i></li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30332017-02-10T17:49:53Zlaforge
<ul><li><strong>Assignee</strong> changed from <i>laforge</i> to <i>msuraev</i></li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30532017-02-13T17:33:02Zmsuraev
<ul></ul><p>How should external interface interact with hlr? Shall we add ctrl interface to hlr? Or shall external interface write to db directly?</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30542017-02-13T18:15:07Zlaforge
<ul></ul><p>On Mon, Feb 13, 2017 at 05:33:02PM +0000, msuraev [REDMINE] wrote:</p>
<blockquote>
<p>How should external interface interact with hlr? Shall we add ctrl<br />interface to hlr? Or shall external interface write to db directly?</p>
</blockquote>
<p>this is not clear yet at this point. I see the osmo-gsup-hlr more as a<br />proof-of-concept implementation at this point, more or less expecting<br />people with specific requirements to implement GSUP themselves or using<br />a GSUP-to-MAP translator.</p>
<p>For the context of this ticket it is important to make sure that the<br />SGSN supports this from the GSUP side, and that somehow it can be<br />triggered/tested somehow. Control Interface might be a sufficient<br />approach for now.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30622017-02-15T17:20:48Zmsuraev
<ul></ul><p>Gerrit 1814, 1817, 1818, 1821, 1838, 1839, 1851, 1852, 1840 are merged; 1827, 1841, 185, 1856 are under review.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30652017-02-16T09:50:03Zmsuraev
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Stalled</i></li></ul><p>Shall nam_ps change via ctrl interface be synced to db or shall it be runtime only? If we don't do it than user can re-attach by simply going into flight mode and back.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30672017-02-16T12:47:37Zmsuraev
<ul><li><strong>% Done</strong> changed from <i>30</i> to <i>50</i></li></ul><p>Tested with <br />./bsc_control.py -d localhost -p 4259 -s enable-ps 001640000005666<br />./bsc_control.py -d localhost -p 4259 -s disable-ps 001640000005666</p>
<p>The latter causes "gprs" symbols to disappear from the phone. The former can be used to allow phone back when it tries again. Although there seems to be no obvious way to tell phone "come back and try gprs again - now it's allowed". The only sure way is to use flight mode to reconnect.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30682017-02-16T13:15:07Zlaforge
<ul></ul><p>Hi Max,</p>
<p>On Thu, Feb 16, 2017 at 09:50:03AM +0000, msuraev [REDMINE] wrote:</p>
<blockquote>
<p>Shall nam_ps change via ctrl interface be synced to db or shall it be runtime only?</p>
</blockquote>
<p>synced to db!</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30692017-02-16T22:10:50Zlaforge
<ul></ul><p>On Thu, Feb 16, 2017 at 12:47:37PM +0000, msuraev [REDMINE] wrote:</p>
<blockquote>
<p>Tested with <br />./bsc_control.py -d localhost -p 4259 -s enable-ps 001640000005666<br />./bsc_control.py -d localhost -p 4259 -s disable-ps 001640000005666</p>
</blockquote>
<p>great!</p>
<blockquote>
<p>The latter causes "gprs" symbols to disappear from the phone. The<br />former can be used to allow phone back when it tries again. Although<br />there seems to be no obvious way to tell phone "come back and try gprs<br />again - now it's allowed".</p>
</blockquote>
<p>Well, there's nothing you can do about that, this is normal as there is<br />no such feature in the GSM/GPRS specifications. We cannot implement<br />what is not possible :)</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=30772017-02-20T11:18:38Zmsuraev
<ul></ul><p>Here's how it looks like on SGSN side:</p>
<p><000f> sgsn_libgtp.c:644 GTP DATA IND from GGSN, length=52<br /><000f> gprs_subscriber.c:668 <abbr title="001640000005666">SUBSCR</abbr> Received GSUP message OSMO_GSUP_MSGT_DELETE_DATA_REQUEST<br /><0002> gprs_gmm.c:1007 <abbr title="001640000005666/f5af3cc3">MM</abbr> Cancelled with cause 'GPRS services not allowed' (7), deleting context<br /><0002> gprs_gmm.c:986 <abbr title="001640000005666/f5af3cc3">MM</abbr> Authorization lost, detaching with cause 'GPRS services not allowed' (7)<br /><0002> gprs_gmm.c:300 <abbr title="001640000005666/f5af3cc3">MM</abbr> Cleaning MM context due to auth lost<br /><0002> gprs_sgsn.c:308 <abbr title="001640000005666/f5af3cc3">MM</abbr> Dropping PDP context for NSAPI=5<br /><000f> gprs_sgsn.c:402 <abbr title="001640000005666/0">PDP</abbr> Forcing release of PDP context<br /><000f> sgsn_libgtp.c:286 <abbr title="---/0">PDP</abbr> Delete PDP Context<br /><000f> sgsn_libgtp.c:613 PDP Context was deleted<br /><000f> gprs_subscriber.c:728 <abbr title="001640000005666">SUBSCR</abbr> purging MS subscriber<br /><000f> gprs_subscriber.c:174 <abbr title="001640000005666">SUBSCR</abbr> Sending GSUP, will send: 0c 01 08 00 61 04 00 00 50 66 f6 09 00 28 01 01<br /><000f> gprs_subscriber.c:174 <abbr title="001640000005666">SUBSCR</abbr> Sending GSUP, will send: 16 01 08 00 61 04 00 00 50 66 f6 28 01 01<br /><000f> sgsn_libgtp.c:590 libgtp cb_conf(type=20, cause=128, pdp=(nil), cbp=0x556df75e4bb0)<br /><000f> sgsn_libgtp.c:513 <abbr title="---/0">PDP</abbr> Received DELETE PDP CTX CONF, cause=128(Request accepted)<br /><000f> sgsn_libgtp.c:537 <abbr title="---/0">PDP</abbr> Not deactivating SNDCP layer since the MM context is not available<br /><000f> gprs_subscriber.c:522 <abbr title="001640000005666">GSUP</abbr> Completing purge MS<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0013> gprs_sndcp.c:776 Message for non-existing SNDCP Entity (lle=0x556df75e8070, TLLI=f5af3cc3, SAPI=3, NSAPI=5)<br /><0002> gprs_gmm.c:1770 Cannot handle GMM for unknown MM CTX<br /><000f> gprs_sgsn.c:871 Checking for inactive LLMEs, time = 7632</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=31022017-02-21T16:25:16Zmsuraev
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>propagate nam_ps changes to SGSN (cancel subscriber)</i> set to Done</li></ul> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=32492017-03-06T14:44:36Zmsuraev
<ul><li><strong>% Done</strong> changed from <i>50</i> to <i>60</i></li></ul><p>Gerrit 1827 and 1841 are under review, the rest is merged.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=32502017-03-06T17:11:45Zmsuraev
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>external interface to change nam_ps flag from outside HLR</i> set to Done</li><li><strong>Status</strong> changed from <i>Stalled</i> to <i>Resolved</i></li><li><strong>% Done</strong> changed from <i>60</i> to <i>100</i></li></ul><p>Everything has been merged to master.</p> OsmoSGSN - Feature #1645: mechanism for enabling/disabling GPRS on per-user basishttps://projects.osmocom.org/issues/1645?journal_id=36382017-04-25T13:57:24Zlaforge
<ul><li><strong>Status</strong> changed from <i>Resolved</i> to <i>Closed</i></li></ul>