nat: Add MGCP code and parsing to the nat code..

For the nat we will have NAT and MGCP in the same process
and this commit starts with that. We are linking in the MGCP
code and one can embed MGCP config snippets...
diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h
index 638791a..ab80cb4 100644
--- a/openbsc/include/openbsc/bsc_nat.h
+++ b/openbsc/include/openbsc/bsc_nat.h
@@ -22,6 +22,8 @@
 #ifndef BSC_NAT_H
 #define BSC_NAT_H
 
+#include "mgcp.h"
+
 #include <sys/types.h>
 #include <sccp/sccp_types.h>
 
@@ -33,6 +35,8 @@
 #define DIR_BSC 1
 #define DIR_MSC 2
 
+#define NAT_IPAC_PROTO_MGCP
+
 struct bsc_nat;
 
 /*
@@ -135,6 +139,9 @@
 	/* known BSC's */
 	struct llist_head bsc_configs;
 	int num_bsc;
+
+	/* MGCP config */
+	struct mgcp_config *mgcp_cfg;
 };
 
 /* create and init the structures */
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 1568230..e8ba428 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -703,10 +703,12 @@
 		return -4;
 	}
 
+	nat->mgcp_cfg = talloc_zero(nat, struct mgcp_config);
+
 	/* init vty and parse */
 	bsc_nat_vty_init(nat);
 	telnet_init(NULL, 4244);
-	if (vty_read_config_file(config_file) < 0) {
+	if (mgcp_parse_config(config_file, nat->mgcp_cfg) < 0) {
 		fprintf(stderr, "Failed to parse the config file: '%s'\n", config_file);
 		return -3;
 	}
diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c
index 6dae0d6..3a468e9 100644
--- a/openbsc/src/nat/bsc_nat_vty.c
+++ b/openbsc/src/nat/bsc_nat_vty.c
@@ -25,6 +25,7 @@
 
 #include <openbsc/bsc_nat.h>
 #include <openbsc/gsm_04_08.h>
+#include <openbsc/mgcp.h>
 
 #include <osmocore/talloc.h>
 
@@ -208,6 +209,8 @@
 	install_element(BSC_NODE, &cfg_bsc_token_cmd);
 	install_element(BSC_NODE, &cfg_bsc_lac_cmd);
 
+	mgcp_vty_init();
+
 	return 0;
 }