diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2015-04-05 19:34:12 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2015-05-03 22:03:39 +0200 |
commit | 06a88fa0ae1f86cef0a23a1462bfef950418ea36 (patch) | |
tree | 493210dbce8130651d7c7a1f92508882e4e95c4f /openbsc | |
parent | 4e8176d0c9c9a98f32cb4541b4f986de0011d4b9 (diff) |
filter: Move from DNAT to DFILTER category
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/include/openbsc/debug.h | 1 | ||||
-rw-r--r-- | openbsc/src/libcommon/debug.c | 5 | ||||
-rw-r--r-- | openbsc/src/libfilter/bsc_msg_filter.c | 24 |
3 files changed, 18 insertions, 12 deletions
diff --git a/openbsc/include/openbsc/debug.h b/openbsc/include/openbsc/debug.h index bbb3ee618..19d8fc2de 100644 --- a/openbsc/include/openbsc/debug.h +++ b/openbsc/include/openbsc/debug.h @@ -32,6 +32,7 @@ enum { DNAT, DCTRL, DSMPP, + DFILTER, Debug_LastEntry, }; diff --git a/openbsc/src/libcommon/debug.c b/openbsc/src/libcommon/debug.c index ca7ff5da6..7fb3ecb67 100644 --- a/openbsc/src/libcommon/debug.c +++ b/openbsc/src/libcommon/debug.c @@ -160,6 +160,11 @@ static const struct log_info_cat default_categories[] = { .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, + }, }; enum log_filter { diff --git a/openbsc/src/libfilter/bsc_msg_filter.c b/openbsc/src/libfilter/bsc_msg_filter.c index 159f6ccec..c3d1bed9d 100644 --- a/openbsc/src/libfilter/bsc_msg_filter.c +++ b/openbsc/src/libfilter/bsc_msg_filter.c @@ -75,7 +75,7 @@ static int insert_barr_node(struct bsc_filter_barr_entry *entry, struct rb_root else if (rc > 0) new = &((*new)->rb_right); else { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "Duplicate entry for IMSI(%s)\n", entry->imsi); talloc_free(entry); return -1; @@ -108,7 +108,7 @@ int bsc_filter_barr_adapt(void *ctx, struct rb_root *root, struct bsc_filter_barr_entry *entry; entry = talloc_zero(ctx, struct bsc_filter_barr_entry); if (!entry) { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "Allocation of the barr entry failed.\n"); continue; } @@ -162,7 +162,7 @@ static int auth_imsi(struct bsc_filter_request *req, if (bsc_filter_barr_find(req->black_list, imsi, &cm, &lu)) { cause->cm_reject_cause = cm; cause->lu_reject_cause = lu; - LOGP(DNAT, LOGL_DEBUG, + LOGP(DFILTER, LOGL_DEBUG, "Blocking subscriber IMSI %s with CM: %d LU: %d\n", imsi, cm, lu); return -4; @@ -180,7 +180,7 @@ static int auth_imsi(struct bsc_filter_request *req, /* 3. BSC deny */ if (lst_check_deny(bsc_lst, imsi, &cm, &lu) == 0) { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "Filtering %s by imsi_deny on config nr: %d.\n", imsi, req->bsc_nr); rate_ctr_inc(&bsc_lst->stats->ctr[ACC_LIST_LOCAL_FILTER]); cause->cm_reject_cause = cm; @@ -193,7 +193,7 @@ static int auth_imsi(struct bsc_filter_request *req, /* 4. NAT deny */ if (nat_lst) { if (lst_check_deny(nat_lst, imsi, &cm, &lu) == 0) { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "Filtering %s global imsi_deny on bsc nr: %d.\n", imsi, req->bsc_nr); rate_ctr_inc(&nat_lst->stats->ctr[ACC_LIST_GLOBAL_FILTER]); cause->cm_reject_cause = cm; @@ -214,7 +214,7 @@ static int _cr_check_loc_upd(void *ctx, char mi_string[GSM48_MI_SIZE]; if (length < sizeof(*lu)) { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "LU does not fit. Length is %d \n", length); return -1; } @@ -249,7 +249,7 @@ static int _cr_check_cm_serv_req(void *ctx, /* unfortunately in Phase1 the classmark2 length is variable */ if (length < sizeof(*req)) { - LOGP(DNAT, LOGL_ERROR, + LOGP(DFILTER, LOGL_ERROR, "CM Serv Req does not fit. Length is %d\n", length); return -1; } @@ -260,7 +260,7 @@ static int _cr_check_cm_serv_req(void *ctx, rc = gsm48_extract_mi((uint8_t *) &req->classmark, length - classmark_offset, mi_string, &mi_type); if (rc < 0) { - LOGP(DNAT, LOGL_ERROR, "Failed to parse the classmark2/mi. error: %d\n", rc); + LOGP(DFILTER, LOGL_ERROR, "Failed to parse the classmark2/mi. error: %d\n", rc); return -1; } @@ -280,13 +280,13 @@ static int _cr_check_pag_resp(void *ctx, uint8_t mi_type; if (length < sizeof(*resp)) { - LOGP(DNAT, LOGL_ERROR, "PAG RESP does not fit. Length was %d.\n", length); + LOGP(DFILTER, LOGL_ERROR, "PAG RESP does not fit. Length was %d.\n", length); return -1; } resp = (struct gsm48_pag_resp *) data; if (gsm48_paging_extract_mi(resp, length, mi_string, &mi_type) < 0) { - LOGP(DNAT, LOGL_ERROR, "Failed to extract the MI.\n"); + LOGP(DFILTER, LOGL_ERROR, "Failed to extract the MI.\n"); return -1; } @@ -307,12 +307,12 @@ static int _dt_check_id_resp(struct bsc_filter_request *req, uint8_t mi_type; if (length < 2) { - LOGP(DNAT, LOGL_ERROR, "mi does not fit.\n"); + LOGP(DFILTER, LOGL_ERROR, "mi does not fit.\n"); return -1; } if (data[0] < length - 1) { - LOGP(DNAT, LOGL_ERROR, "mi length too big.\n"); + LOGP(DFILTER, LOGL_ERROR, "mi length too big.\n"); return -2; } |