openbsc.git branch neels/mgcp updated. 0.15.0-647-gec66640

gitosis at gitosis at
Mon Nov 28 15:55:10 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, neels/mgcp has been updated
  discards  fac5c6da7fc5d38a5d4705f3b1ce14b6b3837094 (commit)
  discards  137e8c2c19a1296fc75efb949e4abc58de129588 (commit)
  discards  3f6eedb84d6e5a7a0f616629589cb627a081c046 (commit)
  discards  7059f29b6bde000e65e8770014224e4499da2126 (commit)
  discards  73b01c4402a42cf32f2f6cb981069826c44e4081 (commit)
  discards  23725a078db180371caa00ba84e2c8c338ef1949 (commit)
  discards  bc3f730c8648bc7cfd5d471368852ea2fde7261d (commit)
  discards  6d33dedd48092500e2d4b4d9d120524848bc5edd (commit)
  discards  70fd88117a10961a492b526ea0c4d60abd790d12 (commit)
  discards  563c2f9504a1c2335374e35e6023ca0932ceb106 (commit)
  discards  9597681fc81dc2dae85eb56755f6b3a813bc92c7 (commit)
  discards  64d98bcc68d238ab424ecda09a7e31ed68148a92 (commit)
  discards  0e9e5f653dba4d55dde4fa5d683b5de6ebc1542a (commit)
  discards  2f4fbedcecf3ea86e7b6da552af7d1ba1fa36ed9 (commit)
  discards  cf5230b2fc2c9ab741d6c06cb7f78a4151cb29e5 (commit)
  discards  dec02fcdf1c14dccb08013e8bb451c629396519b (commit)
  discards  3dfcab7af69d7b2d65f83de9017ffc688eaa7b7a (commit)
  discards  eb9728eb8eae550fd64c20c8323a0239d6fc382b (commit)
  discards  9a582128f4d38eb2d27c42c7f98226b5309d4551 (commit)
  discards  4e50b7e4680387f448d3caf97ee5d842c608d4d2 (commit)
  discards  9c8b47a1607d685a977561fa559b7d60e6a03004 (commit)
  discards  cdd0e3f351e8672fcdf30a8886a29cb0d07edbd6 (commit)
  discards  2567924233bfbe255dd7ecbc64465ed6e8dae960 (commit)
  discards  ea4182ec5f54128ef17b55edbe0d372a45aa5151 (commit)
  discards  c51d5e1106d471481b0d8b1b19e1366afb4b077f (commit)
  discards  287073c4f19f44e8593d4ba46ed714bb4d105c0e (commit)
  discards  0532f0907c44a3f93a5da200e2b1daa1f99c5078 (commit)
  discards  6bb178a0776e1a63a2880e9135c9fc344eb30226 (commit)
  discards  72b71b71e2f5c6b7b85a0547f745bb9c0b6dce08 (commit)
  discards  9527efd6d9b79118d92446735152cd8b0198f3dd (commit)
  discards  cf898442e0dac939fabf82a223e50f850e69ecd7 (commit)
  discards  d60b01cafd672cb898c15c7fbbf69abd28eb0484 (commit)
  discards  870e76cb769f390a4e3b8f26523725eb4b98ee01 (commit)
  discards  7762ed0a8d202b6f18d12a24e358300b51fb7bac (commit)
  discards  8f55dceaa72426c5a1480c5cbad05f32e4b0550c (commit)
  discards  2f427f789662d675195f48c8fbda0cae797ff3e0 (commit)
  discards  20132f3a14a297e1e0a76de719bfc0d58a3c7980 (commit)
  discards  de611932e8f7114f94e1f65eb36ea6b0cffefc99 (commit)
  discards  7f878672a4ca6297cff207f5f94554a47f4a632c (commit)
  discards  4ae9bf6768625f741c96082f5c5dd3a6b731c835 (commit)
  discards  ba38e53c1df9ad9f486cd2554e9c7e2e20a4eee3 (commit)
  discards  b2ed9ef1bcc34aaf1f795306d5de7833a04eee07 (commit)
  discards  a4418e6184e05a2ed538f56f3ef7d357246d0ce4 (commit)
  discards  e577f203347403a6ec6a4a456f3b860b6fea1ccb (commit)
  discards  d64f504a9e9931ffb7a7c04b75a27e104e2f6604 (commit)
  discards  64e0977b245c54f72b84efe5a493998a85f3b52f (commit)
  discards  9661bb96a005c6d9a2af9d8dfa6589cfa5cafb4b (commit)
  discards  1efa4acbc1829fa5edfc193529991062a52010ab (commit)
  discards  ddc51c9f822721c5d2a2329058e1454db6284237 (commit)
  discards  51259c7054785f05fb7ab7a64a2182e233e43ca5 (commit)
  discards  3dafcda6cd27fade37c689cba9e1dc03875bef33 (commit)
  discards  3a562de841f0ce1f67245f3e3cf93d1cae24c12c (commit)
  discards  82b769ec95caf1c4d143e1fbf6d50ccbe27e331c (commit)
  discards  4216ec957df5134250db847873ecc514ad037d42 (commit)
  discards  6e95d8c99ecfd112eee15aa4cca775c368436081 (commit)
  discards  0af9b203fad3100765714a62b325c545d1b0f782 (commit)
  discards  8d3a8bb0a89d27c0b0d1a5e00600ad145e2818c1 (commit)
  discards  b45db080e4abba8d9d89c62708265807b983d7c3 (commit)
  discards  e1291f6b383ac709a5da2805230af619b952872f (commit)
  discards  74f773327ff04fe468d494fc07b92994bf2c74a5 (commit)
  discards  54f78a7260c2fc3ae18da3f876dce22ef463b397 (commit)
  discards  70cd38955839274b516d7196cb9381e990a356a1 (commit)
  discards  7755324281a87001319bcaeab25dc281f9b2bfca (commit)
  discards  02e2c00e93ac4e93183e6cf2a6e015e6f17eea2f (commit)
  discards  6878d1f86b593086a7073c16caba7a0b73866075 (commit)
  discards  0100d56b03f702af3881118e4f7b5051e25131dc (commit)
  discards  26da55c741daaacf9429d66ca31bf74df687d18e (commit)
  discards  c45bc0ac25e3e23faca870544313b91844f7c11b (commit)
  discards  d4646db30004c726d0f6b81fe8076ea52ac2e4f3 (commit)
  discards  61c46cd967f17404934af2ec1ee1f6bbc4c00a09 (commit)
  discards  c72be5766181558b041f1d747fd726317c7bd5e6 (commit)
  discards  f968af12a9967a2768e2f168c042720f6a11c444 (commit)
  discards  6b29e90d9387d3c5f64818b8203cb10906e8ff86 (commit)
  discards  8bbc39303cc2a3d33c6b11cfb318ca6bf58bc033 (commit)
  discards  fb1d7428979031270ba3a5bd69c6fd682564db33 (commit)
  discards  781cb8c8dec98febe57e3e985ac335eccdddff1d (commit)
  discards  5c0e77e7d2ecbfdeb6dac1809b0dd8eb4e9648f1 (commit)
  discards  8952876494ebd4957dc2ef7565ed1463bebe7713 (commit)
  discards  8dc0bd10d407b5d334992a32458d1921de9a4d31 (commit)
  discards  4f65970c026e25d2ae5b0e6ddfa54d240c4b328a (commit)
  discards  6c172b45b4d07da137f8e54725eec399e6af181c (commit)
  discards  495eef8023e4af7a0b72d4580573043ff0b7f052 (commit)
  discards  ce1b6ce60c784df991f5827d919dedbecba6ba6b (commit)
  discards  b9a3538b12e39005951bafde0f076d117b41a284 (commit)
  discards  c6adc64383a53cb748cc93434d6228de212b7a88 (commit)
  discards  9fd53651210af658cb8616ec0f76eb563347cb3a (commit)
  discards  98df29898da0d87126db1e1d8f674515e6b29526 (commit)
  discards  c9c650f518bbbfe5e798145f3bd2326ecc099ac1 (commit)
  discards  ce0f95f884cadcfbfe29a9bcec311a34530617aa (commit)
  discards  77da71c121be196dd59fd6bca7624a4539cb3619 (commit)
  discards  4438350040f2eba43f5de0513b6b81db1df06171 (commit)
  discards  1f918eb0abe369e720eabf704830e73517ed54a4 (commit)
  discards  2921e34055f708c2c787201ea2e9e3a538b072af (commit)
       via  ec666408618659d6b36469a9cb2994405794e4dc (commit)
       via  e7730a3a028df8ef3d78cdf4ef61a0725e74d90b (commit)
       via  f7feaedfa840792a81b8508b3661406c15d68422 (commit)
       via  d5d5054b43affbb099b2a52d1b428c16d5f13d91 (commit)
       via  234f2fa32fc0e5ae12402904730ce251214ff060 (commit)
       via  8912aaa2fbd12862c3dce4c0eb906ff17064e3c5 (commit)
       via  6b2df59c2a3e87baa86150371c5e2c239ae49481 (commit)
       via  f1aa68b7c15f49ff2d4a60d72e5e293106c25b78 (commit)
       via  964da7172f3645060cc30b7b13f80793be2e5132 (commit)
       via  f277a4f17f4808ee208dd3caf7dee19bfaafcd75 (commit)
       via  6bcef27e0557378a2e1e592c582ab57eee6b56ed (commit)
       via  de1d86d6aae0cf4206330a9b385bc765809a41e8 (commit)
       via  186ff577b3295bf7ed778cf2c2e4d6aad0001c0d (commit)
       via  b22d06eebc13e9c822ae5b787932c1f382706d13 (commit)
       via  c746a7a8ef73f7e524791eb0b85bf07ca5f1208c (commit)
       via  5ed1698d3782da5f1866eec4a86e5dbea6122e8e (commit)
       via  0c59a1b21a48fd075b940d117157fe4707f0fc18 (commit)
       via  070609de817a6fd9ce5c244cf27bf2dda5279a98 (commit)
       via  7fa7e2dbe6a6c142cf6bedaf7e5483c1e71ed1f4 (commit)
       via  c93b2730b2227114200ad767f0b5e17d927577e5 (commit)
       via  bcbfdc08b369a8667b365421b9d3d63157ba0583 (commit)
       via  f189d7293a2c274684d40b3d67ae63e1f1ee3530 (commit)
       via  16669158fe2417bf2184622740b151c814d838f4 (commit)
       via  81b785517a6bfd174f2c667a957f984c5f45a960 (commit)
       via  5fd6dc460b208a5f17567e00a1ee9dca5fb6085f (commit)
       via  841b622cb215cbb56ecae4016ebd21a1f3aabd66 (commit)
       via  fb13fb7d85626250a505c70cdda8a03e41ebab83 (commit)
       via  1888c7f2a6f205dea9616498713d0f8e2e0e231f (commit)
       via  7f743e0b777a1d215bf95a92f9b6ea599e2d207b (commit)
       via  1d6023a02cca03669d4f94d3d13c9118da54382d (commit)
       via  fce3237266316bb9c530eb28c5893e301fda7fa8 (commit)
       via  8e463f99823b59a9c6d412f92e0e14cc4a5574c7 (commit)
       via  a03d64bab6f5fc290dd64874e9978d0a51d53ec9 (commit)
       via  8396aaa93f8dbf6b28ccd5121f6b9a2c48b4bd8f (commit)
       via  036c3bab2c0f5f6b1ce4d8d2e9aee9489a8f6330 (commit)
       via  47c86ed73c3eae7b6960d4dc2ed2d4c2439dc03f (commit)
       via  94deee0bfaeefc51a507b27378f1d06e3bb3c337 (commit)
       via  014d54c402609616d657a76a884c550323dc45cc (commit)
       via  9bb52048f455715236d95428ef61e9753e7903f0 (commit)
       via  2b1914009c094a7ab64478d0fee7445a46d87736 (commit)
       via  be02fd84d4f425ee391ca59097345811b06475e6 (commit)
       via  b6f7ce68bc4f37bb158afaceb4c0f160785c7dbe (commit)
       via  23c5bd15b6f365f7060507336188485b41bcd27e (commit)
       via  98c421ee86b6335ac26384c7c8c4d471712f756f (commit)
       via  85296ddfb474f82f99f02b89acdeffa839c7be54 (commit)
       via  6e6de20c2c5df3aa9e2e914fca79c2e8233b5fb0 (commit)
       via  57353fbe100e16be255b903df1ec9e36cfae38f5 (commit)
       via  5cec4e953ebb82b40aa4d644548509cd70d7a749 (commit)
       via  833e7dd9d68586a81d58c1374fb63847d0e328d2 (commit)
       via  1013fa0f4c4fafe6bf8dd6e2cb147a9782294384 (commit)
       via  77c873596d65f514d40271f8e1f24b7048b831b0 (commit)
       via  5d0070928f52a2c618e72efc547e0addcb696354 (commit)
       via  5eb21b9cf6cb2f7fd61a37e2d0f664537bc94f19 (commit)
       via  4854d7900b0e734d46afaf943443a9c4a415e561 (commit)
       via  9a493a7d0a2cb575bc816a494ef4f6d00b0e73c5 (commit)
       via  85e69ea05041557c31cbef1adabeb7be0c67d6a3 (commit)
       via  ed20ee21bf79ec360325a2b0d42c0faad234915c (commit)
       via  64ed01f3702d7730076b0a285f946b71c33ea319 (commit)
       via  24aa1be3ab9e9e6a55fdded68f71c4aee25dcbcc (commit)
       via  e5ab7cf98e25652a5330077ec462b83657538187 (commit)
       via  d871bfe2a6f7e6742e0ec98a052bfd67b5f1d3d7 (commit)
       via  183072155044cad27c363eab116d147f9c31b94a (commit)
       via  7823523c4a10f8ed62b4c0e63ec868b1116ac28f (commit)
       via  1180dbef18e771b4e808ec8f2bf5956b03c50bca (commit)
       via  bc6bdc8485bbdf0f6b00ee00c0814ed86a587e43 (commit)
       via  55a3f87181ba46a2717e1ecdf42a6b3b1063fdfc (commit)
       via  36319327a4742e0e0460130ff741a58b6d6410f7 (commit)
       via  d431601d0f2e239ef802f35a0f90271a0b7089c2 (commit)
       via  1ff830a0b2926f6949ef6795f7d7e933c6ab73a4 (commit)
       via  6d0a2c3f9c2fbeaae25056854fa1d4e819d3a1bd (commit)
       via  5638bcf2035ab16dd1cf7891a0cd608e2ffb2d46 (commit)
       via  b028d9ed121e0e056c3a5c5f9b06607a883b47c6 (commit)
       via  35f5180b307410e94526a1d7e80500e2cdaf70c3 (commit)
       via  25005e66509c0cca9fa72b76b3519200ba9e3021 (commit)
       via  7bc881bf7bdfb3baf3ef20b8cf7130c5fa79230a (commit)
       via  4802115811446339eee1870caa3abfc19e05ddb1 (commit)
       via  1bcf5edecd70c84dfbb1ebf83c30423d7981770d (commit)
       via  3a50cbf073ac7efe897d7171854d9011a0e0de5a (commit)
       via  91146aab61d5e09a414962814b004947a9deb8b4 (commit)
       via  4c338e70d954383370ea270dacdfbbd4655b80fc (commit)
       via  69621739716f419864332252f250cc7614ac070d (commit)
       via  fcd5c4452883eeacdf20bbe5d337d7bde2ede6ce (commit)
       via  2ef1b1195bbab350a57ef11b91407f58291a7dc9 (commit)
       via  3155906820736fec7eb920f0937566009233732d (commit)
       via  639ce0807ed6c686121929386b69a17d1588d781 (commit)
       via  c9e86e264e8a59d187d86d524df4213e3c7a1335 (commit)
       via  9cbee14b2b20405beda0f9c2f935a9a98020bd54 (commit)
       via  588285a81bf48d3225e3ee854553ebe91d38a79b (commit)
       via  cc59e8d60fe2906e24853c173931b1a8eed0e7a8 (commit)
       via  d08e9dae2bcacb5cbdea2cc8fa64794e07de4621 (commit)
       via  14ff6b35a1eb926f2b8d73c8e80700888c84ea05 (commit)
       via  e87def623f6ae81204b5ebd53b9c6da9ede6d8d0 (commit)
       via  23857d586a77ea0f77c4633eec7c93883ec3837b (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 (fac5c6da7fc5d38a5d4705f3b1ce14b6b3837094)
             N -- N -- N (ec666408618659d6b36469a9cb2994405794e4dc)

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 ec666408618659d6b36469a9cb2994405794e4dc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Sun Nov 6 23:37:02 2016 +0100

    Change-Id: I9e824d9a57251f5144500765f9b7bfe7f02a16c4

commit e7730a3a028df8ef3d78cdf4ef61a0725e74d90b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Oct 21 01:36:26 2016 +0200

    mgcp hack: rtcp: pass back a sender report as well as a receiver report
    Change-Id: Ieaf5d70c9749f587a8a7feda2684d11b8967986e

commit f7feaedfa840792a81b8508b3661406c15d68422
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Oct 21 01:35:57 2016 +0200

    mgcp hack: modify the ssrc id
    Change-Id: I443fc676071cc7ee8254777e4c74553b35341158

commit d5d5054b43affbb099b2a52d1b428c16d5f13d91
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Oct 21 01:33:57 2016 +0200

    mgcp hack: don't change payload type when passing RTP thru
    Change-Id: I9c43704a4c1e26d434c0d7e7ee370b2c21fb3399

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

    mgcp: log payload type change
    Change-Id: Iee5fa667dece12174b1933345c1ed640a264ed97

commit 8912aaa2fbd12862c3dce4c0eb906ff17064e3c5
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Oct 18 20:21:07 2016 +0200

    mgcp debug logging
    Change-Id: I06a060244e91080680e88551e870f0058711921f

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

    mgcp parsing, mgcp test
    Change-Id: Ibe2ab17b3fa3a506a2e841ba979ea4175e3a21e8

commit 964da7172f3645060cc30b7b13f80793be2e5132
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 f277a4f17f4808ee208dd3caf7dee19bfaafcd75
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 6bcef27e0557378a2e1e592c582ab57eee6b56ed
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 de1d86d6aae0cf4206330a9b385bc765809a41e8
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 186ff577b3295bf7ed778cf2c2e4d6aad0001c0d
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 b22d06eebc13e9c822ae5b787932c1f382706d13
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 c746a7a8ef73f7e524791eb0b85bf07ca5f1208c
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 5ed1698d3782da5f1866eec4a86e5dbea6122e8e
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 0c59a1b21a48fd075b940d117157fe4707f0fc18
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 070609de817a6fd9ce5c244cf27bf2dda5279a98
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 7fa7e2dbe6a6c142cf6bedaf7e5483c1e71ed1f4
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Sep 20 18:18:26 2016 +0200

    mgcp dbg log
    Change-Id: I56fda48edaa92abfc6e3886cdfce733bb0686f73

commit c93b2730b2227114200ad767f0b5e17d927577e5
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 bcbfdc08b369a8667b365421b9d3d63157ba0583
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 f189d7293a2c274684d40b3d67ae63e1f1ee3530
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 22 20:28:35 2016 +0200

    bridge calls via mgcpgw
    Change-Id: Ie259e30bc532fe9817c96562022ac33443d5747a

commit 16669158fe2417bf2184622740b151c814d838f4
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 81b785517a6bfd174f2c667a957f984c5f45a960
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 5fd6dc460b208a5f17567e00a1ee9dca5fb6085f
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 841b622cb215cbb56ecae4016ebd21a1f3aabd66
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 fb13fb7d85626250a505c70cdda8a03e41ebab83
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 1888c7f2a6f205dea9616498713d0f8e2e0e231f
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 7f743e0b777a1d215bf95a92f9b6ea599e2d207b
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 1d6023a02cca03669d4f94d3d13c9118da54382d
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 fce3237266316bb9c530eb28c5893e301fda7fa8
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 8e463f99823b59a9c6d412f92e0e14cc4a5574c7
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 a03d64bab6f5fc290dd64874e9978d0a51d53ec9
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 9 13:20:54 2016 +0200

    cosmetic: make gsm0408_loc_upd_rej() static

commit 8396aaa93f8dbf6b28ccd5121f6b9a2c48b4bd8f
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 036c3bab2c0f5f6b1ce4d8d2e9aee9489a8f6330
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:21:52 2016 +0200

    remove handle_abisip_signal()
    Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41

commit 47c86ed73c3eae7b6960d4dc2ed2d4c2439dc03f
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 94deee0bfaeefc51a507b27378f1d06e3bb3c337
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 014d54c402609616d657a76a884c550323dc45cc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:11:39 2016 +0200

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

commit 9bb52048f455715236d95428ef61e9753e7903f0
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 2b1914009c094a7ab64478d0fee7445a46d87736
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 13:26:47 2016 +0200

    comment on mscsplit, indent comment

commit be02fd84d4f425ee391ca59097345811b06475e6
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 b6f7ce68bc4f37bb158afaceb4c0f160785c7dbe
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 23c5bd15b6f365f7060507336188485b41bcd27e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed May 11 14:21:58 2016 +0200

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

commit 98c421ee86b6335ac26384c7c8c4d471712f756f
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 85296ddfb474f82f99f02b89acdeffa839c7be54
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 6e6de20c2c5df3aa9e2e914fca79c2e8233b5fb0
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 57353fbe100e16be255b903df1ec9e36cfae38f5
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 5cec4e953ebb82b40aa4d644548509cd70d7a749
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 833e7dd9d68586a81d58c1374fb63847d0e328d2
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 1013fa0f4c4fafe6bf8dd6e2cb147a9782294384
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 77c873596d65f514d40271f8e1f24b7048b831b0
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 5d0070928f52a2c618e72efc547e0addcb696354
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Aug 12 16:11:25 2016 +0200

    auth log
    Change-Id: Icd9f8505388a06ee768d2176cb2b9187953098ef

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

    iu auth wip
    Change-Id: Icc2522252cf15c54f1a1ea5255314a0de8bfba03

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

    Iu auth wip
    Change-Id: I44effcca80dc6850178174dc957bcd5608b0ae14

commit 9a493a7d0a2cb575bc816a494ef4f6d00b0e73c5
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 85e69ea05041557c31cbef1adabeb7be0c67d6a3
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:07:23 2016 +0200

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

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

    add gsm_encr to subscr_conn
    Change-Id: Id5797cd1f1bfa2cca2d3fbabc1981aa75546421b

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

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

commit e5ab7cf98e25652a5330077ec462b83657538187
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 d871bfe2a6f7e6742e0ec98a052bfd67b5f1d3d7
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 183072155044cad27c363eab116d147f9c31b94a
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 7823523c4a10f8ed62b4c0e63ec868b1116ac28f
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 1180dbef18e771b4e808ec8f2bf5956b03c50bca
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 bc6bdc8485bbdf0f6b00ee00c0814ed86a587e43
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 55a3f87181ba46a2717e1ecdf42a6b3b1063fdfc
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 36319327a4742e0e0460130ff741a58b6d6410f7
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 d431601d0f2e239ef802f35a0f90271a0b7089c2
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 14:58:46 2016 +0200

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

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

    add iucs.[hc]
    Change-Id: I88e981f4c31393a98ae8d61176c65c9251a6f28b

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

    add DIUCS debug log constant
    Change-Id: Id347a3024fa495a1ab680db7320648d933a4018b

commit 5638bcf2035ab16dd1cf7891a0cd608e2ffb2d46
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 b028d9ed121e0e056c3a5c5f9b06607a883b47c6
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 35f5180b307410e94526a1d7e80500e2cdaf70c3
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 25005e66509c0cca9fa72b76b3519200ba9e3021
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 7bc881bf7bdfb3baf3ef20b8cf7130c5fa79230a
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 4802115811446339eee1870caa3abfc19e05ddb1
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 1bcf5edecd70c84dfbb1ebf83c30423d7981770d
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon May 30 15:13:32 2016 +0200

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

commit 3a50cbf073ac7efe897d7171854d9011a0e0de5a
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 91146aab61d5e09a414962814b004947a9deb8b4
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 4c338e70d954383370ea270dacdfbbd4655b80fc
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 69621739716f419864332252f250cc7614ac070d
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 fcd5c4452883eeacdf20bbe5d337d7bde2ede6ce
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 2ef1b1195bbab350a57ef11b91407f58291a7dc9
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 3155906820736fec7eb920f0937566009233732d
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 639ce0807ed6c686121929386b69a17d1588d781
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 c9e86e264e8a59d187d86d524df4213e3c7a1335
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 9cbee14b2b20405beda0f9c2f935a9a98020bd54
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 588285a81bf48d3225e3ee854553ebe91d38a79b
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 cc59e8d60fe2906e24853c173931b1a8eed0e7a8
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 d08e9dae2bcacb5cbdea2cc8fa64794e07de4621
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 14ff6b35a1eb926f2b8d73c8e80700888c84ea05
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 e87def623f6ae81204b5ebd53b9c6da9ede6d8d0
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 23857d586a77ea0f77c4633eec7c93883ec3837b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue May 10 12:50:31 2016 +0200

    factor out gen of USSD notify and release complete to libosmocore
    Both libmsc and libbsc will need distinct gsm0480_send_ussdNotify() and
    gsm0480_send_releaseComplete() functions, since there will be distinct
    subscriber connection structs.
    Rename to msc_send_ussd_notify() and msc_send_ussd_release_complete(), and add
    the same in libbsc with bsc_ prefix in new file gsm_04_80_utils.c.
    In preparation of this patch, the message generation part of these functions
    has been added to libosmocore as gsm0480_create_ussd_notify() and
    gsm0480_create_ussd_release_complete(). Use these.
    Adjust all libmsc and libbsc callers according to use the msc_* or bsc_*
    implementation, respectively.
    Change-Id: I33a84e3c28576ced91d2ea24103123431f551173


Summary of changes:
 openbsc/include/openbsc/gsm_04_80.h       | 15 ++++++-------
 openbsc/src/libbsc/            |  1 +
 openbsc/src/libbsc/gsm_04_80_utils.c      | 12 +++++------
 openbsc/src/libcommon-cs/common_cs.c      | 36 -------------------------------
 openbsc/src/libmsc/gsm_04_80.c            |  8 +++----
 openbsc/src/libmsc/vty_interface_layer3.c |  4 ++--
 openbsc/src/osmo-bsc/osmo_bsc_api.c       |  4 ++--
 openbsc/src/osmo-bsc/osmo_bsc_ctrl.c      |  4 ++--
 openbsc/src/osmo-bsc/osmo_bsc_filter.c    |  5 ++---
 openbsc/src/osmo-bsc/osmo_bsc_grace.c     |  4 ++--
 openbsc/src/osmo-bsc/osmo_bsc_sccp.c      |  5 ++---
 11 files changed, 29 insertions(+), 69 deletions(-)

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

More information about the osmocom-commitlog mailing list