aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-08-07 16:42:51 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2014-08-13 10:42:26 +0200
commit12828c1b309d0b9cda66dd369ad5935719b1ed66 (patch)
tree02d362a41fce5db243d514e0b4c622459de5f795
parentc812882dbf9c55636c57f7b2e18314d11a94168b (diff)
gbproxy: Move parse_ctx logging into separate function
Sponsored-by: On-Waves ehf
-rw-r--r--openbsc/src/gprs/gb_proxy.c80
1 files changed, 50 insertions, 30 deletions
diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c
index d36ff5bc6..32e56c053 100644
--- a/openbsc/src/gprs/gb_proxy.c
+++ b/openbsc/src/gprs/gb_proxy.c
@@ -1250,47 +1250,35 @@ static int gbprox_patch_llc(struct msgb *msg, uint8_t *llc, size_t llc_len,
return have_patched;
}
-static void gbprox_update_state(struct gbproxy_peer *peer,
- struct gbproxy_parse_context *parse_ctx)
+static void gbprox_log_parse_context(struct gbproxy_parse_context *parse_ctx,
+ const char *default_msg_name)
{
- const char *msg_name = "BSSGP";
- struct gbproxy_tlli_info *tlli_info = NULL;
+ const char *msg_name = default_msg_name;
+ const char *sep = "";
- if (!peer->cfg->check_imsi)
+ if (!parse_ctx->tlli_enc &&
+ !parse_ctx->ptmsi_enc &&
+ !parse_ctx->new_ptmsi_enc &&
+ !parse_ctx->imsi)
return;
- if (parse_ctx->tlli_enc)
- tlli_info = gbprox_find_tlli(peer, parse_ctx->tlli);
-
if (parse_ctx->llc_msg_name)
msg_name = parse_ctx->llc_msg_name;
- if (parse_ctx->g48_hdr) {
- switch (parse_ctx->g48_hdr->msg_type) {
- case GSM48_MT_GMM_ATTACH_REQ:
- rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]);
- break;
-
- case GSM48_MT_GMM_ATTACH_REJ:
- rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]);
- break;
-
- default:
- break;
- }
- }
+ LOGP(DGPRS, LOGL_DEBUG, "%s: Got", msg_name);
if (parse_ctx->tlli_enc) {
- LOGP(DGPRS, LOGL_DEBUG, "%s: Got TLLI %08x\n",
- msg_name, parse_ctx->tlli);
+ LOGP(DGPRS, LOGL_DEBUG, "%s TLLI %08x", sep, parse_ctx->tlli);
+ sep = ",";
}
if (parse_ctx->ptmsi_enc) {
uint32_t ptmsi = GSM_RESERVED_TMSI;
int ok;
ok = parse_mi_tmsi(parse_ctx->ptmsi_enc, GSM48_TMSI_LEN, &ptmsi);
- LOGP(DGPRS, LOGL_DEBUG, "%s: Got PTMSI %08x%s\n",
- msg_name, ptmsi, ok ? "" : " (parse error)");
+ LOGP(DGPRS, LOGL_DEBUG, "%s PTMSI %08x%s",
+ sep, ptmsi, ok ? "" : " (parse error)");
+ sep = ",";
}
if (parse_ctx->new_ptmsi_enc) {
@@ -1298,8 +1286,9 @@ static void gbprox_update_state(struct gbproxy_peer *peer,
int ok;
ok = parse_mi_tmsi(parse_ctx->new_ptmsi_enc, GSM48_TMSI_LEN,
&new_ptmsi);
- LOGP(DGPRS, LOGL_DEBUG, "%s: Got new PTMSI %08x%s\n",
- msg_name, new_ptmsi, ok ? "" : " (parse error)");
+ LOGP(DGPRS, LOGL_DEBUG, "%s new PTMSI %08x%s",
+ sep, new_ptmsi, ok ? "" : " (parse error)");
+ sep = ",";
}
if (parse_ctx->imsi) {
@@ -1307,9 +1296,40 @@ static void gbprox_update_state(struct gbproxy_peer *peer,
mi_buf[0] = '\0';
gsm48_mi_to_string(mi_buf, sizeof(mi_buf),
parse_ctx->imsi, parse_ctx->imsi_len);
- LOGP(DGPRS, LOGL_DEBUG, "%s: Got IMSI %s\n",
- msg_name, mi_buf);
+ LOGP(DGPRS, LOGL_DEBUG, "%s IMSI %s",
+ sep, mi_buf);
+ sep = ",";
}
+ LOGP(DGPRS, LOGL_DEBUG, "\n");
+}
+
+static void gbprox_update_state(struct gbproxy_peer *peer,
+ struct gbproxy_parse_context *parse_ctx)
+{
+ struct gbproxy_tlli_info *tlli_info = NULL;
+
+ if (!peer->cfg->check_imsi)
+ return;
+
+ if (parse_ctx->tlli_enc)
+ tlli_info = gbprox_find_tlli(peer, parse_ctx->tlli);
+
+ if (parse_ctx->g48_hdr) {
+ switch (parse_ctx->g48_hdr->msg_type) {
+ case GSM48_MT_GMM_ATTACH_REQ:
+ rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]);
+ break;
+
+ case GSM48_MT_GMM_ATTACH_REJ:
+ rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ gbprox_log_parse_context(parse_ctx, "BSSGP");
if (parse_ctx->tlli_enc && parse_ctx->new_ptmsi_enc &&
parse_ctx->to_bss) {