issue a P_CLEAR proper at the end of a network call;

4.11f_maint
Bryan Biedenkapp 11 months ago
parent 71d55b1645
commit ad8713fbe8

@ -1163,15 +1163,15 @@ void Slot::processFrameLoss()
m_slotNo, m_rfFrames, m_rfBits, m_rfErrs, float(m_rfErrs * 100U) / float(m_rfBits)); m_slotNo, m_rfFrames, m_rfBits, m_rfErrs, float(m_rfErrs * 100U) / float(m_rfBits));
// release trunked grant (if necessary) // release trunked grant (if necessary)
Slot *m_tscc = m_dmr->getTSCCSlot(); Slot* tscc = m_dmr->getTSCCSlot();
if (m_tscc != nullptr) { if (tscc != nullptr) {
if (m_tscc->m_enableTSCC && m_rfLC != nullptr) { if (tscc->m_enableTSCC && m_rfLC != nullptr) {
m_tscc->m_affiliations->releaseGrant(m_rfLC->getDstId(), false); tscc->m_affiliations->releaseGrant(m_rfLC->getDstId(), false);
} }
clearTSCCActivated(); clearTSCCActivated();
if (!m_tscc->m_enableTSCC) { if (!tscc->m_enableTSCC) {
notifyCC_ReleaseGrant(m_rfLC->getDstId()); notifyCC_ReleaseGrant(m_rfLC->getDstId());
} }
} }
@ -1397,6 +1397,20 @@ void Slot::writeEndNet(bool writeEnd)
} }
} }
// release trunked grant (if necessary)
Slot* tscc = m_dmr->getTSCCSlot();
if (tscc != nullptr) {
if (tscc->m_enableTSCC && m_rfLC != nullptr) {
tscc->m_affiliations->releaseGrant(m_rfLC->getDstId(), false);
}
clearTSCCActivated();
if (!tscc->m_enableTSCC) {
notifyCC_ReleaseGrant(m_rfLC->getDstId());
}
}
m_data->m_pduDataOffset = 0U; m_data->m_pduDataOffset = 0U;
if (m_network != nullptr) if (m_network != nullptr)

Loading…
Cancel
Save

Powered by TurnKey Linux.