USSD: Add new "DSS" logging category and use it appropriately

Change-Id: I0ac198a49ba70ea40fea18464325f1925797a6e8
This commit is contained in:
Harald Welte 2018-07-29 12:47:39 +02:00
parent 9b6bc9e479
commit 95b96d4245
5 changed files with 21 additions and 11 deletions

View File

@ -11,6 +11,7 @@ log stderr
logging level main notice logging level main notice
logging level db notice logging level db notice
logging level auc notice logging level auc notice
logging level ss info
logging level linp error logging level linp error
! !
line vty line vty

View File

@ -111,14 +111,14 @@ struct hlr_euse *ussd_euse_find_7bit_gsm(struct hlr *hlr, const char *ussd_code)
struct hlr_euse_route *rt; struct hlr_euse_route *rt;
llist_for_each_entry(rt, &euse->routes, list) { llist_for_each_entry(rt, &euse->routes, list) {
if (!strncmp(ussd_code, rt->prefix, strlen(rt->prefix))) { if (!strncmp(ussd_code, rt->prefix, strlen(rt->prefix))) {
LOGP(DMAIN, LOGL_DEBUG, "Found EUSE %s (prefix %s) for USSD Code '%s'\n", LOGP(DSS, LOGL_DEBUG, "Found EUSE %s (prefix %s) for USSD Code '%s'\n",
rt->euse->name, rt->prefix, ussd_code); rt->euse->name, rt->prefix, ussd_code);
return rt->euse; return rt->euse;
} }
} }
} }
LOGP(DMAIN, LOGL_DEBUG, "Could not find Route/EUSE for USSD Code '%s'\n", ussd_code); LOGP(DSS, LOGL_DEBUG, "Could not find Route/EUSE for USSD Code '%s'\n", ussd_code);
return NULL; return NULL;
} }
@ -127,7 +127,7 @@ struct hlr_euse *ussd_euse_find_7bit_gsm(struct hlr *hlr, const char *ussd_code)
***********************************************************************/ ***********************************************************************/
#define LOGPSS(ss, lvl, fmt, args...) \ #define LOGPSS(ss, lvl, fmt, args...) \
LOGP(DMAIN, lvl, "%s/0x%08x: " fmt, (ss)->imsi, (ss)->session_id, ## args) LOGP(DSS, lvl, "%s/0x%08x: " fmt, (ss)->imsi, (ss)->session_id, ## args)
struct ss_session { struct ss_session {
/* link us to hlr->ss_sessions */ /* link us to hlr->ss_sessions */
@ -361,13 +361,13 @@ int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *
struct ss_session *ss; struct ss_session *ss;
struct ss_request req = {0}; struct ss_request req = {0};
LOGP(DMAIN, LOGL_INFO, "%s/0x%08x: Process SS (%s)\n", gsup->imsi, gsup->session_id, LOGP(DSS, LOGL_DEBUG, "%s/0x%08x: Process SS (%s)\n", gsup->imsi, gsup->session_id,
osmo_gsup_session_state_name(gsup->session_state)); osmo_gsup_session_state_name(gsup->session_state));
/* decode and find out what kind of SS message it is */ /* decode and find out what kind of SS message it is */
if (gsup->ss_info && gsup->ss_info_len) { if (gsup->ss_info && gsup->ss_info_len) {
if (gsm0480_parse_facility_ie(gsup->ss_info, gsup->ss_info_len, &req)) { if (gsm0480_parse_facility_ie(gsup->ss_info, gsup->ss_info_len, &req)) {
LOGP(DMAIN, LOGL_ERROR, "%s/0x%082x: Unable to parse SS request: %s\n", LOGP(DSS, LOGL_ERROR, "%s/0x%082x: Unable to parse SS request: %s\n",
gsup->imsi, gsup->session_id, gsup->imsi, gsup->session_id,
osmo_hexdump(gsup->ss_info, gsup->ss_info_len)); osmo_hexdump(gsup->ss_info, gsup->ss_info_len));
/* FIXME: Send a Reject component? */ /* FIXME: Send a Reject component? */
@ -379,13 +379,13 @@ int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *
case OSMO_GSUP_SESSION_STATE_BEGIN: case OSMO_GSUP_SESSION_STATE_BEGIN:
/* Check for overlapping Session ID usage */ /* Check for overlapping Session ID usage */
if (ss_session_find(hlr, gsup->imsi, gsup->session_id)) { if (ss_session_find(hlr, gsup->imsi, gsup->session_id)) {
LOGP(DMAIN, LOGL_ERROR, "%s/0x%08x: BEGIN with non-unique session ID!\n", LOGP(DSS, LOGL_ERROR, "%s/0x%08x: BEGIN with non-unique session ID!\n",
gsup->imsi, gsup->session_id); gsup->imsi, gsup->session_id);
goto out_err; goto out_err;
} }
ss = ss_session_alloc(hlr, gsup->imsi, gsup->session_id); ss = ss_session_alloc(hlr, gsup->imsi, gsup->session_id);
if (!ss) { if (!ss) {
LOGP(DMAIN, LOGL_ERROR, "%s/0x%08x: Unable to allocate SS session\n", LOGP(DSS, LOGL_ERROR, "%s/0x%08x: Unable to allocate SS session\n",
gsup->imsi, gsup->session_id); gsup->imsi, gsup->session_id);
goto out_err; goto out_err;
} }
@ -407,7 +407,7 @@ int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *
case OSMO_GSUP_SESSION_STATE_CONTINUE: case OSMO_GSUP_SESSION_STATE_CONTINUE:
ss = ss_session_find(hlr, gsup->imsi, gsup->session_id); ss = ss_session_find(hlr, gsup->imsi, gsup->session_id);
if (!ss) { if (!ss) {
LOGP(DMAIN, LOGL_ERROR, "%s/0x%08x: CONTINUE for unknown SS session\n", LOGP(DSS, LOGL_ERROR, "%s/0x%08x: CONTINUE for unknown SS session\n",
gsup->imsi, gsup->session_id); gsup->imsi, gsup->session_id);
goto out_err; goto out_err;
} }
@ -422,7 +422,7 @@ int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *
case OSMO_GSUP_SESSION_STATE_END: case OSMO_GSUP_SESSION_STATE_END:
ss = ss_session_find(hlr, gsup->imsi, gsup->session_id); ss = ss_session_find(hlr, gsup->imsi, gsup->session_id);
if (!ss) { if (!ss) {
LOGP(DMAIN, LOGL_ERROR, "%s/0x%08x: END for unknown SS session\n", LOGP(DSS, LOGL_ERROR, "%s/0x%08x: END for unknown SS session\n",
gsup->imsi, gsup->session_id); gsup->imsi, gsup->session_id);
goto out_err; goto out_err;
} }
@ -436,7 +436,7 @@ int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *
ss_session_free(ss); ss_session_free(ss);
break; break;
default: default:
LOGP(DMAIN, LOGL_ERROR, "%s/0x%08x: Unknown SS State %d\n", gsup->imsi, LOGP(DSS, LOGL_ERROR, "%s/0x%08x: Unknown SS State %d\n", gsup->imsi,
gsup->session_id, gsup->session_state); gsup->session_id, gsup->session_state);
goto out_err; goto out_err;
} }
@ -449,7 +449,7 @@ out_err:
int rx_proc_ss_error(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *gsup) int rx_proc_ss_error(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *gsup)
{ {
LOGP(DMAIN, LOGL_NOTICE, "%s/0x%08x: Process SS ERROR (%s)\n", gsup->imsi, gsup->session_id, LOGP(DSS, LOGL_NOTICE, "%s/0x%08x: Process SS ERROR (%s)\n", gsup->imsi, gsup->session_id,
osmo_gsup_session_state_name(gsup->session_state)); osmo_gsup_session_state_name(gsup->session_state));
return 0; return 0;
} }

View File

@ -19,6 +19,13 @@ const struct log_info_cat hlr_log_info_cat[] = {
.color = "\033[1;33m", .color = "\033[1;33m",
.enabled = 1, .loglevel = LOGL_NOTICE, .enabled = 1, .loglevel = LOGL_NOTICE,
}, },
[DSS] = {
.name = "DSS",
.description = "Supplementary Services",
.color = "\033[1;34m",
.enabled = 1, .loglevel = LOGL_NOTICE,
},
}; };
const struct log_info hlr_log_info = { const struct log_info hlr_log_info = {

View File

@ -7,6 +7,7 @@ enum {
DDB, DDB,
DGSUP, DGSUP,
DAUC, DAUC,
DSS,
}; };
extern const struct log_info hlr_log_info; extern const struct log_info hlr_log_info;

View File

@ -111,6 +111,7 @@ log stderr
logging level main notice logging level main notice
logging level db notice logging level db notice
logging level auc notice logging level auc notice
logging level ss info
... ...
! !
line vty line vty