openbsc.git branch jerlbeck/wip/gprs-patching updated. 0.13.0-891-g1b2e8e1

gitosis at gitosis at
Mon Jan 19 17:37:52 UTC 2015

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 "The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)".

The branch, jerlbeck/wip/gprs-patching has been updated
  discards  47c7031e8374c7f62fee4302ea4542db337dd805 (commit)
  discards  a6f76044db12fad60f40df8711d5405956c9d121 (commit)
  discards  be80c25828ed77525f4c16c8d4355aa082b549c7 (commit)
  discards  de0a00f169dea08e6a9382d8c0b0954ee4d4dfbc (commit)
  discards  de07f985b57ac534764d9020bac4d2e9550f3cb1 (commit)
  discards  bb23b837207f293b8e375f44fe5c24a1172036f5 (commit)
  discards  209b4e36e3e642b0986bbacf3f41c496e4a27a43 (commit)
  discards  4a1139a07134956d1c68472381b6bebc5d29bb93 (commit)
  discards  435ac559683d4813c6f4ae9896deae60dc6d7f09 (commit)
  discards  523731fceba3e2b805bc2e3c1205f4a7c691bad8 (commit)
  discards  e341cff4a0e3f1e4525be9d216fe09cdabb0111e (commit)
  discards  cabb6cbbd299a5a48a3d8eb798f747ab6383b265 (commit)
  discards  c940371242ec50cd2981c69a1e6667c7f80fbbef (commit)
  discards  ea5906244efac709eb1fbcbd021a285fc4cbe7b8 (commit)
  discards  82b3b65f217a0432ab88909f9fb29d7aa1856541 (commit)
  discards  5b88584b0604269b1a830f8dfe1fec7319f3cdc7 (commit)
  discards  4c3cf3701c217c99cdaee39d28ee0acea2e1c374 (commit)
  discards  6cc8140d2b32abf620d6b47cd691162728029122 (commit)
  discards  018d3829388438da9a7734bcd6972077c8c35090 (commit)
  discards  d8abd5df576d0180b2f78009fbe5707094e8aef1 (commit)
  discards  b92861ddbc4a559a6e4c82b875a2b1406f6d6279 (commit)
  discards  4ffbfd3e4ebf5bfb5fa4ee298d88a6b721525420 (commit)
  discards  1d89966270e03838fa61a15a874ceb8be34c3de3 (commit)
  discards  98ed3fd8089b26895ef0177f1c1f3567cc3d0871 (commit)
  discards  7c998bd273986d5cbd38b93523e8bfd59ec6fbae (commit)
  discards  bf6f8f6186f4cbd757e8c72083214493a95bc60d (commit)
  discards  e08b0de9fe2d7c0ad60a7eb6b4bdc0af2d62177c (commit)
  discards  0b9733bfb3d15544b867210f138367bcf7d25cf5 (commit)
  discards  a4c1213fd7b7da144b011a7d74d28f5ba670df1a (commit)
  discards  46d6fcc2cc2cbf6ad034a20fc6461f5016aa0bca (commit)
  discards  666d4c7f68e56bc380f1028509c60cbec5eebe87 (commit)
  discards  7275bd4d224ec91b50c0938d31b602a3c19a9a18 (commit)
  discards  13266266b9a8c6518b7153b8fdea4aa2c0328ffe (commit)
  discards  83c3f0be610073a5fe001ba39e45d4ac1f925e4c (commit)
  discards  3ee9213a6d3131da085f97929051a0b0d3e65d0c (commit)
  discards  49bf767559c5beb4d7de145fdbabe02a9cae577f (commit)
  discards  dfb5722cf088eca6bc3bcbb74cdf5704b5638568 (commit)
  discards  418f6de75d1e54405e4e5501f50b1c4b2146551c (commit)
  discards  18e441b66e0a974028f4042141b1a801fb5f21e0 (commit)
  discards  71cd89a3e591951e7efd4b7065acfa9b15177ac5 (commit)
  discards  91740a67cb090f0507b8c364f8f3950b73a52beb (commit)
  discards  d390bc452c0dca5c2e455ccdcda5515204a11413 (commit)
  discards  a6cb44ea20e173b50c8197f44f588411c25c1c31 (commit)
  discards  33245e2c62baf0569edc53b4d39c3344a0372eba (commit)
  discards  2892ebf3ea5ae575c3760fd2fca95b331f9ba9d2 (commit)
       via  1b2e8e11206f00ca1a0b8367c2ea65a49a49b8c9 (commit)
       via  647ae2ff68b4e9a95c62b5837bf7330eb9a9aa2d (commit)
       via  3aa1f5242c550ab940ab913dc444fe24163a3dd9 (commit)
       via  dd399a0da4f3d78ff980c8b2e741119fa1991319 (commit)
       via  b25cd3064cf4c613ed19633657071ea2a9668582 (commit)
       via  50f009135d5814ba55e1fb718538eca1154d1b48 (commit)
       via  ca4ec2cd26fef34825b430c7e0e16faaa8cb9fcd (commit)
       via  a94708c025f864b38a6c1f4463f3e8de9a542547 (commit)
       via  bbb716965344a46653ab388823570d575a7a6d8d (commit)
       via  cedc73bf6346353e6c04a2ace9986a99cfa30475 (commit)
       via  870f7c20e1af47129ab055b72c288919cb89f6fc (commit)
       via  3793b21a42a3e33c0356a59d3153988bc40c7820 (commit)
       via  a1f7a53a95483560f91fe601ed837581e25ebda1 (commit)
       via  244aeadb616702b34d479be3872a5e1bf71120b0 (commit)
       via  10a8847d671260da5d94d76c5751424f2f367a0e (commit)
       via  1635150f2ccfb3cba636b42ac8aa1c916e0ae8ec (commit)
       via  a688976f10bfb0c14954a066aa133f28bce3a541 (commit)
       via  743dec4c0c80383556efac60f03d307287ecf024 (commit)
       via  65fa3f73a1151e896e4c74196680b7886a3b6be6 (commit)
       via  69d271376cce7d26a0469bbb948f272c399ac6c7 (commit)
       via  cde0bb27a14553bba2f680cd1307a5f9b3581f0e (commit)
       via  058bc26e1bb1350c9077f99edd24887bb84bc8c5 (commit)
       via  c157ee7d2ccdb7524e76d25b22cb7eec8de9a656 (commit)
       via  0f47b8fae743769a6627f8654444b4f0d665e050 (commit)
       via  b8fb1409d1ed18dc198b430895a74e680640c2b1 (commit)
       via  e1beb6f51d3822593d56e071d47e12a74f077826 (commit)
       via  d3cde1ecf49940fae90ec5e1d36824ee0ba17501 (commit)
       via  f06fe29f61c0089ca2f0c10faea18c65d5014f95 (commit)
       via  bf34c67f3f5f747d71f844aec9ae61d26b273d6d (commit)
       via  42755785707a11c8349b86c2afb98b7bc15c85dc (commit)
       via  bce2061b43c1e38b766cc3738b4ad669211dc6a4 (commit)
       via  9aa9991efe207f5c12bbcf655b0660e3466c02e0 (commit)
       via  af3d5c508c9ca3ebae9388d3e09c5d7726db4f5c (commit)
       via  afcf23001e600bedc51db08a22846dada9bc06b3 (commit)
       via  8054799963f4b3b936d601eb4b1f5774f2c41fec (commit)
       via  03b463034885e7ebb09160f6d63c05ac120a8098 (commit)
       via  e154d8bdd45974fa6e9408b9d543eb9e9ea94b79 (commit)
       via  69e16b9ea5dc991f8373c11b9fcf45b7b1a8e940 (commit)
       via  4188c30c4a6574201d62df1be818eed038608d16 (commit)
       via  849d0a83e8598e0f21a3e9c5438c222d8ab417eb (commit)
       via  7660ffa29fb463fc24b2ac8d735b9b345017bba6 (commit)
       via  3d722450de1cf34931d95f7a748a9b6c48e933f0 (commit)
       via  e21e184d84d6a932b58079084d254f498599e29e (commit)
       via  771573c535ae97ce7c7ed7694670e3b98eeae48a (commit)
       via  a071c1ccc07074272f6cb7626b781f45f85564c6 (commit)
       via  9d4f46c975c3a4c92071c70ebadd6edc345581da (commit)
       via  39f040d62b16b2d99352f5facd83ce098fa2f462 (commit)
       via  bb23dc17f8f56be836dc50c925c04a5aeaec979c (commit)
       via  1610626fe9e65693c6d8743129b10ed4958ec6ea (commit)
       via  a2315eebf972412e122033ac036dd21bcdad5335 (commit)
       via  424ffa480630a4242d2a6f6b27b9e6b1ec08d206 (commit)
       via  0572ee045d1b7c29a0c34b27867b3f8669eb5038 (commit)
       via  f0b06d82cd6f2a340db052a2fa2e559aa75f1fa8 (commit)
       via  07de92e2c0ccfa89b9498c8c49a74d0848b7b85a (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (47c7031e8374c7f62fee4302ea4542db337dd805)
             N -- N -- N (1b2e8e11206f00ca1a0b8367c2ea65a49a49b8c9)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

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 1b2e8e11206f00ca1a0b8367c2ea65a49a49b8c9
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 18:01:42 2015 +0100

    sgsn: Remove inactive LLME/MM after inactivity timeout (TODO)
    Currently old LLMEs and MM contexts that haven't been explicitly
    detached or cancelled are not removed until another request with the
    same IMSI is made. These stale entries may accumulate over time and
    severely compromise the operation of the SGSN.
    This patch implements age based LLME expiry, when the maximum age has
    been reached, the corresponding MM context is removed. If such an MM
    context doesn't exist, the LLME is unassigned directly.
      - split commit
      - replace hard-coded values by real config
      - age_timeout -> age, timeout: age = (age == RESET ? 1 : age + TICK)
    Ticket: OW#1364
    Sponsored-by: On-Waves ehf

commit 647ae2ff68b4e9a95c62b5837bf7330eb9a9aa2d
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 08:27:34 2015 +0100

    gprs: Add GPRS timer conversion functions (TODO)
      - commit message
      - test
    Ticket: OW#????
    Sponsored-by: On-Waves ehf

commit 3aa1f5242c550ab940ab913dc444fe24163a3dd9
Author: Jacob Erlbeck <jerlbeck at>
Date:   Tue Sep 30 13:53:26 2014 +0200

    sgsn: Added TODOs (TODO)
      - fix and remove TODOs
      - add test cases for Detach(reattach)
      - add test cases for PDP context deletion (OW#1311)
      - add test cases for Cancel pending timer in sgsn_mm_ctx_free
      - implement age based MM context expiry
      - remove this commit
    Sponsored-by: On-Waves ehf

commit dd399a0da4f3d78ff980c8b2e741119fa1991319
Author: Jacob Erlbeck <jerlbeck at>
Date:   Fri Oct 17 10:08:02 2014 +0200

    sgsn: Do not die in _bssgp_tx_dl_ud on TLLI mismatch (TODO)
    Currently an OSMO_ASSERT fails, if the message's and the mmctx's
    TLLIs do not match.
    This commit turns the assertion into an ERROR log message and uses
    the default values for IMSI, DRX, and RA CAP instead of the MM
    context values in this case.
      - find the real source for the problem
      - add test cases derived from what is being described in the ticket
    Ticket: OW#1322
    Sponsored-by: On-Waves ehf

commit b25cd3064cf4c613ed19633657071ea2a9668582
Author: Jacob Erlbeck <jerlbeck at>
Date:   Wed Dec 17 14:03:35 2014 +0100

    sgsn: Add PDP info to subscriber data (TODO)
      - commit message
      - raw binary representation ???
      - tests
    Sponsored-by: On-Waves ehf

commit 50f009135d5814ba55e1fb718538eca1154d1b48
Author: Jacob Erlbeck <jerlbeck at>
Date:   Fri Dec 19 19:11:20 2014 +0100

    sgsn: Add logging to connect_timer_cb (TODO)
      - LOGLevel ?
    Sponsored-by: On-Waves ehf

commit ca4ec2cd26fef34825b430c7e0e16faaa8cb9fcd
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 14:11:46 2015 +0100

    sgsn: Restructure the 'update-subscriber' command
    This patch drops the following commands:
     - update-subscriber imsi IMSI insert authorized <0-1>
     - update-subscriber imsi IMSI commit
    since they are already covered by the 'update-location-result'
    sub-command, except that this command doesn't create an new entry if
    none is found with the given IMSI.
    It adds the following command:
     - update-subscriber imsi IMSI create
    which can be used to create a new entry.
    Sponsored-by: On-Waves ehf

commit a94708c025f864b38a6c1f4463f3e8de9a542547
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 14:29:43 2015 +0100

    sgsn: Fix vty_out newlines
    Currently '\n' is used to end lines in the VTY output string
    constants instead of inserting VTY_NEWLINE. This leads to incorrect
    line starts in error messages.
    This patch fixes that accordingly.
    Sponsored-by: On-Waves ehf

commit bbb716965344a46653ab388823570d575a7a6d8d
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 11:10:04 2015 +0100

    sgsn: Add SGSN_ERROR_CAUSE_NONE and use it instead of 0
    Currently an error_cause of 0 is being used to indicate normal
    operation. Albeit this is not a defined GMM cause, the value is not
    explicitly reserved.
    This commit adds the macro SGSN_ERROR_CAUSE_NONE and uses it for
    initialisation (instead of relying on talloc_zero) and comparisons.
    The value is set to -1 to be on the safe side. The VTY code is
    updated to set the error_cause when using the
    'update-subscriber imsi IMSI update-location-result CAUSE' command.
    Sponsored-by: On-Waves ehf

commit cedc73bf6346353e6c04a2ace9986a99cfa30475
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 10:56:15 2015 +0100

    gprs: Return 0 from gsup_client_connect if ok or retry timer enabled
    Currently the gsup_client_connect return 0 if the call to
    ipa_client_conn_open was successful and -errno otherwise. This makes
    it difficult for the caller to determine, whether the the whole
    operation has been cancelled (currently on EBADF, ENOTSOCK,
    EAFNOSUPPORT, EINVAL) or whether the GSUP client will retry to
    connect after a timeout. This will cause gprs_gsup_client_create to
    destroy the GSUP client object, even if the error might be temporary.
    This patch changes the function to return 0 if (and only if)
    ipa_client_conn_open was successful or the retry timer has been
    started. Since the return value 0 doesn't guarantee, that a
    subsequent call to gprs_gsup_client_send will succeed, this shouldn't
    break anything.
    Sponsored-by: On-Waves ehf

commit 870f7c20e1af47129ab055b72c288919cb89f6fc
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 09:13:05 2015 +0100

    sgsn: Fix access to subscr in sgsn_auth_update (Coverity)
    Currently the access to subscr->sgsn_data->error_cause is not
    protected against subscr == NULL like it is done in other code paths
    of sgsn_auth_update.
    This commit adds a conditional to avoid a NULL-dereference.
    Fixes: Coverity CID 1264589
    Sponsored-by: On-Waves ehf

commit 3793b21a42a3e33c0356a59d3153988bc40c7820
Author: Jacob Erlbeck <jerlbeck at>
Date:   Mon Jan 19 08:57:07 2015 +0100

    sgsn/test: Make assert_substr safer (Coverity)
    Currently, if assert_subscr were called with subscr == NULL, the
    later call to subscr_put might fail, as Coverity has complained. In
    addition, the call to subscr_put would free the subscr object if it
    were in the cache with a refcount of 0 at the time assert_substr was
    This patch adds a check for the subscr being non-NULL and reorders
    the checks, so that the subscr_put comes last.
    Fixes: Coverity CID 1264590
    Sponsored-by: On-Waves ehf

commit a1f7a53a95483560f91fe601ed837581e25ebda1
Author: Jacob Erlbeck <jerlbeck at>
Date:   Thu Jan 15 18:51:31 2015 +0100

    sgsn: Fix P-TMSI generator's distance of equal values
    Currently sgsn_alloc_ptmsi uses rand() to get a new P-TMSI and then
    sets to upper 2 MSB. Therefore there is no lower limit of the
    distance between 2 identical P-TMSI.
    This patch changes the implementation to discard any random value
    above 2^30 and to generate a new random number in that case until a
    fitting number is found (or a repetition limit is reached). This way,
    all number below 2^30 within the PRNG's period are used.
    Ticket: OW#1362
    Sponsored-by: On-Waves ehf

commit 244aeadb616702b34d479be3872a5e1bf71120b0
Author: Jacob Erlbeck <jerlbeck at>
Date:   Thu Jan 8 15:29:01 2015 +0100

    gprs: Support the full cancellation procedure
    Currently no GSUP LocationCancellationResult message is sent back to
    the peer (HLR), if the procedure succeeded at the SGSN's side.
    This patch adds the missing message and put the whole request
    handling of this procedure into a separate function.
    Ticket: OW#1338
    Sponsored-by: On-Waves ehf

commit 10a8847d671260da5d94d76c5751424f2f367a0e
Author: Jacob Erlbeck <jerlbeck at>
Date:   Thu Jan 15 17:50:16 2015 +0100

    gprs: Don't create a subscr entry on InsertSubscriberData
    Currently gprs_subscr_rx_gsup_message creates a subscriber entry if
    such an entry doesn't exist for the IMSI within an
    InsertSubscriberData GSUP message. This behaviour is not compliant to
    GSM 09.02, (Subscriber data management/SGSN) where it is
    defined, that an error ("Unidentified subscriber") shall be returned.
    This patch removes the case distinction, so that an existing
    subscriber entry is required for all incoming GSUP messages.
    Sponsored-by: On-Waves ehf

commit 1635150f2ccfb3cba636b42ac8aa1c916e0ae8ec
Author: Jacob Erlbeck <jerlbeck at>
Date:   Thu Jan 15 17:08:30 2015 +0100

    gprs: Add replies for all GSUP requests
    Currently, an incoming GSUP request message isn't answered at all if
    it is not handled due to an error or missing implementation.
    This patch adds GSUP error replies for these requests (and only for
    requests). It also adds tests for these cases.
    Note that several of these tests check for
    GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL, which will have to be changed, when
    the features are implemented.
    Sponsored-by: On-Waves ehf

commit a688976f10bfb0c14954a066aa133f28bce3a541
Author: Jacob Erlbeck <jerlbeck at>
Date:   Thu Jan 8 16:23:25 2015 +0100

    gprs: Block other GSUP procedures during PURGE_MS
    GSM 09.02, mandates that no other MAP procedures shall be
    started until the PURGE_MS procedure has been completed.
    This patch implements this by adding corresponding state and checks
    to gprs_subscr_purge, gprs_subscr_location_update, and
    gprs_subscr_update_auth_info. If an Update Location or a Send Auth
    Info Req procedure is not started because of blocking, the retry
    mechanism is aborted to shorten the blocking time. The outstanding
    Purge MS procedure itself is not aborted.
    Sponsored-by: On-Waves ehf


Summary of changes:
 openbsc/include/openbsc/gprs_llc.h       |  5 ++
 openbsc/include/openbsc/gprs_sgsn.h      |  4 +-
 openbsc/include/openbsc/gprs_utils.h     |  5 ++
 openbsc/include/openbsc/gsm_04_08_gprs.h |  5 +-
 openbsc/include/openbsc/sgsn.h           |  2 +
 openbsc/src/gprs/gprs_gmm.c              | 14 +++--
 openbsc/src/gprs/gprs_gsup_client.c      | 13 +++--
 openbsc/src/gprs/gprs_llc.c              |  4 ++
 openbsc/src/gprs/gprs_llc_vty.c          |  7 ++-
 openbsc/src/gprs/gprs_sgsn.c             | 64 +++++++++++++++++++++++
 openbsc/src/gprs/gprs_subscriber.c       | 10 ++--
 openbsc/src/gprs/gprs_utils.c            | 31 ++++++++++++
 openbsc/src/gprs/sgsn_auth.c             |  4 +-
 openbsc/src/gprs/sgsn_main.c             |  1 +
 openbsc/src/gprs/sgsn_vty.c              | 87 +++++++++++++++-----------------
 openbsc/tests/sgsn/sgsn_test.c           |  5 +-
 openbsc/tests/         | 10 ++--
 17 files changed, 201 insertions(+), 70 deletions(-)

The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)

More information about the osmocom-commitlog mailing list