aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-04 17:14:17 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-04 17:14:17 +0100
commit1b313b7a157ccc56537e683cd00cfaa61e0df561 (patch)
tree595a378f671920706540764bb5738e824563cff7
parent3a82aef85e81149f36a9db637e1d5cf74d756f22 (diff)
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
-rw-r--r--src/tbf_dl.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 27b975e..b5ab4dc 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);