aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-06-07 20:56:18 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-09-11 18:01:52 +0200
commit210565ed8c0a657289c43526105a4a0b70e38235 (patch)
treee26957721a34235a82c3d6d694d359ef76420361
parentc11889f3dd305055dc7c6f4dd6c68d328eb6f2bf (diff)
bsc: Introduce a local MSC type and forbid it from being selected
-rw-r--r--openbsc/include/openbsc/osmo_msc_data.h7
-rw-r--r--openbsc/src/osmo-bsc/osmo_bsc_filter.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/osmo_msc_data.h b/openbsc/include/openbsc/osmo_msc_data.h
index 0f3f92724..9edf880cf 100644
--- a/openbsc/include/openbsc/osmo_msc_data.h
+++ b/openbsc/include/openbsc/osmo_msc_data.h
@@ -35,12 +35,19 @@ struct gsm_audio_support {
ver : 7;
};
+enum {
+ MSC_CON_TYPE_NORMAL,
+ MSC_CON_TYPE_LOCAL,
+};
+
struct osmo_msc_data {
struct llist_head entry;
/* Back pointer */
struct gsm_network *network;
+ int type;
+
/* Connection data */
char *bsc_token;
int ping_timeout;
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_filter.c b/openbsc/src/osmo-bsc/osmo_bsc_filter.c
index 200360ac9..3bc2dfd7f 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_filter.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_filter.c
@@ -142,6 +142,8 @@ round_robin:
llist_for_each_entry(msc, &bsc->mscs, entry) {
if (!msc->msc_con->is_authenticated)
continue;
+ if (msc->type != MSC_CON_TYPE_NORMAL)
+ continue;
/* force round robin by moving it to the end */
llist_move_tail(&msc->entry, &bsc->mscs);