lib: gtp: Add templates to send ErrorIndiciation

Change-Id: I7c20bc3b62a953efe57eb05a8ba89f9f0830a816
diff --git a/library/GTP_Templates.ttcn b/library/GTP_Templates.ttcn
index a9d2394..d0a87e3 100644
--- a/library/GTP_Templates.ttcn
+++ b/library/GTP_Templates.ttcn
@@ -667,6 +667,31 @@
 		gtpu := ts_GTP1U_PDU(echoResponse, seq, '00000000'O, valueof(ts_UEchoRespPDU(rest_ctr)))
 	}
 
+	template GSNAddress_gtpu ts_UGsnAddr(octetstring ip_addr) := {
+		type_gtpu := '85'O,
+		lengthf := lengthof(ip_addr),
+		gSNAddressValue := ip_addr
+	}
+
+	template TeidDataI_gtpu ts_UteidDataI(OCT4 teid) := {
+		type_gtpu := '10'O,
+		teidDataI := teid
+	}
+
+	template GTPU_IEs ts_UErrorIndication(OCT4 teid, octetstring gsn_addr) := {
+		errorIndication_IEs := {
+			teidDataI_gtpu := ts_UteidDataI(teid),
+			gSNAddress_gtpu := ts_UGsnAddr(gsn_addr),
+			private_extension_gtpu := omit
+		}
+	}
+
+	/* master template for sending a GTP-U Error indication */
+	template Gtp1uUnitdata ts_GTPU_ErrorIndication(GtpPeer peer, uint16_t seq, OCT4 teid, octetstring gsn_addr) := {
+		peer := peer,
+		gtpu := ts_GTP1U_PDU('1A'O, seq, '00000000'O, valueof(ts_UErrorIndication(teid, gsn_addr)))
+	}
+
 	/* master template for sending a GTP-U user plane data */
 	template Gtp1uUnitdata ts_GTP1U_GPDU(GtpPeer peer, template (omit) uint16_t seq, OCT4 teid, octetstring data) := {
 		peer := peer,