pdch: Silently ignore DATA.ind with len=0
Since recently (see Depends below), BTS side submits DATA.ind with len=0
to announce nothing was received on that UL block FN. This will allow
osmo-pcu track time more accurately, and use this information to quickly
find out if a UL block was expected as requested by RRBP or USF poll and
increment counters such as N3101 (finally being able to properly
implement timers such as T3619).
Depends: osmo-bts.git Change-Id I343c7a721dab72411edbca816c8864926bc329fb
Related: OS#5020
Change-Id: I17c28abf63b153448b533971ac5cf2e48daadea8
diff --git a/src/pdch.cpp b/src/pdch.cpp
index 46d1cae..26fd6a9 100644
--- a/src/pdch.cpp
+++ b/src/pdch.cpp
@@ -794,6 +794,15 @@
int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn,
struct pcu_l1_meas *meas)
{
+ /* No successfully decoded UL block was received during this FN: */
+ if (len == 0) {
+ /* TODO: Here, in the future, it can be checked whether a UL block was expected for:
+ * - UL/DL TBFs: RRBP poll pending (bts->pollController->expireTimedout)
+ * - UL TBFs: USF poll pending (we don't store this info in ul_tbf yet) -> inc N3101 (OS#5033)
+ */
+ return 0;
+ }
+
enum CodingScheme cs = mcs_get_by_size_ul(len);
if (!cs) {
bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS);