vty: Add option to enable osmux towards BSCs

Change-Id: I6de1be0322ddbdc115074ebb6be2598ebf6c95db
diff --git a/include/osmocom/msc/Makefile.am b/include/osmocom/msc/Makefile.am
index 9ca4c38..0d7d45c 100644
--- a/include/osmocom/msc/Makefile.am
+++ b/include/osmocom/msc/Makefile.am
@@ -28,6 +28,7 @@
 	msc_t_remote.h \
 	msub.h \
 	neighbor_ident.h \
+	osmux.h \
 	paging.h \
 	ran_conn.h \
 	ran_infra.h \
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 42bb69a..f6e3ed9 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -19,6 +19,7 @@
 #include <osmocom/msc/neighbor_ident.h>
 
 #include "gsm_data_shared.h"
+#include "osmux.h"
 
 /** annotations for msgb ownership */
 #define __uses
@@ -231,6 +232,9 @@
 		uint64_t range_end;
 		uint64_t next;
 	} handover_number;
+
+	/* Whether we want to use Osmux against BSCs. Controlled via VTY */
+	enum osmux_usage use_osmux;
 };
 
 struct osmo_esme;
diff --git a/include/osmocom/msc/osmux.h b/include/osmocom/msc/osmux.h
new file mode 100644
index 0000000..7af32fc
--- /dev/null
+++ b/include/osmocom/msc/osmux.h
@@ -0,0 +1,11 @@
+#pragma once
+
+enum osmux_usage {
+	/* MSC won't use Osmux in call legs towards its RAN */
+	OSMUX_USAGE_OFF = 0,
+	/* MSC will use Osmux in call legs towards RAN as long as RAN announced support for it */
+	OSMUX_USAGE_ON = 1,
+	/* MSC will always use Osmux in call legs towards its RAN, and will
+	   reject calls for RANs which didn't announce support for it */
+	OSMUX_USAGE_ONLY = 2,
+};