aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-09-14 16:11:33 +0200
committerfixeria <axilirator@gmail.com>2019-09-27 03:17:50 +0000
commitc524849e2dd15f134151047e11a110466dbaa2fa (patch)
tree76c8ca0672a88fd984cc13921fadb8edbb5d4b09
parentf7d9c0f22ba8d88171a242fcbe21187c3da5d76b (diff)
library/RLCMAC_CSN1_Types.ttcn: add UL Packet Resource Request
This change implements UL Packet Resource Request message as per 3GPP TS 44.060, section 11.2.16 (only mandatory fields), and a send template 'ts_RlcMacUlCtrl_PKT_RES_REQ' for it. Change-Id: I0d688beb4112d6db10ac89e2966b555e74887a6e
-rw-r--r--library/RLCMAC_CSN1_Types.ttcn72
1 files changed, 72 insertions, 0 deletions
diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn
index 1c8e74ca..918cbff5 100644
--- a/library/RLCMAC_CSN1_Types.ttcn
+++ b/library/RLCMAC_CSN1_Types.ttcn
@@ -353,11 +353,56 @@ module RLCMAC_CSN1_Types {
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 @@ module RLCMAC_CSN1_Types {
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 @@ module RLCMAC_CSN1_Types {
}
}
+ 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)" };