diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index bd2de10..5ffca7a 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -229,6 +229,40 @@
 		return e;
 	}
 
+	template (value) IP6_Element ts_SNS_IPv6(charstring ip, integer udp_port,
+						 uint8_t sig_weight := 1, uint8_t data_weight := 1) := {
+		ipAddress := f_inet6_addr(ip),
+		uDP_Port := int2oct(udp_port, 2),
+		signallingWeight := int2oct(sig_weight, 1),
+		dataWeight := int2oct(data_weight, 1)
+	}
+	function tr_SNS_IPv6(template charstring ip, template integer udp_port,
+				template uint8_t sig_weight := ?, template uint8_t data_weight := ?)
+	return template IP6_Element {
+		var template IP6_Element e;
+		if (istemplatekind(ip, "?")) {
+			e.ipAddress := ?;
+		} else {
+			e.ipAddress := f_inet6_addr(valueof(ip));
+		}
+		if (istemplatekind(udp_port, "?")) {
+			e.uDP_Port := ?;
+		} else {
+			e.uDP_Port := int2oct(valueof(udp_port), 2);
+		}
+		if (istemplatekind(sig_weight, "?")) {
+			e.signallingWeight := ?;
+		} else {
+			e.signallingWeight := int2oct(valueof(sig_weight), 1);
+		}
+		if (istemplatekind(data_weight, "?")) {
+			e.dataWeight := ?;
+		} else {
+			e.dataWeight := int2oct(valueof(data_weight), 1);
+		}
+		return e;
+	}
+
 
 	template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := {
 		pDU_NS_Reset := {
@@ -537,7 +571,7 @@
 	}
 
 	template (value) PDU_NS ts_SNS_CONFIG(Nsei nsei, boolean end_flag,
-					template (omit) IP4_Elements v4,
+					template (omit) IP4_Elements v4 := omit,
 					template (omit) IP6_Elements v6 := omit) := {
 		pDU_SNS_Config := {
 			nsPduType := '0F'O,
@@ -548,7 +582,7 @@
 		}
 	}
 	template PDU_NS tr_SNS_CONFIG(template Nsei nsei, template boolean end_flag,
-					template IP4_Elements v4,
+					template IP4_Elements v4 := omit,
 					template IP6_Elements v6 := omit) := {
 		pDU_SNS_Config := {
 			nsPduType := '0F'O,
