AgeCommit message (Collapse)AuthorFilesLines
2018-02-28jibuf: Take RTP marker into accountPau Espin Pedrol4-5/+90
Change-Id: Ie142acfb45650e0af775f58226fd191beaf8178e
2018-02-28tests: jibuf_tool: Add parameters to control size of bufferPau Espin Pedrol1-4/+14
Change-Id: I8a7fa39985f8d197e24c32cab80299aba2d03087
2018-02-28tests: jibuf_tool: Add OSMUX supportPau Espin Pedrol1-5/+42
Change-Id: I0f02da0329e6739ff340d31113161bb520b1b760
2018-02-28tests: jibuf_tool: Improve jibuf_test to read pcapsPau Espin Pedrol3-105/+305
Change-Id: I7a13c823fb70e0adbc5fa0726fd66b15dc40014e Signed-off-by: Pau Espin Pedrol <pespin@sysmocom.de>
2018-02-28tests: jibuf_tool: Initial commitPau Espin Pedrol3-0/+418
Change-Id: I92307c8b1483dd488339771462290aae0ae5689a
2018-02-28jibuf: Add initial implementation of Jitter BufferPau Espin Pedrol8-2/+1402
Change-Id: I9688ba9c4d5b733b9f29d0f15f73750f9271ef55
2018-02-26test: osmo-pcap-test: Fix clock drift while replaying pcap filePau Espin Pedrol2-7/+26
In the previous implementation, the processing time was not being taken into account, which was implicitly added for each new packet to be sent, which caused a steady incremental drift in the clock clearly visible when analysing a RTP stream. As it uses timespecsub, it depends on libosmocore Change-Id I45fc993b9bb0a343763238bf463c8640f47b00f1. Change-Id: I11cb9a63e16e829ccd4af1096b9f473c802d822f
2018-02-22add support for flushing and destroying a server-side streamStefan Sperling2-1/+30
Introduce osmo_stream_srv_set_flush_and_destroy() which marks a stream to be 'flushed and destroyed'. No new messages will be received on this stream, and no new messages can be queued. Once the Tx queue has been drained, the connection is destroyed. The API user is given a chance to perform cleanup operations in the closed_cb() callback for the connection. The same mechanism will be added for client-side connections in a follow-up patch. Change-Id: I8ed78fe39c463e9018756700d13ee5ebe003b57f Related: OS#2789 Suggested-by: Harald Welte
2018-02-09debian/control: Fix Vcs-BrowserHarald Welte1-1/+1
Change-Id: I19049ccf6bfc100dbbeb81b80b9ff7f422ad232f
2017-12-21Enable sanitize for CI testsMax1-1/+1
Change-Id: I3a888a415698db5a11d74422f7ccb2d94126f56e
2017-12-14contrib: jenkins.sh: Disable building doxygen for depsPau Espin Pedrol1-1/+1
Change-Id: I456b539ebdb86a6a27af0bec1d44d68b407ad912
2017-11-20osmo_stream_{cli,srv}_destroy: fix mem leak: empty msgb queueNeels Hofmeyr1-0/+2
On destroying a client or server stream, deallocate any msgbs that are still pending in the queue. In libosmo-sccp, the ss7_test.c in test_as(), messages are queued and were, before this, left floating after the stream was destroyed, causing a sanitizer memory leak. This patch fixes the leak. Depends: Ia291832ca445d4071f0ed9a01730d945ff691cf7 (libosmocore) Change-Id: Iaad35f03e3bdfabf3ba82b16e563c0a5d1f03639
2017-11-20gitignore: vim swp filesNeels Hofmeyr1-0/+2
Change-Id: I0013625df95c5600479953e6f83b848efadb525a
2017-11-18add --enable-sanitize config optionNeels Hofmeyr1-0/+12
Change-Id: Ie00859d981044d59b8114332884e3d7f6fc48ef7
2017-11-17stream: Avoid re-creating and leaking socket when unneededPau Espin Pedrol1-2/+6
In previous implementation, if no reconfiguring is needed, a new socket would be created without closing the old one, leaking the previous socket. Instead, if we don't need reconfiguring, we return 0 as no operation is required. Change-Id: I6c1a7fff63e44840fb5e2bc7ace5e9a61e304987
2017-11-13Add SPDX-License-Identifier + Copyright statementsHarald Welte11-1/+164
Change-Id: I43bb1c4a889421907a1a08eb29c96f2330ab00ec
2017-11-13src/rs232.c: Fix accidential reference to GPLv3+ instead of GPLv2+Harald Welte1-1/+1
Change-Id: I5fa2696c5090994c417ca882c5225cbd7c1be2c7
2017-11-13debian/copyright: There are no AGPL licensed files leftHarald Welte1-20/+0
Change-Id: I7d1bf1cdefea955b28e756419e7d90beb2535bd0
2017-11-13debian/control: Fix upstream-nameHarald Welte1-1/+1
Change-Id: Ic5f42a387525f7718097f4259bae6628b903a4ca
2017-10-28jenkins: use osmo-clean-workspace.sh before and after buildNeels Hofmeyr1-1/+4
See osmo-ci change I2409b2928b4d7ebbd6c005097d4ad7337307dd93 for rationale. Depends: I2409b2928b4d7ebbd6c005097d4ad7337307dd93 Change-Id: I6bdbd22b5f05ab75de2c6c777667bf1a63eb0b86
2017-10-28Bump version: 0.1.0 → Welte1-0/+6
Change-Id: I731fce9fd10a586c10261b23ed0f0bbcb6f3eada
2017-10-28Debian: The -dev package doesn't depend on any shared librariesHarald Welte1-2/+1
This fixes: dpkg-gencontrol: warning: Depends field of package libosmo-netif-dev: unknown substitution variable ${shlibs:Depends} Change-Id: Ic57cbc8a1876e6e5449e7dd4a73f269444dd67da
2017-10-28Don't link library against libosmogsm, we don't use any symbols of itHarald Welte2-4/+4
This fixes a related dpkg-shlibdeps warning Change-Id: I0325e7a6dea5195f1634230930570bf4dfe3810c
2017-10-27Tag/Release Version Welte4-7/+11
Short changelog: * Add Doxygen documentation * SCTP support in stream.c * new udp-test-client and udp-test-server programs * better / more verbose error handling in examples * new osmo_dgram_tx_set_local_{addr,port}() functions * use IPA definitions from libosmogsm, rather than repeating them * encode RTP header M field of RFC3550/4867 in OSMUX header * new osmo_stream_srv_link_set_nodelay() * new osmo_stream_srv_link_set_proto() * new osmo_stream_cli_set_nodelay() * new osmo_stream_cli_set_proto() * new osmo_stream_cli_set_local_addr() * new osmo_stream_cli_set_local_port() * new osmo_stream_cli_reconnect() * new osmo_stream_cli_open2() with reconnect argument * more vrebose osmux_snprintf() * remove mistaken reference to AGPL in rs232.c * fix memory leak in osmo_stream_srv_link_set_addr() * add osmo-pcap-test for SLL and Ethernet * extend osmux-test Change-Id: Ibf75fcd6643351ce3946faa155ae1db8c33a5e35
2017-10-27depend on new upstream libosmocore version 0.10.0Harald Welte1-2/+2
Change-Id: Id22c69f96e9b6058e4c32ffa5a77d224453711ce
2017-10-27some more Doxygen header text for datagram, osmux and stream moduleHarald Welte3-0/+19
Change-Id: Ied83e6b117a420d734a88e3aff925a874c3dd520
2017-10-24osmux_snprintf: Add doxygen docPau Espin Pedrol1-1/+10
Change-Id: Idb3fcf25be9558bfc2f822352c07ebc2cb7d5caa
2017-10-24osmux_snprintf: Support different types of Osmux framesPau Espin Pedrol1-18/+32
Previous implementation handled all types as if they were Osmux AMR frames. For Dummy frames, we account the padding but we don't care about the padding content. For Signalling ones, as they are not in the specification yet, it is better avoid using unespecified fields and return an error because it's still not known how extra data will be handled in the input msgb. Change-Id: I48565472b47c2a0e5db50881fbb005537af8c70d
2017-10-23osmux_snprintf: Split logic parsing osmux header and AMR payloadPau Espin Pedrol1-10/+13
The current code still expects to parse only AMR osmux frames, but that will be fixed in following patches. Change-Id: Ic2f4d1d3cc88af912bb43c8ecd90eacc6ff7190f
2017-10-13cosmetic: print textual error from recv()Max1-1/+1
Change-Id: Ic9557c6519b44b5985daf7d2d14ec063790441fb
2017-10-13cosmetic: relax UDP length checkMax1-2/+2
Previously recv() returning 0 for UDP socket was considered as error although it's legitimate return value for empty UDP packets. Relax the error check to avoid confusing error messages. The function behavior is the same: * msg is not altered while receiving 0-length UDP packet * return value is 0 The only result of the relaxed error check is the absense of error log message for 0-length UDP packet. Change-Id: I32e5fcbf5ed92cc923660ac59e6a37fd3f0703a7 Fixes: OS#2219
2017-10-13examples: add simple UDP client/serverMax5-0/+227
In addition to showing basic UDP send/receive example, it helps to test corner-case when dealing with 0-length UDP packets. Change-Id: I08c0adf1cf9b6a6f1f7090b237d0497c2ec13cdf Related: OS#2219
2017-10-11debian/rules: show testsuite.log when tests are failingAlexander Couzens1-0/+3
Change-Id: I3af7b50e3d3e0ba3eddace0e6d4e58c6cb98b9aa
2017-10-05rs232.c: Don't #include <osmocom/abis/e1_input.h>Harald Welte1-1/+1
There's no need for the rs232 code to include a files from libosmoabis. The only users of libosmoabis left now are the LAPD examples: examples/lapd-over-datagram-network.c examples/lapd-over-datagram-user.c Change-Id: Ie1bc0dd811362cec546486edc41d632740ed19cd
2017-09-12src: _snprintf() helper functions nul-terminate buffers, if possiblePablo Neira Ayuso2-0/+6
This patch inconditionally initializes the buffer we get to nul-terminate it, whenever possible. It's a very simple solution to catch three overly corner cases: 1) snprintf() returns -1, very much unlikely in practise. 2) msg->len == 0: In such case, I would expect this function is never called with an empty message, but let's be safe in this case too. 3) If your buffer is empty, it doesn't nul-terminate the buffer. Change-Id: I97e517f2d98e83894ea707c63489559302ff6bd2
2017-09-11osmux: fix buffer management mess in snprintf() callsPablo Neira Ayuso3-44/+43
SNPRINTF_BUFFER_SIZE() looks too complex, previous version maintains two different variables to account for the remaining space in the buffer, one of them is always decremented based on what snprintf() returns, which may result in underflow. These variables are swapped - not used consistently - all over this code. Replace this macro by a simplified version, with one single parameter to account for remaining space. This macro also deals with two corner cases: 1) snprintf() fails, actually never happens in practise, but documentation indicates it may return -1, so let's catch this case from here to stick to specs. 2) There is not enough space in the buffer, in that case, keep increasing offset, so we know how much would have been printed, just like snprintf() does. Thanks to Pau Espin for reporting, and Holger for clues on this. I have run osmux_test and, at quick glance, it looks good. Change-Id: I5b5d6ec57a02f57c23b1ae86dbd894bad28ea797
2017-09-05rtp: return offset in osmo_rtp_snprintf()Pablo Neira Ayuso1-1/+1
Instead of the result of the last snprintf() call. Change-Id: I10066d73387be96a4e1f3349d700405beb138076
2017-08-28Use release helper from libosmocoreMax3-0/+15
See https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release for details. Change-Id: I01b0aae741b83a3f17f1caf2b6837cf365a1709b Related: OS#1861
2017-08-26Use value string check from osmo-ciMax1-4/+3
Change-Id: Id6048a69c9e0cc15010de643330aeb2a7271b2a6
2017-08-14osmux: Slightly improve output format of osmux_snprintfPau Espin Pedrol2-2/+5
The buffer for osmux_test is increased as the former doesn't seem to be able to cope with the whole output. Change-Id: Ic838dd9d7ad89b4510ccfa58c0390c69a075b616
2017-08-14osmux: Fix buffer overflow in osmux_snprintfPau Espin Pedrol1-1/+1
When running osmux_test on my PC, the process was aborted with a "stack smashing detected" error. Change-Id: I8a7cc422c181c0c5712ac8976a5be5f0ad44a9c0
2017-08-08tests: osmo-pcap: Allow different l2 pktsPau Espin Pedrol9-50/+189
Before this patch, ETH was assumed and other types were not supported. This patch also adds Linux cooked packet support for L2. Change-Id: Ie62fa0a8e45e1e141edb64b116dad185ad9c7a5f
2017-08-08tests: osmo-pcap: Fix per packet timerPau Espin Pedrol2-7/+13
Before this commit, the gap time between 2 packets {n-1, n} was being applied to {n, n+1}. Change-Id: I715865c1edd1fc2ec9b024671d91eb72559cbdea
2017-07-13contrib: Enable -Werror by defaultPau Espin Pedrol1-1/+1
Change-Id: I045536c21d7a0fa2fc23258c727d67bedf176ece
2017-07-13rtp.c: Fix print formatPau Espin Pedrol1-3/+4
Fixes compilation warning Change-Id: I0146a19bf852c9e27d265a098dc9d7a337424e10
2017-07-10jenkins.sh: Proper error message if local environment isn't set upHarald Welte1-0/+7
Change-Id: I79c2302365824d9c8783dadfa378c8eaa07e2ee7
2017-07-08configure.ac: Use -Wall in C(PP)FLAGSPau Espin Pedrol1-0/+3
Change-Id: Ia1d7e99541089a92e6bc17798a94ac756047aeba
2017-07-06configure.ac: Add --disable-doxygen flagPau Espin Pedrol1-1/+7
This flag, when set, allows to unconditionally disable doxygen documentation generation, even if doxygen command is found. Change-Id: I16b3502be3e32274f548da6a2a0b0363dd3bfe5d
2017-06-07src: use osmo_timer_setup()Pablo Neira Ayuso3-10/+6
Use new function available in libosmocore to set up timers. Compile tested only. Change-Id: Id3dd32102c7362f3b280d2c058c2decebccb357a
2017-05-14somo_stream_srv_fd_cb(): close socket if NODELAY failsHarald Welte1-8/+14
We didn't check for cases where setsockopt_nodelay() fails. Let's check for that and bail out + close the socket. Change-Id: I0adbc4cec35be7c36bdf01d4d8fefd6097e9be5d Fixes: coverity CID#166970