This introduces a new flag OSMO_SOCK_F_NO_MCAST_LOOP, which can be used
to disable the looping back of multicast packets transmitted throug this
socket to other local sockets on the machine.
As this looping-back is active by default, a single option to deviate
from the default is deemed sufficient.
Change-Id: I24a5b1ebc3f84d2d5d4734e54df50efaea26490b
This is a convenience helper that will both close a fd, mark it as
closed and unregister it from the event loop abstraction. In most
cases, you probably actually want to use it instead of manually closing
and calling osmo_fd_unregister().
Change-Id: Icd0933eed6a24edde7cdcb378e138897ecc5332c
Convert a given frame number into a printable string that displays
the sub components of the frame number.
Change-Id: I8015d2ded3940b01b35df7b72fc35c70c25e9926
These PRBS sequences are specified in ITU-T O.150. They are typically
used as test data to be transmitted for BER (bit error rate) testing.
Change-Id: I227b6a6e86a251460ecb816afa9a7439d5fb94d1
The PDP charging characteristics will be returned from the PDP
selection code and be used in the SGSN. It is following the same
approach as the QoS and PDP addr. It is a bit of a pity that we
have to define this in a different project.
Change-Id: I7815c5dfd7b7fb0ea78d816ebfb3abfbf0090afe
Add deprecation notice for public API use: it shouldn't be used outside
of libosmocore anyway.
Change-Id: I792e30dc44f027fd94e1f65af19fe08bac52b95c
Related: OS#71
These fields can be in the ISD and the PDP Context inofmration. Store
pointers to this IE in both cases. It needs to be used by the SGSN
when opening a PDP context.
Change-Id: Iedc7c02adcf77ca5c9545119e19c968dfbbb3e6b
Recent commit 3149b0d076 adds function
gsm0808_chan_type_to_speech_codec() but adds a completely mismatching name in
libosmogsm.map, as well as a definition with a typo in the name.
Fix the entry in libosmogsm.map.
Add the missing 'c' in gsm0808_utils.h
Change-Id: I5a621fa5ef6b632eabbe224f3dd383eacaffb695
Considering the various styles and implications found in the sources, edit
scores of files to follow the same API doc guidelines around the doxygen
grouping and the \file tag.
Many files now show a short description in the generated API doc that was so
far only available as C comment.
The guidelines and reasoning behind it is documented at
https://osmocom.org/projects/cellular-infrastructure/wiki/Guidelines_for_API_documentation
In some instances, remove file comments and add to the corresponding group
instead, to be shared among several files (e.g. bitvec).
Change-Id: Ifa70e77e90462b5eb2b0457c70fd25275910c72b
Move a longish comment to the timer group so that it appears in the API doc.
Un-doxygen some floating comments that were associated with unrelated code
items ('/**' --> '/*').
Add braces to some function names so that the API doc will render as reference
links.
Change-Id: I3ea5b88cbe9cb54702429158bf47e768e04e8fe7
Especially for short descriptions, it is annoying to have to type \brief for
every single API doc.
Drop all \brief and enable the AUTOBRIEF feature of doxygen, which always takes
the first sentence of an API doc as the brief description.
Change-Id: I11a8a821b065a128108641a2a63fb5a2b1916e87
Typically we don't place comments with the function declarations
in .h files. Not sure why this file has comments for each. The
API doc belongs in the .c file as proper doxygen comments,
and shouldn't be duplicated in the .h file.
In this particular case, doxygen comments are added in the
corresponding c file recently.
Change-Id: I5c4cb55be5ec59a6945b1720b875c5987f1cfaad
The contents of the speech codec element (struct gsm0808_speech_codec),
that is also used in the speech codec list element (struct
gsm0808_speech_codec_list) can be generated directly from the
permitted speech parameter in the channel type field (struct
gsm0808_channel_type) when full AoIP with compressed speech via
RTP/UDP/IP is assumed and when the codec configuration on the air
interface exactly matches the codec configuration on the IP backhaul.
This patch adds a function that can be used as a helper to fill
out spech codec fields by only giving a permitted speech parameter
as input.
Change-Id: I257c972e9fdf0dfe940a8d483447085bd62e50a2
The permitted speech field used in channel type element (struct
gsm0808_channel_type) uses a different representation as
the type field in the speech codec element (struct
gsm0808_speech_codec)
This patch adds a function to convert from permitted speech to
speech codec type.
Change-Id: Ib26a9c20864459b2baaa04f49b6e7902ba44b7cb
In an AoIP scenario, the speech codec list field specifies the
codecs used in the RTP interface. This patch adds a table
with default codec configurations that match the codec
configurations that are also used on the air interface.
Change-Id: I9dc0165d76a022b2c1b7418bc3133407e61b7261
The implementation of the parser/generator for the speech codec
information element slightly wrong, making it impossible to use
it properly.
(See also: 3GPP TS 48.008, 3.2.2.103)
Change-Id: Idabb0f9620659557672e1c6b90c75481192e5c89
The codec type to be set in member type in struct gsm0808_speech_codec
has its own coding scheme to reference the used codec types. This patch
declares an enum with valid speech codec types.
Change-Id: Icaa768071d4364e671bc7e6d48b82d1f07f93f93
The constants in enum gsm0808_permitted_speech are not very expressive.
Add comments indicating each constant's corresponding codec.
Change-Id: I9734f7c261becffe38ffd41c304d006d08530c1a
3GPP TS 24.008 specifies two new speech versions for half rate and
two new speech modes for full rate. This patch adds the relevant
constants to enum gsm48_bcap_speech_ver in gsm_04_08.h
Change-Id: Id2835384c855f924332d38f01c73bd1cfdb62549
Add the information which GSM Speech codec version coresponds to
which bearer capability speech version.
Change-Id: Ic9493fea139420a52c32b17d00ac7d0b2bf86967
The planned sccp-addressbook implementation in libosmo-sccp
requires two additional VTY nodes.
See also in libosmo-sccp.git:
Change-Id I068ed7f7d113dab88424a9d47bab7fc703bb7942
Change-Id: I42aa29c0cccc97f284b85801c5329b015b189640
It's universally useful so it make sense to have it in the shared core:
* move macro from libosmocoding to libosmocore
* add OSMO_ prefix
* add doxygen docs
Change-Id: I5386ba3e1f1cc153ba96c29dc71c9075a052aa02
A warning was printed even if the deprecation didn't apply to
libosmocore because it is still allowed to use it internally.
This patch fixes this case while still printing a warning if external
projects build using libosmocore headers.
Change-Id: I32212f20756f828af1017482a71e29e4b3adbad4
It's a pity that even with this patch we still are fare away from having
the whole API documented. However, at least we have a more solid
foundation. Updates not only extend the documentation, but also make
sure it is rendered properly in the doxygen HTML.
Change-Id: I1344bd1a6869fb00de7c1899a8db93bba9bafce3
The interleaving/deinterleaving functions were missing 'const'
qualifiers on their input data buffers
Change-Id: I2118c34a6353167787b23f877f1d81d60151aaf9
This adds the minimum amount of API documentation that we should have on
all our code, particularly new code merged into a library.
Change-Id: I526804f64313867913574e50e5b9e9205ad3aa74
It is generally our coding style to mark pointers to constant input data
as 'const *'. For some reason the gsm0503 coding and mapping was not
adhering to this, so let's bring it into compliance.
Change-Id: Id8731d7ae6171dff94741b6ddbb95ab5f03bfd4e
We cannot assume a certain UART API like uart_baudrate() which only
exists in OsmocomBB. Rather, use generic function prototypes
(sercomm_drv_*) which are to be provided by the application /
environment to the sercomm core.
Change-Id: I01ea3067baf1791000c1a7d537ccce496a1ab1ee
osmo_sercomm_{bind,get}_uart() are not really needed anymore, as
sercomm_inst is public and thus the user can access the uart_id member
directly.
Change-Id: I6d57709c3764036046202f16a26c9eb87426c8d1
Those values are not relevant to the sercomm user, only to the
implementation and thus can remain inside sercomm.c
Change-Id: I5700a45985b7c119c6338932171aae62ee4e2d22
Rather than having one global instance, let's permit multiple instances
of sercomm to co-exist, with all API functions extended by the instance
as first argument.
Change-Id: I0f3b53f464b119d65747bcb0be0af2d631e1cc05
This imports the file src/target/firmware/comm/sercomm.c from
osmocom-bb.git without introducing any modifications. It will not even
be built yet, as Makefile integration is intentionally left until it has
been adapted to work inside libosmocore.
Change-Id: I9ee199381c7b5986a9540d124836cdddd0f66c86