aboutsummaryrefslogtreecommitdiffstats
path: root/library/RLCMAC_Types.ttcn
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-07-31 00:05:23 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-31 00:19:13 +0200
commitefbc2fca2423599777b7d6a0ce935c65582d884b (patch)
tree7e2ca56456f60d935628f7c802bf2d32ff3c7eef /library/RLCMAC_Types.ttcn
parentcf28881687bee4d38c7f66e12f37b3834e6fbb5e (diff)
RLCMAC: Add Rlcmac{Ul,Dl}Block unions to cover both Control + Data blocks
Diffstat (limited to 'library/RLCMAC_Types.ttcn')
-rw-r--r--library/RLCMAC_Types.ttcn32
1 files changed, 30 insertions, 2 deletions
diff --git a/library/RLCMAC_Types.ttcn b/library/RLCMAC_Types.ttcn
index 6cd6e49b..6231a54b 100644
--- a/library/RLCMAC_Types.ttcn
+++ b/library/RLCMAC_Types.ttcn
@@ -87,7 +87,7 @@ module RLCMAC_Types {
with { extension "prototype(convert) decode(RAW)" };
type record UlMacCtrlHeader {
- MacPayloadType pt,
+ MacPayloadType payload_type,
BIT5 spare,
boolean retry
} with { variant (retry) "FIELDLENGTH(1)" };
@@ -152,7 +152,7 @@ module RLCMAC_Types {
/* TS 44.060 10.2.2 */
type record UlMacDataHeader {
/* Octet 0 */
- MacPayloadType pt,
+ MacPayloadType payload_type,
uint4_t countdown,
boolean stall_ind,
boolean retry,
@@ -195,4 +195,32 @@ module RLCMAC_Types {
external function enc_RlcmacUlDataBlock(in RlcmacUlDataBlock si) return octetstring;
external function dec_RlcmacUlDataBlock(in octetstring stream) return RlcmacUlDataBlock;
+ type union RlcmacUlBlock {
+ RlcmacUlDataBlock data,
+ RlcmacUlCtrlBlock ctrl
+ } with {
+ variant "TAG(data, mac_hdr.payload_type = MAC_PT_RLC_DATA;
+ ctrl, mac_hdr.payload_type = MAC_PT_RLCMAC_NO_OPT;
+ ctrl, mac_hdr.payload_type = MAC_PT_RLCMAC_OPT)"
+ };
+
+ external function enc_RlcmacUlBlock(in RlcmacUlBlock si) return octetstring
+ with { extension "prototype(convert) encode(RAW)" };
+ external function dec_RlcmacUlBlock(in octetstring stream) return RlcmacUlBlock
+ with { extension "prototype(convert) decode(RAW)" };
+
+ type union RlcmacDlBlock {
+ RlcmacDlDataBlock data,
+ RlcmacDlCtrlBlock ctrl
+ } with {
+ variant "TAG(data, mac_hdr.mac_hdr.payload_type = MAC_PT_RLC_DATA;
+ ctrl, mac_hdr.payload_type = MAC_PT_RLCMAC_NO_OPT;
+ ctrl, mac_hdr.payload_type = MAC_PT_RLCMAC_OPT)"
+ };
+
+ external function enc_RlcmacDlBlock(in RlcmacDlBlock si) return octetstring
+ with { extension "prototype(convert) encode(RAW)" };
+ external function dec_RlcmacDlBlock(in octetstring stream) return RlcmacDlBlock
+ with { extension "prototype(convert) decode(RAW)" };
+
} with { encode "RAW"; variant "FIELDORDER(msb)" }