aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2013-05-21misc: Add missing header files to fix the make distcheckHolger Hans Peter Freyther2-1/+3
2013-05-21osmux: replay last RTP packet seen under packet loss scenarioPablo Neira Ayuso1-0/+51
If osmux notices a gap between two RTP packets, fill it with the last RTP packet seen. Without this patch, 10% of packet loss is enough to get garbage, with it we get glitches in the conversation with 30%, and pretty much broken conversation with 40% of it.
2013-05-20osmux: use ccid to identify batches instead of the RTP SSRCPablo Neira Ayuso1-8/+5
This should reduce the amount of batch nodes that are created by the maximum number of allowed circuit IDs.
2013-05-12osmux: add sanity checking to osmux_snprintfPablo Neira Ayuso1-5/+18
Add sanity checking to avoid crashes on malformed OSMUX packets
2013-05-12osmux: allow to set initial RTP SSRCPablo Neira Ayuso3-5/+6
Instead of using the osmuxh->circuit_id.
2013-02-19osmux: add osmux_snprintfPablo Neira Ayuso4-6/+111
Useful for debugging purposes. Modify also examples to use it.
2013-02-19examples: use DOSMUX_TEST instead of DLINP in logging messagesPablo Neira Ayuso2-4/+4
2013-02-19osmux: osmux-test-input: fix compilation warningPablo Neira Ayuso1-1/+1
CC osmux-test-input.o osmux-test-input.c:85:2: warning: initialization from incompatible pointer type [enabled by default] osmux-test-input.c:85:2: warning: (near initialization for ‘h_input.deliver’) [enabled by default]
2013-02-19osmux: RTP payload type for voice is dynamicPablo Neira Ayuso1-5/+6
Don't make any assumption on the payload type.
2013-02-19osmux: add talloc contextPablo Neira Ayuso1-3/+5
Good for debugging leaks.
2013-02-19osmux: initialize batch appropriately in osmux_xfrm_input_initPablo Neira Ayuso1-1/+1
Use talloc_size not talloc. Should fix: 0xb779401a in rb_erase (node=0x200200, root=0xb779c908) at rbtree.c:230 0xb779401a in rb_erase (node=0x200200, root=0xb779c908) at rbtree.c:230 0xb778ee48 in osmo_timer_del (timer=0x94aacd0) at timer.c:110 0xb778ef65 in osmo_timer_add (timer=0x94aacd0) at timer.c:72 0xb778f03c in osmo_timer_schedule (timer=0x94aacd0, seconds=0, microseconds=64000) 0xb77360ff in osmux_xfrm_input (h=0x94a4280, msg=0x94b8a50, ccid=18) at osmux.c:390 Due to uninitialization batch structures.
2013-02-12fix osmux-test-inputPablo Neira Ayuso1-1/+1
ccid array was not initialized appropriately
2013-02-12fix osmux_test with pcap filePablo Neira Ayuso1-5/+5
2013-02-12osmux: use ft instead of the cmrPablo Neira Ayuso3-25/+25
The cmr is the requested codec for the other peer, the ft actually contains the current codec mode. cmr may contain 15 which means "don't care".
2013-02-12osmux: remove arrays from osmux_out_handlePablo Neira Ayuso2-12/+8
there will be one osmux_out_handle per endpoint.
2013-02-11osmux: allow to pass data to osmux_deliverPablo Neira Ayuso2-8/+9
2012-10-21osmux: fix missing data set in osmux_tx_schedPablo Neira Ayuso1-1/+1
2012-10-21dgram: add osmo_dgram_get_dataPablo Neira Ayuso2-0/+6
2012-10-20osmux: remove generic functions to register and get ccidPablo Neira Ayuso4-65/+104
Remove these functions: - osmux_xfrm_input_get_ccid - osmux_xfrm_input_register_ccid The ccid will be managed by the BSC and it will be stored in the mgcp_endpoint structure. Also adjust all tests and examples using the API.
2012-10-15ipa: fix compilation warningPablo Neira Ayuso1-3/+2
Shows up with gcc-4.7 ipa.c: In function 'osmo_ipa_rcvmsg_base': ipa.c:210:6: warning: variable 'ret' set but not used [-Wunused-but-set-variabl
2012-10-15osmux: fix DELTA_RTP_MSGPablo Neira Ayuso1-2/+3
It should be 16000 and add DELTA_RTP_TIMESTAMP which is 160.
2012-10-15osmux: rewrite batching functionPablo Neira Ayuso1-67/+97
Rework batching routine to reduce its complexity, updates: * Now it uses a list of lists to store the messages that will be batched. batch list | `-> node SSRC=a ---> ... ---> node SSRC=b | | msg seq=x1 msg seq=y1 | | msg seq=x2 msg seq=y2 | | msg seq=x3 msg seq=y3 | | msg seq=x4 msg seq y4 This keeps easier the creation of the final batch that is sent from that data structure. * We also detect duplicate messages in the batch, ie. messages with the same sequence are skipped. Still pending to resolve reordering, corruption and omissions (reliability is desired).
2012-10-15osmux: RTP timestamp has to be bumped in 160Pablo Neira Ayuso1-1/+1
Between two RTP messages that were extracted from a batch, the timestamp difference should be 160. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2012-10-15examples: add osmux-test-input and osmux-test-outputPablo Neira Ayuso3-1/+395
You can use these utilities to test osmux: 1) in one console, run ./osmux-test-input This listens in port UDP 20000 and convert RTP traffic to osmux Then, it sends osmux traffic via port UDP 20001 2) in another console, run ./osmux-test-output This listens in port UDP 20001 and convert osmux to RTP traffic Then, it sends RTP traffic to UDP port 20002 3) in another console run, nc -u nc -u -l -p 20002 This is the sink, just to avoid ICMP destination unreachable messages Now you can run replay UDP traffic from one pcap trace that contains RTP traffic with this tool: http://1984.lsi.us.es/git/pcap-inject/ Example of command line invocation: ./traffic-inject /home/pablo/rtp-nanobts-2-phones-amr.pcap udp 20000 You can run wireshark in the loopback to make sure osmux is getting back the traces looking like the original. The tests also generate output files in AMR that you can validate via mplayer: /tmp/output.amr and /tmp/input.amr respectively. This is to make sure there are no reordering or problems of any sort.
2012-10-15osmux: release of batch message is controled by callerPablo Neira Ayuso2-1/+1
Instead of internally released. This is required if we use the osmo_dgram infrastructure, to avoid a double release. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2012-10-15osmux: use DLMIB instead of internal defined DOSMUXPablo Neira Ayuso1-20/+17
Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2012-08-21ipa: add osmo_ipa_parse_msg_id_respPablo Neira Ayuso3-30/+44
Code extracted from ipa_stream_server.c.
2012-08-19ipa: add ipa_cli_id_ack and ipa_cli_id_respPablo Neira Ayuso3-77/+82
This functions were before located in channel/abis/ipa_stream_client.c, but they are generic for IPA units.
2012-08-19channel: abis: ipa-stream-server: fix crash while closing socketPablo Neira Ayuso1-0/+5
This fixes the crash while closing socket with/without link with a valid IPA unit.
2012-08-19ipa: add osmo_ipa_process_msg and remove osmo_ipa_recv_msgPablo Neira Ayuso6-37/+39
This patch removes osmo_ipa_recv_msg, it performs two syscall invocations and it's stream generic. Now we use the specific receival function we want to use (no matter if stream or datagram based) and then we call osmo_ipa_process_msg to check that the IPA message correct.
2012-08-19consolidate ipa_unit infrastructurePablo Neira Ayuso6-242/+290
Provide unified infrastructure for handling IPA units and modify existing code to use it.
2012-08-19stream: add osmo_stream_srv_get_masterPablo Neira Ayuso2-0/+6
To obtain the information of the server data that this connection belongs to.
2012-08-19channel: add abis directory under channelPablo Neira Ayuso9-17/+19
And move all existing A-bis channel implementation to channel/abis/ directory. This is just a cleanup to reorganize the source code tree.
2012-08-19channel: add subtype ID to osmo_chan_createPablo Neira Ayuso6-6/+28
This adds the possibility to specify the variant of the channel. This was discussed during the osmocom workshop. Harald wanted a way to say if the channel is using TCP, UDP, DADHDI and so on.
2012-08-19channel: osmo_chan_init takes one pointer to set the talloc contextPablo Neira Ayuso4-9/+13
Also remove this parameter from osmo_chan_create
2012-08-19channel: rename CHAN_* to OSMO_CHAN_* for correct namespace policyPablo Neira Ayuso6-9/+10
Just to avoid unlikely possible problems while using this library with any other that decided to define the CHAN_* constants.
2012-08-19channel: use linked list instead of array of existing channelsPablo Neira Ayuso4-10/+39
This also adds osmo_chan_init() that needs to initialize the channel infrastructure.
2012-08-19channel: define CHAN_SIGN_OML and CHAN_SIGN_RSL internallyPablo Neira Ayuso3-3/+6
These definitionsare not relevant for external client applications using the library.
2012-08-19channel: remove leftover unused definitions in headerPablo Neira Ayuso1-6/+0
They are not used anywhere in the code.
2012-08-18channel: add name fieldPablo Neira Ayuso3-0/+3
This will be useful to display some human-readable type in logs and the VTY.
2012-08-18channel: abis-ipa-client: add missing header filePablo Neira Ayuso1-0/+13
I forgot to commit this file: osmocom/netif/channel/abis_ipa_client.h
2012-08-16channel: abis-ipa-server: stream layer already destroy the socket for usPablo Neira Ayuso1-1/+1
This reverts 373d1e6540c64ab09a974c71deeb1eeacd68d5bf.
2012-08-16ipa: change osmo_ipa_rcvmsg_base to take argument depending on rolePablo Neira Ayuso4-9/+23
If we're acting as client, we don't have to reply ID_ACK to one received ID_ACK (otherwise, we enter a loop).
2012-08-16channel: display error messages for channel_open()Pablo Neira Ayuso1-2/+9
Using generic osmocom logging infrastructure
2012-08-16channel: abis-ipa-server: fix connection closurePablo Neira Ayuso1-0/+2
2012-08-16add ABIS IPA example as client (BTS)Pablo Neira Ayuso2-1/+95
2012-08-16add abis_ipa_client channelPablo Neira Ayuso4-1/+362
2012-08-15add ipa_unitPablo Neira Ayuso3-0/+139
This adds the generic ipa_unit object that is allocated and set by the BTS while initializing the channels.
2012-08-15channel: abis-ipa: shorter function namesPablo Neira Ayuso5-92/+90
%s/_server_/_srv_/g %s/osmo_chan_abis/osmo_abis/g %s/SERVER/SRV/g
2012-08-15src: shorter stream function namesPablo Neira Ayuso7-386/+379
%s/_client_conn_/_cli_/g %s/_server_conn_/_srv_/g %s/_client_/cli/g %s/server/srv/g %s/RECONFIG/RECONF/g %s/SERVER/SRV/g %s/CLIENT/CLI/g