diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-09-14 16:11:33 +0200 |
---|---|---|
committer | fixeria <axilirator@gmail.com> | 2019-09-27 03:17:50 +0000 |
commit | c524849e2dd15f134151047e11a110466dbaa2fa (patch) | |
tree | 76c8ca0672a88fd984cc13921fadb8edbb5d4b09 | |
parent | f7d9c0f22ba8d88171a242fcbe21187c3da5d76b (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.ttcn | 72 |
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)" }; |