summaryrefslogtreecommitdiffstats
path: root/src/host/trxcon/sched_lchan_tchf.c
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2017-12-16 16:21:05 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2017-12-16 16:21:05 +0700
commita9c2ef2638523d62f1f9eecb1c6c326f4c6519b6 (patch)
tree50c9dcaae8c9c1888f75a225097f451a275fad25 /src/host/trxcon/sched_lchan_tchf.c
parent9b511668a48b2c7ef7646278b1d2cbdc19441490 (diff)
host/trxcon/scheduler: inform L2&3 about decoding errors
Previously, we used to drop a frame if decoding wasn't successful. This way, the higher layers didn't even know about that, so the local counters and Measurement Reports were incomplete. This change makes scheduler to forward L2 frames in any case, setting the num_biterr for each of them. In case of decoding error, a dummy (payload filled by 0x00) L2 frame will be sent. Change-Id: I31011d8f3ca8b9a12474cd0bc653faed18391033
Diffstat (limited to 'src/host/trxcon/sched_lchan_tchf.c')
-rw-r--r--src/host/trxcon/sched_lchan_tchf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c
index 237e5388..a0adf69c 100644
--- a/src/host/trxcon/sched_lchan_tchf.c
+++ b/src/host/trxcon/sched_lchan_tchf.c
@@ -149,7 +149,9 @@ int rx_tchf_fn(struct trx_instance *trx, struct trx_ts *ts,
l2_len = sched_bad_frame_ind(l2, rsl_cmode, tch_mode);
} else if (rc == GSM_MACBLOCK_LEN) {
/* FACCH received, forward it to the higher layers */
- sched_send_data_ind(trx, ts, lchan, l2, GSM_MACBLOCK_LEN);
+ sched_send_data_ind(trx, ts, lchan,
+ l2, GSM_MACBLOCK_LEN, false, n_errors);
+
/* Send BFI instead of stolen TCH frame */
l2_len = sched_bad_frame_ind(l2, rsl_cmode, tch_mode);
} else {
@@ -159,7 +161,8 @@ int rx_tchf_fn(struct trx_instance *trx, struct trx_ts *ts,
/* Send a traffic frame to the higher layers */
if (l2_len > 0)
- sched_send_data_ind(trx, ts, lchan, l2, l2_len);
+ sched_send_data_ind(trx, ts, lchan,
+ l2, l2_len, false, n_errors);
return 0;
}