path: root/openbsc/src/osmo-bsc/osmo_bsc_vty.c
diff options
authorNeels Hofmeyr <>2017-02-18 22:20:46 +0100
committerNeels Hofmeyr <>2017-03-08 01:01:43 +0100
commit6d804b1a7e375213cb4b3e437c2b9b8c68872164 (patch)
tree226c66c67e1d2181e545cb21f83234b90b051a99 /openbsc/src/osmo-bsc/osmo_bsc_vty.c
parentabf53d87b6648f2d42562c5699e9035afd92e608 (diff)
add struct bsc_subscr, separating libbsc from gsm_subscriber
In a future commit, gsm_subscriber will be replaced by vlr_subscr, and it will not make sense to use vlr_subscr in libbsc. Thus we need a dedicated BSC subscriber: struct bsc_subscr. Add rf_policy arg to bsc_grace_paging_request() because the bsc_subscr will no longer have a backpointer to gsm_network (used to be via subscr->group). Create a separate logging filter for the new BSC subscriber. The implementation of adjusting the filter context is added in libbsc to not introduce bsc_subscr_get/_put() dependencies to libcommon. During Paging Response, fetch a bsc_subscr from the mobile identity, like we do for the gsm_subscriber. It looks like a duplication now, but will make sense for the VLR as well as for future MSC split patches. Naming: it was requested to not name the new struct bsc_sub, because 'sub' is too ambiguous. At the same time it would be fine to have 'bsc_sub_' as function prefix. Instead of struct bsc_subscriber and bsc_sub_ prefix, I decided to match both up as struct bsc_subscr and bsc_subscr_ function prefix. It's fast to type, relatively short, unambiguous, and the naming is consistent. Add bsc_subscr unit test. Related: OS#1592, OS#1594 Change-Id: Ia61cc00e8bb186b976939a4fc8f7cf9ce6aa3d8e
Diffstat (limited to 'openbsc/src/osmo-bsc/osmo_bsc_vty.c')
1 files changed, 7 insertions, 8 deletions
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c
index d59c515..2336669 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c
@@ -22,7 +22,7 @@
#include <openbsc/osmo_bsc.h>
#include <openbsc/bsc_msc_data.h>
#include <openbsc/vty.h>
-#include <openbsc/gsm_subscriber.h>
+#include <openbsc/bsc_subscriber.h>
#include <openbsc/debug.h>
#include <openbsc/bsc_msg_filter.h>
@@ -861,20 +861,19 @@ DEFUN(logging_fltr_imsi,
"Filter log messages by IMSI\n" "IMSI to be used as filter\n")
- struct gsm_subscriber *subscr;
+ struct bsc_subscr *bsc_subscr;
struct log_target *tgt = osmo_log_vty2tgt(vty);
+ const char *imsi = argv[0];
- if (!tgt)
- return CMD_WARNING;
+ bsc_subscr = bsc_subscr_find_by_imsi(bsc_gsmnet->bsc_subscribers, imsi);
- subscr = subscr_get_or_create(bsc_gsmnet->subscr_group, argv[0]);
- if (!subscr) {
+ if (!bsc_subscr) {
vty_out(vty, "%%no subscriber with IMSI(%s)%s",
- argv[0], VTY_NEWLINE);
+ imsi, VTY_NEWLINE);
- log_set_imsi_filter(tgt, subscr);
+ log_set_filter_bsc_subscr(tgt, bsc_subscr);