aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/Makefile.am23
-rw-r--r--src/utils/bs11_config.c29
-rw-r--r--src/utils/meas_db.c99
-rw-r--r--src/utils/meas_db.h6
-rw-r--r--src/utils/meas_json.c23
-rw-r--r--src/utils/meas_pcap2db.c12
-rw-r--r--src/utils/meas_udp2db.c13
-rw-r--r--src/utils/meas_vis.c36
8 files changed, 127 insertions, 114 deletions
diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am
index 914a6042d..ece993faa 100644
--- a/src/utils/Makefile.am
+++ b/src/utils/Makefile.am
@@ -9,10 +9,10 @@ AM_CFLAGS = \
$(LIBOSMOCORE_CFLAGS) \
$(LIBOSMOGSM_CFLAGS) \
$(LIBOSMOABIS_CFLAGS) \
+ $(LIBOSMONETIF_CFLAGS) \
+ $(LIBOSMOSIGTRAN_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(SQLITE3_CFLAGS) \
- $(LIBOSMOSIGTRAN_CFLAGS) \
- $(LIBOSMOMGCPCLIENT_CFLAGS) \
$(NULL)
AM_LDFLAGS = \
@@ -28,17 +28,17 @@ bin_PROGRAMS = \
isdnsync \
meas_json \
$(NULL)
-if HAVE_SQLITE3
+if BUILD_MEAS_UDP2DB
bin_PROGRAMS += \
osmo-meas-udp2db \
$(NULL)
-if HAVE_PCAP
+endif
+if BUILD_MEAS_PCAP2DB
bin_PROGRAMS += \
osmo-meas-pcap2db \
$(NULL)
endif
-endif
-if HAVE_LIBCDK
+if BUILD_MEAS_VIS
bin_PROGRAMS += \
meas_vis \
$(NULL)
@@ -49,12 +49,7 @@ bs11_config_SOURCES = \
$(NULL)
bs11_config_LDADD = \
- $(top_builddir)/src/osmo-bsc/abis_nm.o \
- $(top_builddir)/src/osmo-bsc/bts_siemens_bs11.o \
- $(top_builddir)/src/osmo-bsc/e1_config.o \
- $(top_builddir)/src/osmo-bsc/gsm_data.o \
- $(top_builddir)/src/osmo-bsc/gsm_timers.o \
- $(top_builddir)/src/osmo-bsc/net_init.o \
+ $(top_builddir)/src/osmo-bsc/libbsc.la \
$(LIBOSMOCORE_LIBS) \
$(LIBOSMOGSM_LIBS) \
$(LIBOSMOABIS_LIBS) \
@@ -120,8 +115,7 @@ meas_json_SOURCES = \
$(NULL)
meas_json_LDADD = \
- $(top_builddir)/src/osmo-bsc/gsm_data.o \
- $(top_builddir)/src/osmo-bsc/gsm_timers.o \
+ $(top_builddir)/src/osmo-bsc/libbsc.la \
$(LIBOSMOCORE_LIBS) \
$(LIBOSMOGSM_LIBS) \
$(LIBOSMOABIS_LIBS) \
@@ -132,4 +126,3 @@ meas_json_CFLAGS = \
$(LIBOSMOGSM_CFLAGS) \
$(LIBOSMOABIS_CFLAGS) \
$(NULL)
-
diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c
index 7fac3e39a..e79507642 100644
--- a/src/utils/bs11_config.c
+++ b/src/utils/bs11_config.c
@@ -39,6 +39,7 @@
#include <osmocom/bsc/debug.h>
#include <osmocom/core/select.h>
#include <osmocom/bsc/rs232.h>
+#include <osmocom/bsc/bts.h>
#include <osmocom/core/application.h>
#include <osmocom/core/talloc.h>
#include <osmocom/abis/abis.h>
@@ -103,7 +104,7 @@ static int create_objects(struct gsm_bts *bts)
abis_nm_bs11_conn_oml_tei(bts, 0, 1, 0xff, TEI_OML);
abis_nm_bs11_set_trx_power(bts->c0, BS11_TRX_POWER_GSM_30mW);
-
+
sleep(1);
abis_nm_bs11_set_trx1_pw(bts, trx1_password);
@@ -136,7 +137,7 @@ static int create_trx1(struct gsm_bts *bts)
abis_nm_bs11_create_object(bts, BS11_OBJ_PA, 1,
sizeof(obj_pa0_attr), obj_pa0_attr);
abis_nm_bs11_set_trx_power(trx, BS11_TRX_POWER_GSM_30mW);
-
+
return 0;
}
@@ -201,7 +202,7 @@ static int swload_cbfn(unsigned int hook, unsigned int event, struct msgb *msg,
break;
case NM_MT_ACTIVATE_SW_ACK:
bs11cfg_state = STATE_NONE;
-
+
break;
case NM_MT_LOAD_SEG_ACK:
percent = abis_nm_software_load_status(g_bts);
@@ -232,6 +233,7 @@ static const struct value_string mbccu_load_names[] = {
{ 3, "Load BTSBBX" },
{ 4, "Load BTSARC" },
{ 5, "Load" },
+ { 8, "Not Equipped" },
{ 0, NULL }
};
@@ -281,7 +283,7 @@ static const char *bts_phase_name(uint8_t phase)
static const char *trx_power_name(uint8_t pwr)
{
switch (pwr) {
- case BS11_TRX_POWER_GSM_2W:
+ case BS11_TRX_POWER_GSM_2W:
return "2W (GSM)";
case BS11_TRX_POWER_GSM_250mW:
return "250mW (GSM)";
@@ -854,6 +856,10 @@ static void handle_options(int argc, char **argv)
if (optind+1 < argc)
value = argv[optind+1];
}
+ if (optind+2 < argc) {
+ fprintf(stderr, "Unsupported positional arguments on command line\n");
+ exit(2);
+ }
}
@@ -968,18 +974,3 @@ int main(int argc, char **argv)
exit(0);
}
-
-/* Stub */
-int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg)
-{
- return 0;
-}
-
-/* Stub */
-int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg)
-{
- return 0;
-}
-
-void ts_fsm_alloc(struct gsm_bts_trx_ts *ts) {}
-int abis_rsl_rcvmsg(struct msgb *msg) { return 0; }
diff --git a/src/utils/meas_db.c b/src/utils/meas_db.c
index 7233dcda6..2f81524ae 100644
--- a/src/utils/meas_db.c
+++ b/src/utils/meas_db.c
@@ -29,10 +29,11 @@
#include <osmocom/core/utils.h>
#include <osmocom/gsm/gsm_utils.h>
#include <osmocom/bsc/meas_rep.h>
+#include <osmocom/bsc/meas_feed.h>
#include "meas_db.h"
-#define INS_MR "INSERT INTO meas_rep (time, imsi, name, scenario, nr, bs_power, ms_timing_offset, fpc, ms_l1_pwr, ms_l1_ta) VALUES (?,?,?,?,?,?,?,?,?,?)"
+#define INS_MR "INSERT INTO meas_rep (time, bts_nr, trx_nr, ts_nr, ss_nr, lchan_type, pchan_type, imsi, name, scenario, nr, bs_power, ms_timing_offset, fpc, ms_l1_pwr, ms_l1_ta) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
#define INS_UD "INSERT INTO meas_rep_unidir (meas_id, rx_lev_full, rx_lev_sub, rx_qual_full, rx_qual_sub, dtx, uplink) VALUES (?,?,?,?,?,?,?)"
#define UPD_MR "UPDATE meas_rep SET ul_unidir=?, dl_unidir=? WHERE id=?"
@@ -59,8 +60,6 @@ struct meas_db_state {
static int _insert_ud(struct meas_db_state *st, unsigned long meas_id, int dtx,
int uplink, const struct gsm_meas_rep_unidir *ud)
{
- unsigned long rowid;
-
SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 1, meas_id));
SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 2,
rxlev2dbm(ud->full.rx_lev)));
@@ -81,53 +80,57 @@ err_io:
}
/* insert a measurement report into the database */
-int meas_db_insert(struct meas_db_state *st, const char *imsi,
- const char *name, unsigned long timestamp,
- const char *scenario,
- const struct gsm_meas_rep *mr)
+int meas_db_insert(struct meas_db_state *st, unsigned long timestamp,
+ const struct meas_feed_meas *mfm)
{
- int rc;
sqlite3_int64 rowid, ul_rowid, dl_rowid;
SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 1, timestamp));
- if (imsi)
- SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 2,
- imsi, -1, SQLITE_STATIC));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 2, mfm->bts_nr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 3, mfm->trx_nr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 4, mfm->ts_nr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 5, mfm->ss_nr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 6, mfm->lchan_type));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 7, mfm->pchan_type));
+
+ if (mfm->imsi[0] != '\0')
+ SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 8,
+ mfm->imsi, -1, SQLITE_STATIC));
else
- SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 2));
+ SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 8));
- if (name)
- SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 3,
- name, -1, SQLITE_STATIC));
+ if (mfm->name[0] != '\0')
+ SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 9,
+ mfm->name, -1, SQLITE_STATIC));
else
- SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 3));
+ SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 9));
- if (scenario)
- SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 4,
- scenario, -1, SQLITE_STATIC));
+ if (mfm->scenario[0] != '\0')
+ SCK_OK(st->db, sqlite3_bind_text(st->stmt_ins_mr, 10,
+ mfm->scenario, -1, SQLITE_STATIC));
else
- SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 4));
+ SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 10));
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 5, mr->nr));
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 6, mr->bs_power));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 11, mfm->mr.nr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 12, mfm->mr.bs_power_db / 2));
- if (mr->flags & MEAS_REP_F_MS_TO)
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 7, mr->ms_timing_offset));
+ if (mfm->mr.flags & MEAS_REP_F_MS_TO)
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 13, mfm->mr.ms_timing_offset));
else
- SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 7));
+ SCK_OK(st->db, sqlite3_bind_null(st->stmt_ins_mr, 13));
- if (mr->flags & MEAS_REP_F_FPC)
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 8, 1));
+ if (mfm->mr.flags & MEAS_REP_F_FPC)
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 14, 1));
else
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 8, 0));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 14, 0));
- if (mr->flags & MEAS_REP_F_MS_L1) {
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 9,
- mr->ms_l1.pwr));
- SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 10,
- mr->ms_l1.ta));
+ if (mfm->mr.flags & MEAS_REP_F_MS_L1) {
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 15,
+ mfm->mr.ms_l1.pwr));
+ SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_mr, 16,
+ mfm->mr.ms_l1.ta));
}
SCK_DONE(st->db, sqlite3_step(st->stmt_ins_mr));
@@ -136,14 +139,14 @@ int meas_db_insert(struct meas_db_state *st, const char *imsi,
rowid = sqlite3_last_insert_rowid(st->db);
/* insert uplink measurement */
- ul_rowid = _insert_ud(st, rowid, mr->flags & MEAS_REP_F_UL_DTX,
- 1, &mr->ul);
+ ul_rowid = _insert_ud(st, rowid, mfm->mr.flags & MEAS_REP_F_UL_DTX,
+ 1, &mfm->mr.ul);
SCK_OK(st->db, sqlite3_bind_int(st->stmt_upd_mr, 1, ul_rowid));
/* insert downlink measurement, if present */
- if (mr->flags & MEAS_REP_F_DL_VALID) {
- dl_rowid = _insert_ud(st, rowid, mr->flags & MEAS_REP_F_DL_DTX,
- 0, &mr->dl);
+ if (mfm->mr.flags & MEAS_REP_F_DL_VALID) {
+ dl_rowid = _insert_ud(st, rowid, mfm->mr.flags & MEAS_REP_F_DL_DTX,
+ 0, &mfm->mr.dl);
SCK_OK(st->db, sqlite3_bind_int(st->stmt_upd_mr, 2, dl_rowid));
} else
SCK_OK(st->db, sqlite3_bind_null(st->stmt_upd_mr, 2));
@@ -184,6 +187,12 @@ static const char *create_stmts[] = {
"CREATE TABLE IF NOT EXISTS meas_rep ("
"id INTEGER PRIMARY KEY AUTOINCREMENT,"
"time TIMESTAMP,"
+ "bts_nr INTEGER,"
+ "trx_nr INTEGER,"
+ "ts_nr INTEGER,"
+ "ss_nr INTEGER,"
+ "lchan_type INTEGER,"
+ "pchan_type INTEGER,"
"imsi TEXT,"
"name TEXT,"
"scenario TEXT,"
@@ -210,6 +219,12 @@ static const char *create_stmts[] = {
"SELECT "
"meas_rep.id, "
"datetime(time,'unixepoch') AS timestamp, "
+ "bts_nr,"
+ "trx_nr,"
+ "ts_nr,"
+ "ss_nr,"
+ "lchan_type,"
+ "pchan_type,"
"imsi, "
"name, "
"scenario, "
@@ -241,6 +256,12 @@ static const char *create_stmts[] = {
"SELECT "
"id,"
"timestamp,"
+ "bts_nr,"
+ "trx_nr,"
+ "ts_nr,"
+ "ss_nr,"
+ "lchan_type,"
+ "pchan_type,"
"imsi,"
"name,"
"scenario,"
@@ -257,7 +278,7 @@ static const char *create_stmts[] = {
static int check_create_tbl(struct meas_db_state *st)
{
- int i, rc;
+ int i;
for (i = 0; i < ARRAY_SIZE(create_stmts); i++) {
SCK_OK(st->db, sqlite3_exec(st->db, create_stmts[i],
diff --git a/src/utils/meas_db.h b/src/utils/meas_db.h
index 889e9022f..8f8a8c679 100644
--- a/src/utils/meas_db.h
+++ b/src/utils/meas_db.h
@@ -9,9 +9,7 @@ void meas_db_close(struct meas_db_state *st);
int meas_db_begin(struct meas_db_state *st);
int meas_db_commit(struct meas_db_state *st);
-int meas_db_insert(struct meas_db_state *st, const char *imsi,
- const char *name, unsigned long timestamp,
- const char *scenario,
- const struct gsm_meas_rep *mr);
+int meas_db_insert(struct meas_db_state *st, unsigned long timestamp,
+ const struct meas_feed_meas *mfm);
#endif
diff --git a/src/utils/meas_json.c b/src/utils/meas_json.c
index 365b450f4..953b114f3 100644
--- a/src/utils/meas_json.c
+++ b/src/utils/meas_json.c
@@ -34,6 +34,7 @@
#include <osmocom/core/socket.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/select.h>
+#include <osmocom/core/application.h>
#include <osmocom/gsm/gsm_utils.h>
@@ -61,7 +62,7 @@ static void print_meas_rep_json(struct gsm_meas_rep *mr)
printf(", \"UL_MEAS\":{");
print_meas_rep_uni_json(&mr->ul);
printf("}");
- printf(", \"BS_POWER\":%d", mr->bs_power);
+ printf(", \"BS_POWER\":%d", mr->bs_power_db / 2);
if (mr->flags & MEAS_REP_F_MS_TO)
printf(", \"MS_TO\":%d", mr->ms_timing_offset);
@@ -98,7 +99,7 @@ static void print_chan_info_json(struct meas_feed_meas *mfm)
{
printf("\"lchan_type\":\"%s\", \"pchan_type\":\"%s\", "
"\"bts_nr\":%d, \"trx_nr\":%d, \"ts_nr\":%d, \"ss_nr\":%d",
- gsm_lchant_name(mfm->lchan_type), gsm_pchan_name(mfm->pchan_type),
+ gsm_chan_t_name(mfm->lchan_type), gsm_pchan_name(mfm->pchan_type),
mfm->bts_nr, mfm->trx_nr, mfm->ts_nr, mfm->ss_nr);
}
@@ -157,7 +158,7 @@ static int udp_fd_cb(struct osmo_fd *ofd, unsigned int what)
{
int rc;
- if (what & BSC_FD_READ) {
+ if (what & OSMO_FD_READ) {
struct msgb *msg = msgb_alloc(1024, "UDP Rx");
rc = read(ofd->fd, msgb_data(msg), msgb_tailroom(msg));
@@ -171,8 +172,21 @@ static int udp_fd_cb(struct osmo_fd *ofd, unsigned int what)
return 0;
}
+/* default categories */
+static struct log_info_cat default_categories[] = {
+};
+
+static const struct log_info meas_json_log_info = {
+ .cat = default_categories,
+ .num_cat = ARRAY_SIZE(default_categories),
+};
+
int main(int argc, char **argv)
{
+
+ void *tall_ctx = talloc_named_const(NULL, 0, "meas_json");
+ osmo_init_logging2(tall_ctx, &meas_json_log_info);
+
int rc;
struct osmo_fd udp_ofd;
@@ -187,6 +201,3 @@ int main(int argc, char **argv)
exit(0);
}
-
-void ts_fsm_alloc(struct gsm_bts_trx_ts *ts) {}
-int abis_rsl_rcvmsg(struct msgb *msg) { return 0; }
diff --git a/src/utils/meas_pcap2db.c b/src/utils/meas_pcap2db.c
index db00fae49..eb69d506c 100644
--- a/src/utils/meas_pcap2db.c
+++ b/src/utils/meas_pcap2db.c
@@ -47,21 +47,13 @@ static struct meas_db_state *db;
static void handle_mfm(const struct pcap_pkthdr *h,
const struct meas_feed_meas *mfm)
{
- const char *scenario;
-
- if (strlen(mfm->scenario))
- scenario = mfm->scenario;
- else
- scenario = NULL;
-
- meas_db_insert(db, mfm->imsi, mfm->name, h->ts.tv_sec,
- scenario, &mfm->mr);
+ meas_db_insert(db, h->ts.tv_sec, mfm);
}
static void pcap_cb(u_char *user, const struct pcap_pkthdr *h,
const u_char *bytes)
{
- const char *cur = bytes;
+ const u_char *cur = bytes;
const struct iphdr *ip;
const struct udphdr *udp;
const struct meas_feed_meas *mfm;
diff --git a/src/utils/meas_udp2db.c b/src/utils/meas_udp2db.c
index 34f8385e8..0c97d8bf6 100644
--- a/src/utils/meas_udp2db.c
+++ b/src/utils/meas_udp2db.c
@@ -1,4 +1,4 @@
-/* liesten to meas_feed on UDP and write it to sqlite3 database */
+/* listen to meas_feed on UDP and write it to sqlite3 database */
/* (C) 2012 by Harald Welte <laforge@gnumonks.org>
*
@@ -47,7 +47,6 @@ static int handle_msg(struct msgb *msg)
{
struct meas_feed_hdr *mfh = (struct meas_feed_hdr *) msgb_data(msg);
struct meas_feed_meas *mfm = (struct meas_feed_meas *) msgb_data(msg);
- const char *scenario;
time_t now = time(NULL);
if (mfh->version != MEAS_FEED_VERSION)
@@ -56,13 +55,7 @@ static int handle_msg(struct msgb *msg)
if (mfh->msg_type != MEAS_FEED_MEAS)
return -EINVAL;
- if (strlen(mfm->scenario))
- scenario = mfm->scenario;
- else
- scenario = NULL;
-
- meas_db_insert(db, mfm->imsi, mfm->name, now,
- scenario, &mfm->mr);
+ meas_db_insert(db, now, mfm);
return 0;
}
@@ -71,7 +64,7 @@ static int udp_fd_cb(struct osmo_fd *ofd, unsigned int what)
{
int rc;
- if (what & BSC_FD_READ) {
+ if (what & OSMO_FD_READ) {
struct msgb *msg = msgb_alloc(1024, "UDP Rx");
rc = read(ofd->fd, msgb_data(msg), msgb_tailroom(msg));
diff --git a/src/utils/meas_vis.c b/src/utils/meas_vis.c
index 851aa03d9..c3ee2a5e2 100644
--- a/src/utils/meas_vis.c
+++ b/src/utils/meas_vis.c
@@ -13,6 +13,8 @@
#include <osmocom/core/msgb.h>
#include <osmocom/core/select.h>
#include <osmocom/core/talloc.h>
+#include <osmocom/core/logging.h>
+#include <osmocom/core/application.h>
#include <osmocom/gsm/gsm_utils.h>
@@ -123,7 +125,7 @@ static int udp_fd_cb(struct osmo_fd *ofd, unsigned int what)
{
int rc;
- if (what & BSC_FD_READ) {
+ if (what & OSMO_FD_READ) {
struct msgb *msg = msgb_alloc(1024, "UDP Rx");
rc = read(ofd->fd, msgb_data(msg), msgb_tailroom(msg));
@@ -191,7 +193,7 @@ void write_uni(struct ms_state *ms, struct ms_state_uni *msu,
if (dir == DIR_UL) {
pwr = ms->mr.ms_l1.pwr;
} else {
- pwr = ms->mr.bs_power;
+ pwr = ms->mr.bs_power_db / 2;
}
color = A_REVERSE | COLOR_PAIR(lev_col) | ' ';
@@ -203,7 +205,7 @@ void write_uni(struct ms_state *ms, struct ms_state_uni *msu,
snprintf(msu->label, sizeof(msu->label), "</%d>%1d<!%d> %3d %2u %2d %4u",
qual_col, lq->rx_qual, qual_col, pwr,
ms->mr.ms_l1.ta, ms->mr.ms_timing_offset,
- now - msu->last_update);
+ (unsigned int)(now - msu->last_update));
msu->cdk_label = newCDKLabel(g_st.cdkscreen, RIGHT, row,
msu->_lbl, 1, FALSE, FALSE);
}
@@ -258,23 +260,40 @@ const struct value_string col_strs[] = {
{ 0, NULL }
};
+/* default categories */
+static struct log_info_cat default_categories[] = {
+};
+
+static const struct log_info meas_vis_log_info = {
+ .cat = default_categories,
+ .num_cat = ARRAY_SIZE(default_categories),
+};
+
int main(int argc, char **argv)
{
int rc;
char *header[1];
char *title[1];
+ struct log_target *stderr_target;
+
+ void *tall_ctx = talloc_named_const(NULL, 0, "meas_vis");
+ osmo_init_logging2(tall_ctx, &meas_vis_log_info);
msgb_talloc_ctx_init(NULL, 0);
- printf("sizeof(gsm_meas_rep)=%u\n", sizeof(struct gsm_meas_rep));
- printf("sizeof(meas_feed_meas)=%u\n", sizeof(struct meas_feed_meas));
+ printf("sizeof(gsm_meas_rep)=%zu\n", sizeof(struct gsm_meas_rep));
+ printf("sizeof(meas_feed_meas)=%zu\n", sizeof(struct meas_feed_meas));
+ g_st.udp_ofd.cb = udp_fd_cb;
+ rc = osmo_sock_init_ofd(&g_st.udp_ofd, AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 8888, OSMO_SOCK_F_BIND);
+ if (rc < 0)
+ exit(1);
INIT_LLIST_HEAD(&g_st.ms_list);
g_st.curses_win = initscr();
g_st.cdkscreen = initCDKScreen(g_st.curses_win);
initCDKColor();
- g_st.title = "OpenBSC link quality monitor";
+ g_st.title = "OsmoBSC link quality monitor";
title[0] = g_st.title;
g_st.cdk_title = newCDKLabel(g_st.cdkscreen, CENTER, 0, title, 1, FALSE, FALSE);
@@ -296,11 +315,6 @@ int main(int argc, char **argv)
exit(0);
#endif
- g_st.udp_ofd.cb = udp_fd_cb;
- rc = osmo_sock_init_ofd(&g_st.udp_ofd, AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 8888, OSMO_SOCK_F_BIND);
- if (rc < 0)
- exit(1);
-
while (1) {
osmo_select_main(0);
update_sliders();