diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2014-08-07 16:42:51 +0200 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2014-08-13 10:42:26 +0200 |
commit | 12828c1b309d0b9cda66dd369ad5935719b1ed66 (patch) | |
tree | 02d362a41fce5db243d514e0b4c622459de5f795 | |
parent | c812882dbf9c55636c57f7b2e18314d11a94168b (diff) |
gbproxy: Move parse_ctx logging into separate function
Sponsored-by: On-Waves ehf
-rw-r--r-- | openbsc/src/gprs/gb_proxy.c | 80 |
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) { |