aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2012-08-15src: shorter names for datagram socketsPablo Neira Ayuso6-171/+170
%s/_conn_/_/g %s/_conn//g %s/_server_/_tx_/g %s/_client_/_rx_/g %s/_SERVER_/_TX_/g %s/_CLIENT_/_RX_/g %s/_RECONFIG/_RECONF/g
2012-08-06osmux: fix ordering of RTP messages in the batching listPablo Neira Ayuso1-12/+15
This patch fixes the ordering in RTP sequence number. Before this patch, the list was inverted. This also fixes the calculation of the room that still remains in the batch.
2012-08-06osmux: add OSMUX_MAX_CONCURRENT_CALLS which is 8Pablo Neira Ayuso2-6/+8
Instead of harcoding the number all around the code.
2012-08-06osmux: support two concurrent calls in output pathPablo Neira Ayuso3-11/+20
2012-08-06osmux: add infrastructure to map RTP SSRC and osmux CCIDPablo Neira Ayuso3-4/+59
2012-08-06osmux: fix wrong calculation of csrc_countPablo Neira Ayuso1-2/+1
2012-08-06osmux: batching factor can be explicitly configured by callerPablo Neira Ayuso3-4/+3
Not hardcoded in osmux.c code anymore.
2012-08-06osmux: store internal batching information in struct osmux_in_handlePablo Neira Ayuso3-31/+49
The layout is not provided, as it is internal. Thus, we don't allocate the internal batching information in BSS anymore.
2012-08-06osmux: print RTP header if debug logging level is setPablo Neira Ayuso1-4/+8
2012-08-06rtp: add osmo_rtp_snprintfPablo Neira Ayuso2-0/+42
To print the RTP header and payload.
2012-08-04osmux: extend debugging to make sure we don't lag in scheduled transmissionsPablo Neira Ayuso1-2/+6
osmux only lags ~0.15 ms at maximum to transmit one scheduled RTP message according to my tests with PCAP traces. Yes, only ~0.15 milliseconds, this is not wrong :-). This is good news, our timer infrastructure seems to be quite precise.
2012-08-04osmux: remove timeval parameter from osmux_tx_schedPablo Neira Ayuso3-9/+9
We can internal allocate this in the stack, no need to expose it to the caller.
2012-08-04osmux: fix when to add the osmux headerPablo Neira Ayuso1-5/+9
This needs to be done for the first message in one RTP SSRC series. Before this patch, it was always included due to wrong aritmethics.
2012-08-04osmux: fix list ordering for RTP messages that will be included in batchPablo Neira Ayuso1-25/+12
This fixes the algorithms to include the messages in order in the batch based on the TRP SSRC (from lower to higher). This is very important to reduce the amount of bytes that we spend on the osmux header.
2012-08-04osmux: check for the maximum amount of messages in batchPablo Neira Ayuso1-1/+8
This should not happen, but make sure our osmux CTR field does not wrap around.
2012-08-04osmux: cleanup tx pathPablo Neira Ayuso3-44/+54
This patch cleans up the transmission path for osmux, this involves the functions that extract the messages from the batch and the one that reconstruct the timing. They now take a list that contains the reconstructed RTP messages: osmux_xfrm_output(osmuxh, &h_output, &list); osmux_tx_sched(&list, &tv, tx_cb, NULL);
2012-08-04fix wrong delta between two RTP messagesPablo Neira Ayuso1-1/+1
it should 20 ms, not 160 ms. Thanks for Holger for spotting this.
2012-08-02osmux: major rework to reduce batch message size (add counter field)Pablo Neira Ayuso3-76/+221
This patch adds the counter field to the osmux header, so we can reduce the size of the batch even further, eg. osmuxhdr (ctr=3) speech speech speech osmuxhdr (ctr=2) speech speech ... The new header is the following: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FT | CTR |F|Q| SeqNR | Circuit ID |AMR-FT |AMR-CMR| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The counter field is 3 bits long, thus, we can batch up to 8 RTP speech frames into one single batch per circuit ID. I have also removed the RTP marker, since it can be reconstructed from the AMR information. Moreover, the entire workflow has been also reworked. Whenever a packet arrives, we introduce it into the batch list. This batch list contains a list of RTP messages ordered by RTP SSRC. Then, once the batch timer expires or the it gets full, we build the batch from the list of RTP messages. Note that this allows us to put several speech frame into one single osmux header without actually worrying about the amount of messages that we'll receive. The functions that reconstruct the RTP messages has been also adjusted. Now, it returns a list of RTP messages per RTP SSRC that has been extracted from the batch.
2012-08-02tests: osmux: initialize input handler before first runPablo Neira Ayuso1-2/+2
Make sure we don't segfault due to uninitiliazed handler.
2012-08-02tests: osmo-pcap: callback control the release of the emulated packetPablo Neira Ayuso1-2/+0
The callback is now in charge of releasing the packet.
2012-08-02osmux: osmux_get_payload returns uint8_t * instead void *Pablo Neira Ayuso1-1/+1
So we easily add offsets without any casting.
2012-08-02osmux: fix wrong maximum batch sizePablo Neira Ayuso1-1/+2
Missing UDP header in calculation.
2012-08-02tests: osmo-pcap: cleanup for osmux test receiver loopPablo Neira Ayuso1-11/+7
2012-07-19osmux: use logging infrastructurePablo Neira Ayuso1-5/+11
so far, printf was used instead.
2012-07-19tests: osmo-pcap: use logging infrastructurePablo Neira Ayuso1-0/+26
so far, it was missing and printf was used instead of the generic logging infrastructure that osmocom provides.
2012-07-19osmux: add DEBUG_TIMING to make sure timing reconstruction is OKPablo Neira Ayuso1-0/+15
by now, it is set on by default.
2012-07-19osmux: always use osmux_tx_cb in osmux_tx_schedPablo Neira Ayuso1-7/+5
This is required by the follow-up patch to debug timing issues.
2012-07-19tests: osmo-pcap: split packet replay from osmux_test codePablo Neira Ayuso4-118/+189
This patch splits in two files the code that contains the packet replay based on PCAP from the osmux test.
2012-07-19tests: osmo-pcap: adapt it to use new osmux_tx_schedPablo Neira Ayuso1-3/+19
Adapt the test to use the function that allows reconstructing the RTP timing sequence.
2012-07-19osmux: add osmux_tx_sched to reconstruct the timing of RTP messagesPablo Neira Ayuso2-0/+44
This function schedules the transmission of a RTP message that was obtained from one osmux batch. It takes the time (in microseconds) after which the message should be transmitted.
2012-07-13osmux: use osmo_amr_bytes instead of hardcoded 15 bytes for CMR 2Pablo Neira Ayuso1-7/+9
I was using AMR CMR 2 (15 bytes) as the initial tests were done with the codec variant. This patch fixes this by using the new generic osmo_amr_bytes extracted from 3GPP TS 26.101.
2012-07-13src: add function to obtain bytes depending on AMR frame codePablo Neira Ayuso3-1/+56