Commit Graph

380 Commits

Author SHA1 Message Date
Pablo Neira Ayuso 8e479aece2 ipaccess: fix RSL link establishment
This patch fixes the RSL link establishment which made openBSC port
over libosmo-abis crash.
2011-06-27 15:19:11 +02:00
Pablo Neira Ayuso 93c620107e ipaccess: fix write path for OML socket
We have to use e1i_ts->driver.ipaccess.fd file descriptor to
fix the write path. Otherwise, openBSC never delivers replies
to OML messages.
2011-06-26 19:23:24 +02:00
Pablo Neira Ayuso ff66363716 ipaccess: add msg->trx to reduce the size of the openbsc-port patch
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.
2011-06-26 19:10:56 +02:00
Pablo Neira Ayuso 96e7263c85 e1_input: add abis_sendmsg(...)
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.
2011-06-26 19:08:05 +02:00
Pablo Neira Ayuso 70ef10c724 e1_input: remove unused function ipaccess_connect()
This function should live in openbsc instead.
2011-06-25 18:50:54 +02:00
Pablo Neira Ayuso f163d23bf6 e1_input: minor API changes to adapt it to openbsc
While working on the openbsc over libosmo-abis port, I noticed
several API changes that we need to perform for better adaptation.
2011-06-25 18:42:55 +02:00
Pablo Neira Ayuso 130c4fbe2e ipa-proxy: add A-bis over IP generic proxy commands for VTY
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.
2011-06-23 22:15:45 +02:00
Pablo Neira Ayuso af3fed9213 ipa: add ipa_*_send() to transmit messages
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.
2011-06-23 22:15:22 +02:00
Pablo Neira Ayuso 6af9b61a48 ipa: add ipa_server_peer infrastructure
This patch adds the ipa_server_peer abstraction which provide
helpers for the accept path of ipa_server_link.
2011-06-23 14:07:47 +02:00
Pablo Neira Ayuso e009f4a009 ipa: extend ipa_*link_create() to take one generic data pointer
With this patch we can attach generic data to some IPA link. This
will be useful for the IPA proxy support.
2011-06-23 13:36:34 +02:00
Pablo Neira Ayuso af8ed983ff ipaccess: remove dead code from ipaccess adriver
This patch removes some dead code in the ipaccess driver
2011-06-21 20:35:27 +02:00
Pablo Neira Ayuso 986191fadf ipa: add ipa_server_link abstraction
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.
2011-06-21 19:56:26 +02:00
Pablo Neira Ayuso c07a8e7cf7 ipa: rename `struct ipa_link' by `struct ipa_client_link'
And IPA_LINK_STATE_* by IPA_CLIENT_LINK_STATE_* to prepare
the addition of the ipa_server_link abstraction.
2011-06-21 19:50:04 +02:00
Pablo Neira Ayuso 591ddadbe8 ipaccess: initial works to get BTS mode working
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.
2011-06-21 18:16:42 +02:00
Pablo Neira Ayuso 29465d35fc ipaccess: create RSL socket in BTS mode
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.
2011-06-21 14:21:33 +02:00
Pablo Neira Ayuso 7a24940805 input: use generic ipa_msg_recv() instead of ipaccess_read_msg()
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.
2011-06-21 14:15:46 +02:00
Pablo Neira Ayuso 9b3a33cba9 hsl: add support for BTS-mode
This patch adds support for BTS-mode for the hsl input driver.
2011-06-21 13:52:41 +02:00
Pablo Neira Ayuso c00ee7399d e1input: add address as parameter to e1inp_line_update(...)
This patch adds a new parameter to e1inp_line_update that allows to
specific the address for A-bis over IP BSC/BTS.
2011-06-21 12:22:49 +02:00
Pablo Neira Ayuso 96e8128061 input: ipaccess: add preliminary BTS-side for A-bis over IP
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.
2011-06-14 18:47:09 +02:00
Pablo Neira Ayuso e19c70a9ed src: add support for logging infrastructure in libosmo-abis
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.
2011-06-12 15:15:30 +02:00
Pablo Neira Ayuso 0b099b27df include: remove internal definition that are now in libosmocore
Still in one separate patch for libosmocore, but they may become
part of mainline soon.
2011-06-09 13:14:11 +02:00
Pablo Neira Ayuso e47a978942 hsl: use include/abis/ipaccess.h
instead of deprecated include/gsm/protocol/ipaccess.h
2011-06-07 18:03:48 +02:00
Pablo Neira Ayuso 5a4b7c54c6 e1input: rework generic (virtual and real) E1 line operations
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.
2011-06-07 17:28:53 +02:00
Pablo Neira Ayuso f0cb2b4a1a e1input: log_set_context(...) should be called from the application
Remove this line, it should be called from the application.
2011-06-07 17:27:46 +02:00
Pablo Neira Ayuso 211d2ca7a1 e1input: fix TRAU frame handling
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.
2011-06-07 17:15:10 +02:00
Pablo Neira Ayuso 54b4979de6 src: add libosmo_abis_init(void *ctx) to set the talloc context
This function is called during initialization, so we can set what's
the talloc context for the application and the library.
2011-06-07 12:36:42 +02:00
Pablo Neira Ayuso 177094b4c9 src: use include/osmocom/abis instead of include/osmocom/gsm/abis
Harald prefers short paths.

This patch also remove commented includes in several files.
2011-06-07 12:21:51 +02:00
Pablo Neira Ayuso f67471fb7f src: use new socket API in libosmocore
get rid of internal copy of openbsc/libcommon/socket.c, we now
use the new socket API available in libosmocore.
2011-06-07 11:25:49 +02:00
Pablo Neira Ayuso 7b2d18bc4f missing logging header in trau_frame.c 2011-06-05 18:38:43 +02:00
Pablo Neira Ayuso 0ba77d53a9 initial commit of libosmo-abis
still many things to get fixed
2011-06-05 18:32:44 +02:00