Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This new library is intended to include everything related to
interfacing actual voice channels either via E1 or via RTP.
The first module in the library is osmo_rtp, based on the ortp library.
|
|
With multiple BTS attached to a single line, we have to call
->line_update() multiple times. I broke this myself while avoiding
that A-bis over IP drivers bind to the socket several times.
To fix this situation, Harald prefers that this case is internally
handled by the ipaccess and hsl drivers by means of the driver_data
field in the e1inp_line structure.
Reported-by: Gus Bourg <gus@bourg.net>
|
|
|
|
In case we have multiple BTS attached to the same E1 line, the
e1inp_driver::line_update() function will be called multiple times,
and we need to make sure this is handled gracefully.
|
|
|
|
We should only build it when the dahdi/user.h file is actually present.
|
|
The problem with kernel LAPD mainly is that you can only have one
signalling timeslot in each E1 line/interface. However, with many BTS
attached to the same line, we need multiple signalling slots per line.
This allows the user to have a per-line selection between kernel-LAPD
(misdn) and userspace-LAPD (misdn_lapd) drivers in the config file.
|
|
Apparently value_string was not part of libosmocore when the code was
written originally...
|
|
... and create a new e1inp_rx_ts_lapd() from dahdi as well
|
|
|
|
|
|
This is particularly important in case of the Nokia BTS, as they seem
to drop the RF/signalling channel if they don't get proper TRAU
frames.
|
|
|
|
|
|
struct e1inp_line_ops {
- enum e1inp_line_role role;
- char *addr;
- void *data;
+ union {
+ struct {
+ enum e1inp_line_role role; /* BSC or BTS mode. */
+ const char *addr; /* IP address .*/
+ void *dev; /* device parameters. */
+ } ipa;
+ struct {
+ const char *port; /* e.g. /dev/ttyUSB0 */
+ unsigned int delay;
+ } rs232;
+ } cfg;
Now this structure contains the configuration details for the
virtual E1 line, instead of using a pointer.
This also get the line_update callback to its original layout:
+ int (*line_update)(struct e1inp_line *line);
|
|
This patch adds the rs232 driver which is used by then bs11_config
utility available in openBSC.
|
|
|
|
|
|
|
|
|
|
|
|
Instead, propagate the error to upper layers. This fixes a segfault
in the BSC if bad OML/RSL message is received.
|
|
Thus we can use it with the example file for openBSC under
doc/examples/nanobts/openbsc.cfg.
|
|
This patch fixes a segfault if we try to bind to an already
busy port, it can be easily reproduced with:
$ test/./e1inp_ipa_bsc_test &
<0003> ipaccess.c:830 enabling ipaccess BSC mode
<0000> e1inp_ipa_bsc_test.c:241 entering main loop
$ test/./e1inp_ipa_bsc_test
segfault
|
|
This patch fixes the registration of the dahdi driver. We were
using conditional compilation (HAVE_DAHDI_USER_H) which we don't
use anymore.
|
|
Comestical change required by patches that port openBSC
upon libosmo-abis.
|
|
|
|
|
|
|
|
|
|
|
|
So far, there was no way to set the line->name field at all.
|
|
Scenario: BTS are configured and working, then the BSC stops working
for some reason (crash or administrative stop).
If the BSC comes back to life, LAPD among other things does not know
about the previous existing TEIs. Instead of ignoring these frames,
we notify the driver that we are seeing frames with unknown TEIs, so
it can try to recover, e.g. by resending the SABM message.
|
|
|
|
For a system-level daemon, no protocol parser error should ever call
assert, which would take down the entire process.
|
|
DAHDI creates one device node for every E1 timeslot, starting from '1',
and keeps incrementing that number even for additional ports/cards.
Thus, we have to use the e1inp_line number multiplied by 31 as a base.
|
|
|
|
|
|
This updates the code and brings it in sync to
libosmocore git commit 892e621fec571c7cba3573caa0d328ed1b25d8ee
|
|
It's not a good idea to confuse the two changes with each other. Moving the
Abis part into a separate library is independent from the question whether we
have talloc inside libosmocore or use a stand-alone talloc library.
|
|
|
|
Export one function that we shouldn't, it's a quick way to fix
the ipaccess-config in openBSC.
|
|
As we do in ipaccess driver, the socket is not useful anymore
if the BSC/BTS decides to close the signalling link.
|
|
Hm, it seems I forgot to git add them :-(.
|
|
Like the HSL BTS example. We use an event file descriptor
which is used to call the GSM 12.21 based function for
handling.
|
|
This patch adds the BTS support for the hsl driver.
It includes two examples under the tests/ directory.
|
|
We only close the OML and RSL links if they are indeed up.
|
|
The RSL signal link becomes up for the ipaccess driver is tricky.
If the BSC forgets to use the E1 line used by OML for the RSL
link, we run into trouble.
This patch adds a bugtrap so people don't forget to appropriately
handle this case.
|
|
This allows to test that the write path works and it allows
you to get an idea on how to implement the BTS side by means
of libosmo-abis.
|