summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-05-22 12:36:55 +0200
committerHarald Welte <laforge@gnumonks.org>2011-05-22 12:36:55 +0200
commit308f9e506e6ae2f30a4b49895f80aa26605e50c0 (patch)
treea88bdc521c92de44dbe78fdde8f415c6b625637c
parent8226b8eae946c70bb7d23730029146f2cd320ad8 (diff)
layer23: update to new GSMTAP API in libosmocore >= 0.3.1
-rw-r--r--src/host/layer23/src/common/l1ctl.c12
-rw-r--r--src/host/layer23/src/common/main.c18
-rw-r--r--src/host/layer23/src/mobile/main.c16
3 files changed, 23 insertions, 23 deletions
diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c
index 2482c615..8c922442 100644
--- a/src/host/layer23/src/common/l1ctl.c
+++ b/src/host/layer23/src/common/l1ctl.c
@@ -47,6 +47,8 @@
#include <osmocom/bb/common/lapdm.h>
#include <osmocom/bb/common/logging.h>
+extern struct gsmtap_inst *gsmtap_inst;
+
static struct msgb *osmo_l1_alloc(uint8_t msg_type)
{
struct l1ctl_hdr *l1h;
@@ -214,9 +216,9 @@ printf("Dropping frame with %u bit errors\n", dl->num_biterr);
/* send CCCH data via GSMTAP */
gsmtap_chan_type = chantype_rsl2gsmtap(chan_type, dl->link_id);
- gsmtap_sendmsg(ntohs(dl->band_arfcn), chan_ts, gsmtap_chan_type, chan_ss,
- tm.fn, dl->rx_level-110, dl->snr, ccch->data,
- sizeof(ccch->data));
+ gsmtap_send(gsmtap_inst, ntohs(dl->band_arfcn), chan_ts,
+ gsmtap_chan_type, chan_ss, tm.fn, dl->rx_level-110,
+ dl->snr, ccch->data, sizeof(ccch->data));
/* determine LAPDm entity based on SACCH or not */
if (dl->link_id & 0x40)
@@ -280,8 +282,8 @@ int l1ctl_tx_data_req(struct osmocom_ms *ms, struct msgb *msg,
/* send copy via GSMTAP */
rsl_dec_chan_nr(chan_nr, &chan_type, &chan_ss, &chan_ts);
gsmtap_chan_type = chantype_rsl2gsmtap(chan_type, link_id);
- gsmtap_sendmsg(0|0x4000, chan_ts, gsmtap_chan_type, chan_ss,
- 0, 127, 255, msg->l2h, msgb_l2len(msg));
+ gsmtap_send(gsmtap_inst, 0|0x4000, chan_ts, gsmtap_chan_type,
+ chan_ss, 0, 127, 255, msg->l2h, msgb_l2len(msg));
/* prepend uplink info header */
l1i_ul = (struct l1ctl_info_ul *) msgb_push(msg, sizeof(*l1i_ul));
diff --git a/src/host/layer23/src/common/main.c b/src/host/layer23/src/common/main.c
index 40e6a07b..a307222c 100644
--- a/src/host/layer23/src/common/main.c
+++ b/src/host/layer23/src/common/main.c
@@ -35,6 +35,7 @@
#include <osmocom/core/select.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/gsmtap_util.h>
+#include <osmocom/core/gsmtap.h>
#include <osmocom/core/utils.h>
#include <arpa/inet.h>
@@ -50,15 +51,18 @@
struct log_target *stderr_target;
void *l23_ctx = NULL;
+
static char *layer2_socket_path = "/tmp/osmocom_l2";
static char *sap_socket_path = "/tmp/osmocom_sap";
struct llist_head ms_list;
static struct osmocom_ms *ms = NULL;
-static uint32_t gsmtap_ip = 0;
+static char *gsmtap_ip = NULL;
+
unsigned short vty_port = 4247;
int (*l23_app_work) (struct osmocom_ms *ms) = NULL;
int (*l23_app_exit) (struct osmocom_ms *ms) = NULL;
int quit = 0;
+struct gsmtap_inst *gsmtap_inst;
const char *openbsc_copyright =
"%s"
@@ -139,7 +143,6 @@ static void build_config(char **opt, struct option **option)
static void handle_options(int argc, char **argv)
{
- struct sockaddr_in gsmtap;
struct l23_app_info *app = l23_app_info();
struct option *long_options;
char *opt;
@@ -170,11 +173,7 @@ static void handle_options(int argc, char **argv)
ms->test_arfcn = atoi(optarg);
break;
case 'i':
- if (!inet_aton(optarg, &gsmtap.sin_addr)) {
- perror("inet_aton");
- exit(2);
- }
- gsmtap_ip = ntohl(gsmtap.sin_addr.s_addr);
+ gsmtap_ip = optarg;
break;
case 'v':
vty_port = atoi(optarg);
@@ -263,11 +262,12 @@ int main(int argc, char **argv)
exit(1);
if (gsmtap_ip) {
- rc = gsmtap_init(gsmtap_ip);
- if (rc < 0) {
+ gsmtap_inst = gsmtap_source_init(gsmtap_ip, GSMTAP_UDP_PORT, 1);
+ if (!gsmtap_inst) {
fprintf(stderr, "Failed during gsmtap_init()\n");
exit(1);
}
+ gsmtap_source_add_sink(gsmtap_inst);
}
signal(SIGINT, sighandler);
diff --git a/src/host/layer23/src/mobile/main.c b/src/host/layer23/src/mobile/main.c
index 1f156697..01c2b2e9 100644
--- a/src/host/layer23/src/mobile/main.c
+++ b/src/host/layer23/src/mobile/main.c
@@ -28,6 +28,7 @@
#include <osmocom/core/talloc.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/gsmtap_util.h>
+#include <osmocom/core/gsmtap.h>
#include <osmocom/core/signal.h>
#include <arpa/inet.h>
@@ -48,7 +49,8 @@ struct log_target *stderr_target;
void *l23_ctx = NULL;
struct llist_head ms_list;
-static uint32_t gsmtap_ip = 0;
+static char *gsmtap_ip = 0;
+struct gsmtap_inst *gsmtap_inst = NULL;
unsigned short vty_port = 4247;
int debug_set = 0;
char *config_dir = NULL;
@@ -85,7 +87,6 @@ static void print_help()
static void handle_options(int argc, char **argv)
{
- struct sockaddr_in gsmtap;
while (1) {
int option_index = 0, c;
static struct option long_options[] = {
@@ -108,11 +109,7 @@ static void handle_options(int argc, char **argv)
exit(0);
break;
case 'i':
- if (!inet_aton(optarg, &gsmtap.sin_addr)) {
- perror("inet_aton");
- exit(2);
- }
- gsmtap_ip = ntohl(gsmtap.sin_addr.s_addr);
+ gsmtap_ip = optarg;
break;
case 'v':
vty_port = atoi(optarg);
@@ -171,11 +168,12 @@ int main(int argc, char **argv)
log_set_log_level(stderr_target, LOGL_INFO);
if (gsmtap_ip) {
- rc = gsmtap_init(gsmtap_ip);
- if (rc < 0) {
+ gsmtap_inst = gsmtap_source_init(gsmtap_ip, GSMTAP_UDP_PORT, 1);
+ if (!gsmtap_inst) {
fprintf(stderr, "Failed during gsmtap_init()\n");
exit(1);
}
+ gsmtap_source_add_sink(gsmtap_inst);
}
home = getenv("HOME");