aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-02-13 17:16:44 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-02-14 12:15:40 +0100
commit7997bf4bed15fa8c6807820b1a9b379a2ae0c61e (patch)
tree2313d9a2d1c823702d8f52c293ad52ebe51ce6ba /src
parentec1bb16eef42cf2cf32af8faca05d234b2a0c891 (diff)
libcommon: eliminate debug.c
Provide concise log categories for each main scope. Move the complete log categories 1:1 to osmo_bsc_main.c. In bsc_nat.c, omit obviously unused log categories. In tests, omit almost all log categories, except for those explicitly tested as the expected output. Note: should any logging occur for a log category that is omitted by accident, such will end up being logged as DLGLOBAL, so it will show up and we can fix it, and it will not get lost silently. Change-Id: Ib524e49ec211662e0dfde8161495a72aa8ad76cf
Diffstat (limited to 'src')
-rw-r--r--src/ipaccess/ipaccess-config.c14
-rw-r--r--src/ipaccess/ipaccess-proxy.c14
-rw-r--r--src/libcommon/Makefile.am1
-rw-r--r--src/libcommon/debug.c239
-rw-r--r--src/osmo-bsc/osmo_bsc_main.c186
-rw-r--r--src/osmo-bsc_nat/bsc_nat.c33
-rw-r--r--src/utils/bs11_config.c14
7 files changed, 261 insertions, 240 deletions
diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c
index 957a5bb2c..7e8cafdba 100644
--- a/src/ipaccess/ipaccess-config.c
+++ b/src/ipaccess/ipaccess-config.c
@@ -838,6 +838,20 @@ static void print_options(void)
extern void bts_model_nanobts_init();
+static const struct log_info_cat log_categories[] = {
+ [DNM] = {
+ .name = "DNM",
+ .description = "A-bis Network Management / O&M (NM/OML)",
+ .color = "\033[1;36m",
+ .enabled = 1, .loglevel = LOGL_INFO,
+ },
+};
+
+static const struct log_info log_info = {
+ .cat = log_categories,
+ .num_cat = ARRAY_SIZE(log_categories),
+};
+
int main(int argc, char **argv)
{
struct gsm_bts *bts;
diff --git a/src/ipaccess/ipaccess-proxy.c b/src/ipaccess/ipaccess-proxy.c
index b45b5439f..40749ee7a 100644
--- a/src/ipaccess/ipaccess-proxy.c
+++ b/src/ipaccess/ipaccess-proxy.c
@@ -1200,6 +1200,20 @@ static void handle_options(int argc, char** argv)
}
}
+static const struct log_info_cat log_categories[] = {
+ [DMM] = {
+ .name = "DMM",
+ .description = "Layer3 Mobility Management (MM)",
+ .color = "\033[1;33m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+};
+
+const struct log_info log_info = {
+ .cat = log_categories,
+ .num_cat = ARRAY_SIZE(log_categories),
+};
+
int main(int argc, char **argv)
{
int rc;
diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am
index 1a73e6cb5..1f7f5c440 100644
--- a/src/libcommon/Makefile.am
+++ b/src/libcommon/Makefile.am
@@ -20,7 +20,6 @@ noinst_LIBRARIES = \
$(NULL)
libcommon_a_SOURCES = \
- debug.c \
gsm_data.c \
gsm_data_shared.c \
socket.c \
diff --git a/src/libcommon/debug.c b/src/libcommon/debug.c
deleted file mode 100644
index b5a490ba9..000000000
--- a/src/libcommon/debug.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/* OpenBSC Debugging/Logging support code */
-
-/* (C) 2008-2010 by Harald Welte <laforge@gnumonks.org>
- * (C) 2008 by Holger Hans Peter Freyther <zecke@selfish.org>
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <strings.h>
-#include <time.h>
-#include <errno.h>
-
-#include <osmocom/core/talloc.h>
-#include <osmocom/core/utils.h>
-#include <osmocom/core/logging.h>
-#include <osmocom/gprs/gprs_msgb.h>
-#include <osmocom/bsc/gsm_data.h>
-#include <osmocom/bsc/debug.h>
-
-/* default categories */
-static const struct log_info_cat default_categories[] = {
- [DRLL] = {
- .name = "DRLL",
- .description = "A-bis Radio Link Layer (RLL)",
- .color = "\033[1;31m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DCC] = {
- .name = "DCC",
- .description = "Layer3 Call Control (CC)",
- .color = "\033[1;32m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DMM] = {
- .name = "DMM",
- .description = "Layer3 Mobility Management (MM)",
- .color = "\033[1;33m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DRR] = {
- .name = "DRR",
- .description = "Layer3 Radio Resource (RR)",
- .color = "\033[1;34m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DRSL] = {
- .name = "DRSL",
- .description = "A-bis Radio Siganlling Link (RSL)",
- .color = "\033[1;35m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DNM] = {
- .name = "DNM",
- .description = "A-bis Network Management / O&M (NM/OML)",
- .color = "\033[1;36m",
- .enabled = 1, .loglevel = LOGL_INFO,
- },
- [DMNCC] = {
- .name = "DMNCC",
- .description = "MNCC API for Call Control application",
- .color = "\033[1;39m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DPAG] = {
- .name = "DPAG",
- .description = "Paging Subsystem",
- .color = "\033[1;38m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DMEAS] = {
- .name = "DMEAS",
- .description = "Radio Measurement Processing",
- .enabled = 0, .loglevel = LOGL_NOTICE,
- },
- [DSCCP] = {
- .name = "DSCCP",
- .description = "SCCP Protocol",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DMSC] = {
- .name = "DMSC",
- .description = "Mobile Switching Center",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DMGCP] = {
- .name = "DMGCP",
- .description = "Media Gateway Control Protocol",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DHO] = {
- .name = "DHO",
- .description = "Hand-Over Process",
- .color = "\033[1;38m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DHODEC] = {
- .name = "DHODEC",
- .description = "Hand-Over Decision",
- .color = "\033[1;38m",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DDB] = {
- .name = "DDB",
- .description = "Database Layer",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DREF] = {
- .name = "DREF",
- .description = "Reference Counting",
- .enabled = 0, .loglevel = LOGL_NOTICE,
- },
- [DGPRS] = {
- .name = "DGPRS",
- .description = "GPRS Packet Service",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DNS] = {
- .name = "DNS",
- .description = "GPRS Network Service (NS)",
- .enabled = 1, .loglevel = LOGL_INFO,
- },
- [DBSSGP] = {
- .name = "DBSSGP",
- .description = "GPRS BSS Gateway Protocol (BSSGP)",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DLLC] = {
- .name = "DLLC",
- .description = "GPRS Logical Link Control Protocol (LLC)",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DSNDCP] = {
- .name = "DSNDCP",
- .description = "GPRS Sub-Network Dependent Control Protocol (SNDCP)",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DNAT] = {
- .name = "DNAT",
- .description = "GSM 08.08 NAT/Multiplexer",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DCTRL] = {
- .name = "DCTRL",
- .description = "Control interface",
- .enabled = 1, .loglevel = LOGL_NOTICE,
- },
- [DSMPP] = {
- .name = "DSMPP",
- .description = "SMPP interface for external SMS apps",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DFILTER] = {
- .name = "DFILTER",
- .description = "BSC/NAT IMSI based filtering",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DRANAP] = {
- .name = "DRANAP",
- .description = "Radio Access Network Application Part Protocol",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DSUA] = {
- .name = "DSUA",
- .description = "SCCP User Adaptation Protocol",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DPCU] = {
- .name = "DPCU",
- .description = "PCU Interface",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DVLR] = {
- .name = "DVLR",
- .description = "Visitor Location Register",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DIUCS] = {
- .name = "DIUCS",
- .description = "Iu-CS Protocol",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
- [DSIGTRAN] = {
- .name = "DSIGTRAN",
- .description = "SIGTRAN Signalling Transport",
- .color = "\033[1;29m",
- .enabled = 1, .loglevel = LOGL_DEBUG,
- },
-};
-
-static int filter_fn(const struct log_context *ctx, struct log_target *tar)
-{
- const struct vlr_subscr *vsub = ctx->ctx[LOG_CTX_VLR_SUBSCR];
- const struct bsc_subscr *bsub = ctx->ctx[LOG_CTX_BSC_SUBSCR];
- const struct gprs_nsvc *nsvc = ctx->ctx[LOG_CTX_GB_NSVC];
- const struct gprs_nsvc *bvc = ctx->ctx[LOG_CTX_GB_BVC];
-
- if ((tar->filter_map & (1 << LOG_FLT_VLR_SUBSCR)) != 0
- && vsub && vsub == tar->filter_data[LOG_FLT_VLR_SUBSCR])
- return 1;
-
- if ((tar->filter_map & (1 << LOG_FLT_BSC_SUBSCR)) != 0
- && bsub && bsub == tar->filter_data[LOG_FLT_BSC_SUBSCR])
- return 1;
-
- /* Filter on the NS Virtual Connection */
- if ((tar->filter_map & (1 << LOG_FLT_GB_NSVC)) != 0
- && nsvc && (nsvc == tar->filter_data[LOG_FLT_GB_NSVC]))
- return 1;
-
- /* Filter on the NS Virtual Connection */
- if ((tar->filter_map & (1 << LOG_FLT_GB_BVC)) != 0
- && bvc && (bvc == tar->filter_data[LOG_FLT_GB_BVC]))
- return 1;
-
- return 0;
-}
-
-const struct log_info log_info = {
- .filter_fn = filter_fn,
- .cat = default_categories,
- .num_cat = ARRAY_SIZE(default_categories),
-};
diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c
index 4b53f2d13..a6ea56c07 100644
--- a/src/osmo-bsc/osmo_bsc_main.c
+++ b/src/osmo-bsc/osmo_bsc_main.c
@@ -278,6 +278,192 @@ static void signal_handler(int signal)
}
}
+static const struct log_info_cat osmo_bsc_categories[] = {
+ [DRLL] = {
+ .name = "DRLL",
+ .description = "A-bis Radio Link Layer (RLL)",
+ .color = "\033[1;31m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DCC] = {
+ .name = "DCC",
+ .description = "Layer3 Call Control (CC)",
+ .color = "\033[1;32m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DMM] = {
+ .name = "DMM",
+ .description = "Layer3 Mobility Management (MM)",
+ .color = "\033[1;33m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DRR] = {
+ .name = "DRR",
+ .description = "Layer3 Radio Resource (RR)",
+ .color = "\033[1;34m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DRSL] = {
+ .name = "DRSL",
+ .description = "A-bis Radio Siganlling Link (RSL)",
+ .color = "\033[1;35m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DNM] = {
+ .name = "DNM",
+ .description = "A-bis Network Management / O&M (NM/OML)",
+ .color = "\033[1;36m",
+ .enabled = 1, .loglevel = LOGL_INFO,
+ },
+ [DMNCC] = {
+ .name = "DMNCC",
+ .description = "MNCC API for Call Control application",
+ .color = "\033[1;39m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DPAG] = {
+ .name = "DPAG",
+ .description = "Paging Subsystem",
+ .color = "\033[1;38m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DMEAS] = {
+ .name = "DMEAS",
+ .description = "Radio Measurement Processing",
+ .enabled = 0, .loglevel = LOGL_NOTICE,
+ },
+ [DSCCP] = {
+ .name = "DSCCP",
+ .description = "SCCP Protocol",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DMSC] = {
+ .name = "DMSC",
+ .description = "Mobile Switching Center",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DMGCP] = {
+ .name = "DMGCP",
+ .description = "Media Gateway Control Protocol",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DHO] = {
+ .name = "DHO",
+ .description = "Hand-Over Process",
+ .color = "\033[1;38m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DHODEC] = {
+ .name = "DHODEC",
+ .description = "Hand-Over Decision",
+ .color = "\033[1;38m",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DDB] = {
+ .name = "DDB",
+ .description = "Database Layer",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DREF] = {
+ .name = "DREF",
+ .description = "Reference Counting",
+ .enabled = 0, .loglevel = LOGL_NOTICE,
+ },
+ [DGPRS] = {
+ .name = "DGPRS",
+ .description = "GPRS Packet Service",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DNS] = {
+ .name = "DNS",
+ .description = "GPRS Network Service (NS)",
+ .enabled = 1, .loglevel = LOGL_INFO,
+ },
+ [DBSSGP] = {
+ .name = "DBSSGP",
+ .description = "GPRS BSS Gateway Protocol (BSSGP)",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DLLC] = {
+ .name = "DLLC",
+ .description = "GPRS Logical Link Control Protocol (LLC)",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DSNDCP] = {
+ .name = "DSNDCP",
+ .description = "GPRS Sub-Network Dependent Control Protocol (SNDCP)",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DNAT] = {
+ .name = "DNAT",
+ .description = "GSM 08.08 NAT/Multiplexer",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DCTRL] = {
+ .name = "DCTRL",
+ .description = "Control interface",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DSMPP] = {
+ .name = "DSMPP",
+ .description = "SMPP interface for external SMS apps",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DFILTER] = {
+ .name = "DFILTER",
+ .description = "BSC/NAT IMSI based filtering",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DRANAP] = {
+ .name = "DRANAP",
+ .description = "Radio Access Network Application Part Protocol",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DSUA] = {
+ .name = "DSUA",
+ .description = "SCCP User Adaptation Protocol",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DPCU] = {
+ .name = "DPCU",
+ .description = "PCU Interface",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DVLR] = {
+ .name = "DVLR",
+ .description = "Visitor Location Register",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DIUCS] = {
+ .name = "DIUCS",
+ .description = "Iu-CS Protocol",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+ [DSIGTRAN] = {
+ .name = "DSIGTRAN",
+ .description = "SIGTRAN Signalling Transport",
+ .color = "\033[1;29m",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+};
+
+static int filter_fn(const struct log_context *ctx, struct log_target *tar)
+{
+ const struct bsc_subscr *bsub = ctx->ctx[LOG_CTX_BSC_SUBSCR];
+
+ if ((tar->filter_map & (1 << LOG_FLT_BSC_SUBSCR)) != 0
+ && bsub && bsub == tar->filter_data[LOG_FLT_BSC_SUBSCR])
+ return 1;
+
+ return 0;
+}
+
+const struct log_info log_info = {
+ .filter_fn = filter_fn,
+ .cat = osmo_bsc_categories,
+ .num_cat = ARRAY_SIZE(osmo_bsc_categories),
+};
+
int main(int argc, char **argv)
{
struct bsc_msc_data *msc;
diff --git a/src/osmo-bsc_nat/bsc_nat.c b/src/osmo-bsc_nat/bsc_nat.c
index 87db68478..c1c791392 100644
--- a/src/osmo-bsc_nat/bsc_nat.c
+++ b/src/osmo-bsc_nat/bsc_nat.c
@@ -1627,6 +1627,39 @@ static struct vty_app_info vty_info = {
.is_config_node = bsc_vty_is_config_node,
};
+static const struct log_info_cat log_categories[] = {
+ [DNM] = {
+ .name = "DNM",
+ .description = "A-bis Network Management / O&M (NM/OML)",
+ .color = "\033[1;36m",
+ .enabled = 1, .loglevel = LOGL_INFO,
+ },
+ [DNAT] = {
+ .name = "DNAT",
+ .description = "GSM 08.08 NAT/Multiplexer",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DMSC] = {
+ .name = "DMSC",
+ .description = "Mobile Switching Center",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DCTRL] = {
+ .name = "DCTRL",
+ .description = "Control interface",
+ .enabled = 1, .loglevel = LOGL_NOTICE,
+ },
+ [DFILTER] = {
+ .name = "DFILTER",
+ .description = "BSC/NAT IMSI based filtering",
+ .enabled = 1, .loglevel = LOGL_DEBUG,
+ },
+};
+
+static const struct log_info log_info = {
+ .cat = log_categories,
+ .num_cat = ARRAY_SIZE(log_categories),
+};
int main(int argc, char **argv)
{
diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c
index c72a23a53..2122abe6a 100644
--- a/src/utils/bs11_config.c
+++ b/src/utils/bs11_config.c
@@ -884,6 +884,20 @@ struct e1inp_line_ops bs11cfg_e1inp_line_ops = {
.sign_link = bs11cfg_sign_link,
};
+static const struct log_info_cat bs11_categories[] = {
+ [DNM] = {
+ .name = "DNM",
+ .description = "A-bis Network Management / O&M (NM/OML)",
+ .color = "\033[1;36m",
+ .enabled = 1, .loglevel = LOGL_INFO,
+ },
+};
+
+const struct log_info log_info = {
+ .cat = bs11_categories,
+ .num_cat = ARRAY_SIZE(bs11_categories),
+};
+
extern int bts_model_bs11_init(void);
int main(int argc, char **argv)
{