Introduce support for libosmo-mgcp-client MGW pooling

Large RAN installations may benefit from distributing the RTP voice
stream load over multiple media gateways.

libosmo-mgcp-client supports MGW pooling since version 1.8.0 (more than
one year ago). OsmoBSC has already been making use of it since then (see
osmo-bsc.git 8d22e6870637ed6d392a8a77aeaebc51b23a8a50); lets use this
feature in osmo-msc too.

This commit is also part of a series of patches cleaning up
libosmo-mgcp-client and slowly getting rid of the old non-mgw-pooled VTY
configuration, in order to keep only 1 way to configure
libosmo-mgcp-client through VTY.

Related: SYS#5091
Related: SYS#5987
Change-Id: I7670ba56fe989706579224a364595fdd4b4708ff
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 43944e7..1cf6820 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -16,6 +16,7 @@
 #include <osmocom/crypt/utran_cipher.h>
 
 #include <osmocom/mgcp_client/mgcp_client.h>
+#include <osmocom/mgcp_client/mgcp_client_pool.h>
 
 #include <osmocom/msc/msc_common.h>
 #include <osmocom/msc/neighbor_ident.h>
@@ -216,7 +217,9 @@
 	struct {
 		struct osmo_tdef *tdefs;
 		struct mgcp_client_conf conf;
-		struct mgcp_client *client;
+		/* MGW pool, also includes the single MGCP client as fallback if no
+		 * pool is configured. */
+		struct mgcp_client_pool *mgw_pool;
 	} mgw;
 
 	struct {