mirror of https://github.com/PentHertz/srsLTE.git
rlc_am_lte: when max retx is reached, remove SN from tx window
this fixes an issue when the RLC bearer isn't reset from RRC. In this case, the RLC would retransmit the same PDU over and over again despite the max retx counter being reached.
This commit is contained in:
parent
c0a1b0efa3
commit
822abc763e
|
@ -625,6 +625,12 @@ int rlc_am_lte::rlc_am_lte_tx::build_retx_pdu(uint8_t* payload, uint32_t nof_byt
|
||||||
logger.warning("%s Signaling max number of reTx=%d for for SN=%d", RB_NAME, tx_window[retx.sn].retx_count, retx.sn);
|
logger.warning("%s Signaling max number of reTx=%d for for SN=%d", RB_NAME, tx_window[retx.sn].retx_count, retx.sn);
|
||||||
parent->rrc->max_retx_attempted();
|
parent->rrc->max_retx_attempted();
|
||||||
parent->pdcp->notify_failure(parent->lcid, tx_window[retx.sn].pdcp_sns);
|
parent->pdcp->notify_failure(parent->lcid, tx_window[retx.sn].pdcp_sns);
|
||||||
|
|
||||||
|
// remove SN from Tx window, advance window
|
||||||
|
tx_window.remove_pdu(retx.sn);
|
||||||
|
vt_a = (vt_a + 1) % MOD;
|
||||||
|
vt_ms = (vt_ms + 1) % MOD;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(payload,
|
logger.info(payload,
|
||||||
|
|
Loading…
Reference in New Issue