diff --git a/gprs_gb/BSSGP_Types.ttcn b/gprs_gb/BSSGP_Types.ttcn
index ec0ae4d..3bd1572 100644
--- a/gprs_gb/BSSGP_Types.ttcn
+++ b/gprs_gb/BSSGP_Types.ttcn
@@ -318,7 +318,60 @@
 					other,		OTHERWISE)"
 	}
 
+	external function enc_BssgpPdu(in BssgpPdu pdu) return octetstring
+		with { extension "prototype(convert) encode(RAW)" };
 	external function dec_BssgpPdu(in octetstring stream) return BssgpPdu
 		with { extension "prototype(convert) decode(RAW)" };
 
+	template BssgpPdu t_BSSGP_other(template BssgpPduType pdu_type, template BssgpTLVs tlvs) := {
+		pdu_type := pdu_type,
+		u := {
+			other := {
+				tlvs := tlvs
+			}
+		}
+	}
+
+	template BssgpTLV t_BSSGP_IE_Cause(template BssgpCause cause) := {
+		iei := CAUSE,
+		len := 1,
+		u := { cause := cause }
+	}
+
+	template BssgpTLV t_BSSGP_IE_Bvci(template BssgpBvci bvci) := {
+		iei := BVCI,
+		len := 2,
+		u := { bvci := bvci }
+	}
+
+	template BssgpTLV t_BssgpIE(template BssgpIEI iei, template BssgpIeUnion u) := {
+		iei := iei,
+		len := 0,
+		u := u
+	}
+
+	template BssgpTLV t_BSSGP_IE_PDU(BssgpPdu pdu) :=
+		t_BssgpIE(PDU_IN_ERROR, { other := f_BSSGP_compact_len(enc_BssgpPdu(pdu)) });
+	template BssgpTLV t_BSSGP_IE_CellId(template BssgpCellId cid) := t_BssgpIE(CELL_ID, { cell_id := cid });
+
+	template BssgpPdu t_BVC_RESET(template BssgpCause cause, template BssgpBvci bvci, template BssgpCellId cell_id) := 
+		t_BSSGP_other(BVC_RESET, { t_BSSGP_IE_Cause(cause), t_BSSGP_IE_Bvci(bvci), t_BSSGP_IE_CellId(cell_id) });
+	template BssgpPdu t_BVC_RESET_ACK(template BssgpBvci bvci, template BssgpCellId cell_id) := 
+		t_BSSGP_other(BVC_RESET_ACK, { t_BSSGP_IE_Bvci(bvci), t_BSSGP_IE_CellId(cell_id) });
+
+	template BssgpPdu t_BVC_UNBLOCK(template BssgpBvci bvci) := t_BSSGP_other(BVC_UNBLOCK, { t_BSSGP_IE_Bvci(bvci) });
+	template BssgpPdu t_BVC_UNBLOCK_ACK(template BssgpBvci bvci) := t_BSSGP_other(BVC_UNBLOCK_ACK, { t_BSSGP_IE_Bvci(bvci) });
+
+	template BssgpPdu t_BVC_BLOCK(template BssgpBvci bvci, template BssgpCause cause) := 
+		t_BSSGP_other(BVC_BLOCK, { t_BSSGP_IE_Bvci(bvci), t_BSSGP_IE_Cause(cause) });
+	template BssgpPdu t_BVC_BLOCK_ACK(template BssgpBvci bvci) := t_BSSGP_other(BVC_BLOCK_ACK, { t_BSSGP_IE_Bvci(bvci) });
+
+	template BssgpPdu tr_BSSGP_type(template BssgpPduType pdu_type) := {
+		pdu_type := pdu_type,
+		u := ?
+	}
+
+
+	template BssgpPdu t_BSSGP_STATUS(template BssgpTLVs tlvs) := t_BSSGP_other(STATUS, tlvs);
+	
 } with { encode "RAW" };
