add rudimentary NRI support for MSC pooling

This patch served for a manual testing counterpart for osmo-bsc to implement
MSC pooling.

This enables a basic MSC pooling setup, but for a production setup, osmo-msc
would still lack various features related to unloading subscribers to another
MSC as explained in 3GPP TS 23.236.

Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36
diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c
index e00c337..21af3ca 100644
--- a/tests/msc_vlr/msc_vlr_tests.c
+++ b/tests/msc_vlr/msc_vlr_tests.c
@@ -1049,30 +1049,31 @@
 	talloc_report_full(msgb_ctx, stderr);
 	/* Expecting these to stick around in msc_vlr_tests_ctx:
 	 * full talloc report on 'msgb' (total      0 bytes in   1 blocks)
-	 * talloc_total_blocks(tall_bsc_ctx) == 19
-	 * full talloc report on 'msc_vlr_tests_ctx' (total   6532 bytes in  19 blocks)
-	 * struct osmo_gsup_client        contains    256 bytes in   1 blocks (ref 0) 0x56143306aa10
-	 * struct gsm_network             contains   4775 bytes in  11 blocks (ref 0) 0x5614330697e0
-	 * 	struct mgcp_client             contains    688 bytes in   1 blocks (ref 0) 0x56143306ad80
-	 * 	struct sccp_ran_inst           contains    152 bytes in   1 blocks (ref 0) 0x56143306ac80
-	 * 	struct sccp_ran_inst           contains    152 bytes in   1 blocks (ref 0) 0x56143306ab80
-	 * 	struct gsup_client_mux         contains    152 bytes in   2 blocks (ref 0) 0x56143306a8a0
-	 * 	struct ipaccess_unit           contains     64 bytes in   1 blocks (ref 0) 0x56143306a960
-	 * 	struct vlr_instance            contains    248 bytes in   1 blocks (ref 0) 0x56143306a740
-	 * 	no_gsup_server                 contains     15 bytes in   1 blocks (ref 0) 0x56143306a6c0
-	 * 	stat_item.c:96                 contains    144 bytes in   2 blocks (ref 0) 0x56143306a550
-	 * 	stat_item.c:118                contains     96 bytes in   1 blocks (ref 0) 0x56143306a5f0
-	 * 	rate_ctr.c:234                 contains   2352 bytes in   1 blocks (ref 0) 0x561433069bb0
-	 * logging                        contains   1501 bytes in   5 blocks (ref 0) 0x561433068fe0
-	 * 	struct log_target              contains    244 bytes in   2 blocks (ref 0) 0x561433069610
-	 * 	struct log_category            contains     76 bytes in   1 blocks (ref 0) 0x561433069720
-	 * 	struct log_info                contains   1256 bytes in   2 blocks (ref 0) 0x561433069050
-	 * 	struct log_info_cat            contains   1216 bytes in   1 blocks (ref 0) 0x5614330690e0
-	 * msgb                           contains      0 bytes in   1 blocks (ref 0) 0x561433068f70
+	 * talloc_total_blocks(tall_bsc_ctx) == 20
+	 * full talloc report on 'msc_vlr_tests_ctx' (total   6556 bytes in  20 blocks)
+	 *      struct osmo_gsup_client        contains    264 bytes in   1 blocks (ref 0) 0x613000000260
+	 *      struct gsm_network             contains   4791 bytes in  12 blocks (ref 0) 0x6190000000e0
+	 *       struct mgcp_client             contains    688 bytes in   1 blocks (ref 0) 0x6180000000e0
+	 *       struct sccp_ran_inst           contains    152 bytes in   1 blocks (ref 0) 0x611000000320
+	 *       struct sccp_ran_inst           contains    152 bytes in   1 blocks (ref 0) 0x6110000001e0
+	 *       struct gsup_client_mux         contains    152 bytes in   2 blocks (ref 0) 0x6100000001a0
+	 *           struct ipaccess_unit           contains     64 bytes in   1 blocks (ref 0) 0x60e000023180
+	 *       struct vlr_instance            contains    264 bytes in   2 blocks (ref 0) 0x6130000000a0
+	 *           struct osmo_nri_ranges         contains     16 bytes in   1 blocks (ref 0) 0x60b000000360
+	 *       no_gsup_server                 contains     15 bytes in   1 blocks (ref 0) 0x60b0000002b0
+	 *       ../../../src/libosmocore/src/stat_item.c:96 contains    144 bytes in   2 blocks (ref 0) 0x60d000000170
+	 *           ../../../src/libosmocore/src/stat_item.c:118 contains     96 bytes in   1 blocks (ref 0) 0x6100000000a0
+	 *       ../../../src/libosmocore/src/rate_ctr.c:234 contains   2352 bytes in   1 blocks (ref 0) 0x61e0000000e0
+	 *      logging                        contains   1501 bytes in   5 blocks (ref 0) 0x60b000000200
+	 *       struct log_target              contains    244 bytes in   2 blocks (ref 0) 0x6120000000a0
+	 *           struct log_category            contains     76 bytes in   1 blocks (ref 0) 0x60f0000000a0
+	 *       struct log_info                contains   1256 bytes in   2 blocks (ref 0) 0x60d0000000a0
+	 *           struct log_info_cat            contains   1216 bytes in   1 blocks (ref 0) 0x61a0000000e0
+	 *      msgb                           contains      0 bytes in   1 blocks (ref 0) 0x608000000180
 	 */
 	fprintf(stderr, "talloc_total_blocks(tall_bsc_ctx) == %zu\n",
 		talloc_total_blocks(msc_vlr_tests_ctx));
-	if (talloc_total_blocks(msc_vlr_tests_ctx) != 19)
+	if (talloc_total_blocks(msc_vlr_tests_ctx) != 20)
 		talloc_report_full(msc_vlr_tests_ctx, stderr);
 	fprintf(stderr, "\n");
 }