openbsc.git branch sysmocom/iu updated. 0.15.0-641-gbc3f730

gitosis at gitosis at
Mon Nov 28 11:10:09 UTC 2016

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, sysmocom/iu has been updated
  discards  3f22f2ca3a9404eb6499a521b88eec5609bce9ab (commit)
  discards  f33e96598b7e6aa6efb90342609d2c2b5b5981b1 (commit)
  discards  4fa2bf3974b0e27afacc2ea63004eaef46970d26 (commit)
  discards  2ea8ad5863f4842df74387697e4333e012702b06 (commit)
  discards  cb2cffff5c1a6a7acf2c3510edfc2a2419a55b88 (commit)
  discards  b273b2a7f6d612ca5915af1dd86fc66dd9fa938b (commit)
  discards  5d8d56e0c1f0455c821926599c97cac7ad07b8eb (commit)
  discards  8fd125ea70b218304270a6fb979fbfc420552f52 (commit)
  discards  b25182fc7bd06ba1c7c0c853fab6027047b2498a (commit)
  discards  7095681d9b7945cca8fa0024e3fd01dbbe0794fc (commit)
  discards  268301a0857b787419971b4f0493438a644a8341 (commit)
  discards  bdea0865970bd67a2a54dac90c0c3a43ad30186a (commit)
  discards  8b30142f20de0c931fcf4969ea3454ef0d289573 (commit)
  discards  8a46a7eaa5d84034d9a2f7f6a1f289d8fb50e5e6 (commit)
  discards  c5a5215435e4d099537f0a178392562a8077970e (commit)
  discards  d1ceb681d184532421136acf6d47dbf8337d7643 (commit)
  discards  9e47dfe62eea15babfd810724d389c565534508e (commit)
  discards  03513b3e40fbba3b81dfca842f2d231ccd13362d (commit)
  discards  e604fdfe944d10c2807860a1e575aac576ed123f (commit)
  discards  27c0205e8f450828ea04f7bfc7eae21b3bcbeff7 (commit)
  discards  5fd253114ff9b1605ecd524d2abe6055608101b8 (commit)
  discards  702cd68d3a553981371eeb67b95b0d9bdb07e307 (commit)
  discards  64f1d43569eb803bedfeaa02e8fcdd1471fe278e (commit)
  discards  2affc0542907ec132468dbafe813774b241c34da (commit)
  discards  4c3c3a83cd58a6cac88e5da1782ea09a8f36922c (commit)
  discards  721d79eebe05eff30d245ebd5c864bec4ec2f690 (commit)
  discards  d507ed1df95902699428b4a66d1dc07e57d16207 (commit)
  discards  e7020e043b577ba7d8f9f4a20ab888ab49ade7b2 (commit)
  discards  6ed0c862aa484f39e2d2c7c2bc58e8832efc7df1 (commit)
  discards  b1b7e781e437f21edfc02099eb4196276281c405 (commit)
  discards  21dd84cc72d30266df2f378497d6283fe3f73b5a (commit)
  discards  da00351e1be9490e4085a7c55fb50f3f3b71c24b (commit)
  discards  43984b4a1e6fd96010c2b842382232236e9c5ac1 (commit)
  discards  cf3e72ca1764fcc0b90021a18ae333c4d8dc5492 (commit)
  discards  6752a06990a82a6f98ad7fa7e7574253c734effe (commit)
  discards  9b66d948bf88b42484d6374cb307a388d85e45ea (commit)
  discards  f9a69400a7dfc35bffb683eeff95c5660002a39d (commit)
  discards  4b78e2cda34a592881d8cfdeea6affbb59ccf2f9 (commit)
  discards  ba5e4a2d26a5792700676cea343eeae5ed31b228 (commit)
  discards  19ebeab00643801c807ebec5f94ff9e697615d1d (commit)
  discards  55b70e9800ab782c2d61ebd5cec543e47c5407c0 (commit)
  discards  2e9d702d6b2f826e8eb30722a062aad64553a653 (commit)
  discards  4c3f846456d814153c4a9ec2344b9424afb96425 (commit)
  discards  bad0021e2d3dd03bd97da2578a3b4bed2844f66c (commit)
  discards  1825e3cdceb3b90be49f0067f2761e316c4f0db9 (commit)
  discards  246332887bfb7748c49435595cc822a9ca93f6a5 (commit)
  discards  547f186a707603273483cfe7f5758d4ee8c0938f (commit)
  discards  705e1f3200c73903d2c8d4377e44c4fc237d85b7 (commit)
  discards  3cbfd017d38dcd28fd7630534f4f949a373e1077 (commit)
  discards  92ca7342bd36c376b443959eac7be506ed3de416 (commit)
  discards  ab21249ba339100cde146a7f574cfd44b17902a0 (commit)
  discards  58eb38da4ef7982a5de77a3a6aab6a628a8af417 (commit)
  discards  b811b8308ed7c5043bcaedbf9f6913c280863efe (commit)
  discards  5ccbbce70550e714dd6133a06d8eb666a77d96ef (commit)
  discards  691dda840b414d31deda70453fb19f0abdf79bd0 (commit)
  discards  bef38f88ccea719365795bab5ea8d4f739818c5e (commit)
  discards  6952c57e34c17271f49ee5d37f08f4fe74cb541b (commit)
  discards  5c0fecef729208bcbd49bf2b32a87a9aefc81e32 (commit)
  discards  0f09b2eb234c5c84118772a9789c2a447fa35835 (commit)
  discards  9d4d4a9e4a9821736c7d7f2b9947d98eaf561746 (commit)
  discards  9a2941109887d7e4cae5ac50032abfa50abf80c4 (commit)
  discards  df75ff4e3f90353bfc9d233f94219eb006b4bc39 (commit)
  discards  9c6fbb72211acbc311e2fbb4ad607d6201e1ca83 (commit)
  discards  9215e34f46da2dd9f3c559784cfad1885bf0e6b5 (commit)
  discards  12a0e654208bf6bc25bcef98c1509a80d98524dd (commit)
  discards  23b54d9a39e9c7e9ca42120ebcc7f4d89021b7f2 (commit)
  discards  6faeaf0cb7d5a0bbd48963564937acb5164b8d9c (commit)
  discards  633167b97049bef3dfa0db5614c402c3202df83f (commit)
  discards  f1560ee3cb12a3aabc15189149716857ce20785b (commit)
  discards  80f4b3294942692a8bebc65b47b58ce5b64d8ef7 (commit)
  discards  fe2ec110713c90cf8b4ed5da7632fa57a8ec23a8 (commit)
  discards  90346ac4ae9c840fd03fe824c1dc85a94f25dda2 (commit)
  discards  97a85627eac7cb4f37094d9cb7ec0f6b6204f714 (commit)
  discards  a4f36911d881823f7d65ba0b197a38892d9a256a (commit)
  discards  dea230fed833d1bb28851cfcf2ec604e22fd7eeb (commit)
  discards  a201693636c1e7161449926eb924702e1ad721a7 (commit)
  discards  f66bfdce86824a652e2183d2837e868aefb27302 (commit)
  discards  47a224be84b8e4155deb5acf8a9f9efc47fbab69 (commit)
  discards  d5577f20b828797c48dfe84a219394e6ed134c2c (commit)
  discards  fa22958877caa5c6afaf6bf3992004a129a6810a (commit)
  discards  391cbb55e60ba4d1260639aee58df6a6d226f0b2 (commit)
  discards  44b00533ed0172c9a5cafe5e1dbddcaedb15cd7d (commit)
  discards  70af2887fac18317c271446aa4e1875646eda683 (commit)
  discards  7d12a00270c60896c17db3e8d98e72efc2fa23bd (commit)
  discards  cafb184eb1d57a2c168df7d8772dff860c605e40 (commit)
  discards  e225c750d987f3738b5b14a94dd464f5b3e6c160 (commit)
  discards  7b4380746197ae0f693f0313f2431ab87474b471 (commit)
       via  bc3f730c8648bc7cfd5d471368852ea2fde7261d (commit)
       via  6d33dedd48092500e2d4b4d9d120524848bc5edd (commit)
       via  70fd88117a10961a492b526ea0c4d60abd790d12 (commit)
       via  563c2f9504a1c2335374e35e6023ca0932ceb106 (commit)
       via  9597681fc81dc2dae85eb56755f6b3a813bc92c7 (commit)
       via  64d98bcc68d238ab424ecda09a7e31ed68148a92 (commit)
       via  0e9e5f653dba4d55dde4fa5d683b5de6ebc1542a (commit)
       via  2f4fbedcecf3ea86e7b6da552af7d1ba1fa36ed9 (commit)
       via  cf5230b2fc2c9ab741d6c06cb7f78a4151cb29e5 (commit)
       via  dec02fcdf1c14dccb08013e8bb451c629396519b (commit)
       via  3dfcab7af69d7b2d65f83de9017ffc688eaa7b7a (commit)
       via  eb9728eb8eae550fd64c20c8323a0239d6fc382b (commit)
       via  9a582128f4d38eb2d27c42c7f98226b5309d4551 (commit)
       via  4e50b7e4680387f448d3caf97ee5d842c608d4d2 (commit)
       via  9c8b47a1607d685a977561fa559b7d60e6a03004 (commit)
       via  cdd0e3f351e8672fcdf30a8886a29cb0d07edbd6 (commit)
       via  2567924233bfbe255dd7ecbc64465ed6e8dae960 (commit)
       via  ea4182ec5f54128ef17b55edbe0d372a45aa5151 (commit)
       via  c51d5e1106d471481b0d8b1b19e1366afb4b077f (commit)
       via  287073c4f19f44e8593d4ba46ed714bb4d105c0e (commit)
       via  0532f0907c44a3f93a5da200e2b1daa1f99c5078 (commit)
       via  6bb178a0776e1a63a2880e9135c9fc344eb30226 (commit)
       via  72b71b71e2f5c6b7b85a0547f745bb9c0b6dce08 (commit)
       via  9527efd6d9b79118d92446735152cd8b0198f3dd (commit)
       via  cf898442e0dac939fabf82a223e50f850e69ecd7 (commit)
       via  d60b01cafd672cb898c15c7fbbf69abd28eb0484 (commit)
       via  870e76cb769f390a4e3b8f26523725eb4b98ee01 (commit)
       via  7762ed0a8d202b6f18d12a24e358300b51fb7bac (commit)
       via  8f55dceaa72426c5a1480c5cbad05f32e4b0550c (commit)
       via  2f427f789662d675195f48c8fbda0cae797ff3e0 (commit)
       via  20132f3a14a297e1e0a76de719bfc0d58a3c7980 (commit)
       via  de611932e8f7114f94e1f65eb36ea6b0cffefc99 (commit)
       via  7f878672a4ca6297cff207f5f94554a47f4a632c (commit)
       via  4ae9bf6768625f741c96082f5c5dd3a6b731c835 (commit)
       via  ba38e53c1df9ad9f486cd2554e9c7e2e20a4eee3 (commit)
       via  b2ed9ef1bcc34aaf1f795306d5de7833a04eee07 (commit)
       via  a4418e6184e05a2ed538f56f3ef7d357246d0ce4 (commit)
       via  e577f203347403a6ec6a4a456f3b860b6fea1ccb (commit)
       via  d64f504a9e9931ffb7a7c04b75a27e104e2f6604 (commit)
       via  64e0977b245c54f72b84efe5a493998a85f3b52f (commit)
       via  9661bb96a005c6d9a2af9d8dfa6589cfa5cafb4b (commit)
       via  1efa4acbc1829fa5edfc193529991062a52010ab (commit)
       via  ddc51c9f822721c5d2a2329058e1454db6284237 (commit)
       via  51259c7054785f05fb7ab7a64a2182e233e43ca5 (commit)
       via  3dafcda6cd27fade37c689cba9e1dc03875bef33 (commit)
       via  3a562de841f0ce1f67245f3e3cf93d1cae24c12c (commit)
       via  82b769ec95caf1c4d143e1fbf6d50ccbe27e331c (commit)
       via  4216ec957df5134250db847873ecc514ad037d42 (commit)
       via  6e95d8c99ecfd112eee15aa4cca775c368436081 (commit)
       via  0af9b203fad3100765714a62b325c545d1b0f782 (commit)
       via  8d3a8bb0a89d27c0b0d1a5e00600ad145e2818c1 (commit)
       via  b45db080e4abba8d9d89c62708265807b983d7c3 (commit)
       via  e1291f6b383ac709a5da2805230af619b952872f (commit)
       via  74f773327ff04fe468d494fc07b92994bf2c74a5 (commit)
       via  54f78a7260c2fc3ae18da3f876dce22ef463b397 (commit)
       via  70cd38955839274b516d7196cb9381e990a356a1 (commit)
       via  7755324281a87001319bcaeab25dc281f9b2bfca (commit)
       via  02e2c00e93ac4e93183e6cf2a6e015e6f17eea2f (commit)
       via  6878d1f86b593086a7073c16caba7a0b73866075 (commit)
       via  0100d56b03f702af3881118e4f7b5051e25131dc (commit)
       via  26da55c741daaacf9429d66ca31bf74df687d18e (commit)
       via  c45bc0ac25e3e23faca870544313b91844f7c11b (commit)
       via  d4646db30004c726d0f6b81fe8076ea52ac2e4f3 (commit)
       via  61c46cd967f17404934af2ec1ee1f6bbc4c00a09 (commit)
       via  c72be5766181558b041f1d747fd726317c7bd5e6 (commit)
       via  f968af12a9967a2768e2f168c042720f6a11c444 (commit)
       via  6b29e90d9387d3c5f64818b8203cb10906e8ff86 (commit)
       via  8bbc39303cc2a3d33c6b11cfb318ca6bf58bc033 (commit)
       via  fb1d7428979031270ba3a5bd69c6fd682564db33 (commit)
       via  781cb8c8dec98febe57e3e985ac335eccdddff1d (commit)
       via  5c0e77e7d2ecbfdeb6dac1809b0dd8eb4e9648f1 (commit)
       via  8952876494ebd4957dc2ef7565ed1463bebe7713 (commit)
       via  8dc0bd10d407b5d334992a32458d1921de9a4d31 (commit)
       via  4f65970c026e25d2ae5b0e6ddfa54d240c4b328a (commit)
       via  6c172b45b4d07da137f8e54725eec399e6af181c (commit)
       via  495eef8023e4af7a0b72d4580573043ff0b7f052 (commit)
       via  ce1b6ce60c784df991f5827d919dedbecba6ba6b (commit)
       via  b9a3538b12e39005951bafde0f076d117b41a284 (commit)
       via  c6adc64383a53cb748cc93434d6228de212b7a88 (commit)
       via  9fd53651210af658cb8616ec0f76eb563347cb3a (commit)
       via  98df29898da0d87126db1e1d8f674515e6b29526 (commit)
       via  c9c650f518bbbfe5e798145f3bd2326ecc099ac1 (commit)
       via  ce0f95f884cadcfbfe29a9bcec311a34530617aa (commit)
       via  77da71c121be196dd59fd6bca7624a4539cb3619 (commit)
       via  4438350040f2eba43f5de0513b6b81db1df06171 (commit)
       via  1f918eb0abe369e720eabf704830e73517ed54a4 (commit)
       via  2921e34055f708c2c787201ea2e9e3a538b072af (commit)
       via  143a274051338c1ae04981d5493818ccbb28841c (commit)
       via  487436138e3dca6a99862abc779ac5230c8f826b (commit)
       via  be67050a360dd196203b63e7320fbc7608dfa400 (commit)
       via  3c165d02bb7f004ffcafdc281c03f45149850cb9 (commit)
       via  54f44ec5859cfe1b0dd3bf41762124f3ff4e27e0 (commit)
       via  18712f0bd1ea9dcad040da996e9f7071dfaec759 (commit)
       via  96df07708371313348d063032ee341592c27defc (commit)
       via  b0993e61d002b265048c3dc734c4fa89e0b1995f (commit)
       via  7b6bae65847e5ff6b695054fddca3080fc9d3d99 (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 (3f22f2ca3a9404eb6499a521b88eec5609bce9ab)
             N -- N -- N (bc3f730c8648bc7cfd5d471368852ea2fde7261d)

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 bc3f730c8648bc7cfd5d471368852ea2fde7261d
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 6d33dedd48092500e2d4b4d9d120524848bc5edd
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 18 18:38:59 2016 +0200

    mgcp parsing, mgcp test
    Change-Id: Ibe2ab17b3fa3a506a2e841ba979ea4175e3a21e8

commit 70fd88117a10961a492b526ea0c4d60abd790d12
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 563c2f9504a1c2335374e35e6023ca0932ceb106
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 9597681fc81dc2dae85eb56755f6b3a813bc92c7
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-cscn 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-cscn and
    osmo-sgsn. Add generic iu_vty_config_write() to write out the config.
    Call iu_vty_init() from cscn_vty_init(); cscn_vty_init() is in libmsc,
    hence linking of osmo-cscn now needs libiu to come after libmsc, so move
    that further down.
    Change-Id: I93728314742b327336f3fb6de98e6457f687e1f9

commit 64d98bcc68d238ab424ecda09a7e31ed68148a92
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 0e9e5f653dba4d55dde4fa5d683b5de6ebc1542a
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 2f4fbedcecf3ea86e7b6da552af7d1ba1fa36ed9
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 cf5230b2fc2c9ab741d6c06cb7f78a4151cb29e5
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 dec02fcdf1c14dccb08013e8bb451c629396519b
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-cscn 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-cscn 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 3dfcab7af69d7b2d65f83de9017ffc688eaa7b7a
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-cscn 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 eb9728eb8eae550fd64c20c8323a0239d6fc382b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 11 01:05:22 2016 +0200

    IuCS: detect whether a conn is already secure
    If a CM Service Request is received on an already secure IuCS connection,
    we so far didn't notice and started to authenticate again. The UE would
    readily renew its authentication, but then our state got stuck since
    ciphering was already established. Instead, don't authenticate again when
    integrity protection is already established.
    Change-Id: I3c01fe58276ba0ad918f2cd30cc3dca7c6663e68

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

    mgcp dbg log
    Change-Id: I56fda48edaa92abfc6e3886cdfce733bb0686f73

commit 4e50b7e4680387f448d3caf97ee5d842c608d4d2
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 9c8b47a1607d685a977561fa559b7d60e6a03004
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 cdd0e3f351e8672fcdf30a8886a29cb0d07edbd6
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:28:35 2016 +0200

    bridge calls via mgcpgw
    Change-Id: Ie259e30bc532fe9817c96562022ac33443d5747a

commit 2567924233bfbe255dd7ecbc64465ed6e8dae960
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 ea4182ec5f54128ef17b55edbe0d372a45aa5151
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 c51d5e1106d471481b0d8b1b19e1366afb4b077f
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:21:10 2016 +0200

    cscn: 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 287073c4f19f44e8593d4ba46ed714bb4d105c0e
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-cscn is going to use this to route RTP streams (for 3G at first).
    Change-Id: I6fe365c4c89207f2172943cc456b508a207b1135

commit 0532f0907c44a3f93a5da200e2b1daa1f99c5078
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 6bb178a0776e1a63a2880e9135c9fc344eb30226
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 72b71b71e2f5c6b7b85a0547f745bb9c0b6dce08
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 9527efd6d9b79118d92446735152cd8b0198f3dd
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 cf898442e0dac939fabf82a223e50f850e69ecd7
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 d60b01cafd672cb898c15c7fbbf69abd28eb0484
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 870e76cb769f390a4e3b8f26523725eb4b98ee01
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 13:20:54 2016 +0200

    cosmetic: make gsm0408_loc_upd_rej() static

commit 7762ed0a8d202b6f18d12a24e358300b51fb7bac
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 8f55dceaa72426c5a1480c5cbad05f32e4b0550c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:21:52 2016 +0200

    remove handle_abisip_signal()
    Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41

commit 2f427f789662d675195f48c8fbda0cae797ff3e0
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 20132f3a14a297e1e0a76de719bfc0d58a3c7980
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 de611932e8f7114f94e1f65eb36ea6b0cffefc99
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:11:39 2016 +0200

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

commit 7f878672a4ca6297cff207f5f94554a47f4a632c
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 4ae9bf6768625f741c96082f5c5dd3a6b731c835
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:26:47 2016 +0200

    comment on mscsplit, indent comment

commit ba38e53c1df9ad9f486cd2554e9c7e2e20a4eee3
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 b2ed9ef1bcc34aaf1f795306d5de7833a04eee07
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 a4418e6184e05a2ed538f56f3ef7d357246d0ce4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 14:21:58 2016 +0200

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

commit e577f203347403a6ec6a4a456f3b860b6fea1ccb
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 d64f504a9e9931ffb7a7c04b75a27e104e2f6604
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 64e0977b245c54f72b84efe5a493998a85f3b52f
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 9661bb96a005c6d9a2af9d8dfa6589cfa5cafb4b
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 1efa4acbc1829fa5edfc193529991062a52010ab
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 ddc51c9f822721c5d2a2329058e1454db6284237
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 51259c7054785f05fb7ab7a64a2182e233e43ca5
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 3dafcda6cd27fade37c689cba9e1dc03875bef33
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:06:55 2016 +0200

    move subscr auth check to gsm_subscriber.c
    add subscr_authorized(), subscr_authorized_imsi()
    Change-Id: If2ef06b1229351127c61477ca14653d6ae4cb6bb

commit 3a562de841f0ce1f67245f3e3cf93d1cae24c12c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Aug 12 16:11:25 2016 +0200

    auth log
    Change-Id: Icd9f8505388a06ee768d2176cb2b9187953098ef

commit 82b769ec95caf1c4d143e1fbf6d50ccbe27e331c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Aug 12 16:09:46 2016 +0200

    iu auth wip
    Change-Id: Icc2522252cf15c54f1a1ea5255314a0de8bfba03

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

    Iu auth wip
    Change-Id: I44effcca80dc6850178174dc957bcd5608b0ae14

commit 6e95d8c99ecfd112eee15aa4cca775c368436081
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Aug 12 16:21:32 2016 +0200

    cosmetic prep: change int -> bool authorize_subscriber()
    Upcoming function subscr_authorized() will flip this to bool, so separate
    this change cosmetically.
    Change-Id: Iba0184a71afa01141ef06c474cb554e79ad8f5d5

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

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

commit 8d3a8bb0a89d27c0b0d1a5e00600ad145e2818c1
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 b45db080e4abba8d9d89c62708265807b983d7c3
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:01:01 2016 +0200

    add gsm_encr to subscr_conn
    Change-Id: Id5797cd1f1bfa2cca2d3fbabc1981aa75546421b

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

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

commit 74f773327ff04fe468d494fc07b92994bf2c74a5
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 54f78a7260c2fc3ae18da3f876dce22ef463b397
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:46:23 2016 +0200

    msc_release_connection(): don't call gsm0808_clear()
    gsm0808_clear() is all about clearing lchans. To be able to link libmsc without
    libbsc, don't call it directly.
    Change-Id: I149146fc3cb99ef4a21ee2a798231bb070f398cd

commit 70cd38955839274b516d7196cb9381e990a356a1
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 CSCN 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 7755324281a87001319bcaeab25dc281f9b2bfca
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 02e2c00e93ac4e93183e6cf2a6e015e6f17eea2f
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 6878d1f86b593086a7073c16caba7a0b73866075
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 0100d56b03f702af3881118e4f7b5051e25131dc
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 26da55c741daaacf9429d66ca31bf74df687d18e
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 c45bc0ac25e3e23faca870544313b91844f7c11b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:58:46 2016 +0200

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

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

    add iucs.[hc]
    Change-Id: I88e981f4c31393a98ae8d61176c65c9251a6f28b

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

    add DIUCS debug log constant
    Change-Id: Id347a3024fa495a1ab680db7320648d933a4018b

commit c72be5766181558b041f1d747fd726317c7bd5e6
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 f968af12a9967a2768e2f168c042720f6a11c444
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 6b29e90d9387d3c5f64818b8203cb10906e8ff86
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 8bbc39303cc2a3d33c6b11cfb318ca6bf58bc033
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 fb1d7428979031270ba3a5bd69c6fd682564db33
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 781cb8c8dec98febe57e3e985ac335eccdddff1d
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 via_iface marker to gsm_subscriber_connection with enum values IFACE_A and
    IFACE_IU so far.
    Add Iu specific fields in a sub-struct: 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 5c0e77e7d2ecbfdeb6dac1809b0dd8eb4e9648f1
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:13:32 2016 +0200

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

commit 8952876494ebd4957dc2ef7565ed1463bebe7713
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 8dc0bd10d407b5d334992a32458d1921de9a4d31
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:00:23 2016 +0200

    gsm_subscriber_connection: mark BSC specific items
    This is intended to prepare for splitting gsm_subscriber_connection into BSC
    and MSC specific structs, to make the splitting patch more readable.
    Change-Id: Ib9666225fb9bfec2cf1e364343560571869fe6a7

commit 4f65970c026e25d2ae5b0e6ddfa54d240c4b328a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 21:56:42 2016 +0200

    osmo-nitb: exit when MNCC socket init failed
    Change-Id: Icef97bb5da9840b810fe6f4b4da6abd4baa66915

commit 6c172b45b4d07da137f8e54725eec399e6af181c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri May 20 17:15:44 2016 +0200

    split subscr_con_allocate()/_free() in bsc_ and msc_
    Rename current subscr_con_allocate() and subscr_con_free to bsc_*,
    and add two separate msc_subscr_con_allocate() and _free().
    The msc_subscr_con_free() ignores all lchan members.
    In libbsc use bsc_*, in libmsc use msc_*.
    Change-Id: I3cf7c7cafdf4672ec7b26058bba8a77159855257
    Future: there will be distinct subscr conns for libbsc and libmsc.

commit 495eef8023e4af7a0b72d4580573043ff0b7f052
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Sat May 14 03:24:41 2016 +0200

    move to libcommon-cs: net timezone VTY config
    Leave the timezone VTY output in libbsc's config_write_net(), until the BSC/MSC
    separation of struct gsm_network is completed.
    Change-Id: I9712b2e07b4f1ab8d2e4ad40a8d771e98ed25b20

commit ce1b6ce60c784df991f5827d919dedbecba6ba6b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:29:33 2016 +0200

    Move timezone settings up to network level
    Time zone used to be configurable per-BTS. In the upcoming MSC-split, no BTS
    structures will be available on the MSC level. To simplify, drop the ability to
    manage several time zones in a core network and place the time zone config on
    the network VTY level, i.e. in gsm_network. If we are going to re-add fine
    grained time zone settings, it should probably be tied to the LAC.
    Adjust time zone VTY config code (to be moved to libcommon-cs in subsequent commit).
    Adjust time zone Ctrl Interface code.
    Change-Id: I69848887d92990f3d6f969be80f6ef91f6bdbbe8

commit b9a3538b12e39005951bafde0f076d117b41a284
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:56:43 2016 +0200

    reinvent connection_for_subscr() and move to libmsc
    Implement connection_for_subscr() from a completely different angle: instead of
    looking up lchans in bts structs, look up the subscriber in the global list of
    gsm_subscriber_connection. static lchan_find() is thus obsoleted.
    All callers of connection_for_subscr() live in libmsc, so move to libmsc.
    The move and edit are done in a single commit since the old and new
    implementation have nothing in common.
    Future: osmo-cscn will use this, without bts being present.
    Remove implementation of connection_for_subscr() from channel_test.c -- it is
    possible that the abort() in there was intended for a regression test, but
    actually it seems the implementation was merely added for linking reasons, and
    the abort() added to guard against the NULL return value: no comment nor the
    commit log indicate that the abort() is test critical; the addition was the
    only change in channel_test.c for that commit; at the same time a
    connection_for_subscr() call was added in libmsc.
    Change-Id: I5e0ba0ecf1726ebd540800f4e98fdfc937c904ff

commit c6adc64383a53cb748cc93434d6228de212b7a88
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu May 12 01:53:23 2016 +0200

    bsc vty: rename show_net_cmd to bsc_show_net_cmd
    Future: there will be an MSC-land show-net-cmd, so rename to something with
    bsc in its name.
    Change-Id: Ifb86698cd57a09f03b935b6d3fcea87eff4cd397

commit 9fd53651210af658cb8616ec0f76eb563347cb3a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu May 12 01:16:58 2016 +0200

    move to libcommon-cs: network VTY that isn't BSC-specific
    Keep only BSC specific bits of the 'network' VTY node in bsc_vty.c, move more
    general VTY commands to common_cs_vty.c.
    Add arg to common_cs_vty_init() to pass a config_write_net() function. Pass a libbsc
    specific config_write_net() function.
    Future: upcoming omso-cscn will re-use the VTY bits moved to libcommon-cs and pass a
    different config_write_net() function.
    Change-Id: I871b7b32a0c56fdce983e409cf244ec487d24e71

commit 98df29898da0d87126db1e1d8f674515e6b29526
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 18:48:39 2016 +0200

    move to libcommon-cs: global vty gsm_network pointer
    Move gsmnet_from_vty() and the bsc_gsmnet global to common_cs_vty.c.
    Rename bsc_gsmnet to vty_global_gsm_network and make it static to common_cs_vty.c, to
    clearly mark the global variable for VTY use only.
    Introduce common_cs_vty_init() to set vty_global_gsm_network.
    Change-Id: I26c5c47de08f899b896813d09612d5cb2f8e42d6

commit c9c650f518bbbfe5e798145f3bd2326ecc099ac1
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Oct 24 01:53:38 2016 +0200

    global gsm_network: move allocation further up
    Now that bsc_network_alloc() is separate, move it to before the VTY init (a
    subsequent patch will pass the gsm_network instance as a parameter to
    bsc_hack.c: drop the comment that says about the VTY init: "This needs to
    precede handle_options()" -- it is not accurate. Actually move the
    handle_options() above both vty_init() and the bsc_network_alloc() calls, to be
    able to decide which mncc callback to pass to bsc_network_alloc. It would make
    sense to set this later on, but that would require further refactoring of the
    bsc_network_init() and gsm_network_init() signatures, so not in this patch.
    Change-Id: Ie6a7037e703b5a2d08ceeb20d35f197aaddc9d1b

commit ce0f95f884cadcfbfe29a9bcec311a34530617aa
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 14:12:00 2016 +0200

    split bsc_bootstrap_network() in alloc and config
    For patch clarity, keep some code dup to be removed in a subsequent patch. In
    the same sense don't change the fact that mncc_sock_init()'s return value is
    The global gsm_network instance 'bsc_gsmnet' is basically only used by the VTY,
    and a future patch will "hide" that global in a vty .c file. In a nutshell, I
    want to
    - first allocate a gsm_network,
    - then initialize the VTY passing the gsm_network pointer,
    - and then read the config file using the initialized VTY.
    So far, bsc_bootstrap_network() allocates the gsm_network and reads the config
    file right away, which only works by sharing the extern bsc_gsmnet pointer,
    which I would like to uncouple.
    Change-Id: I480a09a31a79766ad07b627dd5238b7e37f3be7a

commit 77da71c121be196dd59fd6bca7624a4539cb3619
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu May 12 03:03:50 2016 +0200

    tests: drop unused libmsc, unneeded duplicate libbsc linking
    Because of libcommon-cs, tests/gsm0408,subscr,trau no longer need libmsc.
    Change-Id: I9073eba41a1cd3136ed7a9def6fe8aaf282eaa18

commit 4438350040f2eba43f5de0513b6b81db1df06171
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:27:32 2016 +0200

    sms_next_rp_msg_ref(): use direct pointer to next_rp_ref counter
    libbsc and libmsc will have separate subscriber connection structs. Hence don't
    rely on gsm_subscriber_connection, but work on a direct pointer to the counter
    for the next RP reference.
    The only very thin function in gsm_04_11_helper.c thus becomes obsolete: drop
    the entire file.
    Change-Id: I2a2e9ba6a981a385d1f8f07acbe03536ffed0072

commit 1f918eb0abe369e720eabf704830e73517ed54a4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:30:17 2016 +0200

    factor out & introduce struct gsm_encr, in common_cs.h
    Factor out encryption info from struct gsm_lchan as struct gsm_encr, placed in
    Change-Id: I94015fb9dd511c37c1e3058a0963c780b3f700ac
    Future: this will be used by libmsc's subscriber connection, for osmo-cscn.

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

    move to libcommon-cs: factor out gen of USSD notify and release complete
    Both libmsc and libbsc will need distinct gsm0480_send_ussdNotify() and
    gsm0480_send_releaseComplete() functions, since there will be distinct
    subscriber connection structs.
    The current functions live in libmsc, so add the same in libbsc in new file
    To avoid too much code dup, move the message generation part of
    gsm0480_send_ussdNotify() and gsm0480_send_releaseComplete() to new functions
    gsm0480_gen_ussdNotify() and gsm0480_gen_releaseComplete(), placed in libcommon-cs.
    Change-Id: I33a84e3c28576ced91d2ea24103123431f551173


Summary of changes:
 openbsc/src/gprs/gprs_sndcp_dcomp.c       | 1 +
 openbsc/src/gprs/gprs_sndcp_pcomp.c       | 1 +
 openbsc/src/ipaccess/ipaccess-config.c    | 7 ++++++-
 openbsc/src/ipaccess/ipaccess-proxy.c     | 8 +++++++-
 openbsc/src/libbsc/abis_nm.c              | 6 +++++-
 openbsc/src/libbsc/bsc_msc.c              | 8 +++++++-
 openbsc/src/libmsc/db.c                   | 4 +++-
 openbsc/src/libmsc/vty_interface_layer3.c | 1 +
 8 files changed, 31 insertions(+), 5 deletions(-)

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

More information about the osmocom-commitlog mailing list