libosmo-netif (1.4.0) unstable; urgency=medium [ Max ] * osmo_stream_srv_link_close(): properly handle NULL input * Add osmo_stream_srv_link_is_opened() [ Oliver Smith ] * Run struct_endianness.py * rtp.h: add RTP_PT_CSDATA * debian: set compat level to 10 [ Neels Hofmeyr ] * fix msgb leak on OSMO_STREAM_SRV_F_FLUSH_DESTROY [ Vadim Yanitskiy ] * {utils,tests}/Makefile.am: reorder libraries in LDADD * tests/Makefile.am: clean up AM_* variables * src/Makefile.am: do not overwrite AM_LDFLAGS [ Daniel Willmann ] * stream: Introduce and use osmo_stream_cli_fd() to get the fd * stream: (typo) Change callback param name of struct osmo_stream_cli from srv to cli * ipa-stream-server: Return -EBADF in read_cb after osmo_stream_srv_destroy() * stream: Properly name osmo_stream_srv read callback * cosmetic: Change name of osmo_stream_src_fd_cb() * stream: Update log messages * stream: Factor out reconnection handling * stream: Use cli->state to check if cli is already closed * stream: Correctly close osmo_stream_cli when in state WAIT_RECONNECT * Add osmo_io support to osmo_stream_cli and osmo_stream_srv * examples: Use new stream API in {ipa-,}stream-{client,server} * stream: Setup ofd in osmo_stream_cli_open * stream: Document osmo_stream_cli_create2() * stream: Remove duplicated code in osmo_stream_cli_create() * examples: Set logging level to DEBUG in {,ipa-}stream-{client,server} * stream: Assert that fd is valid in stream_cli_handle_connecting() * stream: Set state to closed before calling disconnect_cb() * stream: Notify stream_cli on connect() [ Pau Espin Pedrol ] * stream: Allow setting name printed during logging * stream: Print socket info as part of the logging context * stream: Drop recently added API osmo_stream_cli_create2 * stream: Drop name param from recently added API osmo_stream_srv_create2() * stream: srv cb: Use osmo_sockaddr and improve logging when cli connects * stream: Rename static function to have correct prefix * stream: Split cli/srv specific code out of stream.c * stream_cli: Increase log level of established conn to INFO * stream_srv: Use LOGSLNK() to print log line * stream_srv: call setsockopt(SO_NOSIGPIPE) also in srv sockets * stream_srv: Improve logging lines accepting new connections * stream: Append data to current tail of message upon recv() * stream_srv: Handle ESHUTDOWN and other write() errors destroying the socket * stream_cli: Proper handling of send() socket errors * sctp: Document relevant RFC specs * stream_srv: sctp: Log error cause of COMM_LOST event * stream_srv: Log SCTP REMOTE_ERROR events * stream: Refactor sctp_recvmsg_wrapper() logging * stream_cli: Forward SCTP MSG_NOTIFICATION to upper layers * stream: Use new flag OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED for SCTP sockets * stream_test: Avoid leaking osmo_stream_srv_link * stream: Use new libosmocore API osmo_sock_init2_multiaddr2() * stream: Introduce API to set several transport parameters * stream: Add new stream_{cli,srv_link} parameters to set SCTP_INITMSG sockopt values [ arehbein ] * stream: Fix osmo_panic log fmts * examples: Add extension header octet to example * ipa: Add segmentation callback * stream: Add server-side (segmentation) support for IPA * stream test: Fix test output check -- Pau Espin Pedrol Tue, 12 Sep 2023 13:50:25 +0200 libosmo-netif (1.3.0) unstable; urgency=medium [ Pau Espin Pedrol ] * rtp: Delay rtph ptr assign after validating length * stream: assert params are not NULL in send/recv functions * stream: getsockopt ret socklen_t is unsigned * osmux.h: Add missing msgb.h header * osmux.h: Define default Osmux port * rtp: Avoid memcpy(len=0) * examples/osmux-test-output: Avoid using deprecated Osmux API * osmux: Drop long time deprecated APIs * osmux: Move osmux_xfrm_output_set_tx_cb() further down to the xfrm_output section * osmux: Allocate struct osmux_out_handle through API * osmux: Allow the user to alloc msgbs used to provide generated RTP packets * osmux: osmux_xfrm_input_close_circuit(): Log circuit not found * stream: Fix typos in log messages * stream: Unset fd value after close() before calling closed_cb() * stream: Provide caller with SCTP flags during osmo_stream_*_recv() * tests/osmo-pcap-test/osmux_test: Fix return condition check for osmux_xfrm_input() * osmux: Improve logging non-usual conditions * osmux: osmux_xfrm_input(): Propagate error code to inform caller * osmux: Avoid duplicated RTP msg trigger Tx of osmux frame * osmux: Change order of lines to follow packet fill order * cosmetic: osmux: Fix typo in comment * osmux: Unify return codes of osmux_batch_add() and osmux_batch_enqueue() * osmux: Early return on error or batch full during osmux_replay_lost_packets() * osmux: assert no batch factor greater than 8 is used * tests/osmux_test2: Document unit tests * tests/osmux: Always run with fake time * tests: rename test osmux_test2 -> osmux_output_test * osmux: Print osmux_hdr rtp_m field in osmux_snprintf() * amr: Add data[0] field to amr_hdr * osmux: Proper encoding of osmux frames when when AMR FT changes * tests/osmux: Add new osmux_input_test to validate AMR FT changes * osmux: Fix AMR F,Q,CMR fields not properly encoded in osmux header * cosmetic: osmux: Properly separate expressions with whitespace * cosmetic: osmux: Fix typo in comment * osmux: Fix osmux seqnum incremented globally instead of per circuit * tests/osmux: Properly flush and free out_handle in osmux_test * tests/osmux: Test rx of osmux seqnum wrap around * osmux: Fix unwanted RTP marker bit upon rx of osmux seqnum wrap around * stream: Set proper msgb length when returning sctp_notification * stream: Erase sctp_msg_flags if receiving user data * stream: Log rx of sctp notification SCTP_SEND_FAILED * stream: Set sctp_ppid and sctp_stream when sctp notifciation is received * stream: Remove unneeded break statement * stream: Return 0 when receiving sctp notification SCTP_COMM_LOST * stream: Document osmo_stream_srv_recv() SCTP specialties * osmux: join osmux_xfrm_input_open_circuit() and osmux_batch_add_circuit() * osmux: Take into account configured osmux_in_handle->osmux_seq field * osmux: Split input and output code into separate files * cosmetic: osmux: Make linter happy * tests/osmo-pcap/osmux: Replace deprecated API osmux_xfrm_output_init2() * osmux: Allocate struct osmux_out_handle through API * osmux: Replace deprecated osmux_xfrm_input_* APIs in examples & tests * osmux: Introduce API osmux_xfrm_input_get_deliver_cb_data() * stream: Improve logging of SCTP_PEER_ADDR_CHANGE notification * cosmetic: stream: Fix parameter name * stream: Introduce APIs osmo_stream_{cli,srv}_clear_tx_queue() * cosmetic: Fix indentation whitespace * amr: Document SID frame length from spec * osmux: Rework log formatting when replaying detected RTP gaps * osmux: Use msgb_copy() API in osmux_replay_lost_packets() * osmux: Log AMR FT when incorrect AMR payload size detected * osmux: Fix naming of functions operating on osmux circuits * osmux: rename internal struct osmux_batch -> osmux_link * osmux: Add internal backpointer to in_handle to simplify param passing * osmux: Fix endianness logging duplicaed seqnum * osmux: Use internal struct to cache parsing state of rtp pkt from user * osmux: dup in RTP pkt: check before applying queue flush due to Marker bit * osmux: dup in RTP pkt: Replace potentially internally forged pkt with incoming one * osmux: recreate lost RTP pkts before handling newest one * osmux: Drop marker bit in forged RTP packets to fill gaps * osmux: Add data[0] field to osmux_hdr * osmux: Drop noop OR during assignment * tests/osmux: Test replay of one lost RTP packet when generating osmux batches * tests/osmux: Test incoming RTP stream with seqnum jumps during wraparound * tests/osmux: Test big seqnum holes (>batch_factor) in incoming RTP stream * osmux: Obey current batch_size restrictions when creating forged RTP packets to fill holes * osmux: Use better rationale when limiting amount of lost & forged RTP incoming packets * osmux: Avoid filling in seqnum holes upon rx of RTP pkt with M bit set * osmux: Set M bit in osmuxhdr if seqnum hole found encoding RTP pkts * osmux: Support recreating lost RTP packets at start of the batch * osmux: Introduce API osmux_xfrm_input_set_name() * osmux: Improve logging of osmux_xfrm_input * tests/osmux: Add extra asserts to validate osmux header is pulled correctly * amr: Guard against incorrect AMR FT passed to osmo_amr_{bits,bytes}() * osmux: Check received osmuxh->amr_ft is correct before using it * osmux: Refactor osmux_xfrm_output_pull() to simplify code flow * osmux_output: Refactor init code to avoid calling deprecated APIs internally * amr.h: Fix missing include dependencies * amr: osmo_amr_bwe_to_oa(): Modify loop to allow osmo_amr_bytes()=0 (NO_DATA) * amr: osmo_amr_bwe_to_oa() define variable as unsigned * amr: Add struct definition for AMR BWE header * tests/amr: Add test case for unused FT=14 * amr: Support all SID and NO_DATA amr formats * osmux: Allow forwarding AMR NO_DATA frames * stream: Log read/write flags * stream: osmo_stream_*_write: Unifiy way to get data and length * stream: Log error on short send * stream: Avoid useless polling if tx_queue becomes empty * stream: Fix tx data dropped upon show socket write * amr.h: Fix AMR_FT_{GSM,TDMA,PDC}_EFR_SID_LEN * amr: Add missing header stdbool.h * amr: constify input buffer in osmo_amr_is_oa() * amr: use struct bwe_hdr in osmo_amr_bwe_to_oa() * amr: Clarify size of AMR BWE header and ToC * amr: use OSMO_BYTES_FOR_BITS() * amr: osmo_amr_bwe_to_oa(): validate input data is long enough * Introduce utils/osmo-amr-inspect program * osmo-amr-inspect: Improve robustness reading from stdin [ Vadim Yanitskiy ] * tests/amr: fix less-than-zero comparison of an unsigned value [ Max ] * Log more details in osmo_stream_srv_write() * Properly handle send() return code * Better handling of send() error * Add assert for link check to osmo_stream_srv_create() [ Harald Welte ] * Support building with -Werror=strict-prototypes / -Werror=old-style-definition -- Pau Espin Pedrol Tue, 07 Feb 2023 13:28:19 +0100 libosmo-netif (1.2.0) unstable; urgency=medium [ Pau Espin Pedrol ] * Introduce sctp.h to provide SCTP related functionalities * stream: Factor out sctp_recvmg long code chunk * stream: Add support for AF_UNIX sockets * Introduce osmo_prim_srv APIs * prim: Add internal CTL SAPI to negotiate SAP versions * prim: return last error code * amr: Fix FormatType from parsing BWE AMR header * amr: Fix length check in bwe<->iuup converters [ Alexander Couzens ] * amr: don't rely on pad bits to be zero * export osmo_amr_bits * amr: Introduce APIs to convert BE to IuUP/IuFP format [ Philipp Maier ] * amr: cosmetic: fix grammer in comment * amr_test: increase test coverage for oa / bwe conversation [ Harald Welte ] * update git URLs (git -> https; gitea) -- Pau Espin Pedrol Tue, 28 Jun 2022 18:09:49 +0200 libosmo-netif (1.1.0) unstable; urgency=medium [ Vadim Yanitskiy ] * debian/control: change maintainer to the Osmocom team / mailing list * stream: add missing Doxygen \return statements to non-void functions [ Pau Espin Pedrol ] * stream: Support creating sockets with IPv6 addresses * stream: Fix log of IPv6 during accept() * contrib/jenkins: Enable parallel make in make distcheck * tests: Explicitly drop category from log * gitignore: Ignore autfoo *~ churn * tests: Replace deprecated API log_set_print_filename [ Daniel Willmann ] * examples: Use osmo_stream_*_set_nodelay in ipa examples [ Harald Welte ] * Use osmo_fd_setup() wherever applicable * cosmetic: Fix whitespace (use tab instead of 8x space) * migrate to osmo_fd_{read,write}_{enable,disable}() * Don't depend on libosmo-abis (by default) [ Oliver Smith ] * configure.ac: set -std=gnu11 -- Pau Espin Pedrol Tue, 23 Feb 2021 16:47:37 +0100 libosmo-netif (1.0.0) unstable; urgency=medium [ Neels Hofmeyr ] * struct amr_header: copy comments to little endian part * add/clean big-endian packed structs (struct_endianess.py) [ Pau Espin Pedrol ] * configure.ac: Introduce --{enable,disable}-libsctp configure flag * configure.ac: Drop unneeded check for dahdi * stream.c: Improve logging during sock send() * stream: Drop data during write() while in state NONE * stream: Re-arrange cli states to fix 100% cpu usage bug * stream: Add new WAIT_RECONNECT cli state * stream: Rename cli state NONE to CLOSED * debian/control: Drop incorrect libortp-dev dependency * Use OSMO_FD_* instead of deprecated BSC_FD_* * stream: Fix some SCTP code not disabled if --disable-libsctp is used [ Eric ] * configure.ac: fix libtool issue with clang and sanitizer [ Sylvain Munaut ] * stream: Attempt to workaround kernel ABI breakage [ Alexander Chemeris ] * amr: Fix OA<->BWE conversion. * amr: Fix OA<->BWE conversion. * amr: Whitespace fix [ neels ] * Revert "amr: Fix OA<->BWE conversion." [ Oliver Smith ] * contrib: import RPM spec * contrib: integrate RPM spec * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in [ Philipp Maier ] * amr: fix off-by-one in osmo_amr_bwe_to_oa() [ Harald Welte ] * src/stream: Work around more Linux kernel ABI breakage * src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt -- Harald Welte Thu, 13 Aug 2020 11:21:02 +0200 libosmo-netif (0.7.0) unstable; urgency=medium [ Pau Espin Pedrol ] * stream: Introduce API osmo_stream_cli_is_connected * stream: Fix scheduling of queued messages during connecting state * stream_test: Use fake time * stream_test: Log fake time * osmux: osmux_snprintf(): Append comma between osmux frames in msg * osmux: osmux_snprintf(): Remove dangling whitespace at the end of dummy frames * tests: osmux_test: Use fake time also for monotonic clock * osmux: squash LOGP message to one line * tests: osmux_test: Provide More accurate logging expectancies * stream.c: remove duplicated line setting variable * stream: osmo_stream_srv_link: Support setting multiple addr * stream: osmo_stream_cli: Support setting multiple addr * tests: osmux_test: Hardcode h_output values set by random() * stream: Fix fd param passed to close() in error conditon * libosmo-netif.pc.in: Append -lsctp to Libs.private [ Neels Hofmeyr ] * osmux_test: don't use color logging -- Pau Espin Pedrol Thu, 02 Jan 2020 21:01:22 +0100 libosmo-netif (0.6.0) unstable; urgency=medium [ Pau Espin Pedrol ] * osmux: Extend osmux_out_handle and add new API to set rtp payload_type [ Oliver Smith ] * contrib/jenkins.sh: run "make maintainer-clean" -- Pau Espin Pedrol Wed, 07 Aug 2019 20:59:51 +0200 libosmo-netif (0.5.0) unstable; urgency=medium [ Max ] * Stream examples: filter internal logging * Stream examples: log sent/received bytes * Stream examples: fix server's endless loop * Add missing include * Cosmetic: use #pragma once as include guard * Stream client: fix doxygen typo * Stream examples: print accepted client address * Stream client: update logging * Add socket name functions to stream client/server * Stream client: fix disconnection logic * Stream examples: fix typos in error message * Ignore test binaries * Stream client: report reconnection event as INFO * Add stream client/server test * Stream client: add disconnect callback * Deprecate osmo_stream_cli_open2() [ Philipp Maier ] * AMR: add spec reference for AMR frame types * AMR: add define constants for AMR payload length * AMR: add functions to convert between bw-efficient and octet-aligned * amr: cosmetic: correct sourcecode formatting * amr: be sure result of osmo_amr_bwe_to_oa() fits into int buf * amr: use sizeof(struct amr_hdr) when working with amr header length [ Harald Welte ] * debian: Add BuildDepends on libpcap0.8-dev [ Oliver Smith ] * gitignore: add amr_test * tests: AM_LDFLAGS = -noinstall for all tests -- Harald Welte Fri, 10 May 2019 12:40:03 +0200 libosmo-netif (0.4.0) unstable; urgency=medium [ Neels Hofmeyr ] * fix strncpy bug in rs232.c * logging: fix typo in stream.c [ Harald Welte ] * Migrate from osmo_ipa_idtag_parse() to ipa_ccm_id_resp_parse() * link libosmo-netif against libosmogsm * debian/rules: Don't overwrite .tarball-version [ Pau Espin Pedrol ] * jibuf: fix indentation in line inside conditional clause [ Stefan Sperling ] * detect freed connections in osmo_stream_srv_read() -- Harald Welte Sat, 19 Jan 2019 22:28:01 +0100 libosmo-netif (0.3.0) unstable; urgency=medium [ Pau Espin Pedrol ] * tests: jibuf_test: Set some functions as static * tests: jibuf_test: Add scenario to show out-of-order bug * jibuf: Fix out-of-order seq queue around syncpoints * osmux: change log lvl of batch full to debug [ Harald Welte ] * remove "channel" layer * stream.c: Use non-blocking connect in osmo_stream_cli -- Pau Espin Pedrol Fri, 27 Jul 2018 18:31:42 +0200 libosmo-netif (0.2.0) unstable; urgency=medium [ Neels Hofmeyr ] * jenkins: use osmo-clean-workspace.sh before and after build * add --enable-sanitize config option * gitignore: vim swp files * osmo_stream_{cli,srv}_destroy: fix mem leak: empty msgb queue * configure: add --enable-werror * jenkins.sh: use --enable-werror configure flag, not CFLAGS [ Harald Welte ] * debian/control: Fix upstream-name * debian/copyright: There are no AGPL licensed files left * src/rs232.c: Fix accidential reference to GPLv3+ instead of GPLv2+ * Add SPDX-License-Identifier + Copyright statements * debian/control: Fix Vcs-Browser * osmux: Fix use of uninitialized memory in osmux_out_handle [ Pau Espin Pedrol ] * stream: Avoid re-creating and leaking socket when unneeded * contrib: jenkins.sh: Disable building doxygen for deps * test: osmo-pcap-test: Fix clock drift while replaying pcap file * osmux: Use correct log category DLMUX * stream.c: osmo_stream_cli_open2: Remove wrong assumption in reconnect decision * tests: osmo-pcap-test: Fix pcap includes not found in old versions * osmux: osmux_xfrm_output_pull: Improve checks and log of malformed packets * jibuf: Add initial implementation of Jitter Buffer * tests: jibuf_tool: Initial commit * tests: jibuf_tool: Improve jibuf_test to read pcaps * tests: jibuf_tool: Add OSMUX support * tests: jibuf_tool: Add parameters to control size of buffer * jibuf: Take RTP marker into account * jibuf: re-sync clock out of sync timestamps * tests: jibuf_tool: Add seq.plt * jibuf: Estimate src clock skew * tests: use osmo_init_logging2 * Build jibuf_tool based on libpcap availability * examples: use osmo_init_logging2 * osmux: Add new API osmux_xfrm_output_sched to fix rtp generation issues * tests: Add osmux2 testsuite * osmux: Set Marker bit on osmux frame loss detected * osmux: Move examples and tests to use new output APIs [ Max ] * Enable sanitize for CI tests [ Stefan Sperling ] * add support for flushing and destroying a server-side stream [ Alexey ] * Update README.md -- Pau Espin Pedrol Thu, 03 May 2018 16:55:21 +0200 libosmo-netif (0.1.1) unstable; urgency=medium * New upstream release. -- Harald Welte Sat, 28 Oct 2017 12:41:34 +0200 libosmo-netif (0.1.0) unstable; urgency=medium [ Holger Hans Peter Freyther ] * Move forward toward a new release. [ Harald Welte ] * Update to upstream 0.1.0 -- Holger Hans Peter Freyther Fri, 27 Oct 2017 20:00:39 +0200 libosmo-netif (0.0.6) unstable; urgency=medium * Drop libosmovty dependency. -- Holger Hans Peter Freyther Tue, 03 Nov 2015 09:36:32 +0100 libosmo-netif (0.0.5) unstable; urgency=medium * New upstream release. -- Holger Hans Peter Freyther Sun, 23 Aug 2015 18:01:53 +0200 libosmo-netif (0.0.3) unstable; urgency=medium * Bump API due the AMR header structure now being packed and potentially having different storage requirements. -- Holger Hans Peter Freyther Mon, 28 Apr 2014 20:50:18 +0200 libosmo-netif (0.0.2-z6) unstable; urgency=low * Upgrade with increased test coverage. * More changes * Fix use after free issue. * Fix osmux_snprintf for multiple batched messages * Clean-ups. -- Holger Hans Peter Freyther Sat, 25 May 2013 09:42:30 +0200 libosmo-netif (0.0.2-z1) testing; urgency=low * Initial release. * Post 0.0.2 -- Holger Hans Peter Freyther Tue, 21 May 2013 18:53:08 +0200