lynxis lazus has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-msc/+/38410?usp=email )


Change subject: vlr: add a logging layer
......................................................................

vlr: add a logging layer

To prepare the split off into a separate library,
the logging can't use log category from a define.
Use the same strategy as all the other osmo libraries and
use a global array which is set on initialisation to define the logging
categories.

Change-Id: I6d87b38d6d7d704c7c7b2c90ad12187e4b953b8b
---
M include/osmocom/vlr/vlr.h
M src/libmsc/msc_net_init.c
M src/libvlr/vlr.c
M src/libvlr/vlr_access_req_fsm.c
M src/libvlr/vlr_access_req_fsm.h
M src/libvlr/vlr_auth_fsm.c
M src/libvlr/vlr_lu_fsm.c
M src/libvlr/vlr_lu_fsm.h
M src/libvlr/vlr_sgs.c
M src/libvlr/vlr_sgs_fsm.c
M src/libvlr/vlr_sgs_fsm.h
11 files changed, 106 insertions(+), 43 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/10/38410/1

diff --git a/include/osmocom/vlr/vlr.h b/include/osmocom/vlr/vlr.h
index 6d5c71c..1a2ef9e 100644
--- a/include/osmocom/vlr/vlr.h
+++ b/include/osmocom/vlr/vlr.h
@@ -17,12 +17,6 @@
 #include <osmocom/gsupclient/gsup_client.h>
 #include <osmocom/vlr/vlr_sgs.h>

