diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn
index 1c8e74c..918cbff 100644
--- a/library/RLCMAC_CSN1_Types.ttcn
+++ b/library/RLCMAC_CSN1_Types.ttcn
@@ -353,11 +353,56 @@
 		variant (tlli) "BYTEORDER(first)"
 	};
 
+	/* 12.30 MS Radio Access Capability 2 (feature bitmask)
+	 * (value part, see 3GPP TS 24.008, 10.5.5.12a) */
+	type union MSRadioAccCap2 {
+		/* TODO: see table 10.5.146/3GPP TS 24.008 */
+		bitstring		other
+	};
+
+	/* Table 11.2.16.2 Access Type */
+	type enumerated RlcAccessType {
+		RLC_ACC_TYPE_TWO_PHASE		('00'B),
+		RLC_ACC_TYPE_PAG_RESPONSE	('01'B),
+		RLC_ACC_TYPE_CELL_UPDATE	('10'B),
+		RLC_ACC_TYPE_MM			('11'B)
+	} with { variant "FIELDLENGTH(2)" };
+
+	type union PacketResourceReqID {
+		GlobalTfi gtfi,
+		GprsTlli tlli
+	} with { variant (tlli) "BYTEORDER(first)" };
+
+	/* 11.2.16 Packet Resource Request */
+	type record PacketResourceReq {
+		BIT1			acc_type_presence,
+		RlcAccessType		acc_type optional,
+		BIT1			id_type,
+		PacketResourceReqID	id,
+		BIT1			ms_rac2_presence,
+		MSRadioAccCap2		ms_rac2 optional,
+		ChannelReqDescription	ch_req_desc,
+		BIT1			change_mark_presence,
+		BIT2			change_mark optional,
+		BIT6			C_val,
+		BIT1			sign_var_presence,
+		BIT6			sign_var optional,
+		ILevels			I_levels
+		/* TODO: additional contents for further Releases (starting from 1999) */
+	} with {
+		variant (acc_type) "PRESENCE(acc_type_presence = '1'B)"
+		variant (id) "CROSSTAG(gtfi, id_type = '0'B; tlli, id_type = '1'B)"
+		variant (ms_rac2) "PRESENCE(ms_rac2_presence = '1'B)"
+		variant (change_mark) "PRESENCE(change_mark_presence = '1'B)"
+		variant (sign_var) "PRESENCE(sign_var_presence = '1'B)"
+	};
+
 	/* 11.2.0.2 */
 	type union RlcmacUlCtrlUnion {
 		PacketCtrlAck		ctrl_ack,
 		PacketDlAckNack		dl_ack_nack,
 		PacketUlDummy		ul_dummy,
+		PacketResourceReq	resource_req,
 		octetstring		other
 	} with { variant "" };
 
@@ -368,6 +413,7 @@
 		variant (u) "CROSSTAG(ctrl_ack,		msg_type = PACKET_CONTROL_ACK;
 				      dl_ack_nack,	msg_type = PACKET_DL_ACK_NACK;
 				      ul_dummy,		msg_type = PACKET_UL_DUMMY_CTRL;
+				      resource_req,	msg_type = PACKET_RESOURCE_REQUEST;
 				      other,		OTHERWISE
 			)"
 	};
@@ -563,6 +609,32 @@
 		}
 	}
 
+	template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_RES_REQ(
+		GprsTlli tlli, ChannelReqDescription ch_req_desc,
+		RlcAccessType acc_type := RLC_ACC_TYPE_TWO_PHASE
+	) := {
+		msg_type := PACKET_RESOURCE_REQUEST,
+		u := {
+			resource_req := {
+				acc_type_presence := '1'B,
+				acc_type := acc_type,
+				id_type := '1'B,
+				id := { tlli := tlli },
+				ms_rac2_presence := '0'B,
+				ms_rac2 := omit,
+				ch_req_desc := ch_req_desc,
+				change_mark_presence := '0'B,
+				change_mark := omit,
+				C_val := '000000'B,
+				sign_var_presence := '0'B,
+				sign_var := omit,
+				I_levels := {
+					iNone, iNone, iNone, iNone,
+					iNone, iNone, iNone, iNone
+				}
+			}
+		}
+	}
 
 
 } with { encode "RAW"; variant "FIELDORDER(msb)" variant "BYTEORDER(last)" };
