openbsc.git branch master updated. 0.15.0-576-g8825c69

gitosis at gitosis at
Fri Dec 9 12:13:18 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, master has been updated
       via  8825c6940957fa2198d1f9995856e4232bc264fb (commit)
       via  e14f4b93f2cd5b87c5a0c0141662a2c7be3e0f87 (commit)
      from  2440f49a724f19a2f14b6ee1d4616c347b7d33ba (commit)

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

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

commit 8825c6940957fa2198d1f9995856e4232bc264fb
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Dec 5 16:50:47 2016 +0100

    Fix TCH/F_PDCH: no need to check ts subslots for PDCH
    For TCH/F_PDCH in PDCH mode, directly return the lchan to use, in order to
    switch it to TCH/F. To check the pchan type in chan_alloc.c, make ts_pchan()
    public in gsm_data_shared.h.
    Commit c3f72f63afde926dfc46827d6880055597515fb6 broke TCH/F_PDCH, as a fallout
    of setting the GSM_PCHAN_PDCH subslots number to 0. This is sane and correct,
    but the chan_alloc code failed to see a ts as available if it has no subslots.
    _lc_find_trx() checks each timeslot. For normal, static TCH timeslots we
    determine the number of logical subslots contained and check whether one of
    them is free. For dynamic TS, we can do the same when in TCH mode, but when in
    PDCH mode, we already know that it is available for immediate switchover for
    voice and hence can return it right away. TCH/F_TCH/H_PDCH already has a
    special check for that. TCH/F_PDCH doesn't, but this worked for TCH/F_PDCH as
    long as ts_subslots() returned 1 for PDCH: the for-loop at the bottom of
    _lc_find_trx() checked one subslot, which succeeded on an lchan in PDCH mode,
    since PDCH lchans are always marked type == NONE and state == NONE. Now we more
    accurately acknowledge that a PDCH timeslot has zero subslots and that a
    dynamic timeslot in PDCH mode can always be switched to voice immediately,
    without checking lchan type or state.
    So, above mentioned commit set PDCH to zero subslots, and the for-loop to check
    the (zero) subslots never ran and hence never returned the lchan. This fix adds
    a special condition for TCH/F_PDCH in PDCH mode, same as TCH/F_TCH/H_PDCH.
    (Todo: ts_pchan() can probably be used in other places as well to remove some
    code dup. Leaving that for another patch.)
    Fixes: OS#1868
    Change-Id: I5d555d018a5bcb8d948e54059d32ec4c9b3070d0

commit e14f4b93f2cd5b87c5a0c0141662a2c7be3e0f87
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Dec 5 16:48:36 2016 +0100

    cosmetic: chan_alloc: use switch instead of if-cascade
    Preparing cosmetically for a subsequent commit which will add another pchan
    kind to be checked, rather use a "switch (pchan) {}". Also reverse one if()
    branch to "early-exit" style.
    Change-Id: Ie5eb0fa859c4f225616095dc56d52ce0f2dc8bdc


Summary of changes:
 openbsc/src/libbsc/chan_alloc.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

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

More information about the osmocom-commitlog mailing list