bsc: Introduce a local MSC type and forbid it from being selected
diff --git a/openbsc/include/openbsc/osmo_msc_data.h b/openbsc/include/openbsc/osmo_msc_data.h
index 0f3f927..9edf880 100644
--- a/openbsc/include/openbsc/osmo_msc_data.h
+++ b/openbsc/include/openbsc/osmo_msc_data.h
@@ -35,12 +35,19 @@
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 200360a..3bc2dfd 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_filter.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_filter.c
@@ -142,6 +142,8 @@
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);