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
This commit is contained in:
Vadim Yanitskiy 2019-09-14 16:11:33 +02:00 committed by fixeria
parent f7d9c0f22b
commit c524849e2d
1 changed files with 72 additions and 0 deletions

View File

@ -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)" };