RLCMAC: Fix unbound spb value in decoded egprs data blocks

That field is only present in Header Type 3 blocks.

Change-Id: Ie05576d7d7c18933dd9abcdc055cbfe1e4e54756
This commit is contained in:
Pau Espin 2021-02-04 19:25:33 +01:00 committed by pespin
parent ff7c5baaa2
commit 4f9a48fc23
2 changed files with 6 additions and 3 deletions

View File

@ -545,6 +545,7 @@ EgprsDlMacDataHeader dec__EgprsDlMacDataHeader_type1(const OCTETSTRING& stream)
ret_val.bsn2__offset() = egprs1->bsn2_lo << 7 | egprs1->bsn2_hi;
ret_val.pr() = egprs1->pr;
ret_val.cps() = egprs1->cps;
ret_val.spb() = OMIT_VALUE;
ttcn_buffer.increase_pos(sizeof(*egprs1));
return ret_val;
@ -571,6 +572,7 @@ EgprsDlMacDataHeader dec__EgprsDlMacDataHeader_type2(const OCTETSTRING& stream)
ret_val.bsn2__offset() = 0; /*TODO: mark optional and not set ? */
ret_val.pr() = egprs2->pr;
ret_val.cps() = egprs2->cps;
ret_val.spb() = OMIT_VALUE;
ttcn_buffer.increase_pos(sizeof(*egprs2));
return ret_val;

View File

@ -238,9 +238,9 @@ module RLCMAC_Types {
uint11_t bsn1,
uint8_t bsn2_offset,
uint2_t pr, /* power reduction */
uint2_t spb,
uint2_t spb optional,
uint4_t cps
} with { variant "" };
} with { variant (spb) "PRESENCE(header_type=RLCMAC_HDR_TYPE_3)" };
/* Manual C++ Decoder: */
type record RlcmacDlEgprsDataBlock {
CodingScheme mcs, /* Provided by C++ Decoder */
@ -295,9 +295,10 @@ module RLCMAC_Types {
uint4_t cps,
boolean pfi_ind,
BIT1 rsb,
BIT2 spb
BIT2 spb optional
} with {
variant (pfi_ind) "FIELDLENGTH(1)"
variant (spb) "PRESENCE(header_type=RLCMAC_HDR_TYPE_3)"
};
/* Manual C++ Decoder: 10.3a.2.1 EGPRS Uplink RLC data block */
type record RlcmacUlEgprsDataBlock {