This is a temporary change to keep the openbsc port over libosmo-abis
smaller. We'll remove it at some point once we fully transition to
the new msg->dst routing attribute.
This patch adds generic abis_sendmsg to send NM messages (both OML and RSL).
abis_rsl_sendmsg(...) is basically the same, we'll remove it from
libosmo-abis once we can propagate changes to openbsc.
This patch adds VTY commands to route IPA flows. The following
example allows to add a new route:
$ tests/./ipa_proxy_test &
<0000> ipa_proxy_test.c:74 entering main loop
$ telnet localhost 4260
ipa-proxy-test> enable
ipa-proxy-test# ipa instance input-oml bind 127.0.0.1 tcp port 8888
ipa-proxy-test# ipa instance output-oml connect 127.0.0.1 tcp port 3002
ipa-proxy-test# ipa route instance input-oml streamid 0xfe instance output-oml streamid 0xfe
ipa-proxy-test# ipa instance input-rsl bind 127.0.0.1 tcp port 8889
ipa-proxy-test# ipa instance output-rsl connect 127.0.0.1 tcp port 3003
ipa-proxy-test# ipa route instance input-rsl streamid 0xfe instance output-rsl streamid 0xfe
I'm using this to initially test this code [*].
[*] note that this requires a minor hackish patch for the
src/input/ipaccess.c driver which changes the default OML and RSL
ports to listen in 8888 and 8889 instead of the default ports,
thus, I can initially test everything from the localhost.
This patch adds ipa_*_send() functions to transmit messages
using the new A-bis over IP infrastructure.
This patch completes the transmission path support for the A-bis
over IP infrastructure.
This patch adds the ipa_server_link which allows to create
IPA servers.
I have also changed the ipaccess driver to use it. Still
missing the port of HSL driver.
This patch adds the initial support to get BTS mode working with
the ipaccess driver.
Now, the driver handles IPA ping, pong and id_ack messages
internally in BTS modes, and it passes the signalling messages
to the client application by invoking the callback line operations.
Moreover, with this patch, each IPA link object always has one
E1 line object associated.
Still HSL BTS-mode remains unimplemented.
With this patch, we create the RSL socket in BTS mode.
This patch also fixes a crash if the RSL socket goes down
before we have set the RSL line via OML with the existing
code.
We use the new generic function to receive messages, instead of
ipaccess_read_msg.
It's a mere renaming, but it's the first step before the rework
that will happen soon to avoid calling read() twice.
This patch adds the BTS-side for the ip.access driver for
A-bis over IP communications.
This patch adds one example under test/ so you can test the
existing BSC and BTS sides over ip.access.
Still incomplete, it requires to allow to register some
callback in the BTS side to perform some action once we
receive some message. This will come in next updates.
This patch uses the new libosmocore logging infrastructure
that allows to invoke log_init(&my_log_info) multiple times
so we can register categories from libraries and applications.
struct e1inp_line_ops {
int (*sign_link_up)(struct msgb *msg, struct e1inp_line *line);
int (*sign_link)(struct msgb *msg, struct e1inp_sign_link *link);
int (*error)(struct msgb *msg, int error);
};
The description of the operations is the following:
* sign_link_up is invoked if the signalling link becomes up. In A-bis
over IP, we have to wait until the other peer identifies itself as
a BTS/BSC device, then this function is invoked. This function is not
used by ISDN drivers, the signalling link can be set up just after
the line is created.
* sign_link is called if we receive OML/RSL message. This function
is used both by ISDN and A-bis over IP drivers.
* error is called if we receive a malformed message. It is used both
by ISDN and A-bis over IP drivers.
With this patch, we pass TRAU frames to the callback that
e1inp_ts_config_trau(...) takes as parameter. Instead of passing
it to the line->rx(...) callback. The function
e1inp_ts_config_trau(...) should only be used by ISDN drivers.