aboutsummaryrefslogtreecommitdiffstats
path: root/examples/channel/abis_ipa_stream_client.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2012-08-19 01:05:54 +0200
committerPablo Neira Ayuso <pablo@gnumonks.org>2012-08-19 01:06:57 +0200
commit060e46ea6dd6b25d851baaa8757b3531a37edb1a (patch)
tree18314a68737517b0a6923547444ec99617b53276 /examples/channel/abis_ipa_stream_client.c
parent775c1de0891da2d3b16efada5ee8b99f96d045a1 (diff)
channel: add abis directory under channel
And move all existing A-bis channel implementation to channel/abis/ directory. This is just a cleanup to reorganize the source code tree.
Diffstat (limited to 'examples/channel/abis_ipa_stream_client.c')
-rw-r--r--examples/channel/abis_ipa_stream_client.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/examples/channel/abis_ipa_stream_client.c b/examples/channel/abis_ipa_stream_client.c
new file mode 100644
index 0000000..3e24b62
--- /dev/null
+++ b/examples/channel/abis_ipa_stream_client.c
@@ -0,0 +1,92 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <osmocom/core/select.h>
+#include <osmocom/core/talloc.h>
+#include <osmocom/core/msgb.h>
+#include <osmocom/core/logging.h>
+#include <osmocom/core/application.h>
+
+#include <osmocom/netif/channel.h>
+#include <osmocom/netif/channel/abis_ipa_client.h>
+#include <osmocom/netif/ipa_unit.h>
+
+static void *tall_example;
+
+#define DEXAMPLE 0
+
+struct log_info_cat example_cat[] = {
+ [DEXAMPLE] = {
+ .name = "DEXAMPLE",
+ .description = "example",
+ .color = "\033[1;35m",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+};
+
+const struct log_info example_log_info = {
+ .filter_fn = NULL,
+ .cat = example_cat,
+ .num_cat = ARRAY_SIZE(example_cat),
+};
+
+void sighandler(int foo)
+{
+ LOGP(DEXAMPLE, LOGL_NOTICE, "closing test.\n");
+ exit(EXIT_SUCCESS);
+}
+
+static void signal_msg_cb(struct msgb *msg, int type)
+{
+ LOGP(DEXAMPLE, LOGL_NOTICE, "received signal message\n");
+}
+
+static struct osmo_chan *chan;
+
+int main(void)
+{
+ struct ipaccess_unit *unit;
+
+ tall_example = talloc_named_const(NULL, 1, "example");
+
+ osmo_init_logging(&example_log_info);
+ log_set_log_level(osmo_stderr_target, LOGL_DEBUG);
+
+ /* initialize channel infrastructure. */
+ osmo_chan_init(tall_example);
+
+ /* create channel. */
+ chan = osmo_chan_create(OSMO_CHAN_ABIS_IPA_CLI, OSMO_SUBCHAN_STREAM);
+ if (chan == NULL) {
+ LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n");
+ exit(EXIT_FAILURE);
+ }
+
+ /* set specific parameters (depends on channel type). */
+ osmo_abis_ipa_cli_set_oml_addr(chan, "127.0.0.1");
+ osmo_abis_ipa_cli_set_rsl_addr(chan, "127.0.0.1");
+
+ unit = osmo_ipa_unit_alloc();
+ if (unit == NULL) {
+ LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create IPA unit\n");
+ exit(EXIT_FAILURE);
+ }
+ osmo_ipa_unit_set_site_id(unit, 1801);
+
+ osmo_abis_ipa_cli_set_unit(chan, unit);
+ osmo_abis_ipa_cli_set_cb_signalmsg(chan, signal_msg_cb);
+
+ /* open channel. */
+ if (osmo_chan_open(chan) < 0) {
+ LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n");
+ exit(EXIT_FAILURE);
+ }
+
+ LOGP(DEXAMPLE, LOGL_NOTICE, "Entering main loop\n");
+
+ while(1) {
+ osmo_select_main(0);
+ }
+}