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);