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/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19196 ) Change subject: pdch.cpp: Fix wrong annoying log line about non-scheduled ResourceReq received ...................................................................... pdch.cpp: Fix wrong annoying log line about non-scheduled ResourceReq received It's perfectly fine receiving a Resource Request message under some circumstances (as stated in the comment added in the commit). To print issues only under non-expected circumstances, the function rcv_resource_request need to be refactored: * Destroying older UL_TBF is delayed because it is needed further down. * When the old UL_TBF is FINISHED, it's an acceptable time to receive a Resource request, so we check if that's the case and don't print a warning in that case. Change-Id: I4b4367126d6a16055cd2f45afc4a6b9c15a7c980 --- M src/pdch.cpp M tests/tbf/TbfTest.err 2 files changed, 22 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/19196/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 3436e5b..cee92dc 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -550,42 +550,35 @@ if (request->ID.UnionType) { struct gprs_rlcmac_ul_tbf *ul_tbf; uint32_t tlli = request->ID.u.TLLI; - bool found = true; + bool ms_found = true; GprsMs *ms = bts()->ms_by_tlli(tlli); if (!ms) { - found = false; + ms_found = false; ms = bts()->ms_alloc(0, 0); /* ms class updated later */ } + ul_tbf = ms->ul_tbf(); /* hence ul_tbf may be NULL */ /* Keep the ms, even if it gets idle temporarily */ GprsMs::Guard guard(ms); - if (found) { - ul_tbf = ms->ul_tbf(); - /* We got a RACH so the MS was in packet idle mode and thus - * didn't have any active TBFs */ - if (ul_tbf) { - LOGPTBFUL(ul_tbf, LOGL_NOTICE, - "Got RACH from TLLI=0x%08x while TBF still exists. Killing pending UL TBF\n", - tlli); - tbf_free(ul_tbf); - } - } - LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF " "in packet resource request of single " "block, so we provide one:\n"); sba = bts()->sba()->find(this, fn); - if (!sba) { - LOGP(DRLCMAC, LOGL_NOTICE, "MS requests UL TBF " - "in packet resource request of single " - "block, but there is no resource request " - "scheduled!\n"); - } else { + if (sba) { ms->set_ta(sba->ta); bts()->sba()->free_sba(sba); + } else if (!ul_tbf || !ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) { + LOGPTBFUL(ul_tbf, LOGL_NOTICE, + "MS requests UL TBF in PACKET RESOURCE REQ of " + "single block, but there is no resource request " + "scheduled!\n"); } + /* else: Resource Request can be received even if not scheduled + by the network since it's used by MS to re-establish a new UL + TBF when last one has finished. */ + if (request->Exist_MS_Radio_Access_capability2) { uint8_t ms_class, egprs_ms_class; ms_class = Decoding::get_ms_class_by_capability(&request->MS_Radio_Access_capability2); @@ -596,6 +589,14 @@ ms->set_egprs_ms_class(egprs_ms_class); } + /* Get rid of previous finished UL TBF before providing a new one */ + if (ms_found && ul_tbf) { + if (!ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) + LOGPTBFUL(ul_tbf, LOGL_NOTICE, + "Got PACKET RESOURCE REQ while TBF not finished, killing pending UL TBF\n"); + tbf_free(ul_tbf); + } + ul_tbf = tbf_alloc_ul(bts_data(), ms, trx_no(), tlli); if (!ul_tbf) { handle_tbf_reject(bts_data(), ms, tlli, diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 800d4f8..29c8eb3 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -7902,7 +7902,7 @@ ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0x00000000 MS requests UL TBF in packet resource request of single block, so we provide one: -MS requests UL TBF in packet resource request of single block, but there is no resource request scheduled! +(no TBF) MS requests UL TBF in PACKET RESOURCE REQ of single block, but there is no resource request scheduled! Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 ********** UL-TBF starts here ********** -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4b4367126d6a16055cd2f45afc4a6b9c15a7c980 Gerrit-Change-Number: 19196 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200708/86be7e5d/attachment.htm>