ABI
Tracker

(libosmocore)




Changelog from Git



commit a0c1cba28a661d9d5c7fcb092afe37e4bd70eeca
Author: Harald Welte <laforge@gnumonks.org>
Date:   2019-01-19 21:59:07 +0100

    Bump version: 0.12.0.128-8dfde → 1.0.0
    
    Change-Id: I1bd973754b1ebc42283f6a07defa60f58523f5a3

commit 6915a219b284dd5bd69fa449b92fd6f04481b803
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-15 16:51:40 +0100

    Prevent GCR encoder/decoder functions from being used directly
    
    They only make sense in the context of LCLS so far - let's make sure
    they're not used by external projects directly instead of gsm0808_*()
    counterparts.
    
    Change-Id: I4ae5a3472a20492d5f76170b722e4e2274a5c433

commit 3b90125346e250f4d800e62846d39660a482d3c7
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-15 14:15:11 +0100

    LCLS: make GCR into static member of osmo_lcls
    
    Most of the time we'll have GCR filled anyway so it make sense to have
    it as static parameter instead of a pointer to separately allocated
    structure. Update tests to cover both static and dynamic osmo_lcls
    allocation variants.
    
    Change-Id: I905c36d8455911c68c30bc429379b7313dd46aea

commit 414c8f565b68199fe1d7dd5d179252127a58ecaf
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-08 14:44:24 +0100

    LCLS: add status parameter to Assignment Completed message
    
    * add gsm0808_create_ass_compl2() with additional gsm0808_lcls_status
      parameter and make gsm0808_create_ass_compl() into trivial wrapper
      around it
    * update tests accordingly
    
    Change-Id: I547c6b8707123aa8c1ef636db88908df112d90a4
    Related: OS#2487

commit d6ef6f1b9163be659693bb546276ab2f655f9cb9
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2019-01-08 10:40:18 +0100

    gsm29118: fix coverity issues
    
    The function msgb_sgsap_name_put() assignes the return code of
    osmo_apn_from_str() directly to len. Len is an uint8_t and the return
    code an int. If osmo_apn_from_str() returns -1. Len would become 0xFF
    causing a buffer overrun with msgb_tlv_put. Lets use the proper type to
    catch the return code and check it before using it as length.
    
    Change-Id: Ic0bc5114eee47bdcf2300a6e4b0df473d3d1903a
    Fixes: CID#190405
    Fixes: CID#190401
    Related: OS#3615

commit 64b51eb68bd272b6b1f2cefa2b33e9dd74024d0c
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2019-01-14 11:59:11 +0100

    socket: add define for socket name length
    
    The function osmo_sock_get_name_buf() can be used to write a string
    representation to a user provided memory. Unfortunately the proper
    length for the user provided memory is not obvious. To make using
    osmo_sock_get_name_buf() more practical, add a define constant that
    defines the length of the required memory. Also use this define in
    socket.c.
    
    Change-Id: If8be8c2c0d4935da17ab13b2c2127b719ceefbcc

commit 1bec3908c6c25a0814872ca3c383f5bfe6babbe8
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-14 19:31:42 +0100

    LCLS: add GCR comparison helper
    
    Change-Id: I9e3b5560a058b976638d03cb819415d237ae9984

commit 4fd64e5d93f5f1b5732b8f69293e135fc42910e4
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-14 19:27:44 +0100

    LCLS: expand enc/dec tests
    
    Change-Id: I8ed87f26216104d34c7bd11c1527b203843760a2

commit 6ad50aaebdc2d89518f77766cfe128c0e3d13a53
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-14 20:28:56 +0100

    comments: update/fix three 3GPP spec references
    
    Change-Id: I3ab94f362866d752099000afe62922288b3dd118

commit f8963f9d4e06a37c96cc0fed91f2b3f731382594
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-10 23:33:32 +0100

    change GSM48_CMSERV_* to enum type, add names
    
    Prepare handling multiple CM Service Requests in osmo-msc: an enum is more
    clear than an int and #defines for passing around and count CM Service types.
    
    Change-Id: I9c2a7adc45ab7a1a7519168e965e7d805e1481ff

commit 894be2d9da60a8e0f7ffc0224e3f294ce49b70be
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2019-01-11 13:13:37 +0100

    gsm23003: add osmo_imei_str_valid()
    
    Verify 14 digit and 15 digit IMEI strings. OsmoHLR will use the 14
    digit version to check IMEIs before writing them to the DB.
    
    Place the Luhn checksum code in a dedicated osmo_luhn() function, so
    it can be used elsewhere.
    
    Related: OS#2541
    Change-Id: Id2d2a3a93b033bafc74c62e15297034bf4aafe61

commit bd6e7a9f2dd5d4e881a0a21ebdb29b7a76ebdc9a
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-07-27 15:17:09 +0200

    port rest octets encoding code from osmo-bsc
    
    As part of fixing issue OS#3075, we want to migrate support
    for encoding system information from osmo-bsc to libosmocore.
    
    This change ports osmo-bsc code for encoding SI rest octets.
    
    The conversion was a bit tricky in some places because some
    functions receive a 'struct gsm_bts' parameter in osmo-bsc.
    In this libosmocore version, such functions expect parameters
    which correspond to the individual fields of 'struct gsm_bts'
    which are used by these functions.
    
    Several structs from osmo-bsc's system_information.h are now
    also declared in libosmocore headers, with an added osmo_ prefix
    to avoid collisions with existing definitions in osmo-bsc.
    
    Some helpers were ported from osmo-bsc's system_information.c
    to libosmocore's gsm48_rest_octets.c. Contrary to osmo-bsc's
    implementation they are now only visible within this file.
    
    Unfortunately, this code ported from osmo-bsc lacks unit tests.
    
    Change-Id: I47888965ab11bba1186c21987f1365c9270abeab
    Related: OS#3075

commit fdf8b7b1beeb0cda262c5fb060a933aa7edb5e9a
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-07-27 12:19:15 +0200

    port arfcn range encode support from osmo-bsc
    
    As part of fixing issue OS#3075, we want to migrate support
    for encoding system information from osmo-bsc to libosmocore.
    
    This change ports one of the prerequisites for doing so:
    osmo-bsc code for range-encoding ARFCNs, including tests.
    
    An osmo_gsm48_ prefix has been prepended to public symbols in
    order to avoid clashes with existing symbols in osmo-bsc code.
    
    Change-Id: Ia220764fba451be5e975ae7c5eefb1a25ac2bf2c
    Related: OS#3075

