From 60da22a67b228b9f07a2765ae25acdc08d2d6747 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 17 Aug 2018 08:48:29 +0700 Subject: trxcon/scheduler: fix: don't send BFI in GSM48_CMODE_SIGN mode GSM48_CMODE_SIGN means 'signaling only', so we shall not send bad frame indications in this state. Instead, it makes sense to send dummy L2 frames like we do for xCCH channels. Change-Id: Ie39d53522cafab265099076b3194fa96aff217ba --- src/host/trxcon/sched_lchan_tchf.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/host/trxcon/sched_lchan_tchf.c') diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c index f6465f9b..09d504f8 100644 --- a/src/host/trxcon/sched_lchan_tchf.c +++ b/src/host/trxcon/sched_lchan_tchf.c @@ -151,13 +151,18 @@ int rx_tchf_fn(struct trx_instance *trx, struct trx_ts *ts, n_errors, false, true); bfi: - /* Bad frame indication */ - l2_len = sched_bad_frame_ind(l2, lchan); - /* Didn't try to decode */ if (n_errors < 0) n_errors = 116 * 4; + /* BFI is not applicable in signalling mode */ + if (lchan->tch_mode == GSM48_CMODE_SIGN) + return sched_send_dt_ind(trx, ts, lchan, NULL, 0, + n_errors, true, false); + + /* Bad frame indication */ + l2_len = sched_bad_frame_ind(l2, lchan); + /* Send a BFI frame to the higher layers */ return sched_send_dt_ind(trx, ts, lchan, l2, l2_len, n_errors, true, true); -- cgit v1.2.3