diff --git a/library/HNBLLIF_Types.ttcn b/library/HNBLLIF_Types.ttcn
index befd7bb..95f91fc 100644
--- a/library/HNBLLIF_Types.ttcn
+++ b/library/HNBLLIF_Types.ttcn
@@ -330,6 +330,106 @@
 				other,	OTHERWISE)"
 };
 
+/**********************
+ * GTP SAPI
+ **********************/
+type enumerated HNBLLIF_GTP_MsgType {
+	HNBLL_IF_GTP_MSG_CONN_ESTABLISH	('0000'O),
+	HNBLL_IF_GTP_MSG_CONN_RELEASE		('0001'O),
+	HNBLL_IF_GTP_MSG_CONN_DATA		('0002'O)
+} with { variant "FIELDLENGTH(16)" };
+
+/* CONN_ESTABLISH */
+type record HNBLLIF_GTP_conn_establish_req {
+	uint32_t context_id,
+	uint32_t remote_tei,
+	uint8_t reserved,
+	HNBLLIF_AddrType remote_gtpu_address_type,
+	HNBLLIF_Addr remote_gtpu_addr
+} with { variant "" };
+
+type record HNBLLIF_GTP_conn_establish_cnf {
+	uint32_t context_id,
+	uint32_t local_tei,
+	uint8_t error_code,
+	HNBLLIF_AddrType local_gtpu_address_type,
+	HNBLLIF_Addr local_gtpu_addr
+} with { variant "" };
+
+type union HNBLLIF_GTP_PrimOpUnion_conn_establish {
+	HNBLLIF_GTP_conn_establish_req req,
+	HNBLLIF_GTP_conn_establish_cnf cnf,
+	octetstring		other
+} with { variant "" };
+type record HNBLLIF_GTP_PrimOp_conn_establish  {
+	HNBLLIF_Operation	op,
+	HNBLLIF_GTP_PrimOpUnion_conn_establish	u
+} with { variant (u) "CROSSTAG( req, 	op = HNBLL_IF_OP_REQUEST;
+				cnf, 	op = HNBLL_IF_OP_CONFIRM;
+				other,	OTHERWISE)"
+};
+
+/* CONN_RELEASE */
+type record HNBLLIF_GTP_conn_release_req {
+	uint32_t context_id,
+	uint32_t remote_tei
+} with { variant "" };
+
+type union HNBLLIF_GTP_PrimOpUnion_conn_release {
+	HNBLLIF_GTP_conn_release_req req,
+	octetstring		other
+} with { variant "" };
+type record HNBLLIF_GTP_PrimOp_conn_release  {
+	HNBLLIF_Operation	op,
+	HNBLLIF_GTP_PrimOpUnion_conn_release	u
+} with { variant (u) "CROSSTAG( req, 	op = HNBLL_IF_OP_REQUEST;
+				other,	OTHERWISE)"
+};
+
+/* CONN_DATA */
+type record HNBLLIF_GTP_conn_data_req {
+	uint32_t context_id,
+	uint32_t remote_tei,
+	uint32_t data_len,
+	octetstring data /* RANAP message */
+} with { variant (data_len) "LENGTHTO (data)" };
+
+type record HNBLLIF_GTP_conn_data_ind {
+	uint32_t context_id,
+	uint32_t local_tei,
+	uint32_t data_len,
+	octetstring data /* RANAP message */
+} with { variant (data_len) "LENGTHTO (data)" };
+
+type union HNBLLIF_GTP_PrimOpUnion_conn_data {
+	HNBLLIF_GTP_conn_data_req req,
+	HNBLLIF_GTP_conn_data_ind ind,
+	octetstring		other
+} with { variant "" };
+type record HNBLLIF_GTP_PrimOp_conn_data  {
+	HNBLLIF_Operation	op,
+	HNBLLIF_GTP_PrimOpUnion_conn_data	u
+} with { variant (u) "CROSSTAG( req, 	op = HNBLL_IF_OP_REQUEST;
+				ind, 	op = HNBLL_IF_OP_INDICATION;
+				other,	OTHERWISE)"
+};
+
+type union HNBLLIF_GTP_PrimUnion {
+	HNBLLIF_GTP_PrimOp_conn_establish	conn_establish,
+	HNBLLIF_GTP_PrimOp_conn_release		conn_release,
+	HNBLLIF_GTP_PrimOp_conn_data		conn_data,
+	octetstring		other
+} with { variant "" };
+
+type record HNBLLIF_GTP_PrimHdr  {
+	HNBLLIF_GTP_MsgType	prim,
+	HNBLLIF_GTP_PrimUnion	u
+} with { variant (u) "CROSSTAG( conn_establish,	prim = HNBLL_IF_GTP_MSG_CONN_ESTABLISH;
+				conn_release,	prim = HNBLL_IF_GTP_MSG_CONN_RELEASE;
+				conn_data,	prim = HNBLL_IF_GTP_MSG_CONN_DATA;
+				other,	OTHERWISE)"
+};
+
 
 /**********************
 * General
@@ -345,7 +445,7 @@
 type enumerated HNBLLIF_Sapi {
 	HNBLL_IF_SAPI_CTL		(-1),
 	HNBLL_IF_SAPI_IUH		('00000001'O),
-	//HNBLL_IF_SAPI_GTP		('00000002'O),
+	HNBLL_IF_SAPI_GTP		('00000002'O),
 	HNBLL_IF_SAPI_AUDIO		('00000003'O)
 } with { variant "FIELDLENGTH(32)"
 	 variant "COMP(2scompl)"
@@ -361,6 +461,7 @@
 type union HNBLLIF_SapiUnion {
 	HNBLLIF_CTL_PrimHdr		ctl,
 	HNBLLIF_IUH_PrimHdr		iuh,
+	HNBLLIF_GTP_PrimHdr		gtp,
 	HNBLLIF_AUDIO_PrimHdr		audio,
 	octetstring			other
 } with { variant "" };
@@ -370,6 +471,7 @@
 	HNBLLIF_SapiUnion u
 } with { variant (u) "CROSSTAG( ctl, 		sapi = HNBLL_IF_SAPI_CTL;
 				iuh, 		sapi = HNBLL_IF_SAPI_IUH;
+				gtp, 		sapi = HNBLL_IF_SAPI_GTP;
 				audio, 		sapi = HNBLL_IF_SAPI_AUDIO;
 				other,	OTHERWISE)"
 };
