This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/15441
Change subject: osmo-bts-trx/scheduler: fix: do not reset ECU with BFI frame
......................................................................
osmo-bts-trx/scheduler: fix: do not reset ECU with BFI frame
BFI (Bad Frame Indication) needs to be sent:
- when failed to decode a speech (or FACCH) frame, or
- when decoded frame is FACCH frame (23 octets long),
if the current channel mode is RSL_CMOD_SPD_SPEECH.
Since we (re)use the same buffer as used for non-BFI frames,
we need to avoid resetting the ECU (Error Cancellation Unit)
with a bad frame indication.
We used a boolean flag for that, but it was not set in the
second case - when a FACCH frame is decoded. Let's get rid
of that flag and use 'goto' operator to step over the ECU
resetting code.
Let's also modify rx_tchh_fn(), which does not (yet) deal
with ECU, but most likely will in the future.
Change-Id: I8bdc7483f524006a86ff1fee7cdefafe3db899d8
---
M src/osmo-bts-trx/scheduler_trx.c
1 file changed, 7 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/15441/1
diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 57eb138..5b31387 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -1138,7 +1138,6 @@
uint8_t tch_data[128]; /* just to be safe */
int rc, amr = 0;
int n_errors, n_bits_total;
- bool bfi_flag = false;
struct gsm_lchan *lchan =
get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn);
@@ -1235,14 +1234,12 @@
LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn,
"Received bad data (%u/%u)\n",
bi->fn % l1ts->mf_period, l1ts->mf_period);
- bfi_flag = true;
goto bfi;
}
if (rc < 4) {
LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn,
"Received bad data (%u/%u) with invalid codec mode %d\n",
bi->fn % l1ts->mf_period, l1ts->mf_period, rc);
- bfi_flag = true;
goto bfi;
}
@@ -1300,6 +1297,9 @@
"TCH mode %u invalid, please fix!\n", tch_mode);
return -EINVAL;
}
+
+ /* Step over resetting ECU */
+ goto compose_l1sap;
}
}
@@ -1307,7 +1307,7 @@
return 0;
/* Reset ECU with a good frame */
- if (!bfi_flag && tch_mode == GSM48_CMODE_SPEECH_V1)
+ if (tch_mode == GSM48_CMODE_SPEECH_V1)
osmo_ecu_fr_reset(&lchan->ecu_state.fr, tch_data);
/* TCH or BFI */
@@ -1497,6 +1497,9 @@
"TCH mode %u invalid, please fix!\n", tch_mode);
return -EINVAL;
}
+
+ /* Step over resetting ECU */
+ goto compose_l1sap;
}
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15441
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I8bdc7483f524006a86ff1fee7cdefafe3db899d8
Gerrit-Change-Number: 15441
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190906/6c041a8e/attachment.htm>