libosmo-netif/src
Pablo Neira Ayuso ffd20f3f1c osmux: major rework to reduce batch message size (add counter field)
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-02 20:36:19 +02:00
..
channel src: add generic channel infrastructure and A-bis IPA server support 2011-11-08 11:17:44 +01:00
Makefile.am src: add function to obtain bytes depending on AMR frame code 2012-07-13 21:12:32 +02:00
amr.c src: add function to obtain bytes depending on AMR frame code 2012-07-13 21:12:32 +02:00
channel.c src: add generic channel infrastructure and A-bis IPA server support 2011-11-08 11:17:44 +01:00
datagram.c datagram: minor cleanup 2012-02-23 19:50:47 +01:00
ipa.c src: add generic channel infrastructure and A-bis IPA server support 2011-11-08 11:17:44 +01:00
osmux.c osmux: major rework to reduce batch message size (add counter field) 2012-08-02 20:36:19 +02:00
rs232.c add rs232 support 2012-04-04 19:08:27 +02:00
rtp.c rtp: add new parameter to osmo_rtp_get_payload to obtain payload length 2012-07-12 13:01:28 +02:00
stream.c src: add generic channel infrastructure and A-bis IPA server support 2011-11-08 11:17:44 +01:00