commit e118ed22e39730552c6d9cd923c920f03029abec
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 17:05:37 +0100

    LCLS: use proper types for value_string wrappers
    
    Change-Id: I0f47a610e06ac99bd60a5aad6f50f3658480165e

commit d621a1ec2ed361d5ce8d3ff71a00b71e22b88933
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2019-01-08 16:22:30 +0100

    Cosmetic: GSUP: note "on wire" for imei_result
    
    Note that OSMO_GSUP_IMEI_RESULT_ACK is 0 on the wire, although the
    enum value is 1. Same with NACK (1 on wire, enum 2).
    
    I had implemented enum osmo_gsup_imei_result after
    enum osmo_gsup_cancel_type above, where this comment exists as well,
    and I incorrectly assumed that enum osmo_gsup_cn_domain in the middle
    was also implemented this way and therefore adding the comments to each
    enum would be redundant. But for cn_domain, the values on the wire are
    the same as the enum values.
    
    Change-Id: If97c34f117bfaab2232bbb625e9d118c8f390e58

commit a6749ac7d4efcb3adfe3ec7959a5ef2c7a383a35
Author: Max <msuraev@sysmocom.de>
Date:   2019-01-08 14:42:30 +0100

    msgb: fix debug print
    
    Since osmo_hexdump() use static buffers we can't re-use pointers to it
    after subsequent osmo_hexdump() calls. Let's print data used for
    comparison directly instead.
    
    Change-Id: I24dc3fad6f64ef788da9b7d790f9d5f689190c42

commit 92f3f5e4917d30dad45d26c2776299c625111529
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-05 00:39:13 +0100

    add osmo_lu_type_names[], osmo_lu_type_name()
    
    Move lupd_names[] from osmo-msc to libosmo-gsm.
    
    Change-Id: Ica25919758ef6cba8348da199b0ae7e0ba628798

commit 02fd83d79991665d59362f24d7a0ed263c6d91c0
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-05 00:38:54 +0100

    add osmo_mi_name(), for MI-to-string like "IMSI-123456"
    
    We have gsm48_mi_to_string() and osmo_bcd2str(), but still lack a function that
    conveniently prints both MI type and value in one function call.
    
    Related: http://people.osmocom.org/neels/mi_mi_mi.jpg
    Change-Id: I7798c3ef983c2e333b2b9cbffef6f366f370bd81

commit 45f89c938dcd5fce0bcaeee2e88c3ad7247277a0
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 19:35:26 +0100

    LCLS: fix LCLS-CONNECT-CONTROL encoder
    
    Previously it could encode both incorrect values as well as incorrect
    message. Let's fix this by explicitly checking for invalid values and
    ensuring that at least one of the parameters is valid.
    
    This function have no external or internal users so it's better to fix
    type signature as well to match the rest of gsm0808_create_lcls_*().
    
    Change-Id: I7b33a771acbd391c5f9a494d6450edb18511433f

commit 42e567c5a95af3e823a68fe7c949f5282d06d297
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-09 13:13:45 +0100

    Automatically disable GnuTLS fallback
    
    Disable GnuTLS fallback if sufficient glibc version detected. Previously
    GnuTLS fallback was used regardless of getrandom() availability in
    glibc. Fix this by automatically disabling it when not needed. This does
    not affect the ability to manually disable it unconditionally.
    
    Change-Id: Ibe2117afc050261668a4d5a590044aabcd08aefe

commit 0187c3ae373f36bd0e81654ae6aa7b496f5990ea
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-09 13:08:42 +0100

    Streamline glibc version check
    
    * use macro for version check
    * report glibc version upon random.h detection
    * comment where various #endif belongs to
    * explicitly check for embedded build (our target toolchain don't use
      libc so there's no point in checking its version)
    
    Change-Id: Ia54f0b7a861f955be65bb0cf06eb10af9372d062

commit 660729c3986236ae482ed38141ee952b0875e6c8
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-12-20 04:20:10 +0700

    tests/gsup_test.c: drop session IEs from MO-ForwardSM Error
    
    Both session state and session ID IEs were left from the initial
    version of Ibe325c64ae2d6c626b232533bb4cbc65fc2b5d71. There is
    no need to use them (as we use SM-RP-MR), so let's clean up.
    
    Change-Id: I0d910b87f15ffbc0aeeca9cb4fcbef32bdf3ef88

commit 86a5aae2187c56957dcae3ef98fd4502be37abb7
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-04 01:29:55 +0100

    fix typo in enum BSS_MAP_MSG_TYPE: BSS_MAP_MSG_ASSIGMENT*
    
    Keep #defines to still support previous wrong spelling.
    
    Change-Id: Id4cf812f0bc3cd40f6bfa05166f817a07a647f71

commit 0d39a8de3c3785989d9c69e9e46acfe07d4d3fe2
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2019-01-04 04:37:00 +0100

    osmo_rat_type: add OSMO_RAT_EUTRAN_SGS
    
    osmo-msc is about to implement the SGs interface and requires a RAT indicator
    for that.
    
    Change-Id: I00588396bfe03feba38ecb0717d584594f0b2b46

commit 5b5c3499cfd9b001215ae23ca86ba04c780abb46
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-26 18:03:17 +0100

    gsm_utils: add enum osmo_rat_type, from osmo-msc enum ran_type
    
    In the MSC, we have RAN types GERAN_A and UTRAN_IU, now we need a similar enum
    in osmo-hlr's GSUP client.
    
    Naming: in the MAP specifications, the RAN type is mostly called RAT type,
    (Radio Access Network vs. Radio Access Technology?). Since GSUP is more about
    MAP messages, I'm calling the enum osmo_rat_type.
    
    Rationale: osmo-msc and osmo-sgsn want to tell the osmo-hlr which RAT a
    subscriber is calling on. A subsequent patch will extend the GSUP protocol and
    add a RAT types IE.
    
    Change-Id: I659687aef7a4d67ca372a39fef31dee07aed7631

commit 691ba52194e5b76a1da00a7e91d0370af69b4220
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-19 23:34:25 +0100

    add LOGPFSMSL(), LOGPFSMSLSRC()
    
    Using an FSM instace's logging context is very useful. Sometimes it makes sense
    to log something on a different logging category than the FSM definition's
    default category.
    
    For example, an MSC conn has aspects concerning MM, CC, RR, MGCP, ..., and
    currently all of those log on DMM.
    
    This came up in I358cfbaf0f44f25148e8b9bafcb9257b1952b35a, where I want to log
    an MGCP event using a ran_conn context, and used the conn->fi->id. That of
    course omits context like the current conn FSM state...
    
    I remember at least one other place where I recently added logging using some
    fi->id as context, so it might turn out useful in various places.
    
    Change-Id: I11b182a03f5ecb6df7cd8f260757d3626c8e945d

commit b0b39af1bc04b173575b8e2d6b717abc8daad32a
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-20 00:03:59 +0100

    LOGPFSM*: guard against fi == NULL
    
    The LOGPFSM macros are in such wide use that they should guard against a NULL
    fi pointer. In case of NULL, default to subsys = DLGLOBAL, loglevel =
    LOGL_ERROR and state = "fi=NULL".
    
    Change-Id: I9eaf8b7e2cf1e450ae626cb2fc928862008f6233

commit b11ff7c5375f55b23e75129ba123fe7d1d07aa5e
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-20 00:19:29 +0100

    add API doc for LOGPFSM* macros
    
    Change-Id: I3bf6500889aa58195f50a726dec0876c0c2baec3

commit 785ecc9e50f6da846089936f0683e2ef0a27e3f5
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-12-28 14:34:52 +0100

    logging/gsmtap: fix buffer overflow in _gsmtap_raw_output()
    
    According to the man page, vsnprintf() returns:
    
      - a negative value in case of error;
      - the number of characters written (excluding '\0');
      - the number of characters which *would have been written*
        if enough space had been available (excluding '\0').
    
    We need to detect if the output was truncated, and properly
    limit the amount of bytes to be reserved within a msgb.
    
    Change-Id: Ifa822edf900ed925ba935c54a28c797c4657358a

commit 470221575deaa14c670a5d4233df80119599141d
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 18:51:00 +0100

    LCLS: enc/dec entire parameter set instead of GCR
    
    In 3GPP TS 48.008 the Global Call Reference IE is only used in HANDOVER
    REQUEST (§3.2.1.8) and ASSIGNMENT REQUEST (§3.2.1.1) messages which
    also include LCLS Config and CSC parameters. Hence, there's no point in
    using GCR encode/decode functions alone.
    
    Introduce gsm0808_dec_lcls() and gsm0808_enc_lcls() as trivial wrappers
    on top of GCR enc/dec routines which are made static. Adjust tests
    accordingly. Test output intentionally left unchanged.
    
    Change-Id: Icfbb2404e1a1d500243e2071173299b557369335

commit e5bde9053238ba8fdce9797f97d76016abf474f7
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-20 00:00:11 +0100

    define LOGPFSM fmt only once, in LOGPFSMLSRC
    
    Instead of duplicating the fmt and args in LOGPFSML and LOGPFSMLSRC, rather
    make LOGPFSML invoke LOGPFSMLSRC with __FILE__ and __LINE__.
    
    This is a cosmetic preparation for more tweaks coming up.
    
    Change-Id: I2f23c57ebfdb5355919c06ac5ded7732e3b17a97

commit 34d54b2ba7968d239bfb2fbc70bcb775c1467969
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-12-23 10:26:19 +0100

    Fix VTY documentation error introduced  in "bind" VTY port change
    
    In 99ae401e490e60fc07bef7eacc478be7bdcc9f5a we introduced the ability
    to specify the TCP port to which the VTY should bind.  However, the VTY
    dcumentation wasn't extended accordingly, causing virtually all master
    build jobs to fail.
    
    Change-Id: I54fb0ca0d3a884a64a349b22de70f3d9bd1a6d54

commit 99ae401e490e60fc07bef7eacc478be7bdcc9f5a
Author: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Date:   2018-12-15 17:36:41 +0000

    vty: Make TCP port configurable and introduce telnet_init_default
    
    Extend the vty_bind_cmd VTY command to allow to optionally specify
    a port in addition to the IPv4 address.
    
    Introduce telnet_init_default to relieve client code from having
    to query the bind IPv4 address (and now the TCP port). Instead a
    client only needs to pass the default TCP port to use.
    
    Client code should use it like:
    
            int rc = telnet_init_default(ctx, priv, OSMO_VTY_PORT_SGSN);
    
    Change-Id: Id5fb2faaf4311bd7284ee870526a6f87b7e260f3

commit d8d0ef6b5c1431645a467d173bd14399f2e9fef7
Author: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Date:   2018-12-22 03:23:43 +0000

    vty: The telnet interface is TCP only. Fix the comments
    
    Change-Id: I38555c4d4f565ce21dda34fc3857c47b3d802dbd

commit cf6ee64423480137d15f6277144c1460756947dc
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-12-20 05:23:00 +0700

    tests/gsm0808: use new msgb comparison API
    
    Since I3bc95f2f5ab6e3f4b502647fb3e0aaaf1f7c4cf5, we have some
    helpers to compare certain msgb layer to a given buffer. Let's
    change 'VERIFY' macro to use msgb_eq_l3_data_print().
    
    Change-Id: Ib6be778236eff8f2153f3113f9379ecfbec9052b

commit 10db2817e5ce76eebd61dd6b607a6dfad57fa417
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-14 16:14:34 +0100

    GSUP: add CHECK-IMEI message
    
    Implement necessary messages for Procedure Check_IMEI_VLR (TS 23.018
    Chapter 7.1.2.9). This lets the VLR ask the EIR to check if an IMEI
    is valid. In the Osmocom stack, we don't have an EIR and this request
    will be handled by the HLR. We will be able to store the IMEI in the
    HLR as side-effect (OS#2541).
    
    This is roughly based on TS 29.002 8.7.1 MAP_CHECK_IMEI service, but
    only implements the bare minimum required IEs (imei and imei_result).
    
    Related: OS#3733
    Change-Id: I085819df0ea7f3bfeb0cabebb5fd1942a23c6155

commit 19742408cf3d83bb67e4b8c2fc3b0cbbee7bee59
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-21 10:18:28 +0100

    GSUP: add end marker to enum osmo_gsup_iei
    
    Simplify gsup_test.c by defining an end marker in gsup.h. No need to
    manually update the last element every time anymore.
    
    The C standard guarantees, that the end marker will have the last value
    plus one: "Each subsequent enumerator with no = defines its enumeration
    constant as the value of the constant expression obtained by adding 1 to
    the value of the previous enumeration constant." (From C99: 6.7.2.2
    Enumeration specifiers)
    
    Change-Id: I2aab7245e209f0ebd2f33a83d4d181dd3339cb17

commit e8c3b1bc0b459a94aa490743e8e1320185e48473
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-20 17:36:45 +0100

    GSUP: fix missing osmo_gsup_get_err_msg_type()s
    
    Add missing mappings of request to error message types in
    osmo_gsup_get_error_msg_type():
    * PROC_SS_REQUEST
    * MO_FORWARD_SM_REQUEST
    * MT_FORWARD_SM_REQUEST
    * READY_FOR_SM_REQUEST
    
    Change-Id: I801a0d6ffe09cfc75b77ab602bd25b3dc40f19c0

commit bd6d5c10db634c752d25dee037179006d5f87cab
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 19:01:03 +0100

    TLV: add convenience function for 1-byte values
    
    Similar to existing 16 and 32 bit value helpers but simpler because we
    don't have to worry about alingment and endianness.
    
    Change-Id: Ic0a148bd04b8860e321f509fdcd913f688c8e920

commit e6f63f22c5ae54c4bf884d85c7ce304955ee9533
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 19:00:23 +0100

    TLV: fix doc copy-paste error
    
    Change-Id: I8aa79cab7505585de00ee2aaae125462108906e8

commit af25c37f903be0f30a0a6a4663a2892a84c79740
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 20:12:19 +0100

    Use define for key buffers
    
    Add corresponding spec. references and comments where appropriate.
    
    Change-Id: If5e2aad86eaecd8eada667b3488ba415d81c6312

commit 6cb833608fa39943c1ce9fe046992922e09f4266
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-12-19 19:29:20 +0100

    rename CELL_IDENT_LAI_AND_LAC to CELL_IDENT_LAI
    
    The name "LAI AND LAC" makes no sense because a LAC
    is part of a LAI. Keep the old name available for
    API backwards compatibility.
    
    Change-Id: I2749cf75b7b45de0cd43cf4c696a6b6984f5a065
    Related: OS#3124

commit b26003963e82805bfd73b13315ae85d478605383
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-16 00:20:39 +0100

    add/clean big-endian packed structs (struct_endianess.py)
    
    This is 1:1 the result of doing
    
      cd libosmocore
      ./contrib/struct_endianess.py
      git commit -a
    
    Running struct_endianess.py again should result in no changes.
    
    That means we could include such a check in the gerrit verification job now.
    
    Change-Id: Ia0b99d76932aeb03e93bd0c62d3bf025dec5f9d2

commit 036012b5080e15b1e6579e5422c9d1bc8c63e2fb
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 17:48:56 +0100

    LCLC: fix doc to match type signature
    
    Change-Id: I8f7b3dca080ef0e632d47a907154f8404b0ec523

commit e035572ea83814e3e65766a83d0e92f1ee597760
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-19 13:52:28 +0100

    Fix typos in SS opcode names
    
    Change-Id: I8fa1961c85b3fd714bc8df56fe4af6be4060c208

commit 0145751a97c5caad57eb6c0b4a60a1736dee371f
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-12 01:48:54 +0100

    add to osmo_sock_get_name*() API
    
    Basically, I am applying code review that I would have given had I not been on
    vacation when the last osmo_sock_get_name* stuff was merged.
    
    osmo_sock_get_name2() is so far a static internal function. However, it is
    nothing like osmo_sock_get_name(), so instead rename it to
    osmo_sock_get_ip_and_port(). Also make it public API, no need to hide it.  I'm
    adding an "and" in the name to hopefully clarify: "ip_port" vs. "ip_and_port"
    -- there already are _get_X_ip_port() functions that only return the port
    string, despite "ip" in the name.
    
    Add new public osmo_sock_get_name2(), which is like osmo_sock_get_name(),
    except it uses a static string instead of talloc, and omits the braces. This
    is most convenient for log statement formats, avoiding dyn allocations.
    
    Add new osmo_sock_get_name_buf(), which is like osmo_sock_get_name2() but
    writes to a caller provided char buffer.
    
    Use osmo_sock_get_name_buf() in the implementation of osmo_sock_get_name(),
    but use another (non-static) local string buffer, because adding braces is too
    complex without talloc_snprintf().
    
    Rationale:
    
    I want to improve the logging of socket errors, e.g. change
    
      DLMGCP ERROR Failed to read: 111/Connection refused (mgcp_client.c:720)
    
    to
    
      DLMGCP ERROR Failed to read: r=10.0.99.2:2427<->l=10.0.99.2:2728: 111='Connection refused' (mgcp_client.c:721)
    
    but it is just not handy to compose logging with the current API:
    
    - osmo_sock_get_name() requires a talloc_free().
    - all the others require output buffers.
    - the only way to conveniently compose a logging string and,
    - notably, the only trivial way to skip the string composition if the logging
      level is currently muted, is to have a function that returns a static string:
      the new osmo_sock_get_name2().
    - (I think the osmo_sock_get_{local,remote}_* convenience wrappers should never
      have been added, because they encourage the caller to invoke the same code
      twice, for IP addr and port, and throw away one half each time.)
    
    Related: Iae728192f499330d16836d9435648f6b8ed213b6 (osmo-mgw)
    Change-Id: I8ad89ac447c9c582742e70d082072bdd40a5a398

commit f9ee8da0cda6a8989c706e618915d09c9cffd0f4
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-11-13 02:06:15 +0700

    GSUP/SMS: introduce READY-FOR-SM message
    
    According to 3GPP TS 29.002, section 12.4, MAP-READY-FOR-SM is
    used between the MSC and VLR as well as between the VLR and the
    HLR to indicate that a subscriber has memory available for SMS.
    
    This change replicates this service in GSUP as READY_FOR_SM_*.
    The only mandatory IE for this service (excluding Invoke ID) is
    'Alert Reason' that is replicated by OSMO_GSUP_SM_ALERT_RSN_IE.
    
    Change-Id: Ic37f3b2114b8095cfce22977e67133b9103942e3
    Related Change-Id: (docs) I549b6c8840a1e86caac09e77fb8bc5042d939e62
    Related Change-Id: (TTCN) If2256607527ecfcb10285583332fb8b0515d7c78
    Related: OS#3587

commit c2628317cc3482262c80b93cbfb2cbe960772558
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-09-25 23:03:13 +0700

    GSUP/SMS: introduce MO-/MT-FORWARD-SM messages
    
    According to 3GPP TS 29.002, there are two services:
    
      - MAP-MO-FORWARD-SHORT-MESSAGE (see 12.2),
      - MAP-MT-FORWARD-SHORT-MESSAGE (see 12.9),
    
    which are used to forward MO/MT short messages.
    
    This change replicates both services as GSUP messages:
    
      - OSMO_GSUP_MSGT_MO_FORWARD_SM_*,
      - OSMO_GSUP_MSGT_MT_FORWARD_SM_*.
    
    Please note, that only the 'must-have' IEs are introduced
    by this change, in particular the following:
    
      - OSMO_GSUP_SM_RP_MR_IE (see note below),
      - OSMO_GSUP_SM_RP_DA_IE (see 7.6.8.1),
      - OSMO_GSUP_SM_RP_OA_IE (see 7.6.8.2),
      - OSMO_GSUP_SM_RP_UI_IE (see 7.6.8.4),
      - OSMO_GSUP_SM_RP_MMS_IE (see 7.6.8.7),
      - OSMO_GSUP_SM_RP_CAUSE_IE (see GSM TS 04.11, 8.2.5.4),
    
    where both SM_RP_DA and SM_RP_OA IEs basically contain
    a single nested TV of the following format:
    
      - T: identity type (see 'osmo_gsup_sms_sm_rp_oda_t'),
      - V: encoded identity itself (optional).
    
    According to GSM TS 04.11, every single message on the SM-RL has
    an unique message reference (see 8.2.3), that is used to link
    an RP-ACK or RP-ERROR message to the associated (preceding)
    RP-DATA or RP-SMMA message transfer attempt.
    
    In case of TCAP/MAP, this message reference is being mapped to the
    Invoke ID. But since GSUP has no 'Invoke ID' IE, and it is not
    required for other applications (other than SMS), this change
    introduces a special 'SM_RP_MR' IE that doesn't exist in MAP.
    
    Change-Id: Ibe325c64ae2d6c626b232533bb4cbc65fc2b5d71
    Related Change-Id: (docs) Ie0150756c33c1352bc4eb49421824542c711175c
    Related Change-Id: (TTCN) Ibf49474a81235096c032ea21f217170f523bd94e
    Related: OS#3587

commit 520743278064c81e7fbe06ba42de6eefa807235a
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-30 10:44:07 +0100

    LCLS: add gsm0808_create_ass2()
    
    It allows setting additional assignment parameters explicitly.
    
    Change-Id: Id89765df3f8c12f55f73f1d7a9d90c8883eb3bba
    Related: OS#2487

commit 969fb2ed841d34577d985af4baf67d20c6f35c8a
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-10 11:01:10 +0100

    LCLS, TS 48.008: add GCR IE encoding/decoding
    
    * add functions to encode Global Call. Ref. from TS 29.205 as 3GPP TS
      48.008 §3.2.2.115 information element
    * add corresponding tests
    
    Change-Id: I82ce0207dc8de50689a8806c6471ad7fbae6219d

commit 7918f84aeb65c4b833ccf86b9daa6ab76f06c031
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-10 10:57:59 +0100

    LCLS, TS 29.205: add GCR routines
    
    Add functions to encode and decode Global Call Reference as per
    3GPP TS 29.205 Table B 2.1.9.1 add corresponding tests.
    
    Change-Id: Iee95aa4e5c056645b6cb5667e4a067097d52dfbf
    Related: OS#2487

commit d8fcef77945d9390a48c35117529a55946201078
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-11-29 00:59:34 +0700

    gsm0480: fix copy-pasted note for gsm0480_gen_return_error()
    
    InvokeID is mandatory for ReturnError component.
    
    Change-Id: Ie1c7116d368c2029b9f524cb74ffa316e282ec83

commit 2bf01d439cbbf346c333043ec0c82e6d5ef62ee2
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-12-10 10:59:13 +0100

    stats.h: Fix build on MacOS
    
    Otherwise struct osmo_stats_config is not defined and compiler fails.
    
    Related: OS#3722
    Change-Id: I037c3ca141ecee2d457e0a881a56e32ee24cec4d

commit db038255eb1a2ff1a026b6c1ecd7328c22242985
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-03 14:14:44 +0100

    msgb: add test helpers
    
    It's often handy to compare certain msgb layer to a given array and
    print the position where they differ. Add simple pretty-printer and
    corresponding L* wrappers.
    
    Change-Id: I3bc95f2f5ab6e3f4b502647fb3e0aaaf1f7c4cf5

commit 48b2de097216d5fb86d3e03fbccc39a7a83e8228
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-11 02:13:57 +0100

    fix api doc for osmo_bcd2str()
    
    Change-Id: I504ea849fc9daeb34a1b3c5343371161deba743e

commit 6adffb957349bc1ca75e49a20cbd05f06e62d668
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 23:30:31 +0100

    gsm48_mi_to_string(): do not read from zero length input buffer
    
    Change-Id: I12cada7c2c5187146ca5a33d1ebfefb4cad65632

commit ea2a0ab041524bb651d488ea1eddda0cc3d9e895
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 23:30:08 +0100

    gsm48_mi_to_string(): guard against zero length output buffer
    
    All successful cases already return from the switch(), so simply handle all
    errors below it by returning an empty string (if there is enough string
    buffer).
    
    Change-Id: I709ac3b9efb7b4258d8660715b10312e11b9b571

commit 23187fa108f094b2ed9d497380b63235592477b2
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 23:24:50 +0100

    gsm48_generate_mid(): mask out ODD flag from mi_type
    
    For MI encoding, see 3GPP TS 24.008, 10.5.1.4 Mobile Identity. The 'odd' flag
    indicates whether the last BCD nibble is used. Of course that flag should be
    made sure to reflect the actual length.
    
    Change-Id: Id6e695ebf9f86b295eaa7e2c6228989256f37e68

commit 627e0113d142c91eaf9a750ab76b722bb776b1ce
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 21:32:40 +0100

    gsm48_mi_to_string: use osmo_bcd2str(), fix some corner cases
    
    By using osmo_bcd2str(), ensure that the resulting string is always nul
    terminated, and always return strlen()+1 whether truncated or not.
    
    Still keep up the previous return value style, even if that isn't consistent at
    all.
    
    The difference between IMSI/IMEI and TMSI return values remains and is not part
    of this patch.
    
    Change-Id: I1b51b72a721e1cc9d69796b804ebda741ff0f36b

commit 7079e698481705c82c7aff58ea9c63469626af80
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 21:02:36 +0100

    add osmo_bcd2str()
    
    Add a standalone bcd-to-string conversion function with generic parameters.
    Add a regression test in utils_test.c.
    
    So far there is no single universal implementation that converts a BCD to a
    string. I could only find gsm48_mi_to_string(), which also interprets
    surrounding bytes, MI type and TMSI as non-BCD value.
    
    The idea is to use this function from gsm48_mi_to_string() and similar
    implementations in subsequent commits.
    
    Root cause: in osmo-msc, I want to have an alternative MI-to-string function
    for composing an FSM name, which needs the BCD part of gsm48_mi_to_string() but
    not the TMSI part.
    
    Change-Id: I86b09d37ceef33331c1a56046a5443127d6c6be0

commit c01cff1a502b95ef6d5348e4b8bbfcf746b5d2e4
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-10 12:46:03 +0100

    Constify llist_count() parameter
    
    Counting list entires should not alter the list content: let's make this
    obvious from type signature.
    
    Change-Id: I414e67a3de733fab407161b3264d3b89070ba537

commit 6aa20eee29846fd86b2ac9c79948d466794cfe68
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-06 00:40:37 +0100

    api doc: gsm48_mi_to_string(): warn of return value implementation
    
    Change-Id: If5e7abd15dddf39cdfad8071f4cd5ca8244eabe0

commit 496862818d2feabcac926a94a6be2d42826ab19f
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-05 21:32:21 +0100

    gsm0408_test: test encoding and decoding Mobile Identity
    
    One would think by now we would solidly encode and decode Mobile Identities.
    Well, guess again.
    
    - rc is sometimes the amount of bytes written, sometimes actual strlen().
    
    - on string truncation, rc is sometimes strlen() (assuming nul terminated), and
      sometimes snprintf()-style would-be strlen().
    
    - returned string, when truncated by not enough buffer size, is sometimes nul
      terminated, sometimes not.
    
    - gsm48_mi_to_string() happily reads a byte from zero-length input buffer.
    
    - gsm48_mi_to_string() happily writes to zero length output buffer.
    
    - gsm48_mi_to_string() returns nonempty string for empty input.
    
    - encoding a MI type that still has the GSM_MI_ODD flag set results in encoding
      an even-length MI as odd-length (hence appending a stray 'F').
    
    I am going to tweak the implementation of gsm48 mobile identity encoding /
    decoding, so first pinpoint the current behavior in a unit test, and show how
    perforated even such a seemingly trivial API can be.
    
    Change-Id: Iaae3af87f82f1a8f2e6273984c011b2813038cf7

commit 2ca8cebac67cfa179af77aa8d507fd4b96b2b230
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-12-09 01:26:55 +0100

    timer: Fix clockid_t undefined on MacOS < 10.12
    
    Related: OS#3722
    Change-Id: If466a64bd44dcb8ae8a9b7f82bc9c9435ba3e640

commit 4f4905fac590be8feea0b22010444ed40d7b11b5
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-11-30 13:36:12 +0100

    gsm0808: add encoder for cause codes and use it
    
    At the moment the all gsm0808 cause codes are encoded directly using the
    tlv API directly to put a one byte TLV field. This works ok for most
    situations where the cause code consists of a single byte. However,
    gsm0808 specifies a two byte cause code model where cause codes may be
    extended up to two bytes. Instead of implementing the encoding over and
    over and again, let's rather have an encoder function we can call.
    
    - Add an encoder function that can generate single byte and extended
      cause codeds and makes the length decision automatically.
    
    - Use only this function to append cause codes
    
    Change-Id: I71d58fad89502a43532f60717ca022c15c73f8bb

commit e190e032d97d6a67524efc4f6169a30789c86048
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-12-07 12:31:08 +0100

    gsm29118: add generator functions for GSM29118 messages
    
    We already have some GSM29118 related definitions and functions in
    libosmocore. Lets also add some functions to generate GSM29118 messages
    (similar to those we have for GSM0808).
    
    Change-Id: Ic87f8a771b87b52215d0a7451b67794557b80b8a
    Related: OS#3615

commit f98c78ec4a4c1da77ceaee32490719be9b36d50c
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-12-07 10:36:28 +0100

    gsm_29_118.h: Add constant for default port
    
    The specification defines a default port where the SGs interface should
    be reachable. Lets add a define-constant for it.
    
    Change-Id: Ia4b9f547dd980411d15b2691b7f535fa0463f0f1
    Related: OS#3615

commit 8a942d27b6d300e1a702401e9a5d4e97be15da77
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-12-07 11:00:59 +0100

    cosmetic apn: correct whitespace error
    
    there is a whitespace between the * and osmo_apn_to_str(). Lets
    remove this.
    
    Change-Id: I094e6eb08eacf2d6459c47a7370837601aa92925

commit 9d7a247da4e20acc6638fcd06198bfe673d0c384
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-20 15:18:31 +0100

    Add osmo_sockaddr_in_to_str_and_uint()
    
    It's similar to osmo_sockaddr_to_str_and_uint() but does not require odd
    typecasting for AF_INET case. Make osmo_sockaddr_to_str_and_uint() into
    wrapper around new function and make sure to check for address family
    before typecasting. Also use proper return type.
    
    Change-Id: Ie384483124d407a960ab6732e6a7fd90554389d2

commit 72dfd437995cd5af6da6d8701e81c984744bc5ae
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-04 11:24:18 +0100

    Allow log_init() with NULL log_info
    
    Since we have library-internal categories we don't have to force
    application to supply its own categories. This is especially useful for
    testing code inside libosmocore which only use internal categories
    anyway.
    
    Change-Id: I42159780b57684bff225789f036f28a4b25fc7b8

commit 5986a3d89d7d68ff61d193dfc222cafbb5bb591e
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-12-05 18:34:01 +0100

    gsm_29_118: add missing extern for struct value_string decl.
    
    The value string arrays in the header file (gsm_29_118.h) are not
    declared as extern. Lets add it now.
    
    Change-Id: Ib6c4cbea649f790fa4db1ed2fe2b7e76a60291b4
    Related: OS#3615

commit 14f24c678f122576849eb400c8e64f7f4f403f3f
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-29 19:30:07 +0100

    LCLS: update osmo_lcls struct
    
    * use pointer to proper struct type for GCR
    * update comments to be useful for doxygen
    
    Change-Id: I8ccfbd0c146e462e599e5305520cc89602364ec3

commit d82070c3838f1d7290b3047e0287e3eac141adf1
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-03 15:33:52 +0100

    Add msgb_tl_put() helper
    
    When adding complex TLV structures where length of V is not known in
    advance it's handy to be able to simply add Tag and save the pointer to
    the Length field so it can be updated once entire Value is added and its
    length is known.
    
    Change-Id: I8dc1e4880352833a0a49c1dd0d7cb4148ac43aff

commit 30b2e348dfcfafe9eecf9a7d265f4e01fd0d373e
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-26 10:38:55 +0100

    ctrl: use #define for TRAP id
    
    We always use id = 0 when sending TRAP messages. Let's make this more
    obvious by introducing appropriate define.
    
    Change-Id: I33d7d4c6a1885a75a85d6f2f017430e0860b4126

commit cb02a391cdd59de9f30b55f06974446f006bf40e
Author: Max <msuraev@sysmocom.de>
Date:   2018-12-03 14:00:49 +0100

    Update msgb Lx helpers
    
    * add missing L1 and L4 hexdump
    * add msgb_l4() for consistency and convert msgb_sms() into simple alias
    
    Those will be used in follow-up patches for msgb debug/test helpers.
    
    Change-Id: I8d6dd1b1ff3aa98a452711c692ca7dee0449203b

commit 225bdf4779a0070648fced5b00cad9c1bfdc9908
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-10-30 14:56:59 +0100

    gsm0808: add message generator for BSSMAP HANDOVER PERFORMED
    
    We currently have no generator function that can generate BSSMAP
    HANDOVER PERFORMED messages. Lets add function for this.
    
    Change-Id: I825106858bd89afc9837811b8fed2e8accc82441
    Related: OS#3645

commit a2f696fa5c735bb66f67b1bb9f0ad5a2a36cafb3
Author: Alexander Couzens <lynxis@fe80.eu>
Date:   2018-04-24 16:15:23 +0200

    configure.ac: check clock_gettime for glib < 2.17
    
    glib < 2.17 doesn't support clock_gettime directly, it is available
    via librt.
    
    Change-Id: Ice853d85ffe859b1d4df48b91b050c24d85c861b

commit f69aa9cb6a3e2174a12fa2864b4869485d0c917a
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-29 23:32:06 +0100

    Move BSSMAP_MSG_* defines to header file
    
    This will be reused be several tests related to TS 48.008 and TS 29.205
    in follow-up commits.
    
    Change-Id: I4d8cc05b8df8e70c1f6257e53ae3acec7901681f

commit a66de71f8e8614cff7edc85fe979420716e5672c
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-23 16:50:50 +0100

    ctrl: print textual error on IPA parsing failure
    
    Change-Id: I49bb613b416d549f554fd9d23cd37b63954324db

commit 7ab5fc1f3b373fadc644448442b985c12597f8f0
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-15 23:29:56 +0100

    add contrib/struct_endianess.py
    
    In libosmocore (and likely elsewhere) we have scores of packed structs with
    sub-byte integer members that lack the necessary member reversal shims to be
    able to work on big endian architectures.
    
    Instead of manually editing each one of them and probably introduce errors in
    the process, this script handles the change automatically, and in the future
    allows us to verify correctness in gerrit verifications.
    
    Change-Id: I8e75b17d8071c7b3a2a171ba776fb76854b28a53

commit 49c06680e762cdf751ae592449985e2c65687248
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-21 22:10:26 +0100

    Update gsm0808_create_ass() doxygen
    
    * add spec reference
    * remove LCLS note: CI parameter is optional but have nothing to do with
      LCLS
    
    It's pretty hard to decipher from the spec what CI is useful for and we
    have not used it anyway so let's just keep it as "Optional" for now.
    
    Change-Id: I5552732afcec48047d993ae6ffb73a3e5d7c9202

commit c8772517d9dc32da7c5e8741155e4ab638c2d01e
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-11-16 12:59:46 +0100

    gsm: Deprecate buggy gsm_arfcn2band API and introduce gsm_arfcn2band_rc
    
    ARFCNs are values in well defined ranges. Until this patch, ARFCNs not
    belonging to any band were blindly assigned to DCS1800 by
    gsm_arfcn2band, causing unnoticed bugs and misconfigurations in
    osmo-bsc.
    
    Previous API gsm_arfcn2band cannot accomodate this kind of check easily,
    so let's deprecate it to tell people to use a new API gsm_arfcn2band_rc
    which performs this kind of checks and allows callers to log failures,
    misconfigurations, etc.
    At the same time, modify implementation of gsm_arfcn2band to abort if an
    invalid ARFCN is passed, this way users of this API can notice they are
    passing wrong data to it that most probably will produce unexpected
    results.
    
    Related: OS#3063
    Change-Id: I780d452dcebce385469e32ef2fd844df6033393a

commit 738782467f70e13b1c6667aceb6747c2f3755f61
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-09 12:35:03 +0100

    LCLS: add 48.008 parameter structure
    
    It's convenient to hold all LCLS-related parameters from 3GPP TS 48.008
    in a single structure.
    
    This will be used in follow-up patch handling Assignment Request with
    extended parameters as well as corresponding BSC code working with LCLS.
    
    Change-Id: I4b873f9a3c5a5d33b438382971b3d92e40d48d62
    Related: OS#2487

commit c6bfc63d10f971fbca8e2fd617ffc6b18ab16748
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-20 11:01:36 +0100

    document unblock-ack vs. signalling in gprs_ns_process_msg()
    
    Since commit 797558ea1768e464f9559c5f7a4f3f4285c5de25 we send the
    NS_UNBLOCK_ACK message before dispatching the NS_UNBLOCK signal,
    instead of afterwards.
    
    Add comments which explain the intended order of events.
    
    Suggested-by: Pau
    Related: OS#2388
    
    Change-Id: I4b93853c952a97302f8afc14f462f22c3e487564

commit 797558ea1768e464f9559c5f7a4f3f4285c5de25
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-19 17:18:41 +0100

    send NS_POUT_UNBLOCK_ACK before signalling S_NS_UNBLOCK
    
    In gprs_ns_process_msg(), we were dispatching the S_NS_UNBLOCK
    signal before sending out the NS_POUT_UNBLOCK_ACK message.
    
    Signal handlers might send messages to the other side, assuming
    that NS is now unblocked. However, since such messages will arrive
    before the UNBLOCK_ACK message the receiver might discard them.
    This problem has been observed with our TTCN3 BSSGP_Emulation
    as a peer to osmo-pcu.
    
    This patch makes TTCN3 PCU TC_paging() test pass regardless of
    whether the test or osmo-pcu is started first. Before this patch,
    this test would only pass if the test was started before osmo-pcu.
    A remaining problem is that the test does not yet keep passing
    reliably unless osmo-pcu is restarted between test runs.
    
    Change-Id: I3af54a14bb6bcfa167c9a9d9f67835e7f5b9f1bb
    Related: OS#2890
    Related: OS#2388

commit 5a25c3ec4dcb6d3789c6ce94e3c3a165cc5c04d8
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-16 01:21:46 +0100

    gsm_44_318.h: remove #if 0 from struct gan_cch_desc_ie
    
    These are actually parts of the struct in big endian order, which will soon be
    done automatically by struct_endianess.py.
    
    Change-Id: I9bc694f10fa9cef0bb7fc791bb40e7602459b16b

commit adc4172fe3c18cb93809c5f4e46e9fbdf213025e
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-19 10:44:55 +0100

    Add missing header include
    
    That's necessary for 'struct tlv_parsed' definition although lack of it
    does not cause build failure in libosmocore for me but does so for
    osmo-bsc.
    
    Change-Id: I3b2d3955d02b07dc7ec5e9f0c66cc477196703ed

commit ed651d2485a51b57bf6090f4f58fd356118c6835
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-07 15:25:05 +0100

    Support cipher mode reject with extended cause
    
    * add function to generate cipher mode reject with extended (2-byte)
      Cause IE
    * add function to get (extended) Cause value
    * add corresponding (extended cause) test
    * update existing (non-extended cause) test
    * use enum as a parameter for existing non-extended version to make
      interface more unified
    
    Change-Id: Id5509b94a18180a44f45300caaa02b843c166fa3
    Related: OS#3187

commit 84fb5bb6a09a6a358f98c654c84c3b99a0f24eef
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-08 13:23:59 +0100

    Move msgb_push helpers to public header
    
    The msgb_wrap_with_TL() is generally useful so it make sense to make it
    public to facilitate code re-use.
    
    Other helpers can be implemented as trivial wrappers over existing tlv.h
    functions. Update headers and code accordingly.
    
    Change-Id: I37e91d031fba28cf1c6735b8069b0265746f55e6

commit d8d0c3e2d14588f8ae863b36f496f20775777619
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-11-15 18:26:01 +0100

    gsm48: gsm48_decode_freq_list: Improve documentation of paramter f
    
    Change-Id: Id8e3afff737211ded3c5689f2c83b1a544b42f9d

commit 961db7c270e47de91b04ae444f2e4c319b389ce2
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-08 11:40:23 +0100

    Update GSM0808_LCLS enums
    
    Add values indicating that LCLS control/config/status value has not been
    received yet.
    
    Change-Id: I52dc6a52f5ee043ed2c1625ffecfd495e3c746b1
    Related: OS#2487

commit aa934630530af05a84b62b204ce4da7688c5e3ad
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-07 13:16:54 +0100

    Update 3GPP TS 08.08 Cause handling
    
    * add Class definitions
    * add helper to check for extended bit
    * add helper to get Cause's Class
    * use enum in gsm0808_cause_name() and gsm0808_create_cipher_reject() to
      avoid confusion between class and cause
    * update gsm0808_create_cipher_reject() comments
    
    Change-Id: I31b31dfc22eb4b6b07089e1255246ac458125340
    Related: OS#3187

commit c0d1de36f3e378364b1c02e98a3870394e3d457e
Author: Max <msuraev@sysmocom.de>
Date:   2018-11-07 15:24:11 +0100

    Add helper wrapper for BSSAP TLV parsing
    
    Change-Id: Ib228368901ce90a02a5664f2510593371c7d29cd

commit af6710f4d433d138c5d1ea57d1e4ab22c86d4385
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-11-16 17:45:40 +0100

    fsm: fix apidoc of osmo_fsm_state_name()
    
    The api documentation of osmo_fsm_state_name() refers to an FSM
    instance, but it really means the state of an FSM.
    
    Change-Id: I88ddd6048426d380c49170e66f57b3843398c046

commit 086b345414ef17b305b5c624fbdbc4bf0f855042
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-11-15 15:04:29 +0100

    gsm29118: add value strings for SGSAP IEI
    
    The value strings for the SGSAP IEI are missing, lets add a set of value
    strings and a function to retrieve them.
    
    Change-Id: I2787303174f74ffba86675bce2c12f680d8ea708
    Related: OS#3615

commit e63b8873586b575af433c0d4213fc71c746dd7e1
Author: Martin Hauke <mardnh@gmx.de>
Date:   2018-11-15 14:53:13 +0100

    gsm/protocol/gsm_08_58.h: Fix typo
    
    Fix a typo that prevents building on ppc64 (Power8, Big Endian).
    Tested with gcc version: 8.2.1+r265487
    
    /bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -I../include -I../include  -DBUILDING_LIBOSMOCORE -Wall -Wall  -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DBUILDING_LIBOSMOCORE -Wall -c -o panic.lo panic.c
     In file included from ../include/osmocom/gsm/rsl.h:6,
                      from gsmtap_util.c:37:
     ../include/osmocom/gsm/protocol/gsm_08_58.h:60:4: error: expected specifier-qualifier-list before 'sapi'
         sapi:3;
        ^~~~
    
    Change-Id: I4a40fc68cb6dfdfadfcc34213c4ecdabbbc356f2

commit 4c9d1479a6e1653b49649116ffef9af337f332b5
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-11-12 11:17:15 +0100

    merge_doc.xsl: move to osmo-gsm-manuals.git
    
    Allows building the manuals without the checked out libosmocore source.
    
    Related: OS#3385
    Depends: I8e7036fae062ee783cb132b14608827a82c5e7c7 (osmo-gsm-manuals)
    Change-Id: Ifb81b18422987cdf36b75993d2782abf93b5f48c

commit 534a4b28977e1ab780e843b9ad25e2f3da463f6d
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-11-06 17:10:31 +0100

    gsm_29_118: add missing include to header file
    
    The header file gsm_29_118.h is defining variables of type struct
    value_string, which is declared in core/utils.h. We should add an
    include to utils.h to prevent confusion when the header is used.
    
    Change-Id: I9f9bb62d29cd068820ad5aa677717bd448de3f4a
    Related: OS#3615

commit 860651ebd89072fa6fdcdd2dceeee96e5f088c18
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-10-30 14:31:57 +0100

    socket.c: fix IP and port buffer sizes
    
    Use INET6_ADDRSTRLEN (46) instead of 64 for IP address buffers, and 6
    instead of 16 for port buffers (the highest possible port number is
    65535).
    
    Change-Id: Ia25e2f3277ad2f60df31c08d12f42c1e6d2a14a6

commit ba2bd2eeb18ed361a0ee6038c8a3f114748aa576
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-06 21:16:37 +0100

    jenkins: print gcc version in log
    
    Change-Id: I8dfac78868f64213413e80cc52ac585d9d4a2c93

...