From 1b313b7a157ccc56537e683cd00cfaa61e0df561 Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Thu, 4 Feb 2016 17:14:17 +0100 Subject: edge: Work-around to not use MCS-6 with padding Currently single BSN blocks of size 68 (a single unit from MCS-8) are put into a MCS-6 block with padding according to TS 44.060 Annex J. Unfortunately, these packets are ignored by the E71. This might be related to the currently incorrect usage of the puncturing schemes and the RSB bit. Avoid downgrading from MCS-8 to MCS-6 if there is no second block available. Send the block twice instead. Sponsored-by: On-Waves ehf --- src/tbf_dl.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 27b975ee..b5ab4dce 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -609,10 +609,12 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block( num_bsns += 1; } -#if 0 - if (num_bsns == 1) - cs.decToSingleBlock(&need_padding); -#endif + if (num_bsns == 1) { + /* TODO: remove the conditional when MCS-6 padding isn't + * failing to be decoded by MEs anymore */ + if (cs != GprsCodingScheme(GprsCodingScheme::MCS8)) + cs.decToSingleBlock(&need_padding); + } gprs_rlc_data_info_init_dl(&rlc, cs, need_padding); -- cgit v1.2.3