NS_Emulation: remove dependency on PCUIF_Types

The dependency of PCUIF_Types creates also a dependency on

Replace the PCU_AddrType by an unix like address family defined
in the Osmocom_Types to reduce the dependency.

Change-Id: I0b4fda96accef401ffc009010f9f5621583fd6dd
diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn
index b8807da..0198da8 100644
--- a/library/NS_Emulation.ttcn
+++ b/library/NS_Emulation.ttcn
@@ -14,8 +14,8 @@
 	import from BSSGP_Types all;
 	import from Osmocom_Gb_Types all;
 	import from NS_Provider_IPL4 all;
+	import from Osmocom_Types all;
 	import from IPL4asp_Types all;
-	import from PCUIF_Types all;
 
 	type record NsUnitdataRequest {
 		BssgpBvci	bvci,
@@ -132,7 +132,7 @@
 	}
 
 	type record NSConfiguration {
-		PCUIF_AddrType remote_proto,
+		AddressFamily address_family,
 		PortNumber local_udp_port,
 		charstring local_ip,
 		PortNumber remote_udp_port,
diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn
index 1993ae1..ee3b04a 100644
--- a/library/Osmocom_Types.ttcn
+++ b/library/Osmocom_Types.ttcn
@@ -49,6 +49,13 @@
 	uint15_t	arfcn
 } with { variant "" };
 
+/* based on Linux */
+type enumerated AddressFamily {
+	AF_UNSPEC	('00'O),
+	AF_INET		('02'O),
+	AF_INET6	('0a'O)
+}
+
 /* return random integer 0 <= ret < max. According to ETSI ES 201 873 C.6.1, rnd() returns *less* than 1, so
 	* the returned int will always be ret < max, or ret <= (max-1). */
 function f_rnd_int(integer max) return integer {
diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn
index d73c32d..079455f 100644
--- a/library/PCUIF_Types.ttcn
+++ b/library/PCUIF_Types.ttcn
@@ -990,6 +990,17 @@
 	}
 }
 
+function f_PCUIF_AF2addr_type(AddressFamily address_family)
+return PCUIF_AddrType {
+	if (address_family == AF_INET) {
+		return PCUIF_ADDR_TYPE_IPV4;
+	} else if (address_family == AF_INET6) {
+		return PCUIF_ADDR_TYPE_IPV6;
+	} else {
+		return PCUIF_ADDR_TYPE_UNSPEC;
+	}
+}
+
 /* TODO: second (redundant) NSVC connection is not (yet) supported */
 function f_PCUIF_ver_INFO_RemoteAddr(PCUIF_AddrType addr_type,
 				     charstring addr)
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index f5176d4..142cdcd 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -93,7 +93,7 @@
 	local_port := { mp_nsconfig.remote_udp_port, 0 },
 	remote_port := { mp_nsconfig.local_udp_port, 0 },
 	remote_addr := f_PCUIF_ver_INFO_RemoteAddr(
-		mp_nsconfig.remote_proto, mp_nsconfig.local_ip)
+		f_PCUIF_AF2addr_type(mp_nsconfig.address_family), mp_nsconfig.local_ip)
 }
 
 type record lqual_range {
diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn
index f2e6967..afd4ee9 100644
--- a/pcu/SGSN_Components.ttcn
+++ b/pcu/SGSN_Components.ttcn
@@ -35,7 +35,7 @@
 	};
 
 	NSConfiguration mp_nsconfig := {
-		remote_proto := PCUIF_ADDR_TYPE_IPV4,
+		address_family := AF_INET,
 		local_udp_port := 23000,
 		local_ip := "127.0.0.1",
 		remote_udp_port := 21000,
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 870e66f..abbcb64 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -68,6 +68,7 @@
 
 	NSConfigurations mp_nsconfig := {
 		{
+			address_family := AF_INET,
 			local_udp_port := 21010,
 			local_ip := "127.0.0.1",
 			remote_udp_port := 23000,
@@ -78,6 +79,7 @@
 			handle_sns := false
 		},
 		{
+			address_family := AF_INET,
 			local_udp_port := 21011,
 			local_ip := "127.0.0.1",
 			remote_udp_port := 23000,
@@ -88,6 +90,7 @@
 			handle_sns := false
 		},
 		{
+			address_family := AF_INET,
 			local_udp_port := 21012,
 			local_ip := "127.0.0.1",
 			remote_udp_port := 23000,