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
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 6d4209f..7540d1b 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -609,8 +609,12 @@
 		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);