diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-02-03 20:44:46 +0100 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-02-08 00:45:40 +0100 |
commit | be881c028fc4da00c4046ecd9296727975c206a3 (patch) | |
tree | 1fd083584522d74d688ba4a6675f67b7add878e9 /src | |
parent | 64e7b83139772c8fff775ef2adfeadb704558920 (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 (the puncturing schemes are not updated and
the RBS flag is never set).
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
Diffstat (limited to 'src')
-rw-r--r-- | src/tbf_dl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 6d4209f1..7540d1b3 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -609,8 +609,12 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block( num_bsns += 1; } - if (num_bsns == 1) - cs.decToSingleBlock(&need_padding); + 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); |