summaryrefslogtreecommitdiffstats
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-05-02 19:24:29 +0200
commit389fb6bb125bbb75b4349a6012b8d99c4c129a96 (patch)
treef8d62d8d44e1e7301ffb621f5be8d878de00acb3
parent5b77c752c78051a1ec193dc7f2aa6cf33f2be467 (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);