-#define LOGGSUPP(level, gsup, fmt, args...)                            \
-       LOGP(DVLR, level, "GSUP(%s) " fmt, (gsup)->imsi, ## args)
-
-#define LOGVSUBP(level, vsub, fmt, args...)                            \
-       LOGP(DVLR, level, "SUBSCR(%s) " fmt, vlr_subscr_name(vsub), ## args)
-
 struct log_target;
 struct osmo_mobile_identity;

@@ -498,3 +492,24 @@
 enum gsm48_reject_value vlr_gmm_cause_to_reject_cause_domain(enum 
gsm48_gmm_cause gmm_cause, bool is_cs);
 enum gsm48_reject_value vlr_reject_causes_cs(enum gsm48_reject_value 
reject_cause);
 enum gsm48_reject_value vlr_reject_causes_ps(enum gsm48_reject_value 
reject_cause);
+
+/* logging */
+enum osmo_vlr_cat {
+       OSMO_VLR_LOGC_VLR,
+       OSMO_VLR_LOGC_SGS,
+       _OSMO_VLR_LOGC_MAX,
+};
+
+void osmo_vlr_set_log_cat(enum osmo_vlr_cat logc, int logc_num);
+
+extern int g_vlr_log_cat[_OSMO_VLR_LOGC_MAX];
+
+#define LOGVLR(lvl, fmt, args...) LOGP(g_vlr_log_cat[OSMO_VLR_LOGC_VLR], lvl, 
fmt, ## args)
+#define LOGSGS(lvl, fmt, args...) LOGP(g_vlr_log_cat[OSMO_VLR_LOGC_SGS], lvl, 
fmt, ## args)
+
+#define LOGGSUPP(level, gsup, fmt, args...)                            \
+       LOGVLR(level, "GSUP(%s) " fmt, (gsup)->imsi, ## args)
+
+#define LOGVSUBP(level, vsub, fmt, args...)                            \
+       LOGVLR(level, "SUBSCR(%s) " fmt, vlr_subscr_name(vsub), ## args)
+
diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c
index ad0c19a..21f68cf 100644
--- a/src/libmsc/msc_net_init.c
+++ b/src/libmsc/msc_net_init.c
@@ -28,6 +28,7 @@

 #include <osmocom/msc/gsm_data.h>
 #include <osmocom/vlr/vlr.h>
+#include <osmocom/msc/debug.h>
 #include <osmocom/msc/gsup_client_mux.h>
 #include <osmocom/msc/gsm_04_11_gsup.h>
 #include <osmocom/msc/gsm_09_11.h>
@@ -107,6 +108,8 @@
 /* Allocate net->vlr so that the VTY may configure the VLR's data structures */
 int msc_vlr_alloc(struct gsm_network *net)
 {
+       osmo_vlr_set_log_cat(OSMO_VLR_LOGC_VLR, DVLR);
+       osmo_vlr_set_log_cat(OSMO_VLR_LOGC_SGS, DSGS);
        net->vlr = vlr_alloc(net, &msc_vlr_ops);
        if (!net->vlr)
                return -ENOMEM;
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index 81429bb..3aa5a5e 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -454,7 +454,7 @@
 {
        llist_del(&vsub->list);
        vlr_stat_item_dec(vsub->vlr, VLR_STAT_SUBSCRIBER_COUNT);
-       DEBUGP(DVLR, "freeing VLR subscr %s (max total use count was %d)\n", 
vlr_subscr_name(vsub),
+       LOGVLR(LOGL_DEBUG, "freeing VLR subscr %s (max total use count was 
%d)\n", vlr_subscr_name(vsub),
               vsub->max_total_use_count);

        /* Make sure SGs timer Ts5 is removed */
@@ -478,7 +478,7 @@
        for (tried = 0; tried < 100; tried++) {
                rc = osmo_get_rand_id((uint8_t *) &tmsi, sizeof(tmsi));
                if (rc < 0) {
-                       LOGP(DVLR, LOGL_ERROR, "osmo_get_rand_id() failed: 
%s\n", strerror(-rc));
+                       LOGVLR(LOGL_ERROR, "osmo_get_rand_id() failed: %s\n", 
strerror(-rc));
                        return rc;
                }

@@ -486,7 +486,7 @@
                        int16_t nri_v;
                        osmo_tmsi_nri_v_limit_by_ranges(&tmsi, 
vlr->cfg.nri_ranges, vlr->cfg.nri_bitlen);
                        osmo_tmsi_nri_v_get(&nri_v, tmsi, vlr->cfg.nri_bitlen);
-                       LOGP(DVLR, LOGL_DEBUG, "New NRI from range [%s] = 0x%x 
--> TMSI 0x%08x\n",
+                       LOGVLR(LOGL_DEBUG, "New NRI from range [%s] = 0x%x --> 
TMSI 0x%08x\n",
                             osmo_nri_ranges_to_str_c(OTC_SELECT, 
vlr->cfg.nri_ranges), nri_v, tmsi);
                }

@@ -515,7 +515,7 @@
                return 0;
        }

-       LOGP(DVLR, LOGL_ERROR, "subscr %s: unable to generate valid TMSI"
+       LOGVLR(LOGL_ERROR, "subscr %s: unable to generate valid TMSI"
             " after %d tries\n", vlr_subscr_name(vsub), tried);
        return -1;
 }
@@ -544,7 +544,7 @@
                return NULL;
        vlr_subscr_get_src(vsub, use, file, line);
        vlr_subscr_set_imsi(vsub, imsi);
-       LOGP(DVLR, LOGL_INFO, "New subscr, IMSI: %s\n", vsub->imsi);
+       LOGVLR(LOGL_INFO, "New subscr, IMSI: %s\n", vsub->imsi);
        if (created)
                *created = true;
        return vsub;
@@ -574,7 +574,7 @@
                return NULL;
        vlr_subscr_get_src(vsub, use, file, line);
        vsub->tmsi = tmsi;
-       LOGP(DVLR, LOGL_INFO, "New subscr, TMSI: 0x%08x\n", vsub->tmsi);
+       LOGVLR(LOGL_INFO, "New subscr, TMSI: 0x%08x\n", vsub->tmsi);
        if (created)
                *created = true;
        return vsub;
@@ -585,7 +585,7 @@
        struct vlr_instance *vlr = exists->vlr;
        int i;
        int j;
-       LOGP(DVLR, LOGL_NOTICE,
+       LOGVLR(LOGL_NOTICE,
             "There is an existing subscriber for IMSI %s used by %s, replacing 
with new VLR subscr: %s used by %s\n",
             exists->imsi, osmo_use_count_to_str_c(OTC_SELECT, 
&exists->use_count),
             vlr_subscr_name(vsub),
@@ -638,13 +638,13 @@
 
        /* Set the IMSI on the new subscriber, here. */
        if (OSMO_STRLCPY_ARRAY(vsub->imsi, imsi) >= sizeof(vsub->imsi)) {
-               LOGP(DVLR, LOGL_NOTICE, "IMSI was truncated: full IMSI=%s, 
truncated IMSI=%s\n",
+               LOGVLR(LOGL_NOTICE, "IMSI was truncated: full IMSI=%s, 
truncated IMSI=%s\n",
                       imsi, vsub->imsi);
                /* XXX Set truncated IMSI anyway, we currently cannot return an 
error from here. */
        }

        vsub->id = atoll(vsub->imsi);
-       DEBUGP(DVLR, "set IMSI on subscriber; IMSI=%s id=%llu\n",
+       LOGVLR(LOGL_DEBUG, "set IMSI on subscriber; IMSI=%s id=%llu\n",
               vsub->imsi, vsub->id);
 }

@@ -653,7 +653,7 @@
        if (!vsub)
                return;
        OSMO_STRLCPY_ARRAY(vsub->imei, imei);
-       DEBUGP(DVLR, "set IMEI on subscriber; IMSI=%s IMEI=%s\n",
+       LOGVLR(LOGL_DEBUG, "set IMEI on subscriber; IMSI=%s IMEI=%s\n",
               vsub->imsi, vsub->imei);
 }

@@ -662,7 +662,7 @@
        if (!vsub)
                return;
        OSMO_STRLCPY_ARRAY(vsub->imeisv, imeisv);
-       DEBUGP(DVLR, "set IMEISV on subscriber; IMSI=%s IMEISV=%s\n",
+       LOGVLR(LOGL_DEBUG, "set IMEISV on subscriber; IMSI=%s IMEISV=%s\n",
               vsub->imsi, vsub->imeisv);

        /* Copy IMEISV to IMEI (additional SV digits get cut off) */
@@ -675,7 +675,7 @@
        if (!vsub)
                return;
        OSMO_STRLCPY_ARRAY(vsub->msisdn, msisdn);
-       DEBUGP(DVLR, "set MSISDN on subscriber; IMSI=%s MSISDN=%s\n",
+       LOGVLR(LOGL_DEBUG, "set MSISDN on subscriber; IMSI=%s MSISDN=%s\n",
               vsub->imsi, vsub->msisdn);
 }

@@ -690,7 +690,7 @@
        } else {
                vsub->sgs.last_eutran_plmn_present = false;
        }
-       DEBUGP(DVLR, "set Last E-UTRAN PLMN ID on subscriber: %s\n",
+       LOGVLR(LOGL_DEBUG, "set Last E-UTRAN PLMN ID on subscriber: %s\n",
               vsub->sgs.last_eutran_plmn_present ?
                 osmo_plmn_name(&vsub->sgs.last_eutran_plmn) :
                 "(none)");
@@ -723,7 +723,7 @@
 int vlr_subscr_changed(struct vlr_subscr *vsub)
 {
        /* FIXME */
-       LOGP(DVLR, LOGL_ERROR, "Not implemented: %s\n", __func__);
+       LOGVLR(LOGL_ERROR, "Not implemented: %s\n", __func__);
        return 0;
 }

@@ -735,7 +735,7 @@
        if (osmo_clock_gettime(CLOCK_MONOTONIC, &now) == 0) {
                vsub->expire_lu = now.tv_sec + vlr_timer(vsub->vlr, 3212);
        } else {
-               LOGP(DVLR, LOGL_ERROR,
+               LOGVLR(LOGL_ERROR,
                     "%s: Could not enable Location Update expiry: unable to 
read current time\n", vlr_subscr_name(vsub));
                /* Disable LU expiry for this subscriber. This subscriber will 
only be freed after an explicit IMSI detach. */
                vsub->expire_lu = VLR_SUBSCRIBER_NO_EXPIRATION;
@@ -757,7 +757,7 @@
                goto done;

        if (osmo_clock_gettime(CLOCK_MONOTONIC, &now) != 0) {
-               LOGP(DVLR, LOGL_ERROR, "Skipping Location Update expiry: Could 
not read current time\n");
+               LOGVLR(LOGL_ERROR, "Skipping Location Update expiry: Could not 
read current time\n");
                goto done;
        }

@@ -765,7 +765,7 @@
                if (vsub->expire_lu == VLR_SUBSCRIBER_NO_EXPIRATION || 
vsub->expire_lu > now.tv_sec)
                        continue;

-               LOGP(DVLR, LOGL_DEBUG, "%s: Location Update expired\n", 
vlr_subscr_name(vsub));
+               LOGVLR(LOGL_DEBUG, "%s: Location Update expired\n", 
vlr_subscr_name(vsub));
                vlr_rate_ctr_inc(vlr, VLR_CTR_DETACH_BY_T3212);
                vlr_subscr_detach(vsub);
        }
@@ -843,20 +843,20 @@
                                    const struct osmo_gsup_message *gsup_msg)
 {
        if (OSMO_GSUP_IS_MSGT_REQUEST(gsup_msg->message_type)) {
-               LOGP(DVLR, LOGL_NOTICE,
+               LOGVLR(LOGL_NOTICE,
                     "Unknown IMSI %s, discarding GSUP request "
                     "of type 0x%02x\n",
                     gsup_msg->imsi, gsup_msg->message_type);
                gsup_client_mux_tx_error_reply(vlr->gcm, gsup_msg, 
GMM_CAUSE_IMSI_UNKNOWN);
        } else if (OSMO_GSUP_IS_MSGT_ERROR(gsup_msg->message_type)) {
-               LOGP(DVLR, LOGL_NOTICE,
+               LOGVLR(LOGL_NOTICE,
                     "Unknown IMSI %s, discarding GSUP error "
                     "of type 0x%02x, cause '%s' (%d)\n",
                     gsup_msg->imsi, gsup_msg->message_type,
                     get_value_string(gsm48_gmm_cause_names, gsup_msg->cause),
                     gsup_msg->cause);
        } else {
-               LOGP(DVLR, LOGL_NOTICE,
+               LOGVLR(LOGL_NOTICE,
                     "Unknown IMSI %s, discarding GSUP response "
                     "of type 0x%02x\n",
                     gsup_msg->imsi, gsup_msg->message_type);
@@ -1028,13 +1028,13 @@
                gsm48_decode_bcd_number2(vsub->msisdn, sizeof(vsub->msisdn),
                                         gsup_msg->msisdn_enc,
                                         gsup_msg->msisdn_enc_len, 0);
-               LOGP(DVLR, LOGL_DEBUG, "IMSI:%s has MSISDN:%s\n",
+               LOGVLR(LOGL_DEBUG, "IMSI:%s has MSISDN:%s\n",
                     vsub->imsi, vsub->msisdn);
        }

        if (gsup_msg->hlr_enc) {
                if (gsup_msg->hlr_enc_len > sizeof(vsub->hlr.buf)) {
-                       LOGP(DVLR, LOGL_ERROR, "HLR-Number too long (%zu)\n",
+                       LOGVLR(LOGL_ERROR, "HLR-Number too long (%zu)\n",
                                gsup_msg->hlr_enc_len);
                        vsub->hlr.len = 0;
                } else {
@@ -1047,7 +1047,7 @@
        if (gsup_msg->pdp_info_compl) {
                rc = vlr_subscr_pdp_data_clear(vsub);
                if (rc > 0)
-                       LOGP(DVLR, LOGL_INFO, "Cleared existing PDP info\n");
+                       LOGVLR(LOGL_INFO, "Cleared existing PDP info\n");
        }

        for (idx = 0; idx < gsup_msg->num_pdp_infos; idx++) {
@@ -1689,3 +1689,25 @@
        } else
                target->filter_map &= ~(1 << LOG_FLT_VLR_SUBSCR);
 }
+
+int g_vlr_log_cat[_OSMO_VLR_LOGC_MAX];
+
+void osmo_vlr_set_log_cat(enum osmo_vlr_cat logc, int logc_num)
+{
+       if (logc <= OSMO_VLR_LOGC_VLR || logc >= _OSMO_VLR_LOGC_MAX)
+               return;
+
+       g_vlr_log_cat[logc] = logc_num;
+
+       switch (logc) {
+       case OSMO_VLR_LOGC_VLR:
+               vlr_auth_fsm.log_subsys = logc_num;
+               vlr_lu_fsm_set_loglevel(logc_num);
+               break;
+       case OSMO_VLR_LOGC_SGS:
+               vlr_sgs_fsm_set_loglevel(logc_num);
+               break;
+       default:
+               break;
+       }
+}
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index c2e185b..3b46ddb 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -650,7 +650,7 @@
        .num_states = ARRAY_SIZE(proc_arq_vlr_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = proc_arq_vlr_event_names,
        .cleanup = proc_arq_vlr_cleanup,
 };
@@ -809,3 +809,8 @@
        //OSMO_ASSERT(osmo_fsm_register(&upd_loc_child_vlr_fsm) == 0);
        OSMO_ASSERT(osmo_fsm_register(&proc_arq_vlr_fsm) == 0);
 }
+
+void vlr_parq_fsm_set_loglevel(int log_level)
+{
+       proc_arq_vlr_fsm.log_subsys = log_level;
+}
diff --git a/src/libvlr/vlr_access_req_fsm.h b/src/libvlr/vlr_access_req_fsm.h
index 8386da6..1c4db24 100644
--- a/src/libvlr/vlr_access_req_fsm.h
+++ b/src/libvlr/vlr_access_req_fsm.h
@@ -15,3 +15,5 @@
        PR_ARQ_S_WAIT_CECK_CONF,
        PR_ARQ_S_DONE,
 };
+
+void vlr_parq_fsm_set_loglevel(int log_level);
diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c
index 3a74ec1..3b398dd 100644
--- a/src/libvlr/vlr_auth_fsm.c
+++ b/src/libvlr/vlr_auth_fsm.c
@@ -610,7 +610,7 @@
        .num_states = ARRAY_SIZE(auth_fsm_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = fsm_auth_event_names,
        .cleanup = auth_fsm_cleanup,
 };
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index b26eed7..1279801 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -150,7 +150,7 @@
        .num_states = ARRAY_SIZE(upd_hlr_vlr_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = upd_hlr_vlr_event_names,
 };

@@ -262,7 +262,7 @@
        .num_states = ARRAY_SIZE(sub_pres_vlr_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = sub_pres_vlr_event_names,
 };

@@ -601,7 +601,7 @@
        .num_states = ARRAY_SIZE(lu_compl_vlr_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = lu_compl_vlr_event_names,
 };

@@ -1492,7 +1492,7 @@
        .num_states = ARRAY_SIZE(vlr_lu_fsm_states),
        .allstate_event_mask = 0,
        .allstate_action = NULL,
-       .log_subsys = DVLR,
+       .log_subsys = DLGLOBAL,
        .event_names = fsm_lu_event_names,
        .cleanup = fsm_lu_cleanup,
 };
@@ -1595,3 +1595,11 @@
        OSMO_ASSERT(osmo_fsm_register(&sub_pres_vlr_fsm) == 0);
        OSMO_ASSERT(osmo_fsm_register(&lu_compl_vlr_fsm) == 0);
 }
+
+void vlr_lu_fsm_set_loglevel(int log_level)
+{
+       vlr_lu_fsm.log_subsys = log_level;
+       upd_hlr_vlr_fsm.log_subsys = log_level;
+       sub_pres_vlr_fsm.log_subsys = log_level;
+       lu_compl_vlr_fsm.log_subsys = log_level;
+}
diff --git a/src/libvlr/vlr_lu_fsm.h b/src/libvlr/vlr_lu_fsm.h
index b5c4a5e..29cc24a 100644
--- a/src/libvlr/vlr_lu_fsm.h
+++ b/src/libvlr/vlr_lu_fsm.h
@@ -17,3 +17,4 @@
 };

 void vlr_lu_fsm_init(void);
+void vlr_lu_fsm_set_loglevel(int log_level);
diff --git a/src/libvlr/vlr_sgs.c b/src/libvlr/vlr_sgs.c
index a0147c0..ace2c5d 100644
--- a/src/libvlr/vlr_sgs.c
+++ b/src/libvlr/vlr_sgs.c
@@ -51,7 +51,7 @@

        OSMO_ASSERT(vlr);

-       LOGP(DVLR, LOGL_INFO, "dropping all SGs associations.\n");
+       LOGSGS(LOGL_INFO, "dropping all SGs associations.\n");

        llist_for_each_entry(vsub, &vlr->subscribers, list) {
                osmo_fsm_inst_dispatch(vsub->sgs_fsm, 
SGS_UE_E_RX_RESET_FROM_MME, NULL);
@@ -85,7 +85,7 @@

        vsub = vlr_subscr_find_or_create_by_imsi(vlr, imsi, VSUB_USE_SGS_LU, 
NULL);
        if (!vsub) {
-               LOGP(DSGS, LOGL_ERROR, "VLR subscriber allocation failed\n");
+               LOGSGS(LOGL_ERROR, "VLR subscriber allocation failed\n");
                return -EINVAL;
        }

@@ -168,7 +168,7 @@
                evt = SGS_UE_E_RX_DETACH_IND_FROM_MME;
                break;
        default:
-               LOGP(DSGS, LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, 
detaching anyway...\n",
+               LOGSGS(LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, 
detaching anyway...\n",
                     vlr_subscr_msisdn_or_name(vsub));
                evt = SGS_UE_E_RX_DETACH_IND_FROM_MME;
                break;
@@ -206,7 +206,7 @@
                evt = SGS_UE_E_RX_DETACH_IND_FROM_MME;
                break;
        default:
-               LOGP(DSGS, LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, 
detaching anyway...\n",
+               LOGSGS(LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, 
detaching anyway...\n",
                     vlr_subscr_msisdn_or_name(vsub));
                evt = SGS_UE_E_RX_DETACH_IND_FROM_MME;
                break;
@@ -253,7 +253,7 @@
        /* On the reception of a paging rej the VLR is supposed to stop Ts5,
           also  3GPP TS 29.118, chapter 5.1.2.4 */
        osmo_timer_del(&vsub->sgs.Ts5);
-       LOGP(DSGS, LOGL_DEBUG, "(sub %s) Paging via SGs interface rejected by 
MME, %s stopped, cause: %s!\n",
+       LOGSGS(LOGL_DEBUG, "(sub %s) Paging via SGs interface rejected by MME, 
%s stopped, cause: %s!\n",
             vlr_subscr_msisdn_or_name(vsub), 
vlr_sgs_state_timer_name(SGS_STATE_TS5), sgsap_sgs_cause_name(cause));

        osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_PAGING_FAILURE, 
&cause);
@@ -295,7 +295,7 @@
        /* On the reception of an UE unreachable the VLR is supposed to stop
         * Ts5, also 3GPP TS 29.118, chapter 5.1.2.5 */
        osmo_timer_del(&vsub->sgs.Ts5);
-       LOGP(DSGS, LOGL_DEBUG,
+       LOGSGS(LOGL_DEBUG,
             "(sub %s) Paging via SGs interface not possible, UE unreachable, 
%s stopped, cause: %s\n",
             vlr_subscr_msisdn_or_name(vsub), 
vlr_sgs_state_timer_name(SGS_STATE_TS5), sgsap_sgs_cause_name(cause));

@@ -313,7 +313,7 @@
         * failed. Other actions may check the status of Ts5 to see if a paging
         * is still ongoing or not. */

-       LOGP(DSGS, LOGL_ERROR, "(sub %s) Paging via SGs interface timed out (%s 
expired)!\n",
+       LOGSGS(LOGL_ERROR, "(sub %s) Paging via SGs interface timed out (%s 
expired)!\n",
             vlr_subscr_msisdn_or_name(vsub), 
vlr_sgs_state_timer_name(SGS_STATE_TS5));

        /* Balance ref count increment from vlr_sgs_pag() */
diff --git a/src/libvlr/vlr_sgs_fsm.c b/src/libvlr/vlr_sgs_fsm.c
index c7a9fdd..4cea056 100644
--- a/src/libvlr/vlr_sgs_fsm.c
+++ b/src/libvlr/vlr_sgs_fsm.c
@@ -355,7 +355,7 @@
                S(SGS_UE_E_RX_LU_FROM_A_IU_GS),
        .allstate_action = sgs_ue_fsm_allstate,
        .timer_cb = sgs_ue_fsm_timer_cb,
-       .log_subsys = DSGS,
+       .log_subsys = DLGLOBAL,
        .event_names = sgs_ue_fsm_event_names,
 };

@@ -366,6 +366,12 @@
                OSMO_ASSERT(osmo_fsm_register(&sgs_ue_fsm) == 0);
 }

+/*! Set the log level of the fsm */
+void vlr_sgs_fsm_set_loglevel(int log_level)
+{
+       sgs_ue_fsm.log_subsys = log_level;
+}
+
 /*! Crate SGs FSM in struct vlr_subscr.
  *  \param[in] vsub VLR subscriber for which the SGs FSM should be created. */
 void vlr_sgs_fsm_create(struct vlr_subscr *vsub)
diff --git a/src/libvlr/vlr_sgs_fsm.h b/src/libvlr/vlr_sgs_fsm.h
index 6a09433..3dd84c3 100644
--- a/src/libvlr/vlr_sgs_fsm.h
+++ b/src/libvlr/vlr_sgs_fsm.h
@@ -39,6 +39,7 @@
 };

 void vlr_sgs_fsm_init(void);
+void vlr_sgs_fsm_set_loglevel(int log_level);
 void vlr_sgs_fsm_create(struct vlr_subscr *vsub);
 void vlr_sgs_fsm_remove(struct vlr_subscr *vsub);
 void vlr_sgs_fsm_update_id(struct vlr_subscr *vsub);

--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/38410?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I6d87b38d6d7d704c7c7b2c90ad12187e4b953b8b
Gerrit-Change-Number: 38410
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <[email protected]>

Reply via email to