libosmocore (1.12.0) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * gsmtap: fix outdated header version in comment
  * configure.ac: check for Python interpreter unconditionally
  * libosmocore.spec.in: correct license for libosmogb
  * vty: cosmetic: fix code formatting
  * tests/testsuite.at: fix invalid if-endif syntax
  * tests/testsuite.at: use AT_SKIP_IF for sim_test
  * tests/testsuite.at: properly skip disabled tests

  [ Pau Espin Pedrol ]
  * tests: soft_uart: Fix printf int type format
  * iuup: Explicitly discard Iu-UP-DATA.req in Initialization state
  * cosmetic: lapd: Fix typo in comment
  * lapd: Take talloc msgb ownership when enqueueing it
  * lapdm: Take talloc msgb ownership when enqueueing it
  * lapdm: Move queue initialization to specific init function
  * cosmetic: Improve comment with spec references in Cell Selection Parameters
  * cosmetic: Improve comment with spec ref in RACH Control Parameters
  * cosmetic: Improve spec references of fields/structs related to SI3ro and SI4ro
  * cosmetic: Document missing CBQ3 optional field in SI4ro
  * cosmetic: vty/Makefile.am: Split items one per line
  * vty: cpu_sched_vty.c: remove tdef references
  * core: osmo_io: Introduce API osmo_io_get_backend()
  * vty: Add 'show runtime' command
  * Introduce tests/osmo-config-merge testsuite
  * osmo-config-merge: Fix comments with different indentation creating merge problems
  * osmo_io: Keep msgb ownership internal during segmentation until read_cb
  * tests/osmo_io_test: test_segmentation: Use osmo_iofd_close() API
  * tests/osmo_io_test (io_uring): test_segmentation: Fix infinite loop in read_cb rc=0
  * io_uring: Avoid extra reads if iofd becomes unregistered by user
  * bssgp: Fix non-uniqe rate_ctr ids

  [ Mychaela N. Falconia ]
  * codec: add some constant frames for HR and EFR
  * rtp_extensions.h: update for TW-TS-003 version 1.1.0
  * gsm/protocol/gsm_48_103.h: new header file
  * AMR codec: add conversion between s-bits and codec parameters
  * AMR codec: add decoder homing frame const patterns

  [ Oliver Smith ]
  * configure: set min python version check to 3.5
  * configure: set min python version check to 3.4
  * Makefile: fix doc/vty race condition
  * osmo-release: improve check for REL argument
  * Generate a version.h file
  * tests: fix for debian 13 armv7l
  * gsm_04_08: add GSM48_BCAP_RRQ_SPARE_NETWORK_TO_MS
  * osmo-release: debian_patch_apply: handle empty dir

  [ Harald Welte ]
  * protocol/gsm_04_08.h: Add GSM 04.08 message types for SI21/22/23
  * Allow io_uring_submit batching just ahead of poll/select
  * gsm/gsm_utils: Support the ER-GSM band (ARFCN 940..954)

  [ Alexander Huemer ]
  * Abort configure run on big endian hosts

  [ Andreas Eversberg ]
  * VTY: Initialize fields of struct cmd_element in order of declaration
  * linuxlist.h: add llist_last_entry_or_null macro
  * Avoid reusing pending buffer; append incoming data instead
  * osmo_io: Add unit test to verify segmentation process
  * Add multiple messages buffers to struct iofd_msghdr
  * Add multiple messages buffers to io_uring read operations
  * Add multiple messages buffers to io_uring write operations
  * osmo-io: Put together message buffers when dequeued from tx queue
  * Send multiple read/recvfrom/recvmsg SQEs in advance
  * Add environment variable to set io_uring size
  * Automatically increase io_uring, if too small.
  * Remove old empty io_uring
  * Put all io_uring related read and write states into sub structures
  * Correctly calculate size iofd_msgb_alloc2()

  [ Daniel Willmann ]
  * Register OSMO_EXT protocol number for TCAP routing
  * Add DLTCAP log category

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Wed, 03 Dec 2025 16:49:11 +0100

libosmocore (1.11.0) unstable; urgency=medium

  [ Mychaela N. Falconia ]
  * codec: add osmo_hr_sid_classify()
  * tests: add unit test for osmo_hr_sid_classify()
  * tests: add unit test for osmo_efr_sid_classify()
  * tests: add unit test for osmo_fr_sid_classify()
  * osmo_iofd_register: fix the case of changing fd

  [ Alexander Couzens ]
  * gb: add bssgp_parse_cell_id2/bssgp_create_cell_id2
  * add convert functions for old gprs_ra_id and the new osmo_routing_area_id
  * gsm_04_08: define missing reject info causes
  * protocol: gsm 29.118: add SGSAP_SERV_IND_PAGING_TIMEOUT (osmocom specific)
  * gsm 04.08: add GSM48 IE GMM_ADD_IDENTITY/RAI2
  * gsm 04.08: add P-TMSI type values
  * gprs/gsm_24_301: add include to be self contained
  * gprs/gsm23003: add osmo_mme_id_cmp & osmo_gummei_cmp
  * gsm_utils: add gprs_tlli2tmsi()
  * gsm23.003: add RNC Id
  * gsm23.003: make the header self-contained
  * gprs_ns2_sns: add include osmocom/core/talloc.h
  * gprs_ns2_sns: do_sns_add: ensure ip4/ip6 pointer is set
  * gprs_ns2_sns: move the NS-ALIVE PDU of a new NS-VC after the SNS-ACK
  * gprs_ns2_sns: improve search for same NS-VC
  * gprs_ns2_sns: fix error cases of SNS_ADD
  * gsm48: add additional GSM 24.008 IE for GMM
  * Gb/NS: SNS: SNS Ack don't add List of IP4/6 Elements on success.

  [ Harald Welte ]
  * core/socket.c: Provide more context when printing error message
  * [cosmetic] core/socket.c: Fix indent of 'case' within 'switch'
  * core/socket.c: Fix socket binding on IPv4-only hosts
  * src/core/socket.c: Fix close of negative fd in system_supports_inet6()
  * Fix building in environments that define _GNU_SOURCE

  [ Neels Hofmeyr ]
  * coverity CID#272974
  * coverity CID#272951

  [ Pau Espin Pedrol ]
  * iuup.c: Add more relevant spec references to the file
  * netdev: osmo_netdev_set_ifupdown_ind_cb(): Fix documentation copy-paste error
  * core/tun.c: Fix documentation in ret of osmo_tundev_send
  * core/tun: Add API osmo_tundev_get_fd
  * core/netdev: Add API osmo_netdev_set_mtu()
  * core/tun.c: Fix wrong documentation ret type in tundev_open_fd()
  * netdev: Explicit cast time() to uint32_t seq_nr
  * tun: assert tundev!=NULL in osmo_tundev_send
  * cosmetic: ipa: fix typo in documentation
  * ctrl: logging improvements
  * osmo_io: Increase default queue max_length from 32 to 1024
  * gsmtap: Increase txqueue max_length from 64 to 1024
  * osmo_io: Improve osmo_iofd_notify_connected() documentation
  * osmo_io: segmentation cb: Initialize null ptr every iteration
  * osmo_io: Use early return to simplify code
  * osmo_io: uring: Setup connect_notify internal ofd during register() op
  * osmo_io: poll: connect_notify: Avoid calling register
  * osmo_io: close() op in backend only takes care of closing
  * osmo_io: Track IOFD_FLAG_FD_REGISTERED in all backends
  * osmo_io: segmented_read: Avoid triggering read events if user unregisters
  * osmo_io: Log current queue length upon enqueue failure
  * osmo_io: iofd_msgb_alloc(): Allow allocating msgb of len=0xffff
  * osmo_io: segmentation: Remove unneeded impossible check
  * cosmetic: osmo_io: Improvde documentation of read_cb when segmentation is used
  * msgb: msgb_copy_resize_c: Fix validation check to avoid memcpy buffer overflow
  * osmo_io: Support writing to files with mode OSMO_IO_FD_MODE_READ_WRITE
  * tests/osmo_io: Rework test_file()
  * tests/osmo_io: Introduce small sleeps waiting for write completion
  * tests/osmo_io: Introduce small sleeps waiting for read completion

  [ Andreas Eversberg ]
  * Remove sync() after writing VTY config

  [ Vadim Yanitskiy ]
  * gsm_12_21.h: fix values for NM_IPAC_F_GPRS_CODING_MCS[1-9]
  * gsm48_encode_bearer_cap(): properly set 'Structure' in octet 4
  * tests/gsm0408: remove outdated comment for bcap_csd_2400_v22bis

  [ Eric Wild ]
  * utils: fix lost inttypes mess for embedded builds

  [ Daniel Willmann ]
  * gsm_04_08: Add IEs seen during 4G->2G RAU

  [ Oliver Smith ]
  * utils/osmo-install-dbg-pkgs: new script

 -- Oliver Smith <osmith@sysmocom.de>  Wed, 12 Feb 2025 09:51:49 +0100

libosmocore (1.10.0) unstable; urgency=medium

  [ Mychaela N. Falconia ]
  * gsm/protocol/gsm_04_11.h: add SMSC-address length limit definitions
  * gsm0808: add knowledge of TW-TS-003 BSSMAP IE
  * bts_features: add feature flags for TWTS001 and TWTS002
  * rsl: define RSL_IE_OSMO_RTP_EXTENSIONS
  * include/osmocom/gsm: add rtp_extensions.h
  * codec: make osmo_hr_check_sid() more efficient

  [ arehbein ]
  * write_queue: Enable updating max_length field
  * osmo_io: Clean up code
  * gsmtap: Hide implementation of gsmtap_inst
  * osmo_io_poll: Handle -EAGAIN in case of OSMO_FD_WRITE
  * write_queue: Fix Doxygen comment
  * gsmtap_util: Use Osmo IO instead of Osmo write queues
  * gsmtap_util: Simplify sink
  * gmstap_util: Fix sending out gsmtap messages
  * ns2: Improve code consistency

  [ Manawyrm ]
  * gsmtap.h: Add definitions for ISDN PPP sub-type
  * gsm48_ie.c: add 3.1kHz audio bearer capability for CSD calls
  * gsm48_ie.c: change bearer cap structure in outgoing CSD calls
  * logging: ensure ANSI color escape is sent in same line/before newline

  [ Karsten Ohme ]
  * APDU parsing support for GlobalPlatform GET RESPONSE

  [ Vadim Yanitskiy ]
  * gsm: add gsm0502_fn_compare() for comparing TDMA FNs
  * gsm: rename s/gsm0502_fn_compare/gsm0502_fncmp/
  * msgb: fix doxygen docs for msgb_pull_u{8,16,32): end -> front
  * coding: gsm0503_tch_a[fh]s_encode(): improve cmr/ft checks
  * coding: gsm0503_tch_a[fh]s_encode(): make *codec const
  * tests/testsuite.at: remove copy-pasted 'touch experr'
  * soft_uart: add osmo_soft_uart_free()
  * soft_uart: add doxygen documentation
  * soft_uart: split osmo_soft_uart_enable()
  * soft_uart: make osmo_soft_uart_alloc() accept *cfg
  * soft_uart: rework osmo_uart_rx_bit() to use flow state
  * soft_uart: implement parity checking for the receiver
  * soft_uart: implement the transmitter
  * soft_uart: allow manually flushing the receive buffer
  * soft_uart: add unit tests for the receiver and transmitter
  * soft_uart: fix Rx buffer flushing logic in suart_rx_ch()
  * soft_uart: fix handling of num_data_bits < 8
  * soft_uart: implement OSMO_SUART_PARITY_{MARK,SPACE}
  * soft_uart: demonstrate a problem with osmo_soft_uart_tx_ubits()
  * soft_uart: fix pulling a small number of Tx bits
  * soft_uart: check n_bits against 0 in osmo_soft_uart_tx_ubits()
  * soft_uart: fix spelling in doxygen docs
  * soft_uart: add osmo_soft_uart_{get,set}_name()
  * soft_uart: fix doxygen doc for osmo_soft_uart_tx_ubits()
  * soft_uart: check Rx/Tx state once in osmo_soft_uart_{rx,tx}_ubits()
  * soft_uart: cosmetic: do not use 'osmo_' prefix for static symbols
  * soft_uart: improve doxygen documentation
  * soft_uart: osmo_soft_uart_tx_ubits(): return number of bits pulled
  * soft_uart: implement modem status lines and flow control
  * coding: fix doxygen docs for gsm0503_pdtch[_egprs]_decode()
  * coding: clarify the USF decoding for PDCH blocks
  * coding: gsm0503_pdtch_decode(): implement USF decoding for CS1
  * tests/coding: fix -Wmaybe-uninitialized in test_pdtch()
  * tests/it_q: add tc_enqueue/dequeue testcase
  * core: fix wrong logic in _osmo_it_q_dequeue()
  * tests/soft_uart: assert that osmo_soft_uart_rx_ubits() returns 0
  * tests/soft_uart: cosmetic: improve readability of the test output
  * soft_uart: cosmetic: use consistent naming for the Rx buffer msgb
  * logging: fix NULL pointer dereference in _output_buf()
  * soft_uart: fix the Rx flushing logic, add a unit test
  * soft_uart: demonstrate a problem with manual flush()ing
  * soft_uart: demonstrate a problem with inefficient polling
  * tests/lapd: fix wrong size passed in test_lapdm_contention_resolution()
  * tests/gsm0808: fix assert()s in test_gsm0808_dec_cell_id_list_srvcc()
  * tests/iuup: fix assert()s in test_decode_passive_init_2_rfci_no_iptis()
  * tests/fsm: also test .onenter and .onleave callbacks
  * tests: fix update-exp: soft_uart_test overwrites rlp_test.ok
  * utils: fix OSMO_STRBUF_REMAIN to handle sb.pos == NULL correctly
  * utils: improve readability of OSMO_STRBUF_CHAR_COUNT
  * utils: fix -Wsign-compare in definition of OSMO_STRBUF_CHAR_COUNT
  * utils: osmo_bcd2str(): fix applying non-zero offset to null pointer
  * tests/utils: do not test strbuf_example2() with buf=NULL
  * bitvec: bitvec_to_string_r(): drop unused variable
  * tests/{gb,iuup}: also match stderr
  * tests/tdef: also test OSMO_TDEF_US and negative T values
  * tests/tdef: tune logging, also match stderr
  * pseudotalloc: add talloc_memdup(), use it in talloc_strdup()
  * gsm0808_utils: use osmo_strbuf API, drop APPEND_{THING,STR,CELL_ID_U}
  * vty: suppress warnings about len being set but not used
  * gsm48_ie: fix various issues in doxygen docs
  * gsm: fix osmo_mobile_identity_decode(): init *mi on error
  * core: osmo_tdef_fsm_inst_state_chg(): allow millisecond precision
  * tests/tdef: improve test output (use OSMO_T_FMT[_ARGS])
  * fsm: fix OSMO_T_FMT_ARGS: add missing braces
  * isdn: initial implementation of the V.110 TA
  * isdn: add a lookup table with E1/E2/E3 bits from Table 5/V.110
  * tests/gsm0408: cosmetic: adjust coding style (make linter happy)
  * tests/gsm0408: add two more samples to bcap_tests[]
  * isdn/v110_ta: avoid redundant .status_update_cb() calls
  * gsm: add more definitions from Table 10.5.112/3GPP TS 24.008
  * tests/iuup: fix duplicate assignment in def_configure_req
  * tests/a5: fix bit-wise vs logical and in test_a5[34]()
  * tests/sockaddr_str: fix dead code, print some errno values
  * tests/sockaddr_str: rc_name(): also handle -EAFNOSUPPORT
  * osmo-release.sh: make it a bit more user friendly
  * tests/Makefile.am: do not add files to EXTRA_DIST conditionally
  * utils/conv_codes_gsm.py: fix inconsistent formatting
  * coding: fix a typo in docs for gsm0503_pdtch_decode()
  * coding: improve readability in osmo_conv_decode_ber_punctured()
  * coding: fix artificial bit errors for PDTCH CS2 and CS3
  * coding: fix wrong n_bits_total reported for PDTCH CS2 and CS3
  * core: fix missing '\n' in iofd_uring_connected_cb()
  * tests: do not copy *.cfg files to the build directory
  * tests: rename logging_test_gsmtap -> logging_gsmtap_test
  * vty: fix memleak in host_config_set()
  * {fsm,vty}: add a VTY command to generate FSM state graphs
  * core: fix LOGPIO(): add missing space after 'iofd(...)'
  * README.md: cosmetic: fix a typo

  [ Pau Espin Pedrol ]
  * sockaddr_str.h Fix OSMO_SOCKADDR_STR_FMT_ARGS_NOT_NULL syntax error
  * socket: Introduce APIs osmo_sock_multiaddr_{add,del}_local_addr()
  * Fix typo in libosmocore.map
  * socket.c: Fix compilation with --disable-libsctp
  * tests/socket: Avoid keeping unneeded sockets open during next test cases
  * socket: Reimplement osmo_sock_init2_multiaddr()
  * socket: osmo_sock_init2_multiaddr2(): Apply params too if no OSMO_SOCK_F_BIND flag set
  * socket: Introduce API osmo_sock_multiaddr_get_ip_and_port()
  * socket: Introduce API osmo_sock_multiaddr_get_name_buf()
  * socket: Fix uninitialized mem ptr free in osmo_sock_init2_multiaddr2()
  * socket: Introduce API osmo_sock_sctp_get_peer_addr_info()
  * socket: Introduce defines OSMO_SOCK_MULTIADDR_{PEER_STR,NAME}_MAXLEN
  * ipa_ccm_tlv_to_unitdata(): free previous string if present before allocating new one
  * cosmetic: gsup.h: fix whitespace formatting
  * gsm_04_08_gprs.h: Introduce packed struct gsm48_pdp_address
  * gsup: Fail decoding if len of PDP Type IE is less than 2 bytes
  * gsup: Deprecate field pdp_type in favour of pdp_type_nr and pdp_type_org
  * gsup: Convert PDP-Type IE to PDP-Address IE
  * cosmetic: tests/gsup/gsup_test: Move send_e_send_end_signal_res to correct place
  * socket: Support AF_UNIX in osmo_sock_get_name_buf()
  * socket: Add remote PID and local FD to AF_UNIX sockname
  * osmo_io: Add iofd param to segmentation_cb

  [ Daniel Willmann ]
  * osmo_io: Init struct msghdr to zero
  * osmo_io: Only allow reading/writing if the relevant callback is set
  * logging_gsmtap: Temporarily disable logging when sending the logs
  * osmo_io: Assert that iofd mode is correct when calling *_write_msgb
  * Disable uring when building for embedded
  * osmo_io: Factor out and use common send function from backend
  * tests: Test gsmtap logging if write queue fills up

  [ Andreas Eversberg ]
  * LAPDm: Correctly count expiry of T200 during estabishment/release
  * ASCI: Add primitive to L1-SAP to switch uplink access detection on or off
  * LAPD: Prepare lapd_send_i() for RTS support
  * LAPD: Flush TX queue, if remote peer enters busy condition or rejects
  * LAPD: Always update N(R) in pending TX frames if V(R) is incremented
  * LAPD: Add support for RTS based polling and T200
  * LAPDm: Add support for RTS based polling
  * LAPDm: Add an extra queue for UI frames
  * LAPDm: Add a flag to enable suppression of subsequent REJ frame
  * LAPD: Indicate sequence error after indicating received data
  * coding: gsm0503_tch_{afs,ahs}_encode(): add ability to emit BFI
  * Fix union abis_rsl_chan_nr and abis_rsl_link_id
  * Add flag to enable RTS based polling
  * Prevent poll() in select.c to timeout too early
  * Make socket.c compile without libsctp support (--disable-libsctp)
  * osmo_io: Move notify_connected function to backend
  * osmo_io: Use poll/select to notify socket connection at osmo_io_uring.c
  * osmo_io: Reject writing messages with length of 0
  * osmo_io_poll: Use -errno as result on read error
  * osmo_io_uring: Cancel pending request, free msghdr on completion
  * osmo_io_uring: Detach msghdr from iofd before calling iofd_handle_send_completion()
  * osmo_io_poll: Declare local functions "static"
  * osmo_io: Assign const name when stealing TX msg from iofd ctx
  * osmo_io_uring: Check if osmo_fd_register fails at iofd_uring_notify_connected()
  * osmo_io: do check_mode_callback_compat() only if ioops is set at osmo_iofd_setup()
  * osmo_io_poll: Use -errno as result on write error
  * Fix file descriptor that is passed to io_uring_register_eventfd()
  * osmo_io_uring: Run check of tests/osmo_io with io_uring also

  [ Harald Welte ]
  * core: Add software UART implementation
  * add new osmo_sockaddr_from_str_and_uint() function
  * io_uring: add some more source code comments/docs
  * osmo_io: rename unsupported SCTP mode to OSMO_IO_FD_MODE_SCTP_RECVMSG_SEND
  * osmo_io: Reject unknown/unsupported modes in osmo_iofd_setup()
  * sim/class_tables: Prevent out-of-bounds access
  * libosmosim: Support Microsoft smart card discovery process
  * Add a GSM RLP decoder and encoder
  * rlp: Add support for 576bit RLP frames
  * osmo_io: Change struct osmo_io_ops to contain struct, not union
  * osmo_io: sendmsg/recvmsg support
  * osmo_io: Add osmo_io_get_ioops() function
  * ctrl: Don't expose write_queue in ctrl_cmd_send() api
  * cbsp: Add osmo_cbsp_segmentation_cb for message segmentation
  * osmo_io: Guard osmo_iofd_register() with invalid file descriptor
  * osmo_io: Log error message in case call-backs incompatible with mode
  * osmo_io: Don't pretend to support backends without close_cb
  * osmo_io: avoid OSMO_ASSERT one each API call
  * osmo_io: Avoid implementing non-existant situations
  * ctrl: re-introduce duplicate declaration of ctrl_cmd_send()
  * io_uring: more verbose error messages if io_uring setup fails
  * io_uring: check all operations in osmo_iofd_uring_init()
  * osmo_io: Dont use __linux__ but !EMBEDDED
  * osmo_io: Massive improvement of API documentation
  * osmo_io: Make {write,sendto,sendmsg} completion callback optional
  * Add funding link to github mirror
  * libosmosim: class_tables: Resolve conflicting CLA=8x INS=F2 definitions
  * libosmosim: class_tables: Fix GlobalPlatform CLA=8x INS=CA/CB GET DATA
  * [cosmetic] libosmosim/class_tables: Add a quick reminder about the cases

  [ Alexander Couzens ]
  * gsup: add message type for osmo-epdg CEAI interface
  * gsup: fix error log message
  * gsup.h: define newly added PCO IE

  [ Neels Hofmeyr ]
  * util: add OSMO_STRBUF_REMAIN()
  * util: add osmo_strbuf macros to manipulate the strbuf tail
  * logging: fix nul octets in log output / use osmo_strbuf
  * comment: gsm_04_08.h: add a spec hint
  * sockaddr_str: add conversion to,from osmo_sockaddr
  * fix update_exp: s/soft_uart.ok/soft_uart_test.ok
  * add jhash.h, copied from linux/jhash.h

  [ Philipp Maier ]
  * ecu: fix alignment of fr_ecu_state

  [ Eric ]
  * logging: add log level cache

  [ Hoernchen ]
  * Revert "logging: add log level cache"
  * Revert "Revert "logging: add log level cache""

  [ Matan Perelman ]
  * ctrl: Add lchan node

  [ Oliver Smith ]
  * osmo-release: don't default to REL=patch
  * osmo-release: use script from PWD if available
  * osmo-release: use colored output
  * osmo-release: rework cleaning of TODO-RELEASE
  * osmo-release: fix libversion updating comment

 -- Oliver Smith <osmith@sysmocom.de>  Wed, 24 Jul 2024 10:19:45 +0200

libosmocore (1.9.0) unstable; urgency=medium

  [ Oliver Smith ]
  * gsm0808_dec_channel_type: add missing len check
  * test_gsm0808_enc_dec_channel_type -> …_speech
  * gsm0808_chan_indicator: add SPEECH_CTM_TEXT_TELEPHONY
  * gsm0808_enc/dec_channel_type: support data
  * Fix typo endianess -> endianness
  * Run struct_endianness.py
  * gsm0808_dec_channel_type: fix dec of ch_rate_type
  * tests: add test_gsm0808_enc_dec_channel_type_sign
  * gsm0808_enc/dec_channel_type: fix transparent flag
  * libosmocore.map: add tall_{ctr/msgb}_ctx
  * rsl: put values for Channel Mode into enums
  * rsl: RSL_CMOD_CSD_T: make enum values consistent
  * gsm0808: make CSD enum values consistent with RSL
  * on_dso_load_select: run after on_dso_load_ctx
  * debian: set compat level to 10
  * debian: depend on liburing-dev for debian >= 11
  * contrib/libosmocore.spec: centos7: disable uring
  * debian: fix build on ubuntu 20.04 without liburing

  [ Neels Hofmeyr ]
  * add contrib/talloc_count.sh
  * add osmo_prim_operation_name()
  * add gsm0808_amr_modes_from_cfg
  * improve test output for gsm0808_sc_cfg_from_gsm48_mr_cfg()
  * fix 'make vty-test' for --disable-gb
  * fix 'make vty-test' for --disable-external-tests --enable-gb
  * contrib/talloc_count.sh: improve hexadecimal masking
  * error log: osmo_sock_init2_multiaddr() v4/v6 mix
  * logging vty: probe 'print' and 'logging timestamp' cmds
  * vty: show bug in implicit go_parent_node
  * vty: fix vty->index for implicit go_parent_node
  * vty: move struct vty_parent_node to private API
  * gsm: add osmo_mobile_identity_decode_from_l3_buf()
  * gsm_04_08_gprs: add IEI "GMM TMSI Based NRI Container"
  * improve API for osmo_routing_area_id

  [ Max ]
  * socket: propagate error in osmo_sock_unix_init() to the caller
  * GSMTAP: fix typo
  * GSMTAP: add gsmtap_source_init*2()
  * GSMTAP: add missing parameter docstrings
  * logging: print talloc report on exit from vty test

  [ Philipp Maier ]
  * i460_mux.c fix apidoc
  * i460_mux: make osmo_i460_subchan_count public
  * gsmtap_util: remove whitespace at the end of line
  * i460_mux: add define constant for maximum number of subchannels
  * codec: add define constants for RFC5993 and TS101318
  * gprs_bssgp_rim: also print NSEI when sending RIM messages
  * gprs_bssgp_rim: allow sending of encoded RIM messages
  * gprs_bssgp_rim: add decoder for RIM ROUTING ADDRESS

  [ Vadim Yanitskiy ]
  * gsm: fix invalid check in gsm48_decode_ssversion()
  * gsm: add missing features to osmo_bts_features_names[]
  * gsm: ensure completeness of osmo_bts_features_{descs,names}[]
  * gsm/{bsslap,bssmap_le}: zero-initialize structs using memset()
  * msgb: use OSMO_ASSERT in msgb_alloc_headroom[_c]()
  * gsm: use OSMO_ASSERT() in osmo_iuup_msgb_alloc_c()
  * debian/control: make libosmocore-doc depend on libosmo{ctrl,gb}-doc
  * debian/control: fix typo
  * doxygen: also generate documentation for libosmo{sim,usb}
  * contrib/struct_endianness.py: simplify file extension check
  * doxygen: remove documentation for non-existent params
  * doxygen: fix various typos in commands \param and \returns
  * gsm0502: add burst length definitions from chapter 5.2
  * coding: clean up Makefile.am
  * utils/Makefile.am: remove duplicate libosmogsm.la
  * utils/Makefile.am: do not overwrite AM_CFLAGS
  * utils/osmo-stat-dummy/Makefile.am: drop empty variables
  * gsmtap: add missing entries to gsmtap_type_names[]
  * tests/v110: assert(user_data_chunk_bits) in test_ra1()
  * isdn: fix identical operands in v110_adapt_IR8000_to_2400()
  * gsm_04_08: document/clarify enum gsm48_chan_mode values
  * gsm_04_08: add more enum gsm48_chan_mode speech values
  * gsm_04_08: add more enum gsm48_chan_mode data values
  * gsm0808: handle new enum gsm48_chan_mode speech/data values
  * tests: make VTY tests depend on the respective binaries
  * fixup (partial revert): "coding: clean up Makefile.am"
  * core: remove unnecessary #include <osmocom/core/talloc.h>
  * libosmocore.map: add missing symbols needed for osmo-qcdiag
  * coding: fix doxygen doc for _xcch_encode_cB()
  * copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH
  * coding: use GSM_MACBLOCK_LEN gsm0503_tch_fr_decode()
  * coding: gsm0503_tch_f96_[de]interleave() not applicable to TCH/F2.4
  * coding: declare gsm0503_tch_f96_[de]interleave()
  * coding: fix API doc: TCH/H needs 6 bursts, not 8
  * coding: fix API doc: TCH/AFS vs TCH/AHS
  * coding: use gsm0503_tch_hr_decode2() in coding_test
  * gsm: fix convolutional code definition for TCH/F4.8
  * coding: implement TCH/F9.6, TCH/[FH]4.8, TCH/H2.4, TCH/F14.4
  * coding: implement dedicated codec API for FACCH/[FH]
  * coding: test FACCH/[FH] bitstealing in test_csd()
  * coding: fix _tch_csd_burst_map(): do not overwrite FACCH
  * struct osmo_sub_auth_data: remove OSMO_DEPRECATED_OUTSIDE
  * coding: fix a copy-paste bug in gsm0503_tch_afs_decode_dtx()
  * gsm: add gsm0502_fn2ccch_block()
  * gsm0502: cosmetic: use ARRAY_SIZE in gsm0502_fn2ccch_block()
  * ipa: fix a typo in ipa_ccm_rcvmsg_base(): PING -> PONG
  * core: fix pointer access in msgb_l[1-4] macros
  * coding: remove redundant memset()s in gsm0503_tch_fr{96,144}_encode()
  * coding: implement encoding/decoding API for TCH/F2.4
  * lapdm: cosmetic: simplify lapdm_phsap_up(), use OSMO_PRIM[_HDR]
  * gsm_08_08: define GSM0808_SCT_EXT (separately)
  * gsm48_ie: fix gsm48_encode_bearer_cap(): encode bcap->data.transp
  * isdn: mux_timeslot_provide_bits(): remove unused 'count'
  * .gitignore: add include/osmocom/core/socket_compat.h
  * tests/{v110,gsm44021}: change naming: 'test_' -> '_test'
  * gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES
  * gsm_12_21.h: fix typo: NM_IPAC_F_CHANT_P{C->D}CHF

  [ Pau Espin Pedrol ]
  * gsm_04_60.h: Better describe origin of enum osmo_gprs_nmo
  * Move libosmogsm TS 44.060 declarations under include/osmocom/gsm/
  * libosmogb.pc.in: Fix missing dependency on libosmogsm
  * gsm: gsm_gsmtime2fn(): constify param
  * cosmetic: stats_tcp: Fix typo in comment
  * logging: Unregister osmo_fd before closing fd
  * select: Optimize osmo_fd_get_by_fd
  * select.c: Clarify osmo_fd_(un)register() API expectations of registered fd
  * select.c: Clarify osmo_fd_unregister() can only be called on registered osmo_fds
  * configure.ac: Fix logic enabling osmo_fd fd checks
  * configure.ac: Fix typo in enable flag description
  * select.c: osmo_fd_unregister(): Avoid assert hit with old buggy users of the API
  * tests/Makefile.am: Move system libs at the end of list
  * tests/Makefile.am: Drop duplicated libosmogb.la in LDADD
  * tests/Makefile.am: Move LDADD to right position
  * logging.c: Sanitize calls to osmo_fd_unregister()
  * Fix parsing of TLV_TYPE_SINGLE_TV
  * gsm: Add missing TS 24.008 SM layer IEs
  * gsm_04_08_gprs.h: Add missing GMM IEs for T3302 and T3346
  * gsm_04_08_gprs.h: Add enum field for GMM 'P-TMSI type' IE
  * gb: ns2: Rename parameter name in gprs_ns2_nsvc_by_sockaddr_bind()
  * tlv: Show bug in decoded tlv_parsed for type TLV_TYPE_SINGLE_TV
  * Fix 'Fix parsing of TLV_TYPE_SINGLE_TV'
  * ns2: Count transmitted/dropped in each layer implementation
  * cosmetic: codec/Makefile.am: list sources one file per line
  * osmo_io: Make name optional, add _set_name() API
  * socket: Cache errno before calling further functions
  * gsm0502.h: Document spec number
  * gsm: Add missing IE definition for GMM Receive N-PDU Number list
  * exec: osmo_system_nowait2(): Improve logging and error checks
  * sockaddr_str: Introduce macro OSMO_SOCKADDR_STR_FMT_ARGS_NOT_NULL
  * cosmetic: lapdm: Fix typo in comment
  * tlv: Introduce API msgb_tv32_push()
  * lapdm: Track fn of primitives in struct lapdm_msg_ctx
  * gsm: Introduce functions to convert between FN and RFN (Reduced FN)
  * socket: Add osmo_sock_init flag to enable SCTP ASCONF features
  * rsl: Introduce new osmocom extension IE RSL_IE_OSMO_ABS_FRAME_NUMBER
  * lapdm: Append RSL_IE_OSMO_ABS_FRAME_NUMBER to RSLms msgs towards upper layers
  * Revert "lapdm: Append RSL_IE_OSMO_ABS_FRAME_NUMBER to RSLms msgs towards upper layers"
  * Revert "rsl: Introduce new osmocom extension IE RSL_IE_OSMO_ABS_FRAME_NUMBER"
  * lapdm: Update public lapdm_msg_ctx upon CCCH data ind
  * socket: Avoid aborting socket creation if setsockopt for ASCONF fails
  * gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_RLC_CFG{,_2,_3} values
  * gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_BSSGP_CFG values
  * gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_NS_CFG values
  * socket: Remove OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED, add osmo_sock_init2_multiaddr2()
  * socket: Support setsokopt SCTP_INITMSG in osmo_sock_init2_multiaddr2()

  [ Matan Perelman ]
  * gsm0808_enc_channel_type: Add spare byte

  [ Harald Welte ]
  * Implement the XOR-2G authentication algorithm
  * New unit test for XOR-2G authentication
  * Rename OSMO_AUTH_ALG_XOR to OSMO_AUTH_ALG_XOR_3G
  * convolutional coding for CSD
  * Interleaving for CSD
  * libosmocore.map: Add two missing entries for gsmtap*2() API
  * Makefile.am: Make libraries depend on .map files
  * isdn: Add V.110 encoder/decoder
  * gsm: TS 44.021 modified V.110 frame encoding/decoding support
  * gsm_08_58: Document IPAC RTP CSD modes in at least a few words
  * New osmo-gsmtap-logsend utility
  * gsmtap.h: Define a packet type for encapsulation of GSM RLP frames
  * rate_ctr: Add rate_ctr_add2() similar to rate_ctr_inc2()
  * Add osmo_io with initial poll backend
  * Add osmo_gsm48_si1ro_nch_pos_{encode,decode} functions
  * cosmetic: Fix spec reference in RSL header file
  * gsm_08_58.h: Add 'struct rsl_ie_nch_drx_info'
  * libosmogsm: Support authentication with 256-bit K and/or OP/OPc
  * libosmogsm: Add OSMO_ASSERT() to ensure correct algorithm
  * libosmogsm: Ensure MILENAGE + XOR-3G K length is 128 bit
  * osmo-auc-gen: Convert over to osmo_auth_gen_vec*2 API
  * libosmogsm: Allow auth API caller to specify RES length
  * libosmogsm: Factor out the C2 derivation function
  * libosmogsm: Avoid executing MILENAGE crypto twice (for UMTS and GSM)
  * libosmogsm: Add support for TUAK authentication algorithm
  * gsmtap_source_free(): Don't crash if NULL is passed

  [ Daniel Willmann ]
  * Add libosmocore.map
  * Add osmo_sockaddr_size() to return the size of the variant used
  * tests: Add initial osmo_io tests
  * osmo_io: Avoid read of uninitialized variable
  * gpsr_ns2_udp: Use osmo_io_fd instead of osmo_fd
  * osmo_io: Improve handling and documentation of segmentation_cb
  * osmo_io: Support detecting non-blocking connect()
  * osmo_io: Consistency - put read/recv callback first in osmo_io_ops
  * osmo_io: Don't make msg in write_cb const
  * osmo_io: Remove osmo_iofd_read/write_enable/disable
  * socket: Ensure fd is not negative in osmo_sock_get_name_buf()
  * osmo_io: Return early on error in osmo_iofd_register()
  * osmo_io: Use LOGPIO instead of LOGP
  * osmo_io: Use bitfield for various boolean flags
  * osmo_io: Make the test more deterministic between backends
  * osmo_io: Fix write_enable handling in iofd_txqueue
  * osmo_io: Remove missing functions from map file
  * osmo_io: Add osmo_iofd_notify_connected()
  * osmo_io: Document expectation that segmentation_cb() can modify msgb
  * osmo_io: Add function to change the maximum length of the tx_queue
  * cosmetic: Fix doc comment
  * osmo_io(cosmetic): End in a dot for doxygen AUTO_BRIEF
  * osmo_io: Fix length calculation in iofd_handle_segmentation()
  * osmo_io: Ensure correct ownership of msgb when sending
  * osmo_io: Use MSG_NOSIGNAL to avoid SIGPIPE on write
  * osmo_io: Add iofd_handle_recv()
  * osmo_io: Avoid potential double free when sending msgb
  * osmo_io: Add io_uring backend
  * ns2: Add VTY option to change the max write queue size for UDP
  * osmo_io: Change parent of msghdr to iofd (instead of msg)
  * osmo_io: Use local variable to reference msghdr->msg

  [ Eric ]
  * fix _thread order
  * logging: remove log_initialized(void)
  * gsm48_rest_octets: fix wrong value

  [ Mychaela N. Falconia ]
  * codec: add osmo_efr_check_sid() function
  * codec: add SID classification functions per GSM 06.31 & 06.81
  * codec: add SID preening functions for FR & EFR
  * codec: add osmo_{fr,efr}_is_any_sid() inline functions
  * codec: add osmo_gsm611_silence_frame[] datum
  * codec cosmetic: move old FR ECU code to ecu_fr_old.c
  * codec: replace GSM-FR ECU with new implementation
  * coding: fix decoding of EFR triplicated bits
  * gsm0503_tch_hr_decode(): look at all 8 stealing bits
  * gsm0503_tch_hr_encode(): accept both TS101318 and RFC5993 payloads
  * gsm0503_tch_hr_decode2(): new function, emits TS101318 format
  * libosmocoding.map: export gsm0503_tch_hr_decode2()
  * coding cosmetic: gsm0503_tch_{fr,hr}_encode(): remove extra spacing
  * codec: new functions osmo_{fr,efr}_sid_reset()
  * codec: new function osmo_hr_sid_reset()
  * coding: gsm0503_tch_{fr,hr}_encode(): add ability to emit BFI
  * ecu: add is_dtx_pause() method

  [ arehbein ]
  * core: Check return value of osmo_fd_register()
  * core: Add function to update osmo_io_ops field for osmo_io_fd
  * core/osmo_io: Rename variables for readability
  * core/osmo_io: Fix reception of partial packets
  * gsm/ipa: Add segmentation callback
  * Revert "gsm/ipa: Add segmentation callback"
  * select: Prevent negative index lookup on osmo_fd_lookup.table

  [ Andreas Eversberg ]
  * ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions
  * ASCI: Add IE transcoding according to 3GPP TS 48.008
  * Added generation of include/osmocom/core/socket_compat.h
  * ASCI: Add message definition and encoding according to 3GPP TS 48.008
  * Add support for sending Bter UI frames at lapdm.c
  * Add support for receiving Bter UI frames at lapdm.c
  * Add short L3 header to gsm_04_08.h
  * Fix short L3 header of SI 10 at gsm_04_08.h
  * ASCI: Add Notification/NCH message to gsm_04_08.h
  * lapdm: Do not return an error when enqueuing a frame
  * Add VGCS UPLINK GRANT message structure to gsm_04_08.h
  * ASCI: Also display group/broadcast call message names
  * Allow 'configure <cr>' at VTY to enter config mode
  * ASCI: Add decoding of mobile identity in TALKER INDICATION
  * ASCI: Add missing check for return value of gsm0808_enc_speech_codec_list2()
  * ASCI: Add BCC call state definitions
  * LAPDM: Use correct offset to short header on recevied frame
  * ASCI: Add definition for TALKER INDICATION and UPLINK RELEASE

  [ Sylvain Munaut ]
  * gsm: Fix comment for TCH/F4.8 code
  * gsm: Improve the TCH/H2.4 coding routines

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 12 Sep 2023 13:15:52 +0200

libosmocore (1.8.0) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * fix uninitialized err pointer passed to osmo_bssap_le_dec()
  * gsm0408_test: do not return early in test_bearer_cap()
  * gsm0408_test: add a testcase for gsm48_decode_bearer_cap()
  * gsm48_ie: fix coding style: while is not a function
  * gb: fix uninitialized ptr access in bssgp_encode_rim_pdu()
  * fsm: add unit tests verifying state timeout s/ms accuracy
  * fsm: fix state_chg(): pass microseconds to osmo_timer_schedule()
  * tests/tdef: assert pointer returned by osmo_tdef_get_entry()
  * gb/gprs_ns: call osmo_timer_del() unconditionally
  * fsm: osmo_fsm_{event,inst,state}_name(): make *fi pointer const
  * logging: add a new category DLCSN1 for libosmo-csn1
  * {gb,sim,usb}: ensure -no-undefined is present in *_la_LDFLAGS
  * include: use '#pragma once' everywhere
  * gsm0502: use parentheses in GSM_TDMA_FN_{SUM,SUB} macros
  * configure.ac: fix 'AM_CONDITIONAL(ENABLE_GNUTLS, false)' listed twice
  * {gsm,gb}/Makefile.am: drop undefined $GCC_FVISIBILITY_HIDDEN
  * gsm0502: gsm0502_fn_remap(): use GSM_TDMA_FN_SUB() macro
  * */Makefile.am: do not mix up AM_CFLAGS with AM_CPPFLAGS
  * gsm0808: cosmetic: switch is not a function
  * gsm0808: remove unneeded assignment in enc_speech_codec()
  * gsm0808: remove redundant assert() in enc_speech_codec()
  * gsm0808: remove over-defensive assert()s for function parameters
  * gsm0808: add gsm0808_enc_speech_codec[_list]2()
  * gsm0808: use new gsm0808_enc_speech_codec[_list]2() API
  * gsm48_ie: gsm48_decode_freq_list(): make 'cd' argument const

  [ Pau Espin Pedrol ]
  * iuup: Explicitly mark default case as unexpected with assert
  * cbsp: avoid potential msgb write overflow in osmo_cbsp_recv_buffered
  * gsm_23_041.h: Define CBS ETWS Warning Type values
  * cbsp: Return error if decoding any of the cell id lists fail
  * tests: Run smscb/gsm0341_test during make check
  * cbsp: Guard against malformed msgb without l1h,l2h being passed
  * cbsp: Fix decoding of Fail List
  * cosmetic: tlv.h: Fix trailing whistespace
  * tlv.h: Fix TLVP_PRESENT returning a pointer instead of a boolean
  * gsm: Add BTS feature for Osmux
  * gsm: rsl: Define new osmocom extension TLV IE to pass Osmux CID
  * gsm: bts_features: Add missing entries to osmo_bts_features_names
  * utils.h: protect param with parenthesis in OSMO_BYTES_FOR_BITS()
  * vty: Allow using hex representations in cmd numeric ranges
  * socket.h: Reorder sockaddr APIs to have them all together
  * socket: Introduce API osmo_sockaddr_is_any
  * gsm: constify several readonly params
  * ctrl: error if program forgot to initialize the ctr handler before installing cmds
  * socket.h: Introduce API osmo_sockaddr_netmask_to_prefixlen()
  * Move src/*.{c,h} to src/core/
  * src/core/Makefile.am: reformat SOURCES list
  * Split include/Makefile.am content into subdirs
  * Makefile.am: Remove unexsiting all_includes variable
  * Fix all references to config.h
  * Introduce netns API
  * Introduce netdev API
  * Introduce tundev API
  * configure --enable-libmnl: Add libmnl to libosmocore.pc.in Requires
  * netdev: Fix compilation building with --disable-libmnl
  * tun: Fix potential unpaired call to osmo_netns_switch_exit()
  * gprs_ns2_fr: use osmo_netdev to monitor and operate network device
  * debian/rules: Fix moved path crc*gen.c

  [ Mychaela Falconia ]
  * gsm48_ie: fix parsing of Bearer capability IE without octet 3a

  [ Harald Welte ]
  * sim/class_tables: Add GET IDENTITY, SUSPEND UICC, EXCHANGE CAPABILITIES
  * allocate VTY port number 4270 for osmo-isdntap
  * logging.h: Allocate DLM2PA and DLM2UA for libosmo-sigtran
  * Support building with -Werror=strict-prototypes / -Werror=old-style-definition
  * Disable -Wstrict-prototypes for logging_vty_add_cmds()
  * vty/logging.h: Avoid -Werror=pragmas error in C++ code
  * Add -Werror=implicit-int -Werror=int-conversion -Werror=old-style-definition
  * Fix typos in copyright statements.
  * gsmtap.h: Add definitions for various ISDN sub-types
  * create libosmoisdn sub-library
  * isdndlc: Fix documentation

  [ Oliver Smith ]
  * gsm0808_enc_aoip_trasp_addr: add length check
  * utils/osmo-stat-dummy: check for ENABLE_UTILITIES
  * d/control: libosmocore-dev: depend on libmnl-dev
  * gsm_08_08.h: fix typo in GSM0808_DATA_FULL_PREF

  [ Alexander Couzens ]
  * gprs_ns2: add vty `nse <0-65535> restart sns`
  * gb: add bssgp2_enc_flush_ll encode FLUSH-LL

  [ Neels Hofmeyr ]
  * enrich API doc for gsm0808_speech_codec
  * gsm0408_test: do not print errno in expected output
  * comments: gsm_08_08.h: AMR cfg: explain in much more detail
  * osmo_tdef_get(): clarify API doc on val_if_not_present

  [ Max ]
  * Ignore osmo-ns-dummy
  * Add function to guess AF_UNSPEC address
  * Add osmo_sockaddr_strs_to_str()
  * cosmetic: remove trailing space
  * cosmetic: make linter happy with LAPD code
  * LAPD: log unknown format value
  * LAPD: use bool for T200 reset flags
  * msgb: expand copy test
  * doc: correct typo in ticket reference
  * msgb: introduce extended copy functions
  * Add define for unset Frame Number
  * LAPD: move tx_hist code into static functions
  * osmo-ns-dummy: add ctrl interface
  * jenkins_arm.sh: disable external tests
  * vty: fix doc typo
  * telnet_init_dynif: propagate error
  * telnet_init_dynif: don't allow negative port
  * rate_ctr: convert to timerfd
  * rate_ctr: drop rate estimation code
  * osmo-stat-dummy: add rate counters and statsd tester
  * ctrl: add optional port to bind command
  * ASCI: add VBS/VGCS support to BTS features list
  * SI: add RR short PD message types
  * Fixup .gitignore
  * SI: add missing header
  * Add SI10 support

  [ neels ]
  * Revert "Add osmo_sockaddr_strs_to_str()"
  * Revert "Add function to guess AF_UNSPEC address"

  [ Daniel Willmann ]
  * use_count: Return if uc is NULL

  [ Keith Whyte ]
  * Fix LCLS-CONNECT-CONTROL generation
  * Fix Typo in gsm0808_msgt_names[]

  [ Philipp Maier ]
  * msgb: assert msgb->lXh to be not NULL
  * msgb: do not use msgb_l4 instead of msgb_sms
  * bits: fix typo
  * uitils: add floored and euclidian modulo functions
  * gsm0408_test: add unittest for gsm_gsmtime2fn()
  * gsm_utils: improve gsm_gsmtime2fn()

  [ arehbein ]
  * gb/vty: Show if NSVC is blocked locally by O&M/vty or by remote
  * libosmocore: Deprecate APIs telnet_init(_dynip)()
  * libosmocore:  Transition to use of 'telnet_init_default'

  [ Eric ]
  * bitgen test: fix concat macro

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 07 Feb 2023 11:20:41 +0100

libosmocore (1.7.0) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * .gitignore: add utils/osmo-aka-verify binary
  * tests/vty: fix use of GNU 'missing =' extension in designator
  * debian/control: minimum version of libtalloc-dev must be >= 2.1.0
  * tests/tdef: rename the binaries to end with '_test'
  * tdef: fix wrong path in documentation: tests/vty -> tests/tdef
  * bitvec_read_field(): indicate errors using errno
  * bitvec_read_field(): fix incorrect bit-shift issue found by UBSan
  * bitvec_read_field(): optimize by expanding bytenum_from_bitnum()
  * tests/testsuite.at: ensure empty stderr for the bitvec_test
  * VTY: enable talloc introspection for OTC_GLOBAL
  * VTY: implement 'no log gsmtap [HOSTNAME]' command
  * contrib/libosmocore.spec.in: mention osmo-config-merge in utils
  * gsm_7bit_encode_n(): use regular malloc() instead of calloc()
  * tests/logging: ensure both stream and wqueue modes are tested
  * tests/logging: also test printing the filename information
  * logging: fix coding style issues in _output_buf()
  * logging: fix printing of '\0' when filename printed last
  * tests/logging: merge both logging_test_{stream,wqueue}.err
  * core/utils.h: add OSMO_LIKELY / OSMO_UNLIKELY macros
  * core/utils.h: wrap OSMO_ASSERT() with do { ... } while (0)
  * core/msgb.h: make use of OSMO_LIKELY / OSMO_UNLIKELY
  * core/utils.h: make use of OSMO_LIKELY in OSMO_ASSERT
  * libosmocodec: osmo_hr_check_sid(): simplify the logic
  * contrib/jenkins_amd64.sh: remove FreeBSD specific quirks
  * bssmap_le: support additional IEs in Perform Location Request
  * Use internal <osmocom/core/talloc.h> everywhere
  * coding: fix comments for detect_afs_sid_{first,update,onset}
  * coding: cosmetic: move 'dtx_prev' to the scope where it's used
  * coding: use switch statement in gsm0503_tch_a[fh]s_decode_dtx()
  * coding: properly handle AFS_SID_UPDATE frames in DTX mode
  * coding: prevent marking FACCH frames as AMR's special DTX frames
  * tests/dtx: test detection/decoding of A[FH]S_SID_UPDATE
  * tests/dtx: test tagging of FACCH/[FH] frames
  * coding: fix decoding of AHS_SID_UPDATE frames (BER ~50%)
  * coding: do not reset codec ID on receipt of DTX frames
  * coding: add gsm0503_detect_a[fh]s_dtx_frame2()
  * coding: separate gsm0503_tch_a[fh]s_decode_inband()

  [ Eric ]
  * fix isdigit taking unsigned as input
  * logging: allow disabling macros using a new define: LIBOSMOCORE_NO_LOGGING

  [ Daniel Willmann ]
  * bssgp_bvc_fsm: Move log message to the correct place
  * bssgp_bvc_fsm: Add a hook to notify when a reset was acknowledged

  [ Harald Welte ]
  * logging: Fix memory leak in case async log write queue overflows
  * write_queue: Document it that caller is responsible if enqueue fails
  * gsmtap: Add gsmtap_sendmsg_free() as alternative to gsmtap_sendmsg()
  * Introduce CRC and FSM for IuUP (user plane) as used in 3G RTP data
  * tcp_stats: fix compilation on CentOS 7
  * iuup: Fix signed/unsigned loop counter control flow issue
  * src/conv.c: Align better with Osmocom coding style
  * bitvec: Fix -Wsign-compare warnings
  * utils: Fix -Wsign-compare warnings
  * log_taget_find() should use enum log_target_type, not int
  * bits.c: Fix -Wsign-compare warnings
  * socket, select: Fix -Wsign-compare warnings
  * msgb: Fix -Wsign-compare warnings
  * osmo_libusb: Fix NULL check in osmo_usb_removed_cb()
  * osmo_libusb: Use libusb_get_pollfds() to get initial file descriptors
  * osmo_libusb: Print log message on libusb initialization error
  * gsm0808: Test if we properly decode a SRVCC cell identifier list
  * usb: Match device by VID/PID without path/addr if it is unique
  * clean-up pkg-config files: Make use of "Requires" as documented
  * debian/control: libosmocore-dev must depend on libsctp-dev and libusb-1.0-0-dev
  * libosmo{gb,vty}.pc.in: Add talloc to 'Requires'
  * libosmocore.spec: Make libosmocore-devel require libsctp
  * libosmovty: Link libosmovty against libpthread
  * vty: Support platforms that don't support pthread_getname_np()
  * vty: Add a 'skip-zero' version of 'show stats' and 'show rate-counters'
  * stats: Functions with no arguments should specify(void)
  * stats: Avoid NULL pointer deref in allocation failure paths.
  * stats: don't try to save unknown stats reporter types
  * fsm_vty: use unsigned int when left-shifting 31 bits!
  * update git URLs (git -> https; gitea)

  [ Eric Wild ]
  * logging: make LIBOSMOCORE_NO_LOGGING work as expected

  [ Oliver Smith ]
  * treewide: remove FSF address
  * select_main: don't poll forever during shutdown
  * Cosmetic: linuxlist.h: fix misleading comment

  [ Philipp Maier ]
  * stats: fix typo
  * stat_item: tolerate NULL pointer argument in osmo_stat_item_group_free
  * select: gather statistics for TCP connections
  * stats_tcp: use a default batch size of 5 instead of 1
  * stats_tcp: fix stats item identifier
  * gsm23003: fix docstring for osmo_plmn_from_bcd()
  * iuup: do not use illegal characters in state/event names.
  * logging: log to stderr when logging is not initialized
  * reader: more meaningful null pointer check in get_sw

  [ Pau Espin Pedrol ]
  * include/: Adapt some headers to match contrib/struct_endianess.py format
  * logging: Fix Not enough tailroom msgb_put in _output_buf callers
  * osmo-release.sh: Use variable containing bumpversion path everywhere
  * iuup: Fix decoding of 1byte-length subflow size fields
  * iuup: Submit RNL-STATUS-Initialization.ind upon rx of Init
  * iuup: Improve CRC checksum error logging
  * gsm: [ABI BREAK] Support CellId SAI, change CellId CGI-PS id number
  * gsm: lapd_core:  Change log line NOTICE->INFO
  * gsm0808_test: Add new unit test showing dec error
  * gsm0808: Fix decoding of IE GSM0808_IE_LCS_CLIENT_TYPE
  * cosmetic: gsm_08_08.h: Add space between assignment sides
  * gsm0808: Add missing IEs in bss_att_tlvdef
  * jenkins: Validate IEs are added to tlv_definition
  * libosmocore.pc.in: put libsctp in Requires.private
  * configure: Support libsctp < 1.0.17 without libsctp.pc
  * rsl: Fix tlv_parse of IPAC_DLCX_IND message
  * jenkins: Validate gsm 08.58 IEs are added to tlv_definition
  * gsm: Introduce helper rach_tx_integer_raw2val()
  * cosmetic: logging.h: fix indentation
  * gsm_12_21.h: Fix abis_nm_avail_state InTest and Failed values
  * gsm_12_21.h: Add header description pointing to TS files
  * coding: Refactor function to avoid gcc false positive warn
  * osmo-arfcn: Fix false positive in gcc 12.1.0
  * coding: Use ARRAY_SIZE macro
  * iuup: Rework API to support RFCI IDs != RFCI index
  * cosmetic: iuup.h: Fix indentation
  * iuup: Fix IPTIs_present not set to 0 if no IPTIs received
  * cbsp: Add enum and value string for Cause
  * iuup: Add missing state to bitmask for st SMpSDU_Data_Transfer_Ready
  * iuup: Drop unused events
  * tests/iuup: Showcase IuUP stack not answering subsequent Init msgs
  * iuup: Fix Handling of subsequent Initialization msgs
  * vty: command.c: Add assert

  [ Sylvain Munaut ]
  * conv: Fix the traceback for tail biting codes
  * build: Disable libusb and libmnl for embedded builds

  [ Neels Hofmeyr ]
  * PFCP: add DLPFCP and osmo-upf port numbers
  * ports.h: add osmo-pfcp-tool ports
  * add osmo_sockaddr_to_str_c(), osmo_sockaddr_to_str_buf2()
  * log: socket.c: rather use the osmo_sockaddr_str _FMT
  * add osmo_quote_str_buf3, osmo_escape_str_buf3
  * add osmo_sockaddr_from/to_octets()
  * follow-up to osmo_sockaddr_from/to_octets()
  * BSSAP: HO Request Ack: add missing Codec List (BSS Supported)
  * add osmo_sockaddr_set_port()
  * osmo_time_cc: rate_ctr presence should not affect counting
  * cosmetic tweak in Makefile.am

  [ Michael Iedema ]
  * stats: use tcp stat names as provided

  [ Karsten Ohme ]
  * APDU parsing support for GlobalPlatform

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 28 Jun 2022 17:00:51 +0200

libosmocore (1.6.0) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * osmo-release.sh: Check configure.ac dependency versions match those in rpm *.spec.in
  * osmo-release.sh: Drop repeated DRY_RUN early exit
  * osmo-release.sh: Check LIBVERSION matches rpm *.spec.in
  * osmo-release.sh: Properly rearrange var init and sanity checks
  * tests/gb: Fix printf format errors on ARM 32 bits
  * Skip RPM checks if no *.spec.in available
  * gsm_08_08.h: Add extra field elements defined in other sections
  * cosmetic: tlv_parser: fix typo in func description
  * cosmetic: Fix trailing whitespace
  * gsm: Support Sending Last EUTRAN PLMN Id in Handover Required
  * cosmetic: fix typo in comment
  * gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef
  * osmo_timer_pending: Make arg const
  * gb: Fix naming and export symbol bssgp_enc_rim_pdu
  * Revert "gb: Fix naming and export symbol bssgp_enc_rim_pdu"
  * gb: Fix missing exporting symbol bssgp_encode_rim_pdu
  * vty: Implement missing public API host_config_file()
  * vty: Introduce API vty_read_config_filep
  * range_enc_determine_range(): Don't dereference array on size=0
  * stat,rate_ctr: Introduce new API to get counter at given index
  * Use new stat item/ctr getter APIs
  * stat,rate_ctr: Allow setting group name and use it at report time
  * ns2: Use NSVC bufid in stats report
  * ipaccess: Add new osmo extension IPAC_PROTO_EXT_PCU
  * bts_feature: Introduce feature to speak to PCU
  * msgb_alloc_headroom: Change size args to be uint16_t
  * ctrl: Pre-calculate required size before allocating msgb
  * ctrl: Support recovering from short write
  * cosmetic: gsm_12_21.h: Fix trailing whitespace
  * Rename osmo dyn ts enums
  * bts_feature: Introduce feature to confiure dyn ts as sdcch8
  * Make gcc 11.1.0 false positivies happy
  * cosmetic: gb/gprs_ns.c: fix trailing whitespace
  * gb/bssgp: Abort clearly if backward-compat API is used in wrong way
  * utils: Fix c++ warn in OSMO_STRBUF_APPEND
  * cosmetic: Fix missing space in comment
  * gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params
  * gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const
  * cosmetic: gsm: meas_rep.h: Fix typo in comment
  * logging: Change LLAPD category color to purple-like one
  * {ctrl,vty}/ports.h: Allocate ports for osmo-hnodeb
  * configure.ac: Depend on talloc 2.1.0
  * logging: Fix double lock of log_tgt_mutex
  * contrib/libosmocore.spec.in: Depends on talloc 2.1.0
  * osmo-release.sh: Blacklist script file from LIBVERS matches

  [ Oliver Smith ]
  * osmo-release.sh: support epoch
  * tests/stats: enable logging in test output
  * stats: log error when missing stats values
  * Revert "stats: log error when missing stats values"
  * stat_item: make next_id argument name consistent
  * stat_item: add comment with struct overview
  * stat_item: make value ids item specific
  * stats_test: restore stat_item_get_next asserts
  * stats: log error when missing stats values (v2)
  * stats: have_value is a bool, not int
  * vty: add "show uptime"
  * vty: add "show pid"
  * vty: add "shutdown"
  * vty: show uptime: use timespecsub
  * vty: clear screen with ^L
  * vty/ports: prepare formatting for a long define
  * vty/ports: move pcap server/client ports
  * tests: add 'make update_exp' target
  * tests/stats: show how last item sent may be wrong
  * stats: send real last value if no new values come

  [ Alexander Couzens ]
  * gprs_bssgp: add support for SGSN oriented RESET
  * gprs_bssgp: use BVCI_SIGNALLING/BVCI_PTM instead of 0/1
  * gprs_ns2: don't OSMO_ASSERT() while freeing NS-VC.
  * gprs_ns2: rework logging of Rx and Tx NS PDU
  * gprs_ns2: always use the same method to print NSVCs
  * gprs_ns2_vty: hide dynamic NSE information when ask for persistant only
  * gprs_ns2_vty: make the `show ns entities` and `show ns binds` look similiar
  * gprs_ns2: dump_nsvc: correct indention
  * gprs_ns2: add vty command `nsvc <nsvci> reset`
  * gprs_ns2: fix memory leaks when receiving SNS or invalid packets
  * gprs_ns2: vty: remove a white space in `show binds`
  * gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter()
  * gprs_ns2: sns: ensure the sns->alive state is correct
  * gprs_ns2: sns: remove the initial SNS NSVC if it's not part
  * gprs_ns2_vty: print a response to vty `nsvc <nsvci> (block|unblock|reset)
  * gprs_ns2: fix nsvc block and unblock vty command
  * gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED
  * gprs_ns2: add functions for SNS add/del/change-weight messages
  * gprs_ns2: sns: fix del bind()
  * gprs_ns2: vty: fix removing a bind from a SNS
  * gprs_ns2: rework id strings of nsvcs
  * gprs_ns2_sns: move selection of the next bind into own function
  * gprs_ns2_sns: bss: improve validation of configuration
  * gprs_ns2_sns: refactor local and remote entries into a struct
  * gprs_ns2_sns: refactor ns2_clear_ipv46_entries_local to use new elems functions
  * gprs_ns2_sns: use struct ns2_sns_elems in add/update/remove remote_elems
  * gprs_ns2_sns: move gss->remote specific check out of add_ip4_elem/add_ip6_elem
  * gprs_ns2_sns: add check for duplicates to add_ip6_elem()
  * gprs_ns2_sns: refactor ip4_weight_sum/ip6_weight_sum
  * gprs_ns2_sns: refactor nss_weight_sum_data -> ip46_weight_sum_data
  * gprs_ns2_sns: replace ns2_sns_type with address family
  * gprs_ns2_sns: bss: set gss->family
  * gprs_ns2: use llist_add_tail to keep order
  * gprs_ns2: fix missing notify towards the NSE when NSVC become blocked
  * gprs_ns2_vc_fsm: reset the ALIVE response time when stopping test
  * gprs_ns2: fix crash when changing the MTU
  * gprs_ns2: fix check of MTU changes for frame relay
  * gprs_ns2: correct mtu value in the log line
  * gprs_ns2: use gprs_ns2_free_bind() to clean up a bind
  * gprs_ns2: fix wrong format string in Tx Size logline
  * gprs_ns2_vty: dump_nsvc: change output depending on NSVCI
  * gprs_ns2: ensure the NSE becomes dead when FR link went down
  * gprs_ns2_udp: don't start the NSVC fsm for SNS
  * gprs_ns2_sns: refactor SNS failures into a function
  * gprs_ns2_sns: free the NSE if the SIZE PDU is not valid
  * gprs_ns2: add recursive anchor to protect against double free
  * gprs_ns2: move sns_event into internal.h to direct emit events
  * gprs_ns2_sns: rework sns clean up
  * gprs_ns2: use an event to free the nsvscs when using SNS
  * gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs
  * gprs_ns2: don't use llist_for_each when freeing an element
  * gprs_ns2_sns: implement local change weight procedure
  * gprs_ns2_sns: implement outbound SNS ADD procedures
  * gprs_ns2_sns: implement outbound SNS DEL procedures
  * gprs_ns2: also prevent recursive events when SGSN side cleans up
  * gprs_ns2: calculate the nse->*_sums before notifing the sns fsm
  * gprs_ns2: add correct filename/linenr to sns failed log message
  * gprs_ns2: improve reselection protection
  * gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present
  * gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC
  * ns2: nsvc: reject UNITDATA  when the remote BLOCK'ed
  * ns2: fix a crash when receiving a SIZE while configured
  * gprs_ns2: fix NS STATUS validation
  * gprs_ns2: fix a white space
  * gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED
  * vty: add vty_out_uptime() print the uptime to the vty
  * ns2: nse: add a uptime/downtime to track the last state change
  * ns2: nsvc: add a uptime/downtime to track the last state change
  * ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci
  * ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLOCKED cause codes
  * ns2: fsm: add comment don't answer on a STATUS with a STATUS
  * ns2: message: allow to pass a foreign NSVCI to STATUS PDU
  * ns2: correct parse a STATUS PDU which was received over a different NSVC
  * ns2: improve log line when receving a PDU with wrong NSE
  * ns2: don't forward an invalid RESET PDU to the FSM
  * ns2: correct parse a BLOCK PDU which was received over a different NSVC
  * include: add enum for UTRAN cipher

  [ Harald Welte ]
  * cosmetic: ssn: some more comments
  * gprs_ns2: Log all transmitted SNS messages
  * gprs_ns2_sns: Dispatch inbound SNS-ACK to FSM
  * gprs_ns2: Remove any references to DNS; we use DLNS in NS2.
  * gprs_ns2: Pass peer/remote sockaddr argument to ns2_create_vc()
  * TODO-RELEASE: Request increasing _LAST_OSMOVTY_NODE next release
  * gprs_ns2_sns: Implement error log in case no binds found for NSE
  * gprs_ns2_sns: Remove TODO (spec agrees, the correct cause code is used)
  * gprs_ns2_vty: Clarify VTY help string wording
  * gprs_ns2_sns: refactor ns2_sns_st_size_onenter()
  * gprs_ns2_sns: Unify handling of SNS-CONFIG for IPv4 + IPv6
  * gprs_ns2: Encapsulate setting NSE dialect
  * gprs_ns2_sns: Split allstate action in generic and BSS-specific part
  * utils: osmo-aka-verify to verify UMTS AKA (SIM side)
  * osmo-aka-verify: Fix use case with OP and not OPc
  * gprs_ns2_sns: Support for SGSN-side IP-SNS
  * gprs_ns2_sns: Add some more OSMO_ASSERT about BSS role
  * gprs_ns2_sns: Rename BSS-side states to include 'bss' in name
  * gprs_ns2: Introduce gprs_ns2_create_nse2() for SGSN side SNS
  * gprs_ns2_vty: Allow creating NSE in sgsn-role
  * gprs_ns2_sns: Don't clear remote IP endpoints in SGSN role
  * gprs_ns2_sns: Verify mandatory IE presence in incoming SNS-SIZE
  * gprs_ns2_sns: SNS-SIZE contains the actual number of local endpoints
  * gprs_ns2_sns: Assume the SGSN has a very large number of max. NSVC
  * gprs_ns2_sns: Implement checks during processing of inbound SNS-SIZE
  * gprs_ns2_vty: Permit VTY configuration of bind->accept_sns
  * gprs_ns2: dynamic NS-VC + NSE creation for IP-SNS in SGSN role
  * gprs_ns2_sns: Allow VTY configuration of default binds for IP-SNS
  * gprs_ns2: Add comments explaining the nsvc->sns_only field
  * gprs_ns2_vc_fsm: In IP-SNS/ALIVE mode, initial state is ALIVE/UNBLOCKED
  * gprs_ns2: Actually start Tns-test after SNS-CONFIG creates NS-VC
  * gprs_ns2_sns: Compute local endpoints before using them
  * gprs_ns2_sns: remove code duplication in create_missing_nsvcs()
  * gprs_ns2_sns: Don't create NS-VCs for binds outside the NSE
  * gprs_ns2_sns: Fix memory leak when creating ip[46]_local arrays
  * sim: Obtain card ATR when opening the card
  * sim: Remove 'printf' from library code
  * frame_relay: Export osmo_fr_network_free()
  * ns2: Dump frame relay state to VTY during "show ns"
  * socket: Introduce osmo_sock_set_dscp() to set socket DSCP value
  * ns2: Fix setting the DSCP value.
  * socket: Introduce osmo_sock_set_priority() helper function
  * socket: reduce code duplication, introduce socket_helper_tail()
  * socket: QoS support for all our socket init functions
  * socket: IPv6 support for osmo_sock_set_dscp()
  * gprs_ns2: Fix yet another DSCP vs. TOS mix-up
  * gprs_ns2_frgre: Ensure DSCP is sin premitted value range
  * ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP()
  * gprs_ns: Fix another DSCP vs. TOS mistake in old NS code
  * ns2: Allow setting the socket priority for a UDP bind
  * Fix ipa_ccm_make_id_resp_from_req
  * Fix ipa_ccm_make_id_resp_from_req to work at all
  * ipa_ccm_make_id_resp: Make it work at all
  * ns2: change the 'priority' setting name to 'socket-priority'
  * osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect()
  * sim: Add osim_card_{reset,close}() API
  * osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format
  * copy base64 implementation from mbedtls
  * base64: Migrate over to osmocom
  * base64: reformat using Lindent to conform to our coding style
  * osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res
  * logging: Change stderr + file target to use non-blocking write
  * logging: Avoid memcpy from stack to msgb in _file_output()
  * logging: Attempt a synchronous, non-blocking write first (file, stderr)
  * rate_ctr: Make it safe to call rate_ctr_init() several times

  [ Daniel Willmann ]
  * stats: Ensure that each osmo_stat_item only reports once per interval
  * tlv: Fix length returned by t{l16,16l}v_put
  * stats_vty: Improve generation of osmo counters
  * ns2: Ignore NSVC with data_weight 0 for data
  * Aggregate NSVC stats inside the NSE
  * ns2: Avoid use-after-free when SGSN-side non-persistent SNS-NSE fails
  * frame_relay, gprs_ns2_fr: Fix log messages, remove unused struct

  [ Vadim Yanitskiy ]
  * utils/osmo-aka-verify: fix swapped CK/IK arguments
  * vty/logging: use consistent quiting in warning messages
  * vty/logging: ensure consistent '%' prefix for warnings
  * vty/logging: logp: properly handle library specific sub-systems
  * protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6}
  * protocol/gsm_08_58.h: add more 'Channel rate and type' values
  * protocol/gsm_08_58.h: add asymmetric CSD data rates
  * gsm/abis_nm: add missing NM_OC_IPAC_* value-string entries
  * rsl: make rsl_dec_chan_nr() more readable, use RSL_CHAN_NR_MASK
  * gsm_08_58.h: add Osmocom specific Bm/Lm CBITs for VAMOS
  * gsm_08_58.h: add mask for Osmocom specific VAMOS C-bits
  * fsm: cosmetic: fix weird spacing in osmo_fsm_inst_alloc()
  * stats_vty: also show rate counter group name (if present)
  * bts_features: add feature for BCCH carrier power reduction mode
  * fix rsl_chan_nr_str_{buf,c}(): enlarge the buffer size
  * utils: remove misleading comments for osmo_hexdump[_nospc]_c()
  * utils: introduce osmo_talloc_replace_string_fmt()
  * gsm_08_58: extend struct abis_rsl_osmo_temp_ovp_acch_cap
  * Revert "Prevent GCR encoder/decoder functions from being used directly"
  * gsm/protocol/gsm_44_004.h: fix missing include of 'endian.h'
  * gsm/protocol/gsm_04_08.h: add gsm48_meas_res_is_valid()
  * tests/stats: add VTY transcript tests
  * stats: use llist_add_tail() in osmo_stats_reporter_alloc()
  * stats: allow configuring reporter's name in the VTY
  * stats: cosmetic: print 'stats interval' before the reporters
  * stats: don't mark reporter as 'disable' beforehand
  * stats: clarify error messages in cfg_no_stats_reporter_{statsd,log}

  [ Neels Hofmeyr ]
  * add BTS_FEAT_VAMOS
  * deprecate osmo_bts_feature_name(), add osmo_bts_features_desc()
  * add osmo_bts_features_names: short BTS feature strings
  * RR: add VAMOS channel modes
  * RR: add missing Extended TSC Set IE
  * gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect
  * fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout
  * add RSL_IE_OSMO_TRAINING_SEQUENCE
  * add RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm, RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm
  * fixup for gsm48_chan_mode_to_non_vamos()
  * osmo_select_shutdown_request(): allow finishing pending writes on SIGTERM
  * add Kc128 to gsm0808 Create Ciphering Command
  * gsm0808: add Kc128 to Handover Request
  * add fixme: enforce 8 byte length of Kc
  * fix api doc of osmo_identifier_sanitize_buf()
  * vty 'stats reset': do not reset stat_items
  * utils: add osmo_str_to_int() and osmo_str_to_int64()
  * add osmo_stat_item_get_group_by_name_idxname()
  * CTRL: expose stat_item groups on CTRL
  * stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc()
  * stats_test: assert counter and stat item val counts separately
  * refactor stat_item: get rid of FIFO and "skipped" error
  * refactor stat_item: report only changed values
  * cosmetic: get rid of 3 deprecation warnings
  * revisit some calls of strtol(), stroul(), strtoull()
  * add osmo_time_cc, moved from osmo-bsc

  [ Eric ]
  * kdf: add key derivation functions
  * vty: allow flushing
  * gsmtap: allow 127.0.0.x local listeners

  [ Michael Iedema ]
  * ns2: use same name in ctr_group as stat_item_group

  [ Philipp Maier ]
  * control_cmd: fix typo
  * vty: make function cmd_range_match() public
  * linuxlist: add macro to get last element of a list
  * command: fix sourcecode formatting
  * codec: add missing osmo_amr_type_name function.
  * gsm0503_coding: use ahs tables when encoding ahs codec id
  * rsl: add new RSL IE to signal temporary overpower
  * bts_features: Add new feature to indicate support for temporary overpower
  * gsm_08_58: fix sourcecode formatting
  * gsm_08_58: fix sourcecode formatting

  [ Keith ]
  * GPRS: Add PDP_TYPE_N_IETF_IPv4v6

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 16 Nov 2021 13:08:22 +0100

libosmocore (1.5.1) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * osmo-release.sh: Fix rc!=0 on TODO-RELEASE file without comment lines

  [ Harald Welte ]
  * attempt to fix RPM spec file after recent soversion bump

 -- Harald Welte <laforge@osmocom.org>  Wed, 24 Feb 2021 09:35:21 +0100

libosmocore (1.5.0) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * debian/control: change maintainer to the Osmocom team / mailing list
  * vty/command: cosmetic: simplify conditions in in config_list_cmd
  * vty/command: cosmetic: fix formatting of config_help_cmd
  * vty/command: cosmetic: drop redundant line break
  * vty/command: fix switch / case coding style in vty_go_parent()
  * vty/command: cosmetic: swap i and j in vty_dump_element()
  * gsm0808: add gsm0808_create_sapi_reject_cause()
  * macaddr: fix osmo_get_macaddr(): return -1 if no device is found
  * macaddr: fix osmo_macaddr_parse(): return meaningful error codes
  * lapdm_pad_msgb(): cosmetic: use GSM_MACBLOCK_PADDING
  * lapd_test: fix wrong comment in lapdm_establish()
  * lapd_test: rename func=UA (RR) CM Service Request: s/ua/ua_cm/
  * lapd_test: fix: print all messages to stdout, not stderr
  * lapd_test: add a test checking SAPI0/SAPI3 prioritization
  * lapdm: fix SAPI-0/SAPI-3 frame prioritization on DCCH
  * logging: refactor and simplify log_target_destroy()
  * logging: fix log_target_destroy(): properly close syslog
  * logging: fix memleak in log_target_create_file()
  * vty: fix 'Unsigned compared against 0' generate_cpu_hex_mask()
  * gsm0808: fix: do not encode invalid encryption algorithm
  * vty: add program specific attributes to VTY commands
  * vty: print program specific attributes in the XML reference
  * vty: cosmetic: drop redundant 'break' statements
  * vty: cosmetic: s/width/cmd_width/g in vty_describe_command()
  * vty: cosmetic: fix missing curly braces in vty_describe_command()
  * vty/command: introduce new attribute CMD_ATTR_IMMEDIATE
  * vty/command: reflect global attributes in the XML reference
  * tests: do not ignore stderr of vty_test, also match it
  * vty: check for duplicate flags in application specific attributes
  * vty: check for reserved flags in application specific attributes
  * vty/command: add global command attribute CMD_ATTR_NODE_EXIT
  * vty/command: add CMD_ATTR_LIB_COMMAND and install() API wrappers
  * vty: use install_lib_element() and install_lib_element_ve()
  * vty/command: introduce API for the library specific attributes
  * vty: introduce and use VTY_CMD_USR_ATTR_NUM
  * vty/command: introduce a command to list attributes
  * vty/command: print attribute flags in the output of 'list'
  * tests/vty: verify 'show vty-attributes' / 'list' commands
  * vty/command: assign flags to CMD_ATTR_{IMMEDIATE,NODE_EXIT}
  * vty/command: restrict the use of '.', '!', and '@' as flags
  * vty: fix vty_dump_element(): do not print empty <attributes>
  * socket: make the arguments of osmo_sockaddr_cmp() const
  * gprs_ns2: make struct osmo_sockaddr pointers const
  * rsl: rsl_chan_nr_str_buf(): use ABIS_RSL_CHAN_NR_CBITS_* macros
  * logging: introduce 'systemd-journal' target
  * vty: introduce the expert mode and a command to enable it
  * vty/command: make some 'struct cmd_element' pointers const
  * vty/command: introduce vty_dump_xml_ref_mode()
  * vty/command: add CMD_ATTR_HIDDEN to CMD_ATTR_PUBLIC_MASK
  * application: do not document unrelated forward-declarations
  * vty/command: fix: restrict the expert mode to the current session
  * fix spelling in 'value_string' arrays: existAnt -> existEnt
  * gsm48: add missing RR cause value definitions
  * vty/command: add 'hidden only' VTY reference generation mode
  * bts_features: add missing description for BTS_FEAT_ACCH_REP
  * core/linuxlist: do not use 'new' as a parameter name
  * protocol/gsm_08_58.h: add ip.access Power Control structures
  * protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo
  * logging: revert color of LGLOBAL category back to white
  * gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh'
  * gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg'
  * gsmtap_util: SNR can be negative, use a signed integer
  * gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr()
  * gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown()
  * gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri()
  * bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[]
  * gprs_bssgp: abuse gsm48_encode_ra() to encode TAC
  * fixup: configure.ac: fix: do not define HAVE_NEON unconditionally
  * gsm_7bit_encode_n(): test encoding of more than 250 septets
  * gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets()
  * gsm0808: use msgb_tv16_put() and osmo_store32be()
  * bssgp_bvc_fsm: check return value of osmo_fsm_register()
  * tlv: add msgb_tv32_put(), similar to msgb_tv16_put()
  * tlv: clarify documentation for msgb_tv{16,32}_put()

  [ Eric ]
  * vty cpu sched: do not assert if sched impossible
  * pkgconfig: link to mnl if available

  [ Pau Espin Pedrol ]
  * vty: Fix cpu-sched VTY node name
  * sock: osmo_sock_init2_multiaddr: decouple addr resolution from socket creation
  * socket: multiaddr: Support IPv4 + IPv6 addresses in SCTP associations
  * socket: Log proper getaddrinfo() error
  * osmo_sock_get_ip_and_port(): Support IPv6 sockets
  * l1sap.h: Fix typo in doxygen documentation
  * osmo_sock_inti2_multiaddr: Fix memleak and free uninitialized mem
  * socker: Remove AI_ADDRCONFIG from getaddrinfo flags
  * tests: Split SCTP tests to its own file and run them conditionally
  * ipa: Fix wrong output log formatting
  * socket: Allow binding to :: (IPv6) and connecting to IPv4-only on the remote
  * socket: Add support for AF_INET6 in osmo_sockaddr_to_str_and_uint()
  * socket: Use AF_UNSPEC instead of PF_UNSPEC calling getaddrinfo
  * socket: Fix stack-buffer-overflow in osmo_sock_local_ip()
  * socket: fix wrong ipv6 dst buf size passed in osmo_sock_local_ip
  * socket: Add some osmo_sockaddr print helpers
  * tests: Add test to showcase osmo_sock_init2 bug with AF_UNSPEC
  * socket: Fix bug in osmo_sock_init2(AF_UNSPEC) matching IP versions
  * logging: Avoid printing OSMO_LOGCOLOR_END if no color was used
  * osmo_strlcpy: Avoid calling memcpy with size=0
  * osmo_strlcpy: Clarify length calculation
  * cosmetic: Fix typo in API doc
  * gprs_ns2_udp: Avoid dangling freed struct in list if binding fails
  * vty: Fix left shifting out of range on signed variable
  * cosmetic: vty: Fix trailing whitespace
  * gsm: Fix make distcheck with parallel make
  * contrib: jenkins: Enable parallel make in make distcheck
  * lapdm: Drop log lines printing fmt=B
  * lapdm: Split lapd_rx_u() spaghetti into one function per message type
  * lapdm: Allow SABM L=0 in Timer Recovery State
  * gb: ns2_sns: Fix missing trailing newline char in log line
  * gb: ns2_sns: Add missing value_string entry for GPRS_SNS_EV_NO_NSVC
  * vty: Mark cpu_sched_vty commands with attr immediate
  * tdef: Introduce OSMO_TDEF_US unit
  * tests: Fix tdef_test on 32bit platforms
  * bitvec: Fix left shifting out of range on signed variable
  * cosmetic: serial: Fix typo in comment
  * serial: Fix typo in debug log line
  * serial: Log error if tcgetattr() or tcsetattr() fail
  * serial: Introduce API osmo_serial_speed_t
  * Revert "tests: Fix tdef_test on 32bit platforms"
  * tests: Fix tdef_test on 32bit platforms
  * statsd report: Fix wrong fmt specificier generating wrong stats
  * gsm: Add enum for Network Feature Support IE
  * Include mnl.h iif --enable-libmnl
  * gb: Import mnl.h iif --enable-libmnl
  * bssgp: Remove newly added log line warning about NOOP
  * rest_octets: add Serving Cell Priority Parameters
  * gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST
  * si2quater: fix budget calculation for multiple EARFCNs
  * gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list
  * GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit
  * Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction"
  * rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction
  * gitignore: Ignore *~
  * ctrl: Allow handling CTRL get/set replies in user defined code
  * Intoduce Packet Switch CGI
  * ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH
  * gsm: Add missing osmo_*_cmp symbols to libosmogsm.map
  * gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs
  * gprs_bssgp_prim.h: Add missing includes
  * Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty"
  * ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation
  * cosmetic: fix typo in comment
  * gsm: Fix wrong length in SI13 GPRS Cell Options IE
  * gsm: bts_features: Introduce BTS_FEAT_CCN
  * Fix struct bitfields on big endian systems
  * cosmetic: Move comment one line below in append_gprs_cell_opt
  * gsm: Fix bitfield order in dtap_header
  * comsetic: gsm0808_test: Fix trailing whitespace
  * gsm: Support converting to cgi-ps in gsm0808_cell_id_from_cgi()
  * gsm0808_utils: Move static function further up in file
  * gsm: Fix encoding of gsm0808_cell_id_list2 with CGI-PS types
  * logging: gsmtap: Fill PID field for each message
  * Introduce osmo_gettid() API
  * logging: gsmtap: Fix fill PID field not stored in network byte order
  * logging: gsmtap: Store TID instead of PID in pkt hdr
  * gsm: Introduce API osmo_gsm48_rest_octets_si13_decode
  * logging: Allow prefixing thread ID to each log line
  * tests: Set print_category values explicitly
  * Drop use of log_set_print_filename() API inside libosmocore
  * logging: Deprecate API log_set_print_filename
  * osmo-release.sh: Omit tab whitespace matching debian/control versions

  [ Harald Welte ]
  * gsmtap: Add definitions for E1/T1 payload (LAPD, TRAU, FR) in GSMTAP
  * Add VTY + CTRL ports for upcoming OsmoSMLC
  * gprs_ns2_sns: Fix compilation on Debian 8
  * ipaccess.h: Add more enum values and 'official' names
  * ns2: Improve/extend doxygen comments for new ns2 implementation
  * ns2: Use NULL and not '0' when returning a NULL-Pointer
  * gprs_ns2: Mark gprs_ns2_validate_* as static
  * write_queue: Add osmo_wqueue_enqueue_quiet()
  * write_queue: use msgb_{en,de}queue_count()
  * write_queue: Re-enqueue msgb if write_cb returns -EAGAIN
  * logging_vty: set osmo_stderr_target to NULL on "no log stderr"
  * logging: Introduce MAX_LOG_SIZE for the magic number 4096
  * bssgp: Don't include RA-ID in BVC-RESET for BVCI=0 (signalling)
  * bssmap_le/bsslap tests: We must use %td for ptrdiff_t printing
  * osmo_float_str_to_int: When using strtoll(), use LLONG_{MAX,MIN}
  * gprs_ns2: Fix parsing of SNS-{ADD,DEL,CHANGE_WEIGHT}
  * gsm48_rest_octets: Add parser for SI4 rest octets
  * [cosmetic] rest_octets: Follow coding style regarding {}
  * ns2: More verbose comments on gprs_ns2_vc_mode
  * select: Introduce osmo_fd_{read,write}_{enable,disable}()
  * select: Migrate over to poll()
  * card_fs_usim.c: Add support for DF.5GS directory
  * Revert "gsm_04_08: add parser for Mobile Station Classmark 3"
  * card_fs_usim: Add definitions of DF.ProSe and DF.ACDC
  * bssgp: Input argument to bssgp_tlv_parse() should be 'const'
  * ns2: permit multiple nsvci in one nse in VTY
  * frame_relay: Fix some spelling/language issues
  * Revert "ns2: permit multiple nsvci in one nse in VTY"
  * gprs_ns2_vty: Fix VTY documentation errors
  * frame_relay: Fix null pointer dereference in DLC/PVC delete
  * frame_relay: Fix error path on ioctl() failure
  * gprs_ns2: Introduce gprs_ns2_lltype_str() for link layer name
  * gprs_ns2_fr: Print Frame Relay 'role' in VTY
  * gprs-ns2: Fix stringification of NS/FR NSVCI
  * gprs_ns2: Don't return an empty string in case of unknown LL
  * cosmetic: frame_relay: Fix typos
  * gprs_ns2: Print link layer and global ALIVE/DEAD state
  * gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities'
  * gprs_ns2_vty: Show NSVCI in dump_nsvc()
  * gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities'
  * gprs_ns2_vty: Print all relevant data on each NS-VC
  * gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP
  * Integrate libmnl (minimal netlink) library with libosmocore select loop
  * gprs_ns2_fr: Monitor the kernel net-device link state
  * gsm_08_18.h: Update enums for message types and IEs with Release 15
  * gprs_ns2_vty: Re-introduce a 'show ns' command
  * libosmogb: Add missing LIBMNL_CFLAGS
  * mnl: Use mnl_socket_open() insatead of mnl_socket_open2()
  * gprs_ns2_fr: remove include <linux/if.h>
  * bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT
  * gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT
  * bssgp: Update bssgp_pdu_strings with Release 15
  * bssgp: Fix typo in BSSGP Message Type enum
  * Add hlist and hashtable from Linux kernel
  * Use explicit type-casting in hlist_del() for C++ compatibility
  * gsm_08_18.h: Add some PDU definitions still missing
  * hash/log2: Add generic implementations of fls() and fls64()
  * log2.h: Use uintXX_t instead of kernel specific types
  * log2.h: Avoid redefining __always_inline
  * ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state
  * Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols
  * tlv: Introduce enum with error codes for TLV parser functions
  * bssgp: Add osmo_tlv_prot_def for BSSGP
  * gsm_08_18.h: Add #defines for [extended] feature bits
  * tlv.h: Add msgb_tvlv_put_{16,32}be()
  * logging: Introduce DLBSSGP logging constant
  * gb: Add beginnings of a new BSSGP implementation
  * logging: Assing different 8bit colors to built-in subsystems
  * bssgp2: Encoding + Decoding functions for BVC and MS flow control
  * bssgp_bvc_fsm: Add basic BVC flow control rx/tx support
  * gprs_ns2_fr.c: Skip extraneous FIONBIO
  * gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind()
  * gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL
  * Fix VTY syntax for newly-introduced NS2 timers
  * gors_ns2_vty: Fix saving of new NS2 timers
  * gprs_ns2_fr: Avoid stringop-truncation warning
  * gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible
  * fsm: Add osmo_fsm_inst_broadcast_children()
  * vty: Fix left shifting out of range on signed variable
  * lapd_core: Don't dereference data link after sending PRIM_DL_REL
  * cbsp: Fix encoding of "ETWS Warning Security Info" IE
  * cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE
  * cbsp: Fix parsing DCS in decode of WRITE-REPLACE
  * Add inter-thread queue
  * tlv_parser: Fix various out-of-bounds accesses
  * gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2
  * gprs_ns2: Give NS-VC FSMs a proper name/identifier
  * ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked
  * vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix
  * ns2: Properly indent VTY output
  * ns2: Unify logging context via log macros
  * logging_vty: Fix saving of "logging print file .. last"
  * gprs_ns2_test: Fix compilation on Debian 8
  * Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE"
  * Revert "gprs_ns2_vc_fsm: check NSEI match the NSE"
  * ns2: Use proper return value from write_queue callback function
  * ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS
  * osmo-ns-dummy: Add simple NS traffic generator
  * ns2: Work around AF_PACKET socket ENOBUFS problems
  * ns2: Use named array initializers to avoid mistakes
  * ns2: encapsulate calls to nsvc->bind->send_vc()
  * ns2: Increment Rx and Tx byte / packet counters
  * ns2: Properly report packet drops in FR code
  * ns2: count number of dropped packets / bytes on transmit
  * ns2: Implement more rate counters
  * ns2: Add a rate_ctr for each NS-UNBLOCK
  * ns2: Move to one common/shared ns2_bind_alloc()
  * ns2: Memory allocation failures are ENOMEM, not ENOSPC
  * ns2: Rename nsi->rate_ctr_idx to nsi->nsvc_rate_ctr_idx
  * ns2: Introduce a per-bind stat_item group with backlog length
  * ns2: Fix typos in comments
  * ns2: Print NS-STATUS.ind primitives to the log
  * ns2: cosmetic: fix indent levels
  * frame_relay: Send "Fuil Status" ENQUIRY after link recovers
  * frame_relay: Add status call-backs for link + DLC status changes
  * frame_relay: Discard received messages for DLC not yet active
  * frame_relay: cosmetic: Unify log syntax when discarding Rx packets
  * ns2: Don't automatically re-start FSM at FORCE_UNCONFIGURED
  * ns2: Stop test procedure when going into unconfigured state
  * ns2: Don't start sending NS-RESET until FR DLC is available
  * osmo-ns-dummy: Add "mirror-mode" to mirror back any received packets
  * initial support for static userspace probes via systemtap
  * Enable systemd-journald log target in debian + rpm packaging
  * gb: frame_relay: Factor-out function to set link as dead
  * gb: frame_relay: Detect link outage on "last receive seq nr == 0"
  * frame_relay; Fix Q.933 async STATUS at DLC creation
  * ns2: Name NSVC FSM events consistently
  * ns2: Don't queue Q.933 LMI messages; only store most recent ones
  * ns2: improve backlog handling on interface up/down
  * ns2: Don't try to add packets to the backlog on real errors
  * README.md: Use https everywhere
  * ns2_fr: Fix null pointer deref in error path
  * ns2_fr: Fix heap-use-after-free in error recovery path
  * BVC FSM: Treat overlapping BVC-RESET as implicit ACK
  * support for stats static userspace probes via systemtap
  * CBSP: fix encoding/decoding of keep-alive repetition period
  * CBSP: Fix encoding of warning period

  [ Neels Hofmeyr ]
  * comment: mention spec reference in cbsp.[ch]
  * comment: typo in cbsp.h
  * bitXXgen: ensure not reading/storing past valid size
  * bitXXgen: add bitgen_test.c
  * bitXXgen: add osmo_loadXXbe_ext_2() to get right-adjusted values
  * add osmo_use_count_to_str_c()
  * osmo_use_count_to_str: make robust against unused use_count
  * add osmo_float_str_to_int() and osmo_int_to_float_str_*()
  * add GAD coding for Location Services
  * add BSSLAP coding for Location Services
  * add BSSMAP-LE coding for Location Services
  * add BSSMAP coding for Location Services
  * doc tweaks for osmo_float_str_to_int(), osmo_int_to_float_str*()
  * gad.c: try to workaround warning for "h.type >= 0"
  * gad.c: fix rc for osmo_gad_enc_ell_point_unc_circle()
  * gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY()
  * fix strncpy bug in gprs_ns2_fr_bind()

  [ Alexander Couzens ]
  * sockaddr_str: add osmo_sockaddr_str_from_str2() which doesn't set the port
  * tests/socket: add testcase test_get_ip_and_port
  * socket: introduce osmo_sock_init_osa & osmo_sock_init_osa_ofd
  * socket: add osmo_sockaddr_cmp()
  * gb/gprs_bssgp: remove superfluous whitespace
  * gb/common_vty: use void *
  * add osmo_sockaddr_local_ip() to determine the local address for a remote.
  * Gb: add a second NS implementation
  * libgb/ns: allow to create NS_ALIVE NSVC
  * gb/gprs_bssgb: check if talloc failed on btsctx->fc
  * gb/gprs_bssgb: ensure the fc timer has been stopped when freeing bssgp_bvc
  * ns2: remove bssgp specific msgb->cb parts
  * ns2: vty: add missing docs for IPv6 address
  * ns2: check the specific bit of NS SDU Control bits
  * ns2: refactor nsvc_by_ functions
  * ns2: ns2_recv_vc: remove unused parameter nsi
  * ns2: vty: fix behavior of vtyvc_by_nsei when vtyvc isn't found
  * ns2: refactor handle_nsip_read/handle_nsfrgre_read
  * ns2: fix a msg leak when receiving REJECTED messages
  * gsm_12_21: add osmo_oml_nsvc_address_type for OML NM_ATT_OSMO_NS_LINK_CFG
  * ns2: parse the return code of gprs_ns2_ip_bind
  * ns2: refactor ns2_prim_status_ind()
  * ns2: status ind: add additional flags (first and persistent)
  * ns2: vty: show all nse
  * ns2: vty: allow the users (pcu/sgsn) to set a default bind
  * ns2: vty: on `show ns` add information of NS binds
  * gprs_ns2_vty_create: remove bind pointer check
  * gprs_ns2: gprs_ns2_free(): add missing talloc_free
  * gprs_ns2: fix SNS_ADD for IPv4
  * gprs_ns2: fix empty prefix in TLV Parse error
  * gprs_ns2: add gprs_ns2_ip_bind_by_sockaddr() to search for binds by sockaddr
  * gprs_ns2: gprs_ns2_ip_bind() check if the bind already exists
  * gprs_ns2: add gprs_ns2_nse_nsei() to get the nsei of a nse
  * gprs_ns2: add gprs_ns2_free_binds() to free all binds
  * gprs_ns2: add gprs_ns2_free_nses() to free all NS-E
  * gprs_ns2: const the return value of gprs_ns2_ip_vc_sockaddr / gprs_ns2_ip_bind_sockaddr
  * gprs_ns2: rename gprs_ns2_ip_vc_sockaddr -> gprs_ns2_ip_vc_remote
  * gprs_ns2: add gprs_ns2_ip_vc_local() return the local sockaddr
  * gprs_ns2: add gprs_ns2_nse_sns_remote() returns the initial SNS address
  * gprs_ns2: gprs_ns2_ip_vc_remote() the nsvc can be also const
  * gprs_ns2: add gprs_ns2_nse_foreach_nsvc()
  * gprs_ns2: Partial revert 48f63867 allow to create NS_ALIVE NSVC
  * gprs_ns2: add gprs_ns2_ip_vc_equal()
  * add osmo_sockaddr_to_str_buf/osmo_sockaddr_to_str
  * gprs_ns2: remove the nsvc fsm timer when cleaning up the fsm
  * ns2: add value strings for ns2_affecting_cause_prim_str & ns2_prim_str
  * gprs_ns2: convert gprs_ns2_cause_str into an static inline
  * libosmocore: change the memory management of NS2
  * ns2: fixup gprs_ns2_prim_strs
  * ns2: check if ns_vc_alloc() fails in bind_connect()
  * ns2: add support for frame relay
  * ns2: implement link sharing selector
  * ns2: move LL into public api
  * ns2: move link layer type into NSE
  * ns2: remove obsolete type GPRS_NS2_LL_E1
  * gprs_ns2_fr: remove include <linux/if.h>
  * gprs_ns2: fix typo in comment
  * gprs_ns2: use switch() case instead of multiple if in ns2_create_vc()
  * gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE
  * gprs_ns2_sns: dynamic calculate the maximum NS-VCs
  * gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen
  * gprs_ns2_sns: fix whitespaces and superflous comment
  * gprs_ns2_sns: correct dynamic calculation
  * gprs_ns2: introduce NS dialects
  * gprs_ns2: move allocation of the SNS fsm into create_nse
  * gprs_ns2: add member name to bind
  * gprs_ns2: rework gprs_ns2_fr_connect*()
  * gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE
  * gprs_ns2_sns: rework IP-SNS initial remote
  * gprs_ns2_sns: use different binds for the initial connection
  * gprs_ns2_sns: introduce SNS Size/Config retries
  * gprs_ns2: make nsvc argument const
  * gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role
  * gprs_ns2: on ns2_create_vc parse the tlv before using it
  * gprs_ns2_vty: udp: fixup dialect changes
  * gprs_ns2: fr: fix crash when frame relay interface doesn't exists
  * gprs_ns2: improve handling of TLV errors on new nsvcs
  * gprs_ns2: don't pass the return code of reject_status_msg
  * gprs_ns2: fr: implement a write queue
  * gprs_ns2: fr: setup the device to correct FR/LMI settings
  * gprs_ns2: add new vty2
  * gprs_ns2: sns: correct log message when no nsvcs available
  * gprs_ns2: sns: don't send duplicated packets on retries
  * gprs_ns2: sns: add log message when size/config retries exhausted
  * gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED
  * gprs_ns2: fix force-unconfigured for IP-SNS NSE
  * frame_relay: prevent null pointer exception when talloc fails
  * frame_relay: link_alloc: move log message to the end
  * gprs_ns2: rework frame relay load distribution function
  * gprs_ns2_fr: setup_device: allow to setup a new dahdi device
  * gprs_ns2: fr: check the device state before changing state
  * gprs_ns2: use zero initialized memory for vty_binds
  * utils: add osmo-ns-dummy
  * gprs_ns2: call python vty tests
  * gprs_ns2: set transfer cap in NS Status primitive
  * gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE
  * osmo-ns-dummy: allow to create dynamic NSEs
  * gprs_ns2_vc: answer UNBLOCK on unblocked nsvc
  * gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE.
  * gprs_ns2_sns: clear local and remote entries when SNS failed
  * gprs_ns2: flag then NSE as dead in nse_free()
  * gprs_ns2_vc_fsm: fix spaces and remove wrong comment
  * test: gprs_ns2: don't leak the talloc context
  * test: gprs_ns2: replace free_bind() with clear_pdus()
  * test: gprs_ns2: free the nsi after each test
  * gprs_ns2: add assert on most bind calls
  * gprs_ns2: allow to use free_vc() with NULL
  * osmo-ns-dummy: don't leak primitive messages
  * gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
  * gprs_ns2: correct handle BLOCK message on initator
  * gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_
  * gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf
  * gprs_ns2_vc_fsm: in RESET accept RESET as ACK
  * gprs_ns2_vc_fsm: fix transitions for ALIVE state
  * gprs_ns2_message: remove wrong comment
  * gprs_ns2_vc_fsm: check NSEI match the NSE
  * gprs_ns2_vc_fsm: check NSVCI match the NSE
  * tests: gprs_ns2: add unitdata unit test
  * gprs_ns2: always pass a tp to gprs_ns2_vc_rx
  * gprs_ns2_vc_fsm: check NSEI match the NSE
  * gprs_ns2_vc_fsm: check NSVCI match the NSE
  * gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs
  * gprs_ns2: drop prefix of all internal exposed function
  * gprs_ns2: drop the public prefix gprs_ from all static functions/structs/..
  * gprs_ns2: refactor: ensure all enums have GPRS_NS2_
  * gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty
  * gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty
  * gprs_ns2: remove api call gprs_ns2_dynamic_create_nse
  * gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU
  * gprs_ns2: correct vty config write
  * gprs_ns2: prevent division by zero in load_sharing
  * gprs_ns2_vc_fsm: reset ALIVE N counter when restarting the test procedure.
  * gprs_ns2_vc_fsm: rename ST_ALIVE -> ST_RECOVERING
  * gprs_ns2: unify the handling of **result when bind already present.
  * gprs_ns2_fr: free_bind(): first do the NULL check before using members
  * frame_relay: fix NULL pointer deref
  * gprs_ns2_frgre: set a correct gre pointer for ipv6
  * gprs_ns2_frgre: check iph/ip6h before passing them to rx functions
  * gprs_ns2_sns: rework tracking of NS-VC unblocked/alive state
  * gprs_ns2_sns: add timeout to ST_CONFIG_SGSN
  * gprs_ns2_sns: reset the N of timeout when entering a new state
  * gprs_ns2: rename vty-command ip-sns -> ip-sns-remote
  * gprs_ns2_vty: fix memory leak of vty_binds
  * gprs_ns2: add signalling & data weights for UDP binds
  * gprs_ns2_vc_fsm: use CLOCK_MONOTONIC for alive elapsed timer
  * gprs_ns2_vc_fsm: reset the alive elapsed timeout everytime
  * gprs_ns2_vty: use strcmp() instead of strncmp()
  * gprs_ns2_vc_fsm: remove debug line of the alive_timer
  * gprs_ns2: fix comment of alive NS-VC
  * gprs_ns2_sns: fix typo in doxygen comment
  * gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE
  * gprs_ns2: rework IP-SNS binds
  * gprs_ns2_vty: add optional argument signalling and data weights to `nsvc udp`
  * gprs_ns2: implement a simple load sharing for UDP
  * gprs_ns2: fix typo in function name ns2_load_sharing_modulo
  * gprs_ns2: make gprs_ns2_recv_prim() always take msgb ownership
  * gprs_ns2_sns: rename fsm events to include RX or REQ prefix
  * gprs_ns2_fr: pass MTU changes to the NSE
  * gprs_ns2: truncate the NS_STATUS to the MTU
  * gprs_ns2_message: tx_status: move all cause dependent code into the switch/case
  * gprs_ns2: add value_string for GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS
  * gprs_ns2: ensure no duplicate UDP NSVC can be created
  * gprs_ns2: free_nse: free the SNS fsm early

  [ Daniel Willmann ]
  * gsm_08_16.h: Add missing header
  * gprs_ns2: Make reason const
  * libosmogb: Add a function to tx BVC RESET by nsei/bvci
  * Add exported function btsctx_alloc to public header
  * ns2: Add gprs_ns2_nsvc_state_name() to get the current state of a VC
  * ns2: Send NSVC representation in NS_AFF_CAUSE_VC_* status indication
  * ns2: Improve NSVC output
  * ns2: Split 'initiater' into initiate_{reset,block}
  * ns2: Add a function to set the NSVC FSM back to unconfigured
  * ns2: Add a VTY command to reset NSVC FSM
  * ns2: Fix docs for some NS2 vty commands
  * logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum
  * ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive
  * ns2: Fix argv index in logging filter VTY commands
  * Declare osmo_ctx_init() in talloc.h
  * bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp
  * logging: Remove duplicate color for DLSMS
  * ns2_frgre: Fix missing break statement for recv from IPV6
  * bssgp_bvc_fsm: Handle block request from application correctly
  * NS2: Fix bind selection of SNS NSVCs
  * ns2: Add sanity check
  * Refactor ns2_nsvc_create_ip*
  * ns2: Fix memory leak in IP-SNS
  * ns2: Fix assert when removing a bind listen
  * ns2: Fix incompatible VTY configs when writing config
  * tests/gb: Add more complex osmo-ns-dummy.cfg
  * bssgp_bvc_fsm: Set/get maximum BSSGP PDU length
  * bssgp2_enc_status: Truncate STATUS message to maximum PDU length
  * bssgp_bvc_fsm: Consistent naming

  [ Philipp Maier ]
  * command: add library command attribute for libosmo-sccp
  * command: add library command attribute for libosmo-abis
  * gsm_08_58: add proprietary IE to signal Repeated ACCH Capability
  * gsm_04_08: add parser for Mobile Station Classmark 3
  * gsm_04_08: add parser for Mobile Station Classmark 3
  * bts_features: add feature BTS_FEAT_ACCH_REP
  * gsm_08_58: add struct for RSL_IE_OSMO_REP_ACCH_CAP
  * gsm_08_58: add rxqual field to RSL_IE_OSMO_REP_ACCH_CAP
  * gprs_bssgp_util: complete bssgp_pdu_strings
  * gprs_bssgp: add IE parser/generator for RIM Routing Information
  * gprs_bssgp: add handling for BSSGP RIM primitives
  * gsm_08_18: add struct to parse RIM PDU Indications
  * bssgp_rim: add encoder/decoder for NACC related RIM containers
  * bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim
  * gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
  * gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers
  * gprs_bssgp_rim: fix bug in dub_tlvp_header()
  * gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause
  * gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id
  * gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr
  * gprs_bssgp_rim: add functions to convert a RIM-RI to a string
  * gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-"
  * gprs_bssgp: log source and destination RIM routing information
  * gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c
  * gsm48: add compare function for struct gprs_ra_id
  * gsm_08_58, gsm_44_004: add struct for l1 information

  [ laforge ]
  * Revert "pkgconfig: link to mnl if available"

  [ Oliver Smith ]
  * tests/*: fix control reaches end of non-void func
  * configure.ac: set -std=gnu11
  * sim: fix gcc 4.9.2 + -std=gnu11 error

 -- Pau Espin Pedrol <pespin@espeweb.net>  Tue, 23 Feb 2021 14:03:31 +0100

libosmocore (1.4.0) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * bitvec: Fix return value in doc for bitvec_write_field()
  * gb: Fix typo in bssgp_cause_strings description
  * logging_vty.c: Avoid acquiring log tgt lock in logging level cmd when not needed
  * value_string: Switch val from unsigned to int
  * gsm0503_coding: Fix misleading comment UL vs DL
  * gsm0503_coding: Fix USF encoding in MCS1-4
  * gsm0503_tables: Document USF encoding tables
  * tests/coding: Test decoding of DL EGPRS data packet
  * tests/coding_test: Fix test_pdtch() results
  * gsm_04_06.h: Remove repeated egprs header struct definitions
  * configure.ac: Fix HAVE_CLOCK_GETTIME undef when func in -lrt
  * Drop old BSC references in fd check configure option
  * Revert "gsmtap_makemsg_ex: NULL for unknown chan_type"
  * use_count.h: Fix API doc example
  * tests/fsm_test.c: Disable use color in logging output
  * tests: vty: Extend test to do some numeric range validations
  * vty: Allow 64 bit values in numeric ranges if system supports it
  * vty: Don't match negative values on purely positive ranges
  * vty: Introduce support to set cpu-affinity and scheduler policy

  [ Harald Welte ]
  * usb: Use OSMO_STRLCPY where appropriate
  * usb: Add osmo_libusb_find_matching_dev_{path,serial}
  * osmo_libusb: Check return of libusb_get_string_descriptor_ascii()
  * osmo-sim-test: Recurse through subdirectories
  * osmo-sim-test: Fall-back to classic SIM
  * chantype_rsl2gsmtap(): Add entries for CBCH
  * gsmtap.h: Add definitions for voice inside GSMTAP
  * Add GSMTAP_CHANNEL_VOICE to gsmtap_gsm_channel_names[] value_string
  * Add CTRL port number for osmo-mgw
  * gsmtap: Solve TCH / FACCH confusion once and for all
  * fixup depreciation warning
  * socket: Add osmo_sock_mcast_iface_set() to bind multicast to device
  * libosmosim: Build irrespective of PC/SC support
  * sim: card_fs_usim.c: Fix FID of EF.EXT4
  * card_fs_sim: Avoid '/' in file names
  * osmo-sim-test: Use stderr for error messages
  * osmo-sim-test: don't print SW in successful case of dump_file()
  * osmo-sim-test: Optionally dump card files to host filesystem
  * sim: add osim_file_desc_find_aid()
  * sim: re-structure how we support cards + applications
  * osmo-sim-test: Also [attempt to] dump DF.GSM on USIM cards
  * card_fs_{usim,isim}: Update to 15.7.0 / Release 15
  * sim: Add HPSIM application support
  * osmo-sim-test: Avoid double-close
  * ports.h: Add 4268 for UECUPS VTY
  * exec: Introduce osmo_system_nowait2() to allow specify a user
  * select.c: Introduce support for signalfd
  * timerfd: call osmo_fd_unregister() when closing on read error
  * gsm0503_parity: Fix compilation with gcc-10
  * gsm_29_118.h: Fix compilation with gcc-10
  * sim: When decoding SW, take application specific SW into account
  * README.md: fix typo (coore -> core)
  * README.md: We don't build libosmotrau.  The latter is in libosmo-abis.git
  * usb: Add osmo_libusb_find_open_claim() all-in-one API
  * codec: Add functions for AMR s->d bits and d->s bits
  * libosmogsm: add Doxygen docs for gsm0502_hop_seq_gen()
  * Implement ITU-T I.460 multiplex / demultiplex
  * NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP
  * NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2()
  * lapd/lapdm: print user-defined string name instead of (dl=%p)
  * lapd_core: Fix log line being about LAPD and not LAPDm
  * Revert "add osmo_mobile_identity API"
  * bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION
  * gsm0808: Add gsm0808_create_common_id()
  * gprs_bssgp: Add bssgp_tx_bvc_reset2()
  * gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs
  * vty/ports.h: Add VTY port for osmo-e1d
  * lapd_core: Ensure we always have some tailroom
  * lapd_core: After calling into L3, check if the state has changed
  * vty: Avoid ultra-long multi-line strings cluttering talloc reports
  * gsm0411_{smc,smr}.c: Work around newlib bug
  * bits.c: Use faster look-up-table approach for osmo_revbytebits_{buf,u8}
  * i460: Add back-pointer from sub-channel to timeslot
  * i460: pass more context to call-back functions
  * i460: Fix bit- and subslots ordering of I.460 mux + demux

  [ Neels Hofmeyr ]
  * add crcXXgen.c.tpl to EXTRA_DIST
  * jenkins.sh: simpler invocation of verify_value_string_...
  * gsm_04_08.h: fix big endian structs
  * add missing endian.h in gsm_23_041.h
  * struct_endianess.py: also recognise unnamed substructs
  * cosmetic: apply changes to match struct_endianess.py output
  * enable vty xml dumping to stdout
  * api doc: clarify 'returns' of gsm48_mi_to_string()
  * api doc: clarify OSMO_NAME_C_IMPL() required FUNC_BUF signature
  * fix osmo_mi_name_c() to always return talloced strings, via osmo_mi_name_buf()
  * add gsm23236: MSC pooling: TMSI and NRI utility functions
  * tlv.h: add msgb_tvl_put() to add a TvLV without the value part
  * osmo_bcd2str: also validate start_nibble parameter
  * add osmo_mobile_identity API
  * add osmo_mobile_identity API
  * gsm0408_test: allow deprecated API
  * api comment: fix example of osmo_mobile_identity_encode_msgb
  * fixup for gsm0808_create_common_id(): add API doc, use new MI API

  [ Philipp Maier ]
  * l1sap: add measurement related struct members
  * osmo-sim-test: check tlv_parsed struct tp before access
  * parity: add amr crc14 definition
  * conv: add convolutional coder for AMR SID UPDATE frames
  * gsm690: Fix amr speech bit length table
  * dtx: add decoding for AMR-DTX frames
  * exec: osmo_system_nowait2: initalize *pw pointer with NULL
  * logging: use LOGL_NOTICE when no loglevel is set
  * logging: do not allow multiple calls of log_init()
  * gsm0505_amr_dtx: add missing value strings
  * gsm0808: fix endieness of call identifier
  * i460_mux: correctly reset subchannels
  * gsm_08_58: add missing RSL error cause codes
  * i460_mux: add callback to notify empty tx queue

  [ Vadim Yanitskiy ]
  * usb/Makefile.am: fix copy-pasted library name: s/libosmosim/libosmousb/
  * gsm/gsm48049.c: fix use of GNU 'missing =' extension in designator
  * tdef_vty: do not enforce enum 'node_type' in osmo_tdef_vty_groups_init()
  * conv: prevent theoretical NULL pointer dereference in osmo_conv_encode()
  * osmo_libusb: check return value of osmo_fd_register()
  * exec: prevent uninitialized memory access in osmo_system_nowait()
  * exec: propogate errors from osmo_environment_[filter|append]
  * bitvec: make bitvec_free() safe against NULL
  * tests/bitvec: add a unit test for bitvec_read_field()
  * bitvec: fix bitvec_unhex(): do not return 1 on success
  * bitvec: fix misleading description of bitvec_spare_padding()
  * bitvec: cosmetic: init i only once in bitvec_[un]pack()
  * bitvec: avoid redundant zero-initialization in bitvec_alloc()
  * tests/coding: check return value of encoding / decoding functions
  * tests/coding: reduce verbosity of 8-bit / 11-bit RACH coding tests
  * tests/coding: cosmetic: use ARRAY_SIZE() macro from utils.h
  * coding: fix documentation of PDTCH encoding functions
  * tests/coding: add 11-bit Access Burst samples from a real phone
  * coding: fix bit ordering in 11-bit RACH coding functions
  * rest_octets: fix encoding of 3G Early Classmark Sending Restriction
  * libosmogsm: cosmetic: add spaces before and after PRIu32
  * bts_features: fix: properly check the result of bitvec_get_bit_pos()
  * bts_features: introduce osmo_bts_unset_feature()
  * gsm0502: add TDMA frame number constants and modular arithmetic
  * utils/gsmtap_logread.py: make it executable
  * src/Makefile.am: add conv_acc_neon_impl.h to EXTRA_DIST
  * configure.ac: clarify description of --enable-neon
  * configure.ac: fix: do not define HAVE_NEON unconditionally
  * configure.ac: print ARM NEON instructions support status

  [ Eric Wild ]
  * pcsc: don't leak memory

  [ Alexander Chemeris ]
  * gb: Fix typos in gprs_ns.c comments
  * gb: Print signalling and data weights on NS-VC creation.
  * select: Fix typo in a comment Osmcoom->Osmocom
  * stats: Move cfg_stats_interval_cmd() function.
  * stats: Fix documentation for osmo_stats_set_interval()
  * stats: Support regular stats flush
  * stats: Change timer to timerfd to make it a true interval timer.
  * gsm0808: Fix encoding of the SAPI_N_REJECT BSSMAP message.
  * gsm0808: Make a function to extract Cause IE publicly available.
  * gsm0808_utils: Fix gsm0808_cause_class() function
  * gsm0808_utils: Add gsm0808_get_cipher_reject_cause() back with a deprecation notice.
  * gsm0808: Implement helper functions for CONFUSION BSSMAP message decoding.

  [ Maksim Aristov ]
  * debian: Change python3 dependency to native arch

  [ Eric ]
  * configure.ac: fix libtool issue  with clang and sanitizer
  * timer.c: make timers thread safe
  * pkgconfig/osmocodec/osmocoding: link to talloc
  * libomsocoding: NEON viterbi acceleration

  [ Kirill Zakharenko ]
  * statsd: fix rendering for groups with idx==0

  [ Sylvain Munaut ]
  * libosmogsm: import hopping sequence generation code

  [ Oliver Smith ]
  * contrib: import RPM spec
  * gsmtap_makemsg_ex: NULL for unknown chan_type
  * contrib: integrate RPM spec
  * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in

  [ Alexander Couzens ]
  * gprs_ns.h: add missing prototype gprs_ns_rcvmsg()
  * gprs_ns: fix typo in comment
  * gprs_ns_frgre.h: add missing declaration of structs
  * bts_features: add feature BTS_FEAT_IPV6_NSVC
  * socket: osmo_sock_local_ip: correct doxygen comment
  * vty: add a define VTY_IPV46_CMD to require a IPv4/6 address
  * Gb/BSSGP: replace hardcoded Tx into NS library by a callback
  * gsm 12.21: add osmocom specific NM_ATT_OSMO_NS_LINK_CFG
  * osmo_sock_init2: improve support for AF_UNSPEC
  * socket.h: introduce osmo_sockaddr to hold v4 and v6 endpoints

  [ Daniel Willmann ]
  * rate_ctr: Add functions to reset rate counter (groups)
  * stat_item: Add function to reset stat items and groups
  * stats: Add stats commands related to testing

 -- Harald Welte <laforge@osmocom.org>  Thu, 13 Aug 2020 11:06:35 +0200

libosmocore (1.3.0) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * osmo-release.sh: Add DRY_RUN mode
  * osmo-release.sh: Verify debian/rules dh_strip lines match LIBVERSION
  * osmo-release.sh: Verify consistency of dependency versions in configure.ac and debian/control
  * osmo-release.sh: Check patches under debian/patches apply
  * osmo-release.sh: Support releasing openbsc.git
  * vty: Register logp cmd next to logging commands
  * tdef: Introduce API osmo_tdef_set()
  * tdef_vty.h: Add missing header dependencies
  * logging_internal.h: Fix osmo_log_info definition
  * osmo-release.sh: update TODO-RELEASE for non-lib projects too
  * logging: Move extern declaration of osmo_log_target_list from logging.h to logging_internal.h
  * msgb: Allow size==headroom in msgb_alloc_headroom*()
  * tdef: Introduce min_val and max_val fields
  * tdef_test: verify case where osmo_tdef_set returns -EEXIST
  * vty: Optionally Set/replace cfg file during cmd 'write file'
  * logging: Introduce mutex API to manage log_target in multi-thread envs
  * socket.c: Move glibc workarounds to same place in addrinfo_helper()
  * vty: Fix go_parent_cb not called for indented nodes at end of cfg file
  * tdef: Return correct snprintf value for osmo_tdef_range_str_buf()
  * socket: Introduce API osmo_sock_init2_multiaddr()
  * socket: Remove unneeded condition check in osmo_sock_init2_multiaddr()
  * libosmocore.pc.in: Append -lsctp to Libs.private
  * socket.c: build multiaddr socket API helpers only if used by public APIs
  * configure: Introduce --disable-libsctp and error by default if libsctp not found
  * vty: Return error if cmd returns CMD_WARNING while reading cfg file
  * cosmetic: gsm_04_08.h: Fix trailing whitespace
  * gsm_04_08.h: Introduce API osmo_gsm48_rfpowercap2powerclass()
  * gsm: Fix compilation error under some compilers
  * gsm: gsm_utils: Fix return type of API ms_class_gmsk_dbm() and add unit tests
  * gsm: gsm_04_08.h: Allow accessing classmark2 as struct instead of uint32_t
  * Introduce fields related to DTAP DLCI
  * osmo-release.sh: Use set -e before applying changes to prepare release
  * osmo-release.sh: Improve of PKG_CHECK_MODULES from configure.ac
  * Drop empty file debian/patches/series

  [ Harald Welte ]
  * codec/ecu_fr: Mark input TCH frame as 'const' as we only read it
  * context: Add support for [per-thread] global talloc contexts
  * cbsp: Fix endless loop iteration when decoding cell list IEs
  * cbsp: Remove printf() statement from early development/debugging
  * cbsp: Fix decoding of WRITE-REPLACE payload
  * codec/ecu: Introduce new generic Error Concealment Unit abstraction
  * gsm_08_58: Add vendor-specific Message Type for ETWS Primary Warning
  * Introduce BTS_FEAT_ETWS_PN for communicating ETWS PN capability
  * sim/class_tables: Fix typo in comment
  * cosmetic: clarify c_iflag in osmo_serial_init()
  * select: Make file descriptor lists per-thread
  * 04.80: Deprecate gsm0480_create_ussd_resp()
  * Check for osmo_fsm_register() error return value
  * gprs_ns_instantiate(): propagate errors from gprs_sns_init() to caller
  * osmo-arfcn: Fix '-h' option
  * utils: exit(2) on unsupported positional arguments on command line
  * gsup: Introduce OSMO_GSUP_NUM_VECTORS_REQ_IE
  * gprs_bssgp: Work around gcc-9 claiming "error=stringop-overflow"
  * libosmocore libusb integration
  * usb: Import a variety of libusb utility functions from simtrace
  * debian/control: Add missing libusb-1.0-0-dev dependency
  * Introduce helper functions for safe fork+exec of processes

  [ Neels Hofmeyr ]
  * add vty logp command to echo on all log targets
  * osmo_tdef_get(): allow passing -1 as default timeout
  * fix: vty crash by logging during VTY_CLOSED event handling
  * OSMO_SOCKADDR_STR_FMT_ARGS: remove useless condition
  * OSMO_SOCKADDR_STR_FMT_ARGS: guard against NULL pointer
  * tdef: fixup osmo_tdef_set()
  * gsup: add OSMO_GSUP_SUPPORTED_RAT_TYPES_IE and OSMO_GSUP_CURRENT_RAT_TYPE_IE
  * API doc tweaks (mncc.h, gsm_08_08.h)
  * add osmo_fsm_set_dealloc_ctx(), to help with use-after-free
  * fsm: refuse state chg and events after term
  * add osmo_sockaddr_str_is_nonzero()
  * test: add OSMO_SOCKADDR_STR_FMT to sockaddr_str_test.c
  * fix OSMO_SOCKADDR_STR_FMT for IPv6
  * add osmo_sockaddr_str_cmp()
  * utils.c: fix various inaccurate API doc about return values
  * logging.h: define ansi color constants
  * fix DLSMS logging category color: '[1:38m' isn't actually defined
  * cosmetic: logging.h: fix comment s/levels/subsystems
  * osmo_sockaddr_str: API doc: fix 32bit addr mixup of host/network byte order
  * utils.h: add OSMO_NAME_C_IMPL() macro
  * fix osmo_escape_str_c() and osmo_quote_str_c()
  * GSUP: rename E_ROUTING_ERROR to ROUTING_ERROR
  * fsm.h: add missing include of logging.h
  * msgb_put: more elaborate logging of head/tailroom failure
  * utils_test: add osmo_print_n_test()
  * utils: add osmo_strnchr()
  * osmo_sockaddr_str: deprecate osmo_sockaddr_str_*_32n()
  * vty: track parent nodes also for telnet sessions
  * vty_app_info.is_config_node: add OSMO_DEPRECATED
  * add osmo_escape_cstr and osmo_quote_cstr
  * add all missing OSMO_GSUP_TO_MSGT_*() macros

  [ Oliver Smith ]
  * Cosmetic: l1sap.h: change /* !< to /*!<
  * logging.h: add L1 SAPI related context and filter
  * gprs_ns_vty: return success for disabled FR/GRE
  * debian, utils: switch to python 3

  [ Ruben Undheim ]
  * MAXPATHLEN set if not defined
  * No fail if no /proc/cpuinfo

  [ Philipp Maier ]
  * cosmetic: Move comment to the right place
  * cosmetic: Add comment on GSM-FR ECU struct
  * ecu_fr: increase test coverage for FR ECU implementation
  * gsm0508: add functions to calculate beginning of a block

  [ Vadim Yanitskiy ]
  * gsm29205_test: fix error: missing braces around initializer
  * GPRS/BSSGP: introduce bssgp_bvc_ctx_free()
  * logging/vty: do not print deprecated logging commands to stdout
  * logging/vty: use LOG_LEVEL_ARGS in logging_vty_add_deprecated_subsys()
  * logging/vty: fix: actually ignore deprecated logging commands
  * logging/vty: fix vty_read_file(): do not write warnings to stdin
  * logging/vty: fix: do not close stderr in vty_close()
  * libosmovty: properly initialize vty->fd in vty_new()
  * libosmovty: simplify condition checking vty->fd in vty_close()
  * core/defs.h: introduce and use OSMO_DEPRECATED_OUTSIDE

  [ Daniel Willmann ]
  * libosmogsm: add support for XOR authentication

  [ Vasil Velichkov ]
  * Add code coverage support

  [ Eric Wild ]
  * sim: allow opening reader# > 0

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Thu, 02 Jan 2020 18:42:29 +0100

libosmocore (1.2.0) unstable; urgency=medium

  [ Harald Welte ]
  * Add VTY and CTRL port numbers for OsmoCBC (Cell Broadcast Centre)
  * deal with rate_ctr_group_alloc() returning NULL
  * Fix osmo_quote_str_c() for strings larger than 32 bytes
  * Print error message if application fails to call rate_ctr_init()
  * gsm0808_utils: Introduce gsm0808_msgb_put_cell_id_u()
  * Revert "Print error message if application fails to call rate_ctr_init()"
  * osmo_sock_get_name_*: Ensure string is returned in error case
  * Revert "Change GSM48_PDISC_* to enum type"
  * pseudotalloc: turn talloc_steal() into #define
  * TLV: Add one-shot TLV encoder
  * lapdm_rslms_recvmsg: Fix memory leak in error path
  * rsl: Add osmocom-specific extensions to RSL channel numbers for CBCH
  * oap_client: Fix license: GPLv2+ instead of AGPLv3+
  * tdef: Fix license: GPLv2+ instead of AGPLv3+
  * gsm48_rest_octets: Fix license: GPLv2+ instead of AGPLv3+
  * rest_octets: Use correct symbols names for range encoder
  * rest_octets: Actually include gsm48_rest_octets.c in Makefile.am
  * rest_octets: Fix export of osmo_gsm48_rest_octets
  * rest_octets: Suffix encoder functiosn with _encode
  * rest_octets: Add function to parse SI3 rest octets
  * rest_octets: Implement actual SI6 rest octets encoding
  * rest_octets: Remove SI2ter + SI2bis encoders that don't do anything
  * lapdm: Don't truncate L3 payload at 200 bytes length
  * make all library-internal static buffers thread-local
  * gsm0808_utils: Add gsm0808_decode_cell_id_u()
  * lapdm: Allow user to specify T200 values; Use correct N200 values
  * lapd_core: Perform N200 retransmissions, not N200-1
  * fsm: Allow millisecond granularity in osmo_fsm built-in timer
  * fsm: Reduce amount of copy+pasted LOGPFSMSRC() statements
  * fsm.c: Print error message for FSM with allstate_action but no events
  * CBSP (Cell Broadcast Service Protocol; 3GPP TS 48.049) support
  * cbsp: Introduce osmo_cbsp_errstr
  * Add Cell Broadcast related definitions from 3GPP TS 23.041
  * cbsp.c: Remove dead code
  * tdef: remove bogus OSMO_ASSERT(unsigned long >= 0)
  * osmo_get_rand_id(): Avoid dead code by proper #if/#else/#endif
  * avoid gcc format error on embedded builds
  * pseudotalloc: Simplistic wrapper of talloc_named()

  [ Keith ]
  * Add expect script: 'vty' for easy access to all vtys

  [ Kévin Redon ]
  * fix typo in FSM description
  * fix isdigit taking unsigned as input
  * minor: don't redefine macros
  * (minor) fix typo in comments

  [ Omar Ramadan ]
  * Add MO-FALLBACK-VALUE SGsAP IE

  [ Max ]
  * NS: log address:port on error
  * Change GSM48_PDISC_* to enum type

  [ Pau Espin Pedrol ]
  * gsm0808: Introduce Osmocom extensions to announce Osmux support
  * vty: command.c: Get rid of huge indentation block
  * vty: command.c: Fix is_cmd_ambiguous() returning always 0
  * cosmetic: vty: command.c: Use upper case for enum match_type value names
  * vty: command.c: Get rid of huge indentation block
  * logging: Check return error from time() call
  * logging: Use reentrant ctime_r instead of ctime
  * command.c: Improve return check condition in cmd_execut_command_real()
  * vty: command.c: Get rid of big indentation block
  * vty: tests: Verify incomplete optional parameters are passed to vty funcs
  * vty: command.c: Fix: multi-choice args are no longer passed incomplete to vty func
  * vty: command.c: Fix: single-choice optional args are no longer passed incomplete to vty func
  * vty: Remove trailing whitespace in output from show asciidoc
  * gsm: lapd_core: Log timeout used upon start of T200
  * vty: Simplify char escaping in asciidoc output
  * gsm0808_test: Fix wrong use of memcp
  * utils: share static buffer in osmo_str_to{lower,upper}()
  * Get rid of osmo_str_tolower() use inside libosmocore code
  * tests: logging: Remove undefined param passed to logging_vty_add_cmds
  * configure: Autodetect TLS bug on ARM with old gcc and apply workaround
  * configure: Allow disabling workaround for TLS bug in old ARM gcc versions
  * osmo-release.sh: Drop whitespace after = when parsing LIBVERSION

  [ Oliver Smith ]
  * gsm_23_003: add GSM23003_MSISDN_{MIN,MAX}_DIGITS
  * Cosmetic: GSUP: fix too long comment line
  * gsm48_decode_bcd_number2: fix ENOSPC edge case
  * gitignore: add doc/*.tag.prep
  * Makefile.am: don't delete example.xml, vtydoc.xsd
  * contrib/jenkins.sh: run "make maintainer-clean"

  [ Sylvain Munaut ]
  * codec/ecu: Add a bit of precision about the actual frame format used

  [ Daniel Willmann ]
  * Deprecate usage of osmo_counter_*
  * stats_vty: Add verb to sentence for show asciidoc counters

  [ Vadim Yanitskiy ]
  * protocol/gsm_12_21.h: fix copy-pasted struct description
  * gsm0408/gsm0408_test.c: introduce BCD number encoding / decoding test
  * gsm48_decode_bcd_number2(): fix output truncation
  * gsm48_decode_bcd_number2(): fix: return -ENOSPC on truncation
  * gsm48_decode_bcd_number2(): return -EINVAL if LV has too big length
  * gsm48_encode_bcd_number(): clarify optional LHV header initialization
  * vty/command.c: cosmetic: add missing curly brackets
  * socket.c: fix Doxygen doc for osmo_sock_unix_init_ofd()
  * vty_transcript_test.vty: add choice auto-complete tests
  * core/utils: drop meaningless const from return value of osmo_luhn()
  * protocol/gsm_04_08.h: do not check if unsigned is positive
  * Revert "fsm.c: Print error message for FSM with allstate_action but no events"
  * Revert "utils.h: require a semi colon after OSMO_ASSERT"
  * libosmogsm/l1sap.h: extend ph_rach_ind_param with lqual_cb
  * osmo_gsm48_rest_octets_si3_decode(): fix copy-paste error in comment
  * bitvec/bitval2mask(): cosmetic: get rid of temporary int variable
  * gsm/gsm0480.c: parse_ss(): drop needless debug print
  * gsm/gsm0480.c: use DLGLOBAL and LOGL_ERROR for logging
  * gsm/gsm48.h: drop meaningless 'const' from gsm48_mi_to_string()
  * vty/telnet_interface.c: use DLGLOBAL logging sub-system
  * vty/telnet_interface.c: avoid unneeded initialization
  * vty/logging_vty.c: fix writing of 'print category-hex'
  * vty/telnet_interface.c: log connection accept() / close() events
  * vty/vty.c: fix vty_read(): prevent further heap-buffer overrun
  * vty/vty.c: the command buffer can be accessed directly

  [ Alexander Couzens ]
  * utils: add gsmtap_logread.py a gsmtap log reader
  * bitvec: correct comment in bitvec_alloc
  * utils.h: require a semi colon after OSMO_ASSERT

  [ Eric Wild ]
  * add define for magic tmsi constant
  * tell ubsan to ignore SUN_LEN

  [ Ruben Undheim ]
  * Set HTML_TIMESTAMP to NO to make build reproducible

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 06 Aug 2019 18:02:01 +0200

libosmocore (1.1.0) unstable; urgency=medium

  [ Oliver Smith ]
  * gsm_23_003.h: add GSM23003_IMEI_NUM_DIGITS_NO_CHK
  * GSUP: deprecate osmo_gsup_get_err_msg_type()
  * Revert "signal.c: Make non-exported tall_sigh_ctx static"
  * Revert "ipa_ccm_idtag_parse*: Fix reported length value"
  * GSUP: add inter-MSC handover related msgs and IEs

  [ Harald Welte ]
  * Bump version: 1.0.0 → 1.0.1
  * gsm0408_test: Fix IMEI-SV related tests to use no more than 16 digits
  * constrain gsm48_generate_mid() output array bounds
  * Work around bogus gcc-8.2 array-bounds warning/error
  * Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15
  * gsm_08_08.h: Add IEI definitions from Release 15
  * bitvec: Add bitvec_bytes_used() function
  * bitvec: Add bitvec_tailroom_bits() function
  * Fix BSSMAP length generated by gsm0808_create_clear_command2()
  * gsm0808: comment about difference of gsm0808_create_clear_command()
  * gsm0808: Add unit tests for test_create_clear_command2()
  * bssgp_tx_bvc_unblock(): Fix log message
  * gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple()
  * gprs_ns.c: cosmetic whitespace fixes
  * gprs_ns: Declare gprs_ns_tx_alive*() in header file
  * gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message
  * select: Call log_reset_context() before calling file descriptor callbacks
  * NS: Don't print information about FR/GRE if not enabled!
  * NS: Add missing NS Cause strings
  * GPRS: Doxygen documentation for 'struct libgb_msgb_cb'
  * gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding
  * NS: Factor out gprs_nsvc_start_test() and use it
  * NS: Add support for GPRS NS IP Sub-Network-Service (SNS)
  * gprs_ns.c: Update comment: IP SNS has recently been implemented
  * gprs_ns: Don't use initial IP/port for anything but SNS
  * gprs_ns_sns: Use "correct" remote IP address for local IP endpoint
  * tests: use -no-install libtool flag to avoid ./lt-* scripts
  * ipa_ccm_idtag_parse*: Fix reported length value
  * socket: osmo_sock_get_name() Use "const void *" as talloc context
  * gprs_ns_sns: Properly initialize sockaddr_in in gprs_nsvc_create_ip4()
  * select: Rename BSC_FD_* constants to OSMO_FD_*
  * signal.c: Fix osmo_signal_talloc_ctx_init()
  * signal.c: Make non-exported tall_sigh_ctx static
  * osmo_escape_str_buf: Always copy, don't return input string pointer
  * Add _buf() functions to bypass static string buffers
  * Add _c versions of functions that otherwise return static buffers
  * Re-introduce declaration of gsm0808_create_handover_request_ack()

  [ Neels Hofmeyr ]
  * gsm0808: add BSSMAP Cell Identifier matching API
  * add osmo_hexdump_buf() and test
  * add osmo_classmark_* API
  * osmo_fsm_state_name: make robust against NULL fi
  * build: add missing logging_vty_test.vty to EXTRA_DIST
  * jenkins distcheck: enable external tests
  * osmo_fsm_inst_state_chg(): set T also for zero timeout
  * osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years
  * add generic vty_transcript_test.c, vty_transcript_test.vty
  * vty: enable optional-multi-choice syntax: ([one]|[two])
  * vty: enable optional-multi-choice syntax: [(one|two)]
  * vty: enable tab-completion for optional-multi-choice args
  * vty telnet: consistently never change nodes upon CTRL-C
  * vty api: add vty_out_va()
  * doxygen: enable cross referencing everywhere
  * doxygen: add source files as dependencies
  * doxygen: allow manual 'make apidoc' even if --disable-doxygen
  * add osmo_tdef API, originally adopted from osmo-bsc T_def
  * platform independence fix: tdef range tests
  * get_value_string(): guard against NULL
  * fix osmo_gsm48_classmark* libosmogsm.map entries
  * add OSMO_STRBUF_PRINTF()
  * enlarge gsm0808 msgb headroom
  * log: fsm: allow logging the timeout on state change
  * fix api doc typo for osmo_plmn_name2()
  * api doc: tweak gsm0808_cell_id_matches_list() doc
  * represent negative T-timers as Osmocom-specific X-timers
  * tdef_test: tweak output to prepare for a fix
  * fix tdef_test.c: do call the function-to-test in all cases
  * fsm: add osmo_fsm_inst_state_chg_keep_or_start_timer()
  * add gsm0808_cell_id_from_cgi(), gsm0808_cell_id_to_cgi()
  * osmo_gsm48_classmark_a5_name(): fix 'no-cm3' label
  * gsm_utils.h: remove unused include of gsm_08_08.h
  * add osmo_sockaddr_str API
  * add osmo_use_count API
  * add fsm_dealloc_test.c
  * fsm: add flag to ensure osmo_fsm_inst_term() happens only once
  * fsm: support graceful osmo_fsm_inst_term() cascades
  * fsm_dealloc_test: no need for ST_DESTROYING
  * make osmo_sockaddr_str_is_set() NULL-safe
  * add osmo_str_startswith()
  * tweak OSMO_STRBUF_APPEND(), add OSMO_STRBUF_APPEND_NOLEN()
  * add osmo_{escape,quote}_str_buf2() for standard args ordering
  * add identifier sanitation for setting FSM instance ids
  * add OSMO_IMSI_BUF_SIZE
  * GSUP: add Message Class IE
  * BSSMAP: tweaks
  * BSSMAP: add messages for inter-BSC and inter-MSC Handover
  * add gsm48_decode_bcd_number2() from osmo-msc
  * add osmo_bssap_tlv_parse2() for multiple identical T
  * add vty_is_active()
  * add comment to gsm_mncc_bearer_cap.speech_ver
  * gsm48_decode_bcd_number2(): fix input len check
  * gsm48_decode_bcd_number2(): allow avoiding deprecation
  * osmo_gsup_decode(): properly check IMSI, avoid deprecation
  * add gsm0808_create_handover_request_ack2 to add AoIP RTP addr

  [ Max ]
  * socket.h: add missing include
  * Enable remote SIM protocol log level
  * Add multipatch capability to osmo-config-merge
  * LCLS: add string dump helpers
  * coding: check gsm0503_rach_*() results
  * rate_ctr_group_free(): guard against empty or NULL input
  * BSSGP: use variable for NSEI

  [ Philipp Maier ]
  * gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND
  * gsm0808_utils: fix gsm48 multirate configuration generator
  * gsm0808_utils: fix gsm48 multirate to S-bit converter
  * gsm_utils: fix use buf_len instead of sizeof in osmo_dump_gsmtime_buf

  [ Sylvain Munaut ]
  * protocol/gsm_04_14: Fix the OPEN LOOP message type
  * gsm_08_08.h: Add constants for Channel Type in signalling mode

  [ Vadim Yanitskiy ]
  * gsm/gsm0480: introduce gsm0480_create_release_complete()
  * vty/tdef_vty.c: drop redundant comparison
  * src/signal.c: cosmetic: use talloc_zero()
  * Doxygen: fix incorrect / missing parameter description
  * core/linuxlist.h: fix and unify Doxygen documentation
  * core/linuxlist.h: fix white-space and inconsistent alignment
  * src/logging.c: fix syntax errors in Doxygen documentation
  * core/msgb.h: fix dead msgb2 reference in msgb_eq_* helpers
  * core/msgb.h: drop meaningless parameter of msgb_eq_* helpers
  * src/msgb.c: fix Doxygen documentation for msgb_printf()
  * core/msgb.h: fix incorrect Doxygen parameter description
  * Doxygen: fix documentation of rate_ctr_for_each_counter()
  * src/rate_ctr.c: drop some incorrect \ref references
  * Doxygen: fix documentation of osmo_timer_setup()
  * logging_gsmtap.c: document all params of log_target_create_gsmtap()
  * src/gsmtap_util.c: fix possible memleak in gsmtap_source_init()
  * gsm_03_40.h: define max SM-TP-UDL (User-Data-Length) values
  * vty/talloc_ctx_vty.c: allocate walk_cb_params on stack, not heap
  * vty/talloc_ctx_vty.c: use REG_NOSUB flag of regcomp()
  * gsm_utils.c: fix Doxygen description for gsm_get_octet_len()
  * Fix incorrect buffer size calculation
  * gb/gprs_ns_sns.c: fix incorrect sizeof() calculation
  * gsm/gsm_utils.c: indicate intentional fall-through
  * application.c: drop wrong \references of osmo_init_ignore_signals()
  * bitcomp.c: fix missing Doxygen group closing tag
  * gsm/gsm_utils.h: fix argument type of gsm_chan_t_name()

  [ Pau Espin Pedrol ]
  * rsl: Support PDCH in rsl_chan_nr_str
  * ipa: Document ipa_ccm_idtag_parse_off and fix ipa_ccm_idtag_parse
  * ipa: Fix ipa_ccm_id_resp_parse on big endian systems

  [ Karl Koscher ]
  * Fix build on non-glibc systems

  [ Alexander Couzens ]
  * add osmo_stat_item_inc/osmo_stat_item_dec to set it relative

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 07 May 2019 18:36:51 +0200

libosmocore (1.0.1) unstable; urgency=medium

  [ Max ]
  * Rename msgb_wrap_with_TL()

 -- Harald Welte <laforge@gnumonks.org>  Mon, 21 Jan 2019 14:50:42 +0100

libosmocore (1.0.0) unstable; urgency=medium

  [ Kévin Redon ]
  * GSMTAP: add SIM sub_types
  * comp128v23 (minor): update original code site and author

  [ Neels Hofmeyr ]
  * fix strncpy bugs in gsm/ipa.c
  * fix strncpy bugs in socket.c
  * cosmetic: osmo-sim-test.c: use memcpy instead of strncpy
  * use __FILE__, not __BASE_FILE__
  * log: add 'last' option to 'logging print file'
  * gsm0808: inter-bsc HO messages: add missing BSSMAP header, x4
  * api doc: fix osmo_quote_str_*
  * add osmo_str_tolower() and _toupper() with test
  * fix tests linking: don't use system installed libs
  * logging vty: add VTY transcript test
  * gsm0808: implement BSSMAP Classmark Request
  * jenkins: add --enable-external-tests
  * logging vty: rewrite 'logging level' vty cmd generation
  * logging vty: deprecate the 'everything' keyword
  * logging vty: write: check logging levels validity
  * logging vty: deprecate 'all', introduce 'force-all'
  * Revert "gsm0808: add function to convert amr gsm0408 setings to gsm0808"
  * logging vty: add 'logging level set-all <level>'
  * vty reference: fix deprecation bit evaluation
  * vty list: fix deprecation/hidden bit logic
  * vty: omit HIDDEN from vty reference
  * vty logging: fix crash when missing 'logging enable'
  * jenkins: print gcc version in log
  * gsm_44_318.h: remove #if 0 from struct gan_cch_desc_ie
  * add contrib/struct_endianess.py
  * gsm0408_test: test encoding and decoding Mobile Identity
  * api doc: gsm48_mi_to_string(): warn of return value implementation
  * add osmo_bcd2str()
  * gsm48_mi_to_string: use osmo_bcd2str(), fix some corner cases
  * gsm48_generate_mid(): mask out ODD flag from mi_type
  * gsm48_mi_to_string(): guard against zero length output buffer
  * gsm48_mi_to_string(): do not read from zero length input buffer
  * fix api doc for osmo_bcd2str()
  * add to osmo_sock_get_name*() API
  * add/clean big-endian packed structs (struct_endianess.py)
  * define LOGPFSM fmt only once, in LOGPFSMLSRC
  * add API doc for LOGPFSM* macros
  * LOGPFSM*: guard against fi == NULL
  * add LOGPFSMSL(), LOGPFSMSLSRC()
  * gsm_utils: add enum osmo_rat_type, from osmo-msc enum ran_type
  * osmo_rat_type: add OSMO_RAT_EUTRAN_SGS
  * fix typo in enum BSS_MAP_MSG_TYPE: BSS_MAP_MSG_ASSIGMENT*
  * add osmo_mi_name(), for MI-to-string like "IMSI-123456"
  * add osmo_lu_type_names[], osmo_lu_type_name()
  * change GSM48_CMSERV_* to enum type, add names
  * comments: update/fix three 3GPP spec references

  [ Alexander Couzens ]
  * ctrl/vty: fsm: use correct element when iterating over fsm->proc.children
  * bssgp: introduce flush queue functions
  * configure.ac: check clock_gettime for glib < 2.17

  [ Harald Welte ]
  * gsm0480: Factor out msgb allocation helper function
  * USSD: Introduce gsm0480_gen_ussd_resp_7bit()
  * 04.80: New gsm0480_gen_{reject,return_error}() functions
  * import oap_client into libosmogsm
  * oap_client: Rename symbols with osmo_ prefix
  * import oap_client_test from osmo-sgsn
  * cosmetic: More context / naming / comment for test_idtag_parsing()
  * Deprecate ipa_ccm_idtag_parse() with ipa_ccm_id_{get,resp}_parse()
  * jenkins_arm.sh: Use same Werror related options as on other builds
  * re-introduce ipa_ccm_idtag_parse_off()
  * debian/rules: Don't overwrite .tarball-version
  * Add RSPRO support to IPA and logging definitions
  * Add new osmo-config-merge utility
  * logging_vty: Ensure writing well-formed config files
  * osmo-config-merge: Don't use C99 'for' loop initial declarations
  * Revert "osmo-config-merge: Add manual page"
  * osmo-config-merge: fclose() what we fopen()
  * timerfd_create(): Fix error handling of osmo_fd_register()
  * telnet_interface: avoid double-close of fd()
  * vty.c: Set vty->fd to -1 after closing the FD
  * SGsAP protocol definitions (header + C file)
  * gsm23003: Add MME domain name related helper functions
  * Fix VTY documentation error introduced  in "bind" VTY port change

  [ Vadim Yanitskiy ]
  * vty/vty.c: remove dead unused tall_bsc_ctx
  * gsm/gsm0480.c: prevent NULL-pointer dereference
  * gsm/gsm0480.c: use the local msgb allocator
  * libosmogsm: (re)introduce gsm48_push_l3hdr()
  * core/utils.h: drop duplicate '<stdbool.h>' include
  * core/utils.h: move includes to the top
  * vty/command.h: document and prettify CMD_ATTR_* flags
  * utils/osmo-config-merge: explicitly return from main()
  * libosmogsm/gsup.c: fix error code in osmo_gsup_encode()
  * gsm/gsup.h: cosmetic: use tab for comment alignment
  * core/msgb.h: introduce msgb_l4len() helper
  * gsm0480: fix copy-pasted note for gsm0480_gen_return_error()
  * GSUP/SMS: introduce MO-/MT-FORWARD-SM messages
  * GSUP/SMS: introduce READY-FOR-SM message
  * tests/gsm0808: use new msgb comparison API
  * logging/gsmtap: fix buffer overflow in _gsmtap_raw_output()
  * tests/gsup_test.c: drop session IEs from MO-ForwardSM Error

  [ Philipp Maier ]
  * socket: check return code of setsockopt
  * socket: do not set SO_REUSEADDR for IPPROTO_UDP
  * socket: add flag to enforce SO_REUSEADDR on UDP sockets
  * gsmtap_util: make sure SO_REUSEADDR is applied for GSMTAP
  * gsm0808: fix wrong codec defaults for OFR_AMR_WB
  * gsm0808: add function to convert amr gsm0408 setings to gsm0808
  * gsm0808: add function to convert amr gsm0408 setings to gsm0808
  * gsm0808_utils: constify parameter
  * gsm_utils: add function to get value strings for gsm48_chan_mode
  * gsm0808: add function to convert AMR S15-S0 to gsm0408 settings
  * gsm0808: allow decoding of zero length speech codec lists.
  * gsm0808: fix doxygen apidoc
  * gsm0808: cosmetic: rename parameter "reason" to "cause"
  * gsm48: correct apidoc for gsm48_generate_mid()
  * gsm_29_118: add missing include to header file
  * gsm29118: add value strings for SGSAP IEI
  * fsm: fix apidoc of osmo_fsm_state_name()
  * gsm0808: add message generator for BSSMAP HANDOVER PERFORMED
  * gsm_29_118: add missing extern for struct value_string decl.
  * cosmetic apn: correct whitespace error
  * gsm_29_118.h: Add constant for default port
  * gsm29118: add generator functions for GSM29118 messages
  * gsm0808: add encoder for cause codes and use it

  [ Mykola Shchetinin ]
  * vty/vty.c: fix bug in vty_config_write

  [ Pau Espin Pedrol ]
  * signal: Introduce API osmo_signal_talloc_ctx_init
  * msgb: Introduce msgb_{de,en}queue_count APIs
  * vty: Makefile: Fix LIBVERSION typo introduced in 0.12.0 release
  * ipa: Document ipa_msg_recv* functions
  * osmo-release.sh: Add quotes to string to fix shellcheck warning
  * osmo-release.sh: Allow forcing release without LIBVERSION bump
  * osmo-release.sh: Add checks to help avoid libversion debian major mismatch
  * gsm_08_58.h: Introduce struct abis_rsl_link_id
  * gsm_08_58.h: Introduce struct abis_rsl_chan_nr
  * gsm48: gsm48_decode_freq_list: Improve documentation of paramter f
  * gsm: Deprecate buggy gsm_arfcn2band API and introduce gsm_arfcn2band_rc
  * timer: Fix clockid_t undefined on MacOS < 10.12
  * stats.h: Fix build on MacOS

  [ Stefan Sperling ]
  * properly handle mandatory cli param of gsm0808_create_paging2
  * Properly deal with sockaddr_un socket path length limitations.
  * ensure unix socket paths are NUL-terminated for bind/connect
  * fix error handling gprs_ns_nsip_listen()
  * add support for ipaccess messages on the ctrl interface
  * stop printing group description in vty_out_rate_ctr_group_fmt()
  * make 'show rate-counters' show group index
  * send NS_POUT_UNBLOCK_ACK before signalling S_NS_UNBLOCK
  * document unblock-ack vs. signalling in gprs_ns_process_msg()
  * rename CELL_IDENT_LAI_AND_LAC to CELL_IDENT_LAI
  * port arfcn range encode support from osmo-bsc
  * port rest octets encoding code from osmo-bsc

  [ Keith ]
  * Add CC_CAUSE value_string array

  [ Alexander Chemeris ]
  * coding: Correctly count bits when decoding EDGE bursts with MCS >= 7.
  * coding: Always initialize bit counters in gsm0503_pdtch_egprs_decode().

  [ Daniel Willmann ]
  * osmo-config-merge: Fix some small issues
  * osmo-config-merge: Add manual page
  * stats_statsd: Send all stat_items as gauges

  [ Shinjo Park ]
  * GSMTAP: add definitions for new LTE RRC channels
  * GSMTAP: add definitions for LTE NAS subtypes
  * GSMTAP: fix typos in comments

  [ Max ]
  * vty: adjust telnet log
  * Update cipher reject function
  * Fix deprecation warning in gsm0808_test
  * Add helper wrapper for BSSAP TLV parsing
  * Update 3GPP TS 08.08 Cause handling
  * Update GSM0808_LCLS enums
  * Move msgb_push helpers to public header
  * Support cipher mode reject with extended cause
  * Add missing header include
  * LCLS: add 48.008 parameter structure
  * Update gsm0808_create_ass() doxygen
  * ctrl: print textual error on IPA parsing failure
  * Move BSSMAP_MSG_* defines to header file
  * Update msgb Lx helpers
  * ctrl: use #define for TRAP id
  * Add msgb_tl_put() helper
  * LCLS: update osmo_lcls struct
  * Allow log_init() with NULL log_info
  * Add osmo_sockaddr_in_to_str_and_uint()
  * Constify llist_count() parameter
  * msgb: add test helpers
  * LCLS, TS 29.205: add GCR routines
  * LCLS, TS 48.008: add GCR IE encoding/decoding
  * LCLS: add gsm0808_create_ass2()
  * Fix typos in SS opcode names
  * LCLC: fix doc to match type signature
  * Use define for key buffers
  * TLV: fix doc copy-paste error
  * TLV: add convenience function for 1-byte values
  * LCLS: enc/dec entire parameter set instead of GCR
  * Streamline glibc version check
  * Automatically disable GnuTLS fallback
  * LCLS: fix LCLS-CONNECT-CONTROL encoder
  * msgb: fix debug print
  * LCLS: use proper types for value_string wrappers
  * LCLS: expand enc/dec tests
  * LCLS: add GCR comparison helper

  [ Oliver Smith ]
  * cosmetic: fix typo (soocket -> socket)
  * add osmo_sock_get_{local,remote}_ip{,_port}()
  * socket.c: fix IP and port buffer sizes
  * merge_doc.xsl: move to osmo-gsm-manuals.git
  * GSUP: fix missing osmo_gsup_get_err_msg_type()s
  * GSUP: add end marker to enum osmo_gsup_iei
  * GSUP: add CHECK-IMEI message
  * Cosmetic: GSUP: note "on wire" for imei_result
  * gsm23003: add osmo_imei_str_valid()

  [ Martin Hauke ]
  * gsm/protocol/gsm_08_58.h: Fix typo

  [ Holger Hans Peter Freyther ]
  * vty: The telnet interface is TCP only. Fix the comments
  * vty: Make TCP port configurable and introduce telnet_init_default

 -- Harald Welte <laforge@gnumonks.org>  Sat, 19 Jan 2019 21:59:07 +0100

libosmocore (0.12.0) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * control_if: Avoid heap-use-after-free in osmo_wqueue_bfd_cb
  * configure: Check separately for lib implementing dlopen and dlsym
  * tests: bitrev_test: Fix dynamic-stack-buffer-overflow
  * tests: gea_test: Use correct max size for key in buffer
  * tests: a5_test: Print wrong buffer correctly on error
  * gsm: kasumi: Fix dynamic-stack-buffer-overflow on out buffers not multiple of 64 bits
  * gsm: lapdm.c: Add missing new line char in notice log string
  * ctrl: Log CMD TYPE on invalid ID number
  * ctrl: Fix parsing of ERROR recvd msgs with id=err
  * gsm0808: Add value_string for encryption algorithms
  * ctrl: Introduce ctrl_cmd_parse3 API
  * ctrl: ctrl_handle_msg: Avoid sending back received ERROR msgs
  * tests: ctrl: Test received ERROR messages are handled correctly
  * libosmocoding: clarify return values for TCH decoding functions
  * libosmocodec: FR err concealment: Fix too many silent frames generated
  * tests: codec: ecu_fr: Print XMAXC fields
  * tests: codec: ecu_fr: Add buffer with unequal XMAXC values
  * rate_ctr: Improve logging
  * logging: log_vty_command_string: Fix undercount of buf alloc size
  * logging_vty: Simplify code in config_write_log_single
  * logging.c: Fix whitespace typo

  [ Harald Welte ]
  * lapdm: Fix back-pointer from lapdm_entity to lapdm_channel
  * lapdm: Implement SABM related constraints
  * lapdm: cleanup: send_rslms_rll_l3_ui(): Use msgb_tv_push()
  * lapdm: send_rslms_rll_l3_ui(): Don't include B4/SACCH IE unless needed
  * lapdm: don't enforce contention resolution on SAPI0/DCCH
  * Add osmo_timerfd_* functions for osmo_fd-wrapped timerfd
  * import isdn4linux HDLC code from linux kernel
  * isdnhdlc: Port from kernel to userspace
  * mncc: properly export osmo_mncc_name()
  * cosmetic: Whitespace fixes in control_if.c
  * ctrl: Introduce libosmoctrl.map to avoid unintended exports
  * ctrl: Add doxygen API documentation; generate html from it
  * debian: Add libosmoctrl-doc sub-package
  * gsm_08_08.h: Add enum for LCLS config, control and status
  * gsm0808: Add encoding functions for LCLS BSSMAP messages
  * gsm0808: Add value_string for LCLS related IEs
  * tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum
  * Add osmo_isqrt32() to compute 32bit integer square root
  * fsm: Change semantics of LOGPFSML() log-level
  * vty: Don't dump deprecated commands in XML export
  * vty: Add logging_vty_add_deprecated_subsys
  * gsup: Add osmo_gsup_get_err_msg_type() function
  * gsup: Add value_string for Session State IE
  * gsm 04.80: Add value_string for component type and op code
  * Fix embedded (arm-none-eabi) builds
  * jenkins_arm.sh: Don't run 'make check' on embedded builds
  * jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm"
  * jenkins_arch.sh: Exit with error on unknown architecture
  * Don't call abort() directly, always use osmo_panic()
  * osmo_panic(): Annotate as __attribute__ ((noreturn))
  * gprs_ns.h: Declare gprs_ns_cause_str() which already existed in c file

  [ Stefan Sperling ]
  * define a constant for the max length of called party BCD IE
  * introduce vty_out_rate_ctr_group_fmt() function
  * Add a 'show rate-counters' VTY command.
  * remove unused argument from pad_append_ctr() helper function
  * check bssgp_tlv_parse() return code in bssgp_rcvmsg()
  * return error to sender upon bssgp_tlv_parse() failure

  [ Neels Hofmeyr ]
  * add gsm0808 channel enum to IE val conversion functions
  * add gsm0808_cell_id_to_list()
  * add support for gsm0808 HANDOVER REQUIRED message
  * add gsm0808_create_handover_request_ack()
  * add osmo_fsm_inst_state_chg_keep_timer()
  * fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR
  * add and tweak inter-BSC HO API
  * vty/command.c: talloc from tall_vty_cmd_ctx, not NULL
  * vty: cosmetic: cmd_deopt(): use talloc_strndup(), not memcpy()
  * vty: fix use-after-free and memleaks in is_cmd_ambiguous()
  * utils_test: fix isqrt_test calculation range
  * utils_test: check stderr to catch sanitizer issues
  * add osmo_sockaddr_to_str_and_uint()

  [ Philipp Maier ]
  * fsm: guard action callback
  * gsm_04_08: add function to get value string
  * gsm_08_08: gsm0808_permitted_speech does not have value strings

  [ Thorsten Alteholz ]
  * fix spelling

  [ Keith ]
  * Add enum gsm48_cause_coding from GSM 04.08 Section 10.5.4.11
  * Add enum gsm48_progress_desc

  [ Daniel Willmann ]
  * ports.h: Add ctrl port for osmo-gbproxy
  * Add function gprs_nsvc_state_append
  * stats_vty: Add asciidoc sections between the different counters

  [ Vadim Yanitskiy ]
  * gsm0480: fix: don't overwrite the data of RELEASE_COMPLETE
  * GSUP: implement TCAP-like session management
  * GSUP: introduce new messages for SS/USSD payloads
  * Doxygen: gitignore generated files for libosmoctrl
  * gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag()
  * gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie()
  * Don't enforce Python 2 for utilities

  [ Alexander Chemeris ]
  * coding: Fix (E)GPRS BER calculation to correctly account for puncturing.
  * coding: Documentation typo fix.

  [ Alexander Couzens ]
  * vty: initialize termios before using it
  * stats_statsd: sanitize statsd name

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Fri, 27 Jul 2018 17:31:46 +0200

libosmocore (0.11.0) unstable; urgency=medium

  [ Max ]
  * Enable GnuTLS fallback
  * Ctrl: add rate counter group introspection
  * ctrl: log incorrect interval values
  * Improve get_rate_ctr() error handling
  * ctrl: make response easier to parse
  * coding test: cosmetic cleanup
  * coding test: enable debug output
  * coding test: move bit dump into functions
  * coding test: use OSMO_ASSERT
  * Fix embedded build
  * embedded: fix tests
  * Embedded: fix sercomm test
  * Add functions for extended RACH coding
  * Do not allocate already existing counter group
  * Fix incorrect spec reference
  * Use 127.0.0.1 for GSMTAP logging by default
  * coding: move eB adjustement to appropriate place
  * Add function to properly encode RAI
  * Use existing function for TLLI encoding
  * log: print loginfo assertions source
  * Allow multiple 'log gsmtap' sinks
  * Deprecate gsm48_construct_ra()
  * Log lapd_datalink state on errors
  * jenkins: add dispatcher script
  * Embedded: disable stats test
  * Embedded: add sercomm stubs
  * GSUP: don't fail test on first error
  * jenkins: remove obsolete scripts
  * jenkins: move make invocation into shared function
  * utils: add helper wrapper for osmo_strlcpy()
  * GSUP: change osmo_gsup_encode() return type
  * Use python 3 for utilities
  * Add test for gsm48_generate_mid_from_imsi()
  * Add generic Mobile Identity encoder
  * Add function to encode classmark

  [ Niro Mahasinghe ]
  * gsm0503_coding.c: Fix tch_efr_unreorder() of one bit
  * gsm0503_coding.c: Use majority vote in tch_efr_unreorder()

  [ Harald Welte ]
  * debian: build now depends on libgnutls
  * Fix/Update copyright notices; Add SPDX annotation
  * Print /proc/cpuinfo before executing testsuite
  * conv_acc: Our code requires SSSE3, not just SSE3
  * ports.h: Use same VTY port number for osmo-mgw and osmo-bsc_mgcp
  * gsmtap.h: Introduce new GSMTAP type for LTE NAS messages
  * gsm0808_create_cipher_reject: Fix encoding of Cause IE
  * rate_ctr: print proper error message if rate_ctr already exists
  * timer: fixup whitespace issues
  * control_if: Close control connection socket/fd on read/write == 0
  * control_if: Log the disconnect of a CTRL client
  * CTRL: Ensure peer/connection info is always printed the same way
  * MNCC: Add MNCC to string dumper
  * gsm48_pdisc_names: Use conscise, short names
  * SMS: Add value_string for TS 04.11 CP and RP state
  * gsm_04_08.h: Clearly annotate timers that don't have a 3GPP Default value
  * gsm_04_08.h: Reduce T310 default to 30s.
  * gsm48_hdr_msg_type[_r99]: Fix bit-masks
  * gsm48_hdr_msg_type(): SS is in the same group as MM/CC
  * tlv_parser: Report *first* occurrence of repeated IEs
  * msgb: Add msgb_hexdump_{l2,l3}() to dump l2 or l3 part of message buffer
  * Revert "Use python 3 for utilities"
  * Revert "fsm: do not terminate child FSMs early"
  * osmo_msgbdump_{l2,l3}(): Proper typecast
  * debian/control: Fix Vcs-Browser URL
  * Add GSM 04.08 type-of-number / numbering-plan-id definitions
  * talloc_ctx_vty: Fix help strings (missing \n at end of line)
  * Revert "Add function to encode classmark"
  * rate_ctr: Add rate_ctr_inc2() as convenience wrapper
  * coding: Add BER-reporting RACH decode functions
  * l1sap: Add RSSI, BER and quarter-bit accurate timing to PH-RACH.ind
  * l1sap: Add fields for higher-precision timing offset values
  * abis_nm: Introduce abis_nm_dump_foh()
  * VTY: Don't welcome the user to the "control" interface, if it's VTY
  * prevent integer underflow in ipa_ccm_make_id_resp_from_req()
  * RSL/LAPDm: Not all RLL message are "transparent"

  [ Neels Hofmeyr ]
  * vty: deprecate now empty node commands
  * memleak: osmo_config_list_parse: getline() needs free also on error
  * abis_test: sanitize: fix msgb memleak
  * lapd_test: sanitize: fix msgb memleaks
  * gsm0408_test: sanitize: cleanup msgb
  * gsm0808_test: sanitize: fix msgb memleak
  * msgb: add inline msgb_queue_free()
  * rate_ctr: fix mem leak for mangled desc
  * bssgp_fc_test: remove rounding to deciseconds
  * bssgp_fc_test: clarify by outputting ok / failure messages
  * bssgp_fc_test: sanitizer: free msgb context when done
  * gprs_bssgp: bssgp_fc_in(): fix mem leak on queue overflow
  * bssgp_fc_test: sanitize: free fc struct when done
  * tlv_put: guard against NULL val and 0 len
  * sercomm_test: sanitize: fix msgb mem leak
  * osmo_strlcpy: sanitize: don't memcpy from NULL src even if len is 0
  * fsm_tmr_cb: don't set T=0, the fi may no longer exist
  * vty XML export: avoid repeating common node commands for each node
  * VTY reference: do not list empty nodes
  * VTY reference: use node names as section names
  * vty: set name for VIEW+ENABLE nodes, for VTY reference
  * vty reference: merge_doc.xsl: do not omit description tag
  * comment: utils: more accurately describe OSMO_STRINGIFY macro
  * logging vty: describe 'logging set-log-mask' command, add OSMO_STRINGIFY_VAL()
  * fix osmo_identifier_valid(): only allow printable characters
  * utils: add osmo_separated_identifiers_valid()
  * add osmo_auth_c3() (separate from gsm_milenage())
  * utils: add osmo_escape_str()
  * ctrl_test.c: replace print_escaped() with new osmo_escape_str()
  * ctrl: prep test: separate new ctrl_handle_msg() from handle_control_read()
  * ctrl_test: expand to test message handling and detect mem leaks
  * ctrl_test: show memleak when receiving GET_REPLY and SET_REPLY commands
  * ctrl: fix mem leak when handling GET_REPLY and SET_REPLY
  * ctrl_test: add two more current parsing bugs to prep for fix
  * add ctrl_cmd_parse2() to return parsing errors
  * ctrl: on parse errors, return a detailed message to sender
  * rate_ctr: fix osmo-sgsn DoS: don't return NULL on already used index
  * ports: define proper VTY and CTRL ports for OsmoHNBGW
  * ctrl: tighten CTRL input parsing
  * ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP
  * jenkins: add 'make V=1' for more verbose build logs
  * logging vty: tweak general 'logging' command doc
  * gsm: add gsm0808_speech_codec_type_names
  * logging-gsmtap: send only basename of source file
  * logging: add ability to log the log-level with API and vty
  * logging: color the log level
  * logging: color the log category according to level
  * fix -Werror build: logging.c: always use literal with snprintf
  * cosmetic: logging: if color is disabled, don't print ""
  * logging: separate the '<000b>' subsys from filename logging
  * logging: allow to log only the basename of each source
  * logging vty: add 'logging print file (0|1|basename)' cmd
  * vty: fix 'logging print file' output
  * gsmtap_sendmsg(): clarify API doc concerning msgb ownership
  * memleak: gsmtap_sendmsg(): don't return 0 when no data was written
  * memleak: fix all libosmocore callers of gsmtap_sendmsg() to free on failure
  * memleak: _gsmtap_raw_output(): free msg in case of vsnprintf failure
  * cosmetic: gsm0408_test: RA test cases as array-of-struct
  * gsm0408_test: cosmetically re-order MCC to come before MNC
  * gsm0408_test: include BCD and leading zeros in test output
  * gsm0408_test: RA test: include min/max value cases
  * gsm0408_test: also test gsm48_generate_lai() and gsm48_decode_lai()
  * implement support for 3-digit MNC with leading zeros
  * gsm0408_test: check for new mnc_3_digits flag
  * gsm0408_test: test new gsm48_{decode,generate}_lai2() functions
  * gsm0408_test: add test cases for MNC with leading zeros
  * gsm: add osmo_mnc_from_str(), osmo_mnc_cmp(), osmo_plmn_cmp() for 3-digit MNC
  * introduce GSM_MCC_MNC_INVALID
  * gsm23003_test: fix: compare members instead of bcmp
  * fix osmo_mnc_from_str(): don't try to parse NULL
  * gsm23003: add osmo_mcc_from_str()
  * configure: add --enable-werror
  * jenkins_amd64.sh: use --enable-werror configure flag, not CFLAGS
  * gsm0808_test: cosmetic: re-arrange struct init; print hexdump on failure
  * gsm0808_test: cosmetic: test non-hex MCC
  * show failure in gsm0808_enc_cell_id_list2() in gsm0808_test
  * fix gsm0808_enc_cell_id_list2 for leading-zero MNC
  * cosmetic: gsm0808_test: drop extraneous assertion
  * contrib/fsm-to-dot: add -h option to print basic instructions
  * contrib/fsm-to-dot: allow transition from and to the same state
  * contrib/fsm-to-dot: don't match on event names in comments
  * contrib/fsm-to-dot: warn and draw unallowed state transitions
  * contrib/fsm-to-dot: add default edge label '-'
  * contrib/fsm-to-dot: mark arrows that feed events
  * contrib/fsm-to-dot: less false positives on event parsing
  * contrib/fsm-to-dot: mark illegal states in red
  * contrib/fsm-to-dot: warn about identically named FSMs
  * vty/command.c: write_config_file(): sanely compose temp path
  * fix logging talloc ctx: add osmo_init_logging2()
  * ctrl: test deferred cmd, show current failure
  * ctrl: fix deferred commands (and hence fix osmo-bts-sysmo 'clock-info' cmd)
  * cosmetic: flatten ctrl_handle_msg()
  * fix ctrl_test sanitizer issues
  * use osmo_init_logging2() with proper talloc ctx
  * add osmo_quote_str(),osmo_quote_str_buf() and test
  * fsm_test: terminate the main loop instead of exit on timeout
  * osmo_fsm_inst_find_by_name(): guard against strcmp(NULL)
  * fsm_test: more thoroughly test FSM inst ids and names
  * fsm: id: properly set name in case of NULL id
  * cosmetic: osmo_fsm_inst_update_id(): don't log "allocate"
  * add osmo_fsm_inst_update_id_f()
  * add gsm48_reject_value_names
  * deprecate PLMN de-/coding functions incapable of 3-digit MNC with leading zeros
  * avoid warning in gsm0808_create_layer3
  * add osmo_cgi_name()
  * add gsm0808_cell_id_list_add() to combine two cell identifier lists
  * add tlv_parse2(), capable of multiple instances of the same IE
  * add gsm0808_{enc,dec}_cell_id
  * test_gsm0808_enc_dec_cell_id_list_lac(): validate encoded bytes
  * test_gsm0808_enc_dec_cell_id_list_lac(): populate all LACs
  * test_gsm0808_enc_dec_speech_codec_with_cfg: initialize properly
  * cosmetic: log: fix typo, clarify msg for rate_ctr name mangling
  * tlv: add TLV_GET() and TLV_GET_MINLEN()
  * add gsm0808_cell_{id,id_list}_name() and friends
  * gsm0808_test: fix more missing inits (address sanitizer issues)
  * gsm0808_test: silence deprecation: use gsm0808_create_layer3_2()

  [ Philipp Maier ]
  * vty: add port number for osmo-mgw
  * libosmocodec: add FR bit offset definitions
  * libosmocodec: implement ECU (Error Concealment Unit) for FR
  * fsm: fix double llist_del in osmo_fsm_inst_term()
  * socket: fix socket leak in osmo_sock_local_ip()
  * socket: use inet_ntop() instead of inet_ntoa() in osmo_sock_local_ip()
  * fsm: add functions for unlinking and changing parents
  * fsm: do not terminate child FSMs early
  * fsm: allow graceful exit on FSM termination
  * features: move bts feature related functionality to libosmocore
  * features: define osmo_bts_*_feature() as static inline
  * gsm_08_08: correct speech codec defaults
  * gsm0808: Add value strings for BSSMAP cause codes

  [ Pau Espin Pedrol ]
  * vty: Fix bad use of vector_slot()
  * gsm: Use correct include for getrandom
  * utils: Fix false positive in compiler warning
  * cosmetic: Fix trailing whitespace
  * Fix malformed Abis/RSL messages with extra L3 Information field
  * tests: coding_test: Fix compilation with -O0
  * tests: utils_test: Fix test failure when compiling with -O0
  * ports.h: Add VTY and CTRL ports for osmo-trx
  * core: Add timespec helper macros and make timer_compat.h public
  * core/logging.h: Add logging category for jitter buffer
  * timer: Introduce osmo_clock_gettime to override clock_gettime
  * timer: Document osmo_gettimeofday API
  * osmo-release.sh: Set correct version when generating the changelog
  * socket.c: osmo_sock_init2: bind: Several logic fixes and log improvements
  * socket.c: osmo_sock_init2: connect: Several logic fixes and log improvements
  * socket.c: osmo_sock_init: Several logic fixes and log improvements
  * msgb: msgb_get: Drop unneeded tmp var
  * msgb: msgb_pull: Abort when pulling more than avail size
  * osmo_get_macaddr: Fix buffer read out of bounds
  * osmo_sockaddr_is_local: Fix memleak
  * gsm_08_58.h: Add Ericsson vendor-specific RSL message types
  * osmo-release.sh: Remove temporary file TODO-RELEASE.entries after use
  * osmo-release.sh: Exit with error if no description for new changelog entry provided
  * osmo-release.sh: Fix error condition no LIBVERSION modified
  * osmo-release.sh: Always generate entire commit changelog
  * osmo-release.sh: Allow user to add extra information to the release commit
  * debian: libosmoctrl: Use correct library version in pkg name
  * debian/changelog: Fix typo in maintainer e-mail

  [ Holger Hans Peter Freyther ]
  * logging: Extend the LOGPSRC macro to put cont in it as well
  * license: Fix the license to GPL

  [ Alexander Couzens ]
  * counters: add osmo_counters_count() returns the amount of counters
  * vty: show asciidoc counters: don't create an empty table for osmo_counters
  * gsm_08_58.h: introduce RSL_IE_ERIC_PAGING_GROUP
  * gsm_utils: call gnutls_global_init() as constructor

  [ Jean-Francois Dionne ]
  * Fix LAPD UA msgb memory leak.

  [ Vadim Yanitskiy ]
  * libosmocodec: add FR/HR/EFR frame length definitions
  * ussd_test.c: fix rc / len debug output confusion
  * gsm0480: fix USSD OCTET STRING length confusion
  * gsm0480: clean up the parse_process_uss_req() code
  * gsm0480: handle UnstructuredSS Request with DSC != 0x0F
  * gsm0480: parse GSM0480_MTYPE_FACILITY separately
  * gsm0480: handle GSM0480_CTYPE_RETURN_RESULT
  * gsm0480: handle USS_NOTIFY and USS_REQUEST with PROCESS_USS_REQ
  * gsm0480: handle GSM0480_OP_CODE_PROCESS_USS_DATA
  * gsm0480: add specification reference to SS message type
  * gsm0480: pass exact GSM 04.80 payload length to parse_ss()
  * gsm0480: move SS request length check to parse_ss()
  * gsm0480: refactor gsm0480_decode_ss_request
  * gsm0480: correct parse_ss_info_elements() declaration
  * tests/ussd: fix wrong GSM 04.80 payload length
  * gsm0480: parse all SS info elements in a message
  * gsm0480: parse optional IEs for RELEASE COMPLETE message
  * tests/ussd: prevent uninitialized memory access
  * libosmocoding: fix typo in library documentation
  * libosmocoding: use frame length definitions from codec.h
  * src/msgb.c: cosmetic: fix spelling mistakes
  * src/msgb.c: remove dead includes from OpenBSC
  * src/msgb.c: print an error if msgb allocation failed
  * src/msgb.c: avoid using internal talloc API
  * gsm0480: document the 'ss_request' structure
  * gsm0480: copy the raw USSD data, its DCS and length
  * gsm0480: drop messages with incorrect data length
  * protocol/gsm_04_08.h: drop incorrect GSM48_PDISC_USSD
  * gsm/gsm48.c: add call independent SS message names

  [ Stefan Sperling ]
  * TLVP_PRESENT() should not return TRUE after tlv_parse() fails.
  * Add helper functions for ACC bit flags in rach control IE.
  * ensure that osmo_fsm vty commands are only installed once
  * print BIG FAT ERROR message if osmo_fsm lacks event names
  * ensure VTY commands don't segfault if an FSM has no event names
  * support for more cell ID list types in libosmocore
  * fix a cell identifier parsing bug in libosmocore
  * fix cell identifier decoding in libosmocore
  * use gsm48_decode_lai2() in gsm0808_dec_cell_id_list()
  * fix bug in parse_cell_id_ci_list()
  * fix parse_cell_id_lac_and_ci_list()
  * add a test for CELL_IDENT_WHOLE_GLOBAL cell identifier lists
  * add a regression test for TLV parsing with repeated IEs

  [ Sergey Kostanbaev ]
  * gsm0480: skip length check for 'RELEASE COMPLETE' message

  [ allesklar2 ]
  * gsmtap.h: define TETRA DMO mode channels

  [ Martin Hauke ]
  * build: Ensure all .pc files are installed

  [ Daniel Willmann ]
  * fsm: Add a function to change the FSM instance ID later
  * contrib/jenkins_arch.sh: Fix script comparison and arm support
  * fsm: Update the name as well if the id is updated and accept NULL

  [ Thorsten Alteholz ]
  * fix spelling
  * fix issue on big endian architecture

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Thu, 03 May 2018 15:47:11 +0200

libosmocore (0.10.2) unstable; urgency=medium

  * Revert "vty: Fix bad use of vector_slot()"
  * New upstream release of libosmocore

 -- Harald Welte <laforge@gnumonks.org>  Thu, 02 Nov 2017 18:51:02 +0100

libosmocore (0.10.1) unstable; urgency=medium

  * New upstream release of libosmocore

 -- Harald Welte <laforge@gnumonks.org>  Sun, 29 Oct 2017 10:46:47 +0100

libosmocore (0.10.0+nmu1) UNRELEASED; urgency=medium

  * Non-maintainer upload.
  * New upstream release of libosmocore

 -- Harald Welte <laforge@gnumonks.org>  Fri, 27 Oct 2017 19:45:00 +0200

libosmocore (0.9.6) unstable; urgency=medium

  * doc: osmocom-authn-protocol.txt: fix numbering, mark unused sync msgs
  * New upstream release of libosmocore.

 -- Max <msuraev@sysmocom.de>  Tue, 13 Dec 2016 18:23:56 +0100

libosmocore (0.9.5) unstable; urgency=medium

  * fix: DLGSUP logging category "unusable"
  * New upstream release of libosmocore.
  * ph_data_param struct changed / Extend L1SAP PH-DATA with measurement information
  * size of ph_tch_param struct changed / Extend with RTP Marker
  * size of struct log_target changed / Extend with GSMTAP

 -- Max <msuraev@sysmocom.de>  Tue, 13 Dec 2016 18:22:56 +0100

libosmocore (0.9.4) unstable; urgency=medium

  * New upstream release of libosmocore.
  * Internal API for GPRS cipher implementors updated to accommodate for arbitrary key lengths
  * external talloc dependency / internal talloc removal
  * size of ph_data_param struct changed / Extend L1SAP PH-DATA with presence information

 -- Max <msuraev@sysmocom.de>  Tue, 13 Dec 2016 18:21:56 +0100

libosmocore (0.9.3) unstable; urgency=medium

  * Send all stats values after re-configuration.
  * Fix using an empty prefix.
  * Fix sending timing values.

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Mon, 09 Nov 2015 21:34:37 +0100

libosmocore (0.9.2) unstable; urgency=medium

  * Fix the counter index after the NS reset.

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Wed, 04 Nov 2015 14:47:48 +0100

libosmocore (0.9.1) unstable; urgency=medium

  * Fix rate_ctr attribute for GPRS NS counters.

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Wed, 04 Nov 2015 10:23:39 +0100

libosmocore (0.9.0) unstable; urgency=medium

  * StatsD support
  * Disable building of static libraries
  * GTP Hub and OAP ports/identifiers assigned

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Tue, 03 Nov 2015 09:31:41 +0100

libosmocore (0.8.3) unstable; urgency=medium

  * Prepare new release

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Sun, 23 Aug 2015 17:38:55 +0200

libosmocore (0.8.2) unstable; urgency=medium

  * Add endian header
  * GPRS flow control changes
  * Add APN format routines to libosmocore.

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Sat, 01 Aug 2015 20:18:45 +0200

libosmocore (0.8.0) unstable; urgency=medium

  * New upstream release of libosmocore.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Sun, 18 Jan 2015 19:04:10 +0100

libosmocore (0.7.0) unstable; urgency=medium

  * New upstream release of libosmocore.

 -- Harald Welte <laforge@gnumonks.org>  Thu, 21 Aug 2014 15:52:00 +0200

libosmocore (0.6.6) UNRELEASED; urgency=medium

  * New upstream release of libosmocore.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Mon, 31 Mar 2014 15:37:33 +0200

libosmocore (0.6.5) unstable; urgency=medium

  * New upstream release of libosmocore

 -- Holger Hans Peter Freyther <holger@freyther.de>  Mon, 20 Jan 2014 10:37:23 +0100

libosmocore (0.6.4+git3) unstable; urgency=low

  * GPRS fix NS connections to a SGSN when configured via VTY

 -- Jacob Erlbeck <jerlbeck@sysmocom.de>  Thu, 07 Nov 2013 16:07:20 +0100

libosmocore (0.6.4+git2) unstable; urgency=low

  * GPRS related changes, some GSM encoding/decoding changes
  * GPRS correctly determine routable NSVC.
  * Update with GPRS changes

 -- Holger Hans Peter Freyther <holger@freyther.de>  Thu, 10 Oct 2013 14:16:37 +0200

libosmocore (0.6.3+git1-1) unstable; urgency=low

  * New upstream release with new primitives, USSD fixes.
  * Split libosmocore into several package. One lib per package.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Fri, 09 Aug 2013 17:47:30 +0200

libosmocore (0.6.2) unstable; urgency=low

  * New upstream release with NS UDP DSCP ABI changes

 -- Holger Hans Peter Freyther <holger@freyther.de>  Wed, 26 Jun 2013 08:01:55 +0200

libosmocore (0.5.3+git1-6) unstable; urgency=low

  * Build new package with the new API required for osmo-bts/openbsc
  * Package the arfcn utility.
  * Add the SOCK_RAW work-around for glibc.
  * Re-enable the debug packages thanks to Jan.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Fri, 04 Jan 2013 09:54:55 +0100

libosmocore (0.5.3+git1-2) unstable; urgency=low

  * New upstream version

 -- Holger Hans Peter Freyther <holger@freyther.de>  Mon, 05 Nov 2012 21:35:57 +0100

libosmocore (0.5.3+git1-1) precise; urgency=low

  * Fix issue with package version.

 -- Eric Butler <eric@codebutler.com>  Tue, 14 Aug 2012 20:43:17 -0700

libosmocore (0.5.3+git1) precise; urgency=low

  * Updated debian package.

 -- Eric Butler <eric@codebutler.com>  Tue, 14 Aug 2012 16:53:56 -0700

libosmocore (0.3.0) natty; urgency=low

  * New upstream version of libosmocore

 -- Harald Welte <laforge@gnumonks.org>  Tue, 10 May 2011 17:28:24 +0200

libosmocore (0.1.27) natty; urgency=low

  * New upstream version of libosmocore.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Thu, 13 Jan 2011 18:07:36 +0800

libosmocore (0.1.17-1) unstable; urgency=low

  * Initial release

 -- Harald Welte <laforge@gnumonks.org>  Tue, 24 Aug 2010 10:55:04 +0200
