ggsn: Fix restriction type on several template definitions

Change-Id: I47a0c3fbf1b4078c2d8157b148330f7750cc3266
diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index 48cf725..118f1d5 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -819,7 +819,7 @@
 	const octetstring c_neigh_solicit:= '6000000000203afffe800000000000000000000000000002ff0200000000000000000001ff00000287009f9600000000fe80000000000000000000000000000201010288b51f2559'O;
 
 	/* template for sending an ICMPv4 echo request */
-	template PDU_ICMP ts_ICMPv4_ERQ(octetstring data := ''O) := {
+	template (value) PDU_ICMP ts_ICMPv4_ERQ(octetstring data := ''O) := {
 		echo := {
 			type_field := 8,
 			code := 0,
@@ -831,7 +831,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv4 echo request */
-	template PDU_ICMP tr_ICMPv4_ERQ := {
+	template (present) PDU_ICMP tr_ICMPv4_ERQ := {
 		echo := {
 			type_field := 8,
 			code := 0,
@@ -843,7 +843,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv4 echo reply */
-	template PDU_ICMP tr_ICMPv4_ERP(template octetstring data := *) := {
+	template (present) PDU_ICMP tr_ICMPv4_ERP(template octetstring data := *) := {
 		echo_reply := {
 			type_field := 0,
 			code := 0,
@@ -855,7 +855,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv6 Destination Unreachable  */
-	template PDU_ICMP tr_ICMPv4_DU := {
+	template (present) PDU_ICMP tr_ICMPv4_DU := {
 		destination_unreachable := {
 			type_field := 1,
 			code := ?,
@@ -866,7 +866,7 @@
 	}
 
 	/* template to construct IPv4_packet from input arguments, ready for use in f_IPv4_enc() */
-	template IPv4_packet ts_IP4(OCT4 srcaddr, OCT4 dstaddr, LIN1 proto, LIN2_BO_LAST tlen, octetstring payload) := {
+	template (value) IPv4_packet ts_IP4(OCT4 srcaddr, OCT4 dstaddr, LIN1 proto, LIN2_BO_LAST tlen, octetstring payload) := {
 		header := {
 			ver := 4,
 			hlen := 5,
@@ -888,7 +888,7 @@
 	}
 
 	/* template to generate a 'Prefix Information' ICMPv6 option */
-	template OptionField ts_ICMP6_OptPrefix(OCT16 prefix, INT1 prefix_len) := {
+	template (value) OptionField ts_ICMP6_OptPrefix(OCT16 prefix, INT1 prefix_len) := {
 		prefixInformation := {
 			typeField := 3,
 			lengthIndicator := 8,
@@ -904,7 +904,7 @@
 	}
 
 	/* template for sending an ICMPv6 echo request */
-	template PDU_ICMPv6 ts_ICMPv6_ERQ := {
+	template (value) PDU_ICMPv6 ts_ICMPv6_ERQ := {
 		echoRequest := {
 			typeField := 128,
 			code := 0,
@@ -916,7 +916,7 @@
 	}
 
 	/* template for sending an ICMPv6 router solicitation */
-	template PDU_ICMPv6 ts_ICMPv6_RS := {
+	template (value) PDU_ICMPv6 ts_ICMPv6_RS := {
 		routerSolicitation := {
 			typeField := 133,
 			code := 0,
@@ -928,12 +928,12 @@
 	}
 
 	/* template for sending an ICMPv6 router advertisement */
-	template PDU_ICMPv6 ts_ICMPv6_RA(OCT16 prefix, INT1 prefix_len) := {
+	template (value) PDU_ICMPv6 ts_ICMPv6_RA(OCT16 prefix, INT1 prefix_len) := {
 		routerAdvertisement := {
 			typeField := 134,
 			code := 0,
 			checksum := '0000'O,
-			curHopLimit := ?,
+			curHopLimit := 0,
 			reserved := '000000'B,
 			o_Bit := '0'B,
 			m_Bit := '0'B,
@@ -947,7 +947,7 @@
 	}
 
 	/* template for sending an ICMPv6 neighbor solicitation */
-	template PDU_ICMPv6 ts_ICMPv6_NS(OCT16 target_addr) := {
+	template (value) PDU_ICMPv6 ts_ICMPv6_NS(OCT16 target_addr) := {
 		neighborSolicitation := {
 			typeField := 135,
 			code := 0,
@@ -961,7 +961,7 @@
 
 	/* derive ICMPv6 link-local address from lower 64bit of link_id */
 	/* template for receiving/matching an ICMPv6 'Prefix Information' option */
-	template OptionField tr_ICMP6_OptPrefix(template OCT16 prefix, template INT1 prefix_len) := {
+	template (present) OptionField tr_ICMP6_OptPrefix(template (present) OCT16 prefix, template (present) INT1 prefix_len) := {
 		prefixInformation := {
 			typeField := 3,
 			lengthIndicator := 4,
@@ -977,7 +977,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv6 router advertisement */
-	template PDU_ICMPv6 tr_ICMPv6_RA(template OCT16 prefix, template INT1 prefix_len) := {
+	template (present) PDU_ICMPv6 tr_ICMPv6_RA(template (present) OCT16 prefix, template (present) INT1 prefix_len) := {
 		routerAdvertisement := {
 			typeField := 134,
 			code := 0,
@@ -996,7 +996,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv6 Destination Unreachable  */
-	template PDU_ICMPv6 tr_ICMPv6_DU := {
+	template (present) PDU_ICMPv6 tr_ICMPv6_DU := {
 		destinationUnreachable := {
 			typeField := 1,
 			code := ?,
@@ -1007,7 +1007,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv6 echo request */
-	template PDU_ICMPv6 tr_ICMPv6_ERQ := {
+	template (present) PDU_ICMPv6 tr_ICMPv6_ERQ := {
 		echoRequest := {
 			typeField := 128,
 			code := 0,
@@ -1019,7 +1019,7 @@
 	}
 
 	/* template for receiving/matching an ICMPv6 echo reply */
-	template PDU_ICMPv6 tr_ICMPv6_ERP(template octetstring data := *) := {
+	template (present) PDU_ICMPv6 tr_ICMPv6_ERP(template octetstring data := *) := {
 		echoReply := {
 			typeField := 129,
 			code := 0,
@@ -1031,7 +1031,7 @@
 	}
 
 	/* template to construct IPv6_packet from input arguments, ready for use in f_IPv6_enc() */
-	template IPv6_packet ts_IP6(OCT16 srcaddr, OCT16 dstaddr, LIN1 nexthead, octetstring payload, LIN1 hlim := 255) := {
+	template (value) IPv6_packet ts_IP6(OCT16 srcaddr, OCT16 dstaddr, LIN1 nexthead, octetstring payload, LIN1 hlim := 255) := {
 		header := {
 			ver := 6,
 			trclass := 0,