openbsc.git branch neels/iu updated. 0.15.0-787-g4e380dc32

gitosis at gitosis at
Fri Mar 3 00:56:18 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 "The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)".

The branch, neels/iu has been updated
  discards  758c6c478d787a59983c80896c4fabb69b679fd1 (commit)
  discards  9d10f424de3c7bca7c323439332deeaae4bd642b (commit)
  discards  1380a1f9ab193e8cdbdaa03bf46aa07bb85bcbde (commit)
  discards  7405922b092e5bd38b451e06176494db4a3c881f (commit)
  discards  459f46f6e3a1b7062ad27c85e208f289bac57c06 (commit)
  discards  88507500d51c062103f9c7dff30941896d3276a3 (commit)
  discards  222faa8213fac638877d5a6272b67ba34f3bb969 (commit)
  discards  c67c63e5303307f94512f0fbb1775030789c8ea2 (commit)
  discards  00b0a9fa3a352e71e24ee1806f9b2af5fc950c2d (commit)
  discards  6a28e2b038e301685fe38b617cf4faa17b66e087 (commit)
  discards  d55a5d7b52395ab3a0015ea4767a26046daa9d5b (commit)
  discards  e19a6d5b68efcac1b73c17f8f7f6ef7dda041070 (commit)
  discards  08de61a0be444e94f3ff332420e80f6181012080 (commit)
  discards  7f22416aafa36e9169a908568f2cb3f4d046c30c (commit)
  discards  48c1999bf20209ed794fdcba428b48c4bb4464af (commit)
  discards  2e0063e08226beb96a23c5731b26fd4b2315b463 (commit)
  discards  2fcaf4a1aab6c4bf3a3d250952dac39fcbede636 (commit)
  discards  be96261548f2e78bacd3ae95335d135f15498deb (commit)
  discards  77d3e13e3410fd1e4114cfe6b27005c2ecebd43e (commit)
  discards  816423c24a59d768e9d92809c7fbb80dee50dc5b (commit)
  discards  8debae5492f2268268fe32a239a7f974355976e5 (commit)
  discards  754b2efadf54144d6a185d3311ca8c10b082150a (commit)
  discards  f7f9d9dd6405d865d8c83b1236e94feb1b8edc72 (commit)
  discards  8fdb920168840bf6a8f18569e7ddb445fee66522 (commit)
  discards  9e4f71b091988a22ba3d8d706ce6d4bb46ee1670 (commit)
  discards  c94e1b68b025af6d5e4912b4740fa2ecc3e126f4 (commit)
  discards  756ea325bd22ef8f98854bc91a9a117dab735f88 (commit)
  discards  775f1c9b09d7a531c710bb80be52f7ace8eb1f72 (commit)
  discards  53c5edfc3c9e2b8e3804ce1e1e9fe9552e970532 (commit)
  discards  35e2f5195ef2094da7a49d8cff73718b67bd54c0 (commit)
  discards  56e2b5722161c37f23fa66eb4122f16143fa4e54 (commit)
  discards  1d5f0f50f28d03f813def41d605a75d09a5557eb (commit)
  discards  a0928566ae0cefa0f16b39d2fa518d991272c007 (commit)
  discards  ad116ecce197d634682db42dd80d4498af6f1a03 (commit)
  discards  c7be84ee605f7151a5dbbefca26e1b83293b859d (commit)
  discards  6c6804e25fb9df9b09e03cf7e23b0a7a5448745f (commit)
  discards  6919a1ac3d55252b497e2a78a8f95d187b566ff9 (commit)
  discards  2f0f5aa460c219636a71a84987abd08484d14b73 (commit)
  discards  edf4b1b3ba74ad13bed225158789992bfa2a3ed1 (commit)
  discards  1f0e68b9dc55ae6eabd89099eaf28c9fac5578c0 (commit)
  discards  c4cfb7c0d44bd956949e84f90f08bb4b89fe3473 (commit)
  discards  0fde9499f3bc7132348135da7645be165b9bacf3 (commit)
  discards  63fe2d6b7720053267de48c9695f0a4476f57e4d (commit)
  discards  59c939203a2ba55bb5f8366bee70ba18af45ef32 (commit)
  discards  aac0e0bc9971a1bcc6b9c123c8521370317b3613 (commit)
  discards  68dc9e617aa62e7001ca80ce43cae52fdd493a7d (commit)
  discards  771d3bb82f60cd18c5d6f1c24f9c4e9bf87f8662 (commit)
  discards  4be70d114036ca04563aa665477f6ed1e523ceee (commit)
  discards  428af2545a7ff43ae79b57ef082797bb2d990310 (commit)
  discards  ad0ea28ce6ce4c583e2b09be22aa1b2193630bea (commit)
  discards  6ee31c50ee582d755a1ea0c745853b081c3c9212 (commit)
  discards  d6ed43b594f1ce2845e3e726604a8ea1f97eb8cb (commit)
  discards  ea23766483cb40aa7bf5f0a61a67a83faa2aa745 (commit)
  discards  eb68dd7c692be656764d58907a73e35d3ef51c84 (commit)
  discards  2bdb25354c70906dd1a14ae7f2ba07a96f244162 (commit)
  discards  3b1387a23f474e47570d3907369244f7b1d5d01e (commit)
  discards  517e0b402f6c592edaab16ab094a3c0acd8ff139 (commit)
  discards  834e25c96e84f193cd5518643cc4ef47b3a0777e (commit)
  discards  648f2a73b7d26767a7e0310345119871bbfbe0f9 (commit)
  discards  7ac7edb123d3a8463ee59eb99693629513a0e3c0 (commit)
  discards  79c79a968723f46aadd74323d3cf5e2cbeec4bc9 (commit)
  discards  2addda1f0d0f700d103d2e9e20b16711b0f5d55b (commit)
  discards  179a8988fb80ba9d337ef4daf48ff2ee39b153cf (commit)
  discards  b0fe197014dbe15121c72ed49c88caa5d652688d (commit)
  discards  3a70ce513b86a1c6651c30ef3985e8bac14b49e0 (commit)
  discards  f96cbb176bdaefedd11157f0ff6c3e6db420215a (commit)
  discards  8a04e94f3c93c56844d35e211ac19672844b8ecc (commit)
  discards  b0758294356e2437499c76f49dce9494f7ec3e8e (commit)
  discards  1ccd42b652a22bc84cc6f98c8a3fc6305a56d418 (commit)
  discards  4ca12a6571117d631fdfcffac4d45f29adb527cf (commit)
  discards  ffe71752448cc48fd27ba68628219dd2eeb78cfa (commit)
  discards  b509e276194b9bb051bbac3ce0745d071d4efcc6 (commit)
  discards  e52c5d0a109bc8bdaad9dfe6f6bb69bef5668ea0 (commit)
  discards  6137844171d495ecd569846f8b4793fc5be76f1b (commit)
  discards  628e7164d3ec440dfc5630c693cbc4a44c58806c (commit)
  discards  43e8497da24b91e5ea5fea04bee155aa813a170f (commit)
  discards  b45d8894250358f510f91f7f58b7b29ef2ac2ab7 (commit)
  discards  c3e0e6165f62322e53df4384ed27f4aeef64da38 (commit)
  discards  b3eebe95dcee84c0d437ba9e1a21c2de58e4a002 (commit)
  discards  488b6dc581d3b8cb02bfe418dcd8e72b7b16a859 (commit)
  discards  71baa3e2ddad4ecbe85b6471f8e9039aa91d6ebe (commit)
  discards  8be6fc4df2e63aedaae5c5a00be5a419f48606c9 (commit)
       via  4e380dc32315f378fecd359ec666f5e0a9639f33 (commit)
       via  32cdcebdc84b620f5af681dd43f526d39532e841 (commit)
       via  6094dd282e6c35ca7e7792e793e564d27c588a79 (commit)
       via  5afbec9502e32e93dcf2778ca9f4d031a7a1be57 (commit)
       via  4e3123bd1adb95a62cb0bee68b79692b291751fc (commit)
       via  ff41dece6e4a1d9969336af7db5dcac3dd918114 (commit)
       via  99cc75d94be980f0a1663ffb585de4ccbae94033 (commit)
       via  f08c91d8f91ec23a6b7ab5faee0e39f6d5150011 (commit)
       via  faaeab07dabcf2e3c3f347eb2cce626896649e94 (commit)
       via  b0cbedc45df75e5a64cc952340098f96e99bfbff (commit)
       via  227ab8bc5379084c402f4edcde3fab1d03823e0c (commit)
       via  ce5f30160a347fb9885134b36286280bccf52c4e (commit)
       via  5840819bd6e2197d88992a47d14e73a6f51982bd (commit)
       via  b75f464a4e9479ddb5ea4a13a11fd6ac4e8cdc64 (commit)
       via  75313e0819afc5fe1a2bcaa64d43d54ed30cc139 (commit)
       via  b3b121e074333b4bb6a83a5d0f0709a5b1fc9490 (commit)
       via  8e287631807e7bfc26be063c4b79b612fa1b2dab (commit)
       via  623f17696893dd0eaa1d38385342f7b43c0d8fa6 (commit)
       via  1bd70bea2bdc1417777446549f9736255a891c10 (commit)
       via  f214df048279583e465d70cdf0b7e8ff3433cabc (commit)
       via  1e940085eeb0e2275d88a58f8ba5e9be6b4f722c (commit)
       via  328f318e4fd9a0419d83e3c35767c6c63ceb2ba4 (commit)
       via  b678d8a4d3d6b2481af0eeda0971e418ba18ddb5 (commit)
       via  6ec2276890f744c70f65e61e5c206fd5515ef48d (commit)
       via  fe5f5be86d7a12c04ff2fabc3f0a64ea2a399b37 (commit)
       via  d05b706e29cafafe66369eca98fdd5bf879cb44a (commit)
       via  e2dd3a7d222cfb563c784141e1ff3814e3052e00 (commit)
       via  1c0aeacfb5e2a94e447d397f7aec81ac218adfbf (commit)
       via  58e82a6d8fa1faa614c8e16fa277ce9d91b861cb (commit)
       via  7134c9d589429eee1ca934aae30d54eccc54c11b (commit)
       via  4bc2a2b51c67189593564c38c474f95a218502ad (commit)
       via  51d8816e945417aea8c04307ed1c58b3004621e1 (commit)
       via  3c33cf8f698850766f28a5ded8150153a9f530cf (commit)
       via  c53d824e04af21eb2412229ee02e38d3bf8c4ad7 (commit)
       via  ae09354c749a8f727d809c3a531583abfd8ba989 (commit)
       via  47ada36c5f0f65b9ea8b6f1cc5de601ab43a6673 (commit)
       via  f25bd099554b9050a180e93e8e4134a213b538df (commit)
       via  1583dbe015d2cceb2c4b832c4f01c74b565cac71 (commit)
       via  1a97e548784a2e1849d4a2886792155fa54013d4 (commit)
       via  21ee29b59a7388b69b165e30bed4ccdae68a6c97 (commit)
       via  a4a614b8fdcabcbb44a7087bdb7af7b54d39680b (commit)
       via  113b55f603d78a7ebf55d13c6ebf2a413c0122e7 (commit)
       via  f1002b3daceb0b699a74cbe9e96af2c008d2e059 (commit)
       via  cc84d7519beb47a52fb5365ac2bf3434f17cf39a (commit)
       via  813854f830d8992998524267a052efadd2bbbc61 (commit)
       via  e7bc5502ecd4a7f4ab32535d4197713557de02b0 (commit)
       via  f36a6681c59c4d42704fa80112058801d297d40b (commit)
       via  86991b466e840f4a86f92cf861cf8d449773a3d3 (commit)
       via  babba361d3bd81a77047530c16fb1a077469adf9 (commit)
       via  301874140e746ab9c0102c2b9420455592851a8a (commit)
       via  bd0668cb57ebe74642fa7173ae64b93ff8f7f50c (commit)
       via  94b511dbd41b2b4dd35ddc651f13b3a043324dd7 (commit)
       via  a9c773fd7207952f065f912baaceac4a4ec9a30e (commit)
       via  3130a8832e7cb171286a2f3e14fdcde15eec723b (commit)
       via  b288fd3e7036086447fe6dbc27f22205a3996a29 (commit)
       via  6ec55ca844b626ca2d3448bdb395ab7a235c9edc (commit)
       via  f1b5124fa9278e68e8977d6574482a68fadc326b (commit)
       via  1e6ebce1e0bfa63892d0182d80c82e0bde845d04 (commit)
       via  e56278bb60eceadd794a7e9eaf3264b7e29ca590 (commit)
       via  21641fda839a4139d0cc56913f19cc16e527509e (commit)
       via  dbe47a8c5a3d211f04266b3309e777e6814ad1aa (commit)
       via  d7686cc7cb6abf6250b8407cf49f6602ddf89308 (commit)
       via  1dffb2c555c89e6f42f59c7fde20676c63c5065f (commit)
       via  06e213d3ec2a493596595af12ac3e2120c66bde8 (commit)
       via  a5108ce78e12f0455aadbe25edf7a4aebc10a076 (commit)
       via  0a52db416c5343cf563f283f8a1223b11939e1a4 (commit)
       via  5c796dfbb84b779cf4d671a005ad7d36067240c5 (commit)
       via  9bab918ff124e7bac6bdb5252d0b2b8ce0fcdb4b (commit)
       via  b8df0a30eba949003e6255c9c0867186328066ae (commit)
       via  3165ff9bf70cb0c7de8cf6836b8e74741930fcac (commit)
       via  3398fa157dd3e154a67ce3e4bbfef8443c00ce47 (commit)
       via  2f839234b2f547aa27c08fb930b2a988451da7cd (commit)
       via  99bddc16848934ce809aaf7fe81376e4616cdc42 (commit)
       via  182ad6cb396d39f8dd8547e8506969e7ae1ca877 (commit)
       via  9210660b1124ff6fd15a0c83a709b98efe9ac8d4 (commit)
       via  e28c5ead2541a59a3b239b87a6362e0f1c9d825e (commit)
       via  0db076948f7dbe53c01cc52e24e53f3de5c46dfe (commit)
       via  988265c895c6afc6e4d4a2eb2265a6f6cbd05f18 (commit)
       via  53ee882692c86a25dc968ee8adaeab7c3408da21 (commit)
       via  14425331460784ace89f80ff4d8d827cc2d7ea71 (commit)
       via  4ffc578ed36d5489f67b107dc8065c18a4f0d628 (commit)
       via  48d537ff842505433ff1b5221505b2b83ac7843b (commit)
       via  0436e42472a48a91cc6f743b3bca3f09a2ffd490 (commit)
       via  d3270a9c053c33b7d460bf3f84f7975c06cace52 (commit)
       via  5616cdde3ada142b948b2d5cc4342b0febca42dc (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 (758c6c478d787a59983c80896c4fabb69b679fd1)
             N -- N -- N (4e380dc32315f378fecd359ec666f5e0a9639f33)

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 4e380dc32315f378fecd359ec666f5e0a9639f33
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Mar 2 20:39:17 2017 +0100

    Change-Id: Ife95dfebe4cea20bb61c9216991e964b2d51d07b

commit 32cdcebdc84b620f5af681dd43f526d39532e841
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Mar 2 02:37:39 2017 +0100

    Change-Id: I4101b102145a011cec1eb8b92863f38ff7db57b2

commit 6094dd282e6c35ca7e7792e793e564d27c588a79
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Mar 2 02:22:58 2017 +0100

    mark fixme: rate counters
    Change-Id: I45651fd4cf3f4da8ad67251bbb3b627888e76d9c

commit 5afbec9502e32e93dcf2778ca9f4d031a7a1be57
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Oct 21 01:32:10 2016 +0200

    mgcp: log payload type change
    Change-Id: Iee5fa667dece12174b1933345c1ed640a264ed97

commit 4e3123bd1adb95a62cb0bee68b79692b291751fc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Jan 23 16:56:02 2017 +0100

    comment: fixme: rab failure
    Change-Id: I6e21f2d7dd560ab15675f3e432c37a13c4ab6792

commit ff41dece6e4a1d9969336af7db5dcac3dd918114
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 18 20:20:51 2016 +0200

    mgcp parsing, set port from mgcp response
    Change-Id: I90e2c1aa7575d5fa6e0374f5022cbb25fc3f7699

commit 99cc75d94be980f0a1663ffb585de4ccbae94033
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 18 18:38:59 2016 +0200

    mgcp parsing, mgcp test
    Change-Id: Ibe2ab17b3fa3a506a2e841ba979ea4175e3a21e8

commit f08c91d8f91ec23a6b7ab5faee0e39f6d5150011
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Oct 14 17:56:17 2016 +0200

    mgcp: handle responses from the MGCP GW
    Change-Id: I5c0493feaec775461b5a017c36b93cc2ad63c896

commit faaeab07dabcf2e3c3f347eb2cce626896649e94
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 02:53:55 2016 +0200

    IuPS: cosmetic: explicitly check RAN type; move comment
    Change-Id: I8375ba42dd47d7ccd9ce9290767d6f8653a23b94

commit b0cbedc45df75e5a64cc952340098f96e99bfbff
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 01:39:25 2016 +0200

    IuCS and IuPS: add VTY config for RAB Assignment address kind
    To accomodate the ip.access nano3G without having to recompile, make the
    RAB Assignment's Transport Layer Address IE's format configurable, in both
    osmo-msc and osmo-sgsn.
    The long term perspective is to somehow detect which address encoding a given
    3G cell prefers, but for the time being just configure it globally and set each
    ue_conn_ctx to the global setting upon creation.
    Add VTY command to iu_vty.c, with args passed to iu_vty_init() to insert
    at an arbitrary VTY node, so that it can be used both for osmo-msc and
    osmo-sgsn. Add generic iu_vty_config_write() to write out the config.
    Call iu_vty_init() from msc_vty_init(); msc_vty_init() is in libmsc,
    hence linking of osmo-msc now needs libiu to come after libmsc, so move
    that further down.
    Change-Id: I93728314742b327336f3fb6de98e6457f687e1f9

commit 227ab8bc5379084c402f4edcde3fab1d03823e0c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 02:55:31 2016 +0200

    IuCS, IuPS: move flag to use X.213 NSAP addr into ue_conn_ctx
    The future perspective is to remember the preferred RAB Transport Layer Address
    encoding for each 3G cell that is connected, so store per UE conn instead of
    globally hardcoding.
    Add rab_assign_addr_enc member to ue_conn_ctx. Thus the iu_rab_act_cs() and
    iu_rab_act_ps() functions no longer need the explicit use_x213_nsap argument.
    Add include/openbsc/common.h in order to define the enum nsap_addr_enc, in a
    separate file to be able to easily include it in all of libmsc, libiu and
    gprs/* without creating include cycles.
    Set the rab_assign_addr_enc when an MM ctx is created for iu, and whenever the
    ue_conn_ctx for an Iu MM ctx is updated. This looks a bit clumsy so far, the
    hope is that there will be a nice way to setup the ue_conn_ctx prior to that.
    Change-Id: I49bb5736df7bdfdd55d3e7b74ee559595cfd2f7d

commit ce5f30160a347fb9885134b36286280bccf52c4e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 03:30:48 2016 +0200

    sgsn init: pass sgsn_config pointer to sgsn_vty_init(), not sgsn_parse_config
    It makes sense semantically, and prepares for an upcoming commit that uses
    the internal global config pointer in sgsn_vty_init(), which would not
    be defined yet without this.
    Change-Id: Ie4cf1c0a1c9e6330a134ff4b7b2e6d5699c12bd7

commit 5840819bd6e2197d88992a47d14e73a6f51982bd
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 01:29:33 2016 +0200

    iu: sort out confusion around asn_debug and asn1_xer_print
    Before, I confused asn_debug with asn1_xer_print. Have two distinct VTY
    commands and fix documentation.
    Put the asn_debug and asn1_xer_print implementations in iu.c.
    Since they are globally defined, don't pass a pointer to iu_vty_init()
    but just use it directly. Might be considered less clean, but is also less
    Change-Id: Iccbadfe1585ba224f74cdfb5273b5ce29b6d78f0

commit b75f464a4e9479ddb5ea4a13a11fd6ac4e8cdc64
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Oct 12 01:48:55 2016 +0200

    iu.h: add missing includes and type defs
    So far it was included only in files that also include all needed headers,
    but make it so that it can be included on its own.
    Change-Id: I08a756031b995bd01a6e15c678b845fd98de960b

commit 75313e0819afc5fe1a2bcaa64d43d54ed30cc139
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 11 02:24:53 2016 +0200

    IuCS: rapidly release connections
    Do the same as we do in 2G: release the connection as soon as nothing else
    is pending for a given subscriber.
    Before, osmo-msc would wait for the UE "to get bored" and send an Iu
    release. But the CN should stay lean on connections. Also, 25.413[1] in section
    7, 6th point states:
    "While the Iu release is managed from the CN, the RNC has the capability to
    request the release of all Iu connection resources from the corresponding Iu
    So far we did not manage Iu release from osmo-msc at all.
    Use the same mechanism we use in 2G: from msc_release_connection(), just before
    freeing the gsm_subscriber_conn, invoke a CN initiated Iu Release command to
    the UE.
    This works around OS#1816 ("USSD only works when IuCS is released", on nano3G),
    because the Iu conn is now released right after every signalling, so that
    typically no two requests will use the same conn.
    In iu.h/iu.c, add iu_tx_release(), absorbing almost all of the code from
    Add stub to db_test.c, necessary to build it without linking libiu.
    [1] 3GPP TS 25.413 v12.4.0 Release 12 / ETSI TS 125 413 V12.4.0 (2015-04)
    Related: OS#1816
    Change-Id: Ic12bd6f3666f6fd42bd6d9fdae1c93abee3b6786

commit b3b121e074333b4bb6a83a5d0f0709a5b1fc9490
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 11 00:50:05 2016 +0200

    IuCS: don't remove Iu conn until release
    Don't remove the gsm_subscriber_connection without an Iu Release.
    From the 2G paradigm to close a subscriber connection as soon as nothing else
    is pending, osmo-msc frequently calls msc_release_connection() to see whether
    a conn has anything pending, or discards it.
    In 3G however, we so far don't actively release IuCS connections from the MSC
    side, but wait until the IuCS is released from the UE side. So the conn is
    often discarded even though the IuCS stays open and valid, which confuses the
    situation: before the UE releases a bit later, we would try to page the
    subscriber unsuccessfully, because the UE expects to already be connected.
    To first fix the discrepancy of Iu vs. subscr release, never discard
    gsm_subscriber_connections when msc_release_connection() is called.
    This creates a "lazy" CN that keeps connections open as long as the UE will
    tolerate. It is really fast in sending many SMS in close succession, but is
    certainly a bad CN design choice: we should rather stay lean on connections.
    A subsequent commit will change this, but I decided to keep this commit as a
    reference, for when we'd like to test situations that should re-use an
    established connection.
    Change-Id: I012378cfa432d791146db387554ec1909de05297

commit 8e287631807e7bfc26be063c4b79b612fa1b2dab
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Sep 20 18:18:26 2016 +0200

    mgcp dbg log
    Change-Id: I56fda48edaa92abfc6e3886cdfce733bb0686f73

commit 623f17696893dd0eaa1d38385342f7b43c0d8fa6
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:00:16 2016 +0200

    sgsn_ranap_iu_event: handle some events without valid MM context
    Change-Id: Ia7e74087d56996104b6d3935b1cf12166ff67f3a

commit 1bd70bea2bdc1417777446549f9736255a891c10
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Sep 19 18:30:49 2016 +0200

    IuCS: store assigned rab_id in gsm_subscriber_connection
    Change-Id: I7fda4304631fc24bbd1bebe911b8403a942fcf53

commit f214df048279583e465d70cdf0b7e8ff3433cabc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:28:35 2016 +0200

    bridge calls via mgcpgw
    Change-Id: Ie259e30bc532fe9817c96562022ac33443d5747a

commit 1e940085eeb0e2275d88a58f8ba5e9be6b4f722c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:29:30 2016 +0200

    also do call assignment for MT calls, upon Call Confirmed
    Change-Id: I863fa73948f61aaffd7f4472f3abc3e44228e31f

commit 328f318e4fd9a0419d83e3c35767c6c63ceb2ba4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Sep 7 13:39:07 2016 +0200

    IuCS: implement msc_call_assignment() for IuCS
    Send IuCS RAB Activation upon MNCC_CALL_PROC_REQ.
    Implement function msc_call_assignment(): decide between sending A-iface BSSMAP
    Assignment Request or IuCS RAB Assignment Request.
    Implement iu_rab_act_cs() to send the IuCS RAB Assignment Request. The IP
    address and port of the MGCPGW sent in the RAB Assignment are still hardcoded.
    The A-interface extension is not implemented yet.
    Declare ranap_new_msg_rab_assign_voice() to avoid including
    ranap_msg_factory.h, which would require adding ASN1 CFLAGS to
    The mgcpgw_client as well as some more osmo-iuh functions are now linked from
    libmsc, hence add some dummy stubs to libiudummy and db_test.c.
    Change-Id: Iaae51d1fbbfc28fad1c0b85e161d53d80a420a19

commit b678d8a4d3d6b2481af0eeda0971e418ba18ddb5
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:21:10 2016 +0200

    msc: add mgcpgw client (with dummy read cb so far)
    Store the mgcpgw client data in struct gsm_network.
    Initialize VTY and bind the client.
    Change-Id: Ifc4efb1ca44fa34c29bf23b35addb54155296d68

commit 6ec2276890f744c70f65e61e5c206fd5515ef48d
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Sep 7 13:39:07 2016 +0200

    libmgcp: add mgcpgw client API
    Add an API to send MGCP messages to an MGCP GW, from the perspective of
    an MSC instructing the GW to setup RTP streams.
    Rationale: the mgcp_protocol.h is mostly for the MGCP GW itself, other
    implementations forward incoming MGCP messages. So a simpler approach for an
    MGCP GW client is useful.
    Add general VTY commands that can be used to configure mgcpgw_client.
    osmo-msc is going to use this to route RTP streams (for 3G at first).
    Change-Id: I6fe365c4c89207f2172943cc456b508a207b1135

commit fe5f5be86d7a12c04ff2fabc3f0a64ea2a399b37
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Sep 7 13:39:07 2016 +0200

    libmgcp: add value strings for mgcp_connection_mode
    Add file mgcp_common.c to implement the value strings for the
    Add in a separate file because of the upcoming mgcpgw_client.c implementation,
    introducing a file that contains implementations commonly used in MGCP GW as
    well as its clients.
    Change-Id: I6fe365c4c89207f2172943cc456b508a207b1135

commit d05b706e29cafafe66369eca98fdd5bf879cb44a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Sep 20 18:16:35 2016 +0200

    libmgcp: move mgcp_connection_mode to public header
    mgcp_connection_mode will be used by the upcoming mgcpgw_client.h API.
    Change-Id: I7a3f8905723320d968f1a53c1036904107b4fb2d

commit e2dd3a7d222cfb563c784141e1ff3814e3052e00
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Sep 6 20:08:58 2016 +0200

    IuCS: cosmetic prep for msc_call_assignment()
    Rename gsm48_cc_tx_call_proc() to gsm48_cc_tx_call_proc_and_assign() to mark
    the place where the A-interface will send a BSSAP Assignment Request / where
    the IuCS-interface will send a RAB Assignment Request.
    Add function msc_call_assignment() to decide between A-iface and IuCS
    assignment, to be implemented in subsequent commit.
    Change-Id: I0695e233d57d13658793b0e63bb7c3ff224909a0

commit 1c0aeacfb5e2a94e447d397f7aec81ac218adfbf
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Sep 7 17:52:32 2016 +0200

    IuCS: send RANAP CommonID
    Add libiu function to send a CommonID message down a UE connection,
    iu_tx_common_id(); add also a corresponding stub to libiudummy for linking with
    Add libmsc function msc_tx_common_id() to call the above. Add this mostly to
    clearly indicate in msc_ifaces.h that libmsc is calling out of the MSC; also
    to do conn->via_iface checking.
    Call msc_tx_common_id() after ciphering is established, in
    _gsm48_rx_mm_serv_req_sec_cb()'s GSM_SECURITY_SUCCEEDED case.
    Change-Id: I576ddd5bbabfc989149debd2f8a9743db6d26043

commit 58e82a6d8fa1faa614c8e16fa277ce9d91b861cb
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Aug 31 15:40:18 2016 +0200

    cosmetic: msc_handler, bsc_handler: drop extra whitespace
    The extra ws made me not find these lines when grepping for 'dtap ='.
    Change-Id: I45e5c9e7df4704546872aab15adf407298943435

commit 7134c9d589429eee1ca934aae30d54eccc54c11b
Author: Harald Welte <laforge at>
Date:   Mon May 2 08:34:57 2016 +0200

    SGSN: Don't indicate GERAN in Iu mode PDP CTX ACT REQ to GGSN

commit 4bc2a2b51c67189593564c38c474f95a218502ad
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 13:20:54 2016 +0200

    cosmetic: make gsm0408_loc_upd_rej() static

commit 51d8816e945417aea8c04307ed1c58b3004621e1
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 13:18:03 2016 +0200

    LU counters: count completion and failure, not messages sent
    From a human admin viewpoint it doesn't make sense to count the messages sent:
    When we use TMSIs, we first send a LU Accept with a new TMSI, and then expect
    the MS to respond with a TMSI Realloc Complete message. When that fails to come
    through, the LU actually ends in failure, even though a LU Accept was sent.
    In 3G, if a UE sends an Iu Release during LU (e.g. user enables flight mode),
    we cancel the LU without sending any reply at all, so nothing would be counted.
    Instead, count Location Updating results, i.e. completion and failures.

commit 3c33cf8f698850766f28a5ded8150153a9f530cf
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:21:52 2016 +0200

    remove handle_abisip_signal()
    Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41

commit c53d824e04af21eb2412229ee02e38d3bf8c4ad7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 4 15:35:37 2016 +0200

    gsm0408_clear_request(): actually free the released conn
    By having conn->in_release == 1, calling msc_release_connection() has no
    effect and thus never frees the conn. So, after all pending requests have
    been discarded, also discard and free the unused connection.

commit ae09354c749a8f727d809c3a531583abfd8ba989
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:24:12 2016 +0200

    add iu.h to gsm_subscriber.c
    Change-Id: I398aaa4a7328a58fb0d563725f3bea26482929ef

commit 47ada36c5f0f65b9ea8b6f1cc5de601ab43a6673
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:11:39 2016 +0200

    gsm_04_08.c: iu.h
    Change-Id: I624612b5d5cd70770326347634aee2a42ba88945

commit f25bd099554b9050a180e93e8e4134a213b538df
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:09:47 2016 +0200

    temporary dev: set debug log level almost everywhere
    Change-Id: I0d5a36560e7edde27497de57e579f5b1d00eb525

commit 1583dbe015d2cceb2c4b832c4f01c74b565cac71
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:26:47 2016 +0200

    comment on mscsplit, indent comment

commit 1a97e548784a2e1849d4a2886792155fa54013d4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:44:39 2016 +0200

    move to libbsc: lchan_next_meas_rep() -- TODO really?
    Change-Id: I4ea799c5fa61f81c404e6ef1b9ac86a8faa1fb49

commit 21ee29b59a7388b69b165e30bed4ccdae68a6c97
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:59:16 2016 +0200

    move to libbsc: gsm_bts_neighbor() -- TODO really?
    Change-Id: I63d4835dc7aabdf176e0ca634a6a4ca527612693

commit a4a614b8fdcabcbb44a7087bdb7af7b54d39680b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 14:21:58 2016 +0200

    gsm0408_test: use NULL for root ctx -- TODO really?

commit 113b55f603d78a7ebf55d13c6ebf2a413c0122e7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 21:30:26 2016 +0200

    gsm_04_08: remove apply_codec_restrictions() -- TODO really?
    This function is wrongly placed on the MSC level.
    Unfortunately I cannot remember the very plausible details that hwelte had
    back in the days to argue for this change. (Refactoring an old commit that
    fails to explain in more detail.)
    Change-Id: I82623847e652a59a921d2fb142b77cf22420a746

commit f1002b3daceb0b699a74cbe9e96af2c008d2e059
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu May 12 02:14:33 2016 +0200

    move to libmsc: osmo_stats_vty_add_cmds() -- todo MSCSPLIT

commit cc84d7519beb47a52fb5365ac2bf3434f17cf39a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 14:04:28 2016 +0200

    include msc_ifaces.h in gsm_04_08.c
    Change-Id: I11be1bdfe6993f89b34319e7d1526c729d6e0cde

commit 813854f830d8992998524267a052efadd2bbbc61
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:04:56 2016 +0200

    complete IuCS paging implementation
    Add paging timeout to struct gsm_subscriber. Previously, paging timeout was
    implemented only on BSC level, where each request has its own timeout value.
    The MSC will still send individual requests to BSC or RNC level, where they
    timeout individually. However, the MSC must also have an own timeout to be sure
    to discard stale pagings that the BSC or RNC never replied for.
    Add handle_paging_resp(), copying the few libmsc relevant parts of

commit e7bc5502ecd4a7f4ab32535d4197713557de02b0
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:57:25 2016 +0200

    paging: add todo comments for paging and mscsplit
    Change-Id: I7e72c9db2837ea5edf45f6037cb0288a264d492c

commit f36a6681c59c4d42704fa80112058801d297d40b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 2 15:57:53 2016 +0200

    paging: actually verify subscriber authorization
    Before this, any paging response would be accepted by the CN, without
    checking the database whether the subscriber is in fact authorized.
    The probability that a subscriber would be able to take unauthorized action
    is slim, nevertheless checking authorization status with the database should
    happen before we accept a connection.

commit 86991b466e840f4a86f92cf861cf8d449773a3d3
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 2 15:55:22 2016 +0200

    paging: change subscr_paging_cb() into subscr_rx_paging_response()
    Remove one layer of callback indirection in paging. When a paging response
    arrives, we always want to first secure the connection, thus a fixed
    subscr_rx_paging_response() function is more appropriate and avoids having
    to store a cbfn. The actual actions to be taken upon successful paging are
    of course still in callback functions stored with each subscriber.
    Remove paging_request_stop() call from subscr_paging_dispatch(), which stops
    paging on all BTSs, which is not the responsibility of libmsc.
    Change-Id: Ic2c785c9cc48b2c2c6557cbe1060d25afa89e38d

commit babba361d3bd81a77047530c16fb1a077469adf9
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Aug 12 16:03:09 2016 +0200

    Iu auth wip
    Change-Id: I44effcca80dc6850178174dc957bcd5608b0ae14

commit 301874140e746ab9c0102c2b9420455592851a8a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:07:23 2016 +0200

    subscr_request_channel() -> subscr_request_conn()
    Change-Id: Ife8e10b240693a8d369139881774f1892044aa65

commit bd0668cb57ebe74642fa7173ae64b93ff8f7f50c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:05:13 2016 +0200

    move subscr_request to gsm_subscriber.h
    Change-Id: Idbbd39b0e068da17aafa97e315143509c69c50ea

commit 94b511dbd41b2b4dd35ddc651f13b3a043324dd7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:01:01 2016 +0200

    add gsm_encr to subscr_conn
    Change-Id: Id5797cd1f1bfa2cca2d3fbabc1981aa75546421b

commit a9c773fd7207952f065f912baaceac4a4ec9a30e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:57:14 2016 +0200

    osmo-nitb becomes osmo-msc
    Change-Id: I3787050b524954d8a4dd13495c458f3ee293807b

commit 3130a8832e7cb171286a2f3e14fdcde15eec723b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 17:13:28 2016 +0200

    remove unneccessary linking from some tests
    The recent shifts and cuts have made some library linking for bsc, channel and
    db tests unnecessary.

commit b288fd3e7036086447fe6dbc27f22205a3996a29
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 21:44:32 2016 +0200

    cut off libbsc paging, pending paging in libmsc
    Temporarily disable all paging to be able to link libmsc without libbsc.
    Skip the paging part of channel_test because the paging is now disabled.
    In osmo-nitb, paging is done on BSC level and MSC level "at the same time".
    When the new MSC is fully operational, paging will be controlled separately on
    the MSC level, and the BSC (RNC) level will be instructed over an IuCS or
    A-interface to negotiate paging with the MS (UE). This MSC level paging does
    not yet exist and will be added in subsequent commits.
    Change-Id: I8b6920ddc54fc3f2876a59664e6722666d8a8a4a

commit 6ec55ca844b626ca2d3448bdb395ab7a235c9edc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 13:09:14 2016 +0200

    libmsc: duplicate gsm0808 / gsm48 functions (towards BSC)
    In osmo-nitb, libmsc would directly call the functions on the BSC level, not
    always via the bsc_api. When separating libmsc from libbsc, some functions are
    missing from the linkage.
    Hence duplicate these functions to libmsc, add an msc_ prefix for clarity, also
    add a _tx to gsm0808_cipher_mode():
    * add msc_gsm0808_tx_cipher_mode() (dummy/stub)
    * add msc_gsm48_tx_mm_serv_ack()
    * add msc_gsm48_tx_mm_serv_rej()
    Call these from libmsc instead of
    * gsm0808_cipher_mode()
    * gsm48_tx_mm_serv_ack()
    * gsm48_tx_mm_serv_rej()
    Also add a comment relatd to msc_gsm0808_tx_cipher_mode() in two places.
    Change-Id: I5b276853d3af71f5e3f0a031fd17b4fff0580020

commit f1b5124fa9278e68e8977d6574482a68fadc326b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri May 20 20:40:34 2016 +0200

    Use new msc_tx_dtap() instead of gsm0808_submit_dtap()
    Aim: msc_tx_dtap() shall redirect to IuCS or A interfaces depending on subscr
    Change-Id: I30d961f16eb7b9c0ab9cc3f43198098d3f1a909f

commit 1e6ebce1e0bfa63892d0182d80c82e0bde845d04
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri May 20 21:41:08 2016 +0200

    add libiudummy, to avoid linking Iu deps in tests
    Change-Id: I4a66c4122011dbc87c6fcb336ab0461b86522c98

commit e56278bb60eceadd794a7e9eaf3264b7e29ca590
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 14:59:02 2016 +0200

    move to libcommon-cs: gsm48_extract_mi(), gsm48_paging_extract_mi() -- TODO move to libfilter instead?
    Change-Id: I00ca0caf8224de029f53f4dedb1146e3cf7650ec

commit 21641fda839a4139d0cc56913f19cc16e527509e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:37:59 2016 +0200

    msc_compl_l3(): publish in .h, tweak return value
    Use new libmsc enum values for return val, to avoid dependency on libbsc
    Make callable from other scopes: publish in osmo_msc.h and remove 'static' in
    Change-Id: If24007445899e9c75553a0dbf843ada3566b3380

commit dbe47a8c5a3d211f04266b3309e777e6814ad1aa
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:58:46 2016 +0200

    add msc vty, remove nitb vty
    Change-Id: I8f8980d6cfbf26f1b0e0197939833e55dbe521fb

commit d7686cc7cb6abf6250b8407cf49f6602ddf89308
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:56:06 2016 +0200

    add iucs.[hc]
    Change-Id: I88e981f4c31393a98ae8d61176c65c9251a6f28b

commit 1dffb2c555c89e6f42f59c7fde20676c63c5065f
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri May 20 21:59:55 2016 +0200

    add DIUCS debug log constant
    Change-Id: Id347a3024fa495a1ab680db7320648d933a4018b

commit 06e213d3ec2a493596595af12ac3e2120c66bde8
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:16:45 2016 +0200

    gsm0408_loc_upd_rej(): remove bts use (used only for debug log)
    Change-Id: I3ac38f4b701ad8308470573260fa91a4b04c2f18

commit a5108ce78e12f0455aadbe25edf7a4aebc10a076
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:05:43 2016 +0200

    gsm_04_08, gsm_subscriber: decouple lac from bts
    The idea is to not have a direct pointer to a bts struct (into BSC land), but a
    LAC to resolve the BSC or RNC depending on the appropriate A or IuCS interface.
    subscr_update(): remove bts arg, add lac arg.
    Pass conn->lac to gsm48_generate_lai() instead of bts->location_area_code.
    Change-Id: I9f2b298a785bf4b2a1b3fcdd91b8256106b2d9de

commit 0a52db416c5343cf563f283f8a1223b11939e1a4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:06:35 2016 +0200

    subscr_update_expire_lu(): remove bts arg
    Change-Id: I26cafd9389aac65e53dc4280a1687c6b8bce3106

commit 5c796dfbb84b779cf4d671a005ad7d36067240c5
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:03:18 2016 +0200

    move t3212 to network level (periodic lu)
    Set the T3212 default value in struct gsm_network and take that value when
    creating a BTS.
    Adjust VTY accordingly.
    Change-Id: Ifb730f9d0106fe195adc30459a39290a07313b50

commit 9bab918ff124e7bac6bdb5252d0b2b8ce0fcdb4b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:11:50 2016 +0200

    libmsc: iucs dev: disable large parts of the code
    Change-Id: I3ef6ca26150b6102a0fa22a88a60d9a442d640b4

commit b8df0a30eba949003e6255c9c0867186328066ae
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 12:50:31 2016 +0200

    Prepare entry/exit point for MSC -> BSC and MSC -> RNC communication.
    Add msc_ifaces.[hc], a_iface.c, with a general msc_tx_dtap() to redirect to
    different interfaces depending on the actual subscriber connection.
    While iu_tx() is going to be functional fairly soon, the a_tx() is going to be
    just a dummy for some time (see comment).
    Add Iu specific fields in gsm_subscriber_connection: the UE connection pointer
    and an indicator for the Integrity Protection status on Iu (to be fully
    implemented in later commits).
    Add lac member to gsm_subscriber_connection, to allow decoupling from
    bts->location_area_code. The conn->lac will actually be set in iu.c in an
    upcoming commit ("add iucs.[hc]").
    Change-Id: Idf8020a30562426e8f939706bf5c2188d5a09798

commit 3165ff9bf70cb0c7de8cf6836b8e74741930fcac
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:13:32 2016 +0200

    don't use lchan in libmsc
    Change-Id: Ic7ed7faa2bcc7aae799f41ed4abc2c001bfb61b7

commit 3398fa157dd3e154a67ce3e4bbfef8443c00ce47
Author: Harald Welte <laforge at>
Date:   Thu Dec 24 17:06:42 2015 +0100

    gsm_04_08.c: Don't set msg->lchan nor msg->dst
    the BSC-side of the API behind gsm0808_submit_dtap() is doing
    this resolving again anyway.  So let's avoid doing it twice, and avoid
    having more dependency of the MSC down into the lchan details.
    Change-Id: I14254be68ee1a48e9f1ce968233414d86c6ba9d5

commit 2f839234b2f547aa27c08fb930b2a988451da7cd
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Feb 27 16:51:43 2017 +0100

    conn timeout: implement conn_fsm COMMUNICATING state
    When in the ACCEPTED state, if the MS never sent any message, the conn would
    stay open indefinitely. Introduce a new state COMMUNICATING, so that the
    ACCEPTED state can timeout.
    COMMUNICATING starts as soon as the MS first replies with a message for CC, SMS
    or USSD negotiation. The CC/SMS/USSD code is then expected to handle timeouts
    and BUMP the conn_fsm as appropriate.
    Add new test in msc_vlr_test_ms_timeout.c to verify that a CM Service Request
    and Paging Response without replies from the MS time out.
    Explicitly test for the COMMUNICATING state in msc_vlr_test_no_authen.c, but in
    the other tests just rely on the test output validation to ensure that the new
    state is entered in the right places.
    Change-Id: If7c9acab9ed393874f21231a0f78464c384b3d2f

commit 99bddc16848934ce809aaf7fe81376e4616cdc42
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Feb 27 18:24:48 2017 +0100

    fix segfault: when a conn is closed, clean up its trans
    From conn_fsm timeouts, it is possible that a subscriber connection gets
    discarded even though e.g. an SMS gsm_trans is still in the queue. Clean up all
    pending trans when the conn is closed, to prevent segfaults.
    Change-Id: I17a68c8c7e8faa44f9d19029a8f82bc7936c4d52

commit 182ad6cb396d39f8dd8547e8506969e7ae1ca877
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Feb 22 02:27:59 2017 +0100

    SI3: indicate R99+ MSC to GSM MS to enable UMTS AKA
    Change-Id: Iaf11218327f139e8cabfbc5f9916505c66eadbd8

commit 9210660b1124ff6fd15a0c83a709b98efe9ac8d4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Feb 15 00:20:44 2017 +0100

    vlr: get SMS working, by SMS recipient MSISDN round-robin
    The SQL based lookup of SMS for attached subscribers no longer works since the
    SQL database no longer has the subscriber data. Replace with a round-robin on
    the SMS recipient MSISDNs paired with a VLR subscriber RAM lookup whether the
    subscriber is currently attached.
    If there are many SMS for not-attached subscribers in the SMS database, this
    will become inefficient: a DB hit returns a pending SMS, the RAM lookup will
    reveal that the subscriber is not attached, after which the DB is hit for the
    next SMS. It would become more efficient e.g. by having an MSISDN based hash
    list for the VLR subscribers and by marking non-attached SMS recipients in the
    SMS database so that they can be excluded with the SQL query already.
    There is a sanity limit to do at most 100 db hits per attempt to find a pending
    SMS. So if there are more than 100 stored SMS waiting for their recipients to
    actually attach to the MSC, it may take more than one SMS queue trigger to
    deliver SMS for subscribers that are actually attached.
    This is not very beautiful, but is merely intended to carry us over to a time
    when we have a proper separate SMSC entity.
    Change-Id: I1acf9debb6ba9164e6edcfd5bc5e48e8c98f2b01

commit e28c5ead2541a59a3b239b87a6362e0f1c9d825e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Feb 14 17:42:25 2017 +0100

    logging: auth request: use hexdump without spaces for RAND, AUTN
    Change-Id: I656d8619a1adc93e2f627f4e1ba21512a7374279

commit 0db076948f7dbe53c01cc52e24e53f3de5c46dfe
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Sun Feb 12 00:34:35 2017 +0100

    msc_vlr tests: add tests to reject concurrenct conns
    Change-Id: I5c04b1cf0ad302c35968e0f8dfb122997f3f7bf1

commit 988265c895c6afc6e4d4a2eb2265a6f6cbd05f18
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Jan 25 15:04:16 2017 +0100

    Add msc_vlr test suite for MSC+VLR end-to-end tests
    Change-Id: Ic073f3a069a7f5e7e421e0e56140f069ee9b10b8

commit 53ee882692c86a25dc968ee8adaeab7c3408da21
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Feb 3 02:42:47 2017 +0100

    Use libvlr in libmsc (large refactoring)
    Original libvlr code is by Harald Welte <laforge at>,
    polished and tweaked by Neels Hofmeyr <nhofmeyr at>.
    This is a long series of development collapsed in one patch. The original
    history may still be available as branch neels/vlr_orig.
    TODO: This commit may be split in several smaller changes before merging to
    Related: OS#1592
    Change-Id: I702ba504ce2de93507312c28eca8d11f09f4ee8b

commit 14425331460784ace89f80ff4d8d827cc2d7ea71
Author: Harald Welte <laforge at>
Date:   Fri Jun 17 00:06:42 2016 +0200

    Add libvlr implementation
    Original libvlr code is by Harald Welte <laforge at>,
    polished and tweaked by Neels Hofmeyr <nhofmeyr at>.
    This is a long series of development collapsed in one patch. The original
    history may still be available as branch neels/vlr_orig.
    Related: OS#1592
    Change-Id: I3f75de5f0cc2ff77f276fd39832dd3621309c4b9

commit 4ffc578ed36d5489f67b107dc8065c18a4f0d628
Author: Harald Welte <laforge at>
Date:   Sun Jun 19 18:06:02 2016 +0200

    Introduce subscriber_connection ref-counting
    This introduces a reference count for gsm_subscriber_connection. Every
    user of the connection needs to hold a reference until done.  Once the
    reference count dorps to zero, the connection is cleared towards the
    BSC (which subsequently will clear any logical channels associated with
    Related: OS#1592
    Change-Id: I8c05e6c81f246ff8b5bf91312f80410b1a85f15e

commit 48d537ff842505433ff1b5221505b2b83ac7843b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Sat Feb 18 22:20:46 2017 +0100

    add struct bsc_subscr, separating libbsc from gsm_subscriber
    In a future commit, gsm_subscriber will be replaced by vlr_subscr, and it will
    not make sense to use vlr_subscr in libbsc. Thus we need a dedicated BSC
    subscriber: struct bsc_subscr.
    Add rf_policy arg to bsc_grace_paging_request() because the bsc_subscr will no
    longer have a backpointer to gsm_network (used to be via subscr->group).
    Create a separate logging filter for the new BSC subscriber. The implementation
    of adjusting the filter context is added in libbsc to not introduce
    bsc_subscr_get/_put() dependencies to libcommon.
    During Paging Response, fetch a bsc_subscr from the mobile identity, like we do
    for the gsm_subscriber. It looks like a duplication now, but will make sense
    for the VLR as well as for future MSC split patches.
    Naming: it was requested to not name the new struct bsc_sub, because 'sub' is
    too ambiguous. At the same time it would be fine to have 'bsc_sub_' as function
    prefix. Instead of struct bsc_subscriber and bsc_sub_ prefix, I decided to
    match both up as struct bsc_subscr and bsc_subscr_ function prefix. It's fast
    to type, relatively short, unambiguous, and the naming is consistent.
    Add bsc_subscr unit test.
    Related: OS#1592, OS#1594
    Change-Id: Ia61cc00e8bb186b976939a4fc8f7cf9ce6aa3d8e


Summary of changes:
 openbsc/include/openbsc/gsm_04_08.h            |   1 -
 openbsc/include/openbsc/gsm_data.h             |   9 ++
 openbsc/include/openbsc/gsm_subscriber.h       |   1 -
 openbsc/include/openbsc/osmo_msc.h             |   4 +-
 openbsc/include/openbsc/vlr.h                  |   2 +
 openbsc/src/gprs/gprs_gmm.c                    |   1 +
 openbsc/src/gprs/gprs_llc_vty.c                |   1 +
 openbsc/src/gprs/sgsn_libgtp.c                 |   8 +-
 openbsc/src/libcommon/gsm_data.c               |   7 ++
 openbsc/src/libmsc/gsm_04_08.c                 |  90 +++++-------------
 openbsc/src/libmsc/gsm_04_11.c                 |   3 +-
 openbsc/src/libmsc/gsm_subscriber.c            | 123 +++----------------------
 openbsc/src/libmsc/iucs.c                      |  26 +++++-
 openbsc/src/libmsc/msc_ifaces.c                |   2 +
 openbsc/src/libmsc/osmo_msc.c                  |  60 ++----------
 openbsc/src/libmsc/silent_call.c               |   2 +-
 openbsc/src/libmsc/subscr_conn.c               |  22 ++---
 openbsc/src/libmsc/transaction.c               |  18 +++-
 openbsc/src/libmsc/vty_interface_layer3.c      |  92 +-----------------
 openbsc/src/osmo-msc/iucs_ranap.c              |  19 ++--
 openbsc/src/osmo-msc/msc_main.c                |   6 --
 openbsc/tests/channel/channel_test.c           |   9 +-
 openbsc/tests/libiudummy/iudummy.c             |   9 +-
 openbsc/tests/msc_vlr/              |   7 +-
 openbsc/tests/msc_vlr/msc_vlr_test_no_authen.c |   2 +
 openbsc/tests/msc_vlr/msc_vlr_tests.c          |  49 ++++++----
 openbsc/tests/sms_queue/            |   2 +
 27 files changed, 193 insertions(+), 382 deletions(-)

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

More information about the osmocom-commitlog mailing list