Age | Commit message (Collapse) | Author | Files | Lines |
|
This is needed for mgcp_transcode.c of OpenBSC to access the
data after the header. Use a zero sized array for it.
|
|
Use the new macros to deal with little/big endian. Im a bit
worried to make this change due the little test coverage in
this module but in case of a typo the elements would not be
defined.
|
|
This allows you to set the default batch size when initializing the
osmux input handle.
|
|
Add statistics to the osmux input handle, which translates the RTP
messages to osmux batch.
|
|
This patch adds a new field to the struct osmux_in_handle that allows
you to specify the osmux frame size. If not specified, the default
size assumes your nic uses a mtu of 1500 bytes.
|
|
To clean up the osmux input handle.
|
|
This tells us the maximum osmux circuit ID.
|
|
|
|
It was not matching with the current code.
|
|
According to RFC3267, AMR FT upper 9 should be discarded. This patch
adds extra validation to make sure that input RTP traffic encapsulating
AMR payload and OSMUX amr_ft field are OK with regards to that
restriction.
|
|
According to RFC3267, AMR FT 8 is reserved to SID and its size is
8 bytes.
|
|
|
|
Instead of using the osmuxh->circuit_id.
|
|
Useful for debugging purposes. Modify also examples to use it.
|
|
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".
|
|
there will be one osmux_out_handle per endpoint.
|
|
|
|
|
|
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.
|
|
Code extracted from ipa_stream_server.c.
|
|
This functions were before located in channel/abis/ipa_stream_client.c,
but they are generic for IPA units.
|
|
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.
|
|
Provide unified infrastructure for handling IPA units and modify
existing code to use it.
|
|
To obtain the information of the server data that this connection
belongs to.
|
|
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.
|
|
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.
|
|
|