Age | Commit message (Collapse) | Author | Files | Lines |
|
Also remove this parameter from osmo_chan_create
|
|
Just to avoid unlikely possible problems while using this library
with any other that decided to define the CHAN_* constants.
|
|
This also adds osmo_chan_init() that needs to initialize the
channel infrastructure.
|
|
These definitionsare not relevant for external client applications
using the library.
|
|
They are not used anywhere in the code.
|
|
This will be useful to display some human-readable type in logs
and the VTY.
|
|
I forgot to commit this file:
osmocom/netif/channel/abis_ipa_client.h
|
|
If we're acting as client, we don't have to reply ID_ACK to
one received ID_ACK (otherwise, we enter a loop).
|
|
|
|
This adds the generic ipa_unit object that is allocated and set
by the BTS while initializing the channels.
|
|
%s/_server_/_srv_/g
%s/osmo_chan_abis/osmo_abis/g
%s/SERVER/SRV/g
|
|
%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
|
|
%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
|
|
Instead of harcoding the number all around the code.
|
|
|
|
|
|
Not hardcoded in osmux.c code anymore.
|
|
The layout is not provided, as it is internal.
Thus, we don't allocate the internal batching information in BSS
anymore.
|
|
To print the RTP header and payload.
|
|
We can internal allocate this in the stack, no need to expose it to
the caller.
|
|
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);
|
|
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.
|
|
So we easily add offsets without any casting.
|
|
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.
|
|
|
|
|
|
|
|
|
|
As specified by RFC 3551, these are reserved to distinguish
RCTP from RTP.
|
|
|
|
As defined by RFC3267 in Octed-Aligned mode.
|
|
This patch splits osmo_rtp_parse in two functions:
osmo_rtp_get_hdr
osmo_rtp_get_payload
So we can validate corrent RTP header to access its fields. Then,
obtain the payload.
|
|
And also adjust example files to use the new function.
Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
|
|
This include an example to open /dev/ttyACM0 to receive data from
u-blox GPS and one to configure it in TIMEPULSE2 mode.
|
|
This patch adds the initial RTP support for libosmo-netif, it's based
on Harald's RTP support available in openBSC.
I have also added a couple of example to show how our new channel
infrastructure interacts with the RTP layer.
Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
|
|
This patch adds the generic channel infrastructure that allows to
create channel of different types. Each channel has their own
configuration functions.
struct osmo_chan *chan;
chan = osmo_chan_create(tall_example, CHAN_ABIS_IPA_SERVER);
...
/* specific configuration functions per supported channel. */
osmo_chan_abis_ipa_server_set_cb_signalmsg(chan, signal_msg_cb);
osmo_chan_abis_ipa_unit_add(chan, 1801, 0);
/* open channel. */
osmo_chan_open(chan);
The input path requires a callback to be registered. The output path
is handled through:
int osmo_chan_enqueue(struct osmo_chan *c, struct msgb *msg);
The msg->dst must be set (it can be taken from the original message
to route one reply).
This patch also adds A-bis IPA server support. It has been tested with
e1inp_ipa_bsc_test available in libosmo-abis.
|
|
This patch allows to set reconnect timeout. If zero, it will try
immediately. If negative, it will skip retrying.
|
|
This patch adds IPA helper function that can be use on top of stream
sockets.
The current API is just a copy and paste from libosmo-abis, it will
change in follow up patches to improve it.
|
|
To obtain the file description.
|
|
Like c43bb089067ca05af4992fbafe46827a1f0a6e9b but for stream
sockets.
|
|
We provide osmo_dgram_conn_recv(...) which allows you to take control
on the message allocation and receival process. Instead of hiding this
details inside the datagram infrastructure.
Providing more control to clients of this code means more flexibility.
|
|
This patch changes the prototype of osmo_dgram_conn_set_read_cb.
Now it takes one callback to a generic struct osmo_dgram_conn
instead of osmo_dgram_server_conn. This is useful in case that
you want to reply to one message using the datagram socket (without
this change is not possible).
|
|
Add new functions:
osmo_stream_server_link_get_data
osmo_stream_server_conn_get_data
osmo_stream_client_conn_get_data
To obtain private data from osmo_stream_* handlers.
This patch also introduces missing osmo_stream_server_conn_set_data.
|
|
Modify examples as well to use the new API.
|
|
Modify examples as well to use the new API.
|
|
The should be uses in the client program. They are not required by
the generic stream socket infrastructure.
|
|
This patch adds new datagram socket infrastructure and it reworks
the previous examples (now it's LAPD over datagram).
|
|
|