osmo-hlr.git branch master updated. 0.0.1-112-g3f697cd

gitosis at osmocom.org gitosis at osmocom.org
Sat Oct 28 02:37:13 UTC 2017

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "UNNAMED PROJECT".

The branch, master has been updated
       via  3f697cdc7157883f5c9a33122a7aa1f8dc5598af (commit)
       via  446eb0f1bc0ca859873d104dc95509586f211d8e (commit)
      from  234f9cb701c83a85ccbfbfb904aa04d87662bdc5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit 3f697cdc7157883f5c9a33122a7aa1f8dc5598af
Author: Neels Hofmeyr <neels at hofmeyr.de>
Date:   Tue Oct 17 22:26:00 2017 +0200

    test_subscriber.ctrl: test against octal/hex interpretation of id
    Add a large enough subscriber id and add a test that ensures a leading zero is
    not interpreted as octal, and that a leading 0x is invalid and not interpreted
    as hexadecimal.
    Change-Id: Ib468b7cb595cf52331ebb41e6de0e8f57f69e173


commit 446eb0f1bc0ca859873d104dc95509586f211d8e
Author: Neels Hofmeyr <neels at hofmeyr.de>
Date:   Tue Oct 17 01:58:24 2017 +0200

    ctrl: completely replace all CTRL commands
    The previous commands are not conforming to how the CTRL interface is intended
    to work:
      SET enable-ps <IMSI>
      SET disable-ps <IMSI>
      SET status-ps <IMSI>
    'status-ps' is a write-only command even though it returns the status.
    'enable-ps' / 'disable-ps' indicate the value instead of a variable name of an
    entity. The entity <IMSI> takes the place of the variable value.
    See also https://lists.osmocom.org/pipermail/openbsc/2017-September/011236.html
    Instead, replace with
      SET subscriber.by-imsi-123456.ps-enabled {0,1}
      GET subscriber.by-imsi-123456.ps-enabled
    and also provide further CTRL functions while at it:
      {SET,GET} subscriber.by-{imsi,msisdn,id}-123456.{cs,ps}-enabled {0,1}
      GET subscriber.by-{imsi,msisdn,id}-123456.{info,info-aud,info-all}
    Provide CTRL tests in the form of transcripts.
    Adjust tests/test_subscriber.sql to feature nonzero SQN, to see some values for
    SQN in the CTRL transcript tests. (This does not affect the VTY tests, because
    that creates its own subscribers, and there's no VTY command to set the SQN.)
    This is the first time an application uses CTRL_NODE ids that are defined
    outside of libosmocore, see 'Depends' below.
    Implementation choice: the first idea was to have a '.' between the 'by-xxx'
    and the value, like:
    but the difficulty with subscribers is that they are not in RAM, and I can't
    just point node_data at a struct instance that is always there (like, say, a
    global bts[0] struct in osmo-bsc). Instead, I want to store the selector and
    later decide whether to read from the DB or whatever. With a '.' separating
    things, the only way in a ctrl function to obtain both 'by-xxx' and '123456'
    for picking a subscriber record would be to parse the entire variable path
    string elements, including 'subscriber' and 'function', which would then also
    clumsily fix at which node level we hook these commands; there could have been
    separate CTRL_NODE_SUBSCR_BY_{IMSI,MSISDN,ID} parent nodes, but we cannot
    introspect the current parent node dynamically within a ctrl function handler
    (plus I'm not sure whether it's possible and a good idea to have the same
    command under multiple parent nodes).
    Rather than that, I store the 'by-foo-123' token in the node_data pointer to
    have both bits of information pointed at by a single pointer; I use the
    incoming command parsing to get this token pre-separated from surrounding node
    names, and no need to re-allocate it, since the vector of tokens lives until
    after command execution is complete. Each leaf command obtains this token from
    cmd->node (aka node_data), and feeds this token to a common static function to
    parse selector and value from it and to retrieve a subscriber record as needed.
    (BTW, I have mentioned on the mailing list that this way might be necessary to
    avoid numeric-only CTRL node names, but we don't need to, and that is not at
    all related to this choice of structure.)
    Depends: libosmocore I1bd62ae0d4eefde7e1517db15a2155640a1bab58
             libosmocore Ic9dba0e4a1eb5a7dc3cee2f181b9024ed4fc7005
    Change-Id: I98ee6a06b3aa6a67adb868e0b63b0e04eb42eb50


Summary of changes:
 src/ctrl.c                        | 357 ++++++++++++++++++---
 src/ctrl.h                        |   6 +-
 tests/test_subscriber.ctrl        | 641 ++++++++++++++++++++++++++++++++++++--
 tests/test_subscriber.sql         |  12 +-
 tests/test_subscriber.vty         |   9 +-
 tests/test_subscriber_errors.ctrl | 107 +++++++
 6 files changed, 1060 insertions(+), 72 deletions(-)
 create mode 100644 tests/test_subscriber_errors.ctrl


More information about the osmocom-commitlog mailing list