pespin submitted this change.

View Change


Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified
tbf_dl_fsm: Ignore DL_ACKNACK_MISS events in WAIT_{RELEASE,REUSE_TFI} states

If in those states, we already left the FINISHED step which means we
already received a FinalACk previously, hence it means we are missing
requested retransmissions of the last DL ACK/NACK due to fn-advance
(several DL blocks in transit before receiving UL response).

Change-Id: Ib0f23a9cc3c614fe428b682e01502930cd2e478f
---
M src/tbf_dl_fsm.c
1 file changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/tbf_dl_fsm.c b/src/tbf_dl_fsm.c
index 557fb7a..d604f6f 100644
--- a/src/tbf_dl_fsm.c
+++ b/src/tbf_dl_fsm.c
@@ -286,6 +286,11 @@
case TBF_EV_FINAL_ACK_RECVD:
/* ignore, duplicate ACK, we already know about since we left ST_FINISHED */
break;
+ case TBF_EV_DL_ACKNACK_MISS:
+ /* ignore, miss for retransmitted ACK, but a previous one was
+ * already ACKED since we left ST_FINISHED. This happens due to
+ * fn-advance scheduling several DL blocks in advance. */
+ break;
default:
OSMO_ASSERT(0);
}
@@ -320,6 +325,11 @@
case TBF_EV_FINAL_ACK_RECVD:
/* ignore, duplicate ACK, we already know about since we left ST_FINISHED */
break;
+ case TBF_EV_DL_ACKNACK_MISS:
+ /* ignore, miss for retransmitted ACK, but a previous one was
+ * already ACKED since we left ST_FINISHED. This happens due to
+ * fn-advance scheduling several DL blocks in advance. */
+ break;
default:
OSMO_ASSERT(0);
}
@@ -450,6 +460,7 @@
},
[TBF_ST_WAIT_RELEASE] = {
.in_event_mask =
+ X(TBF_EV_DL_ACKNACK_MISS) |
X(TBF_EV_FINAL_ACK_RECVD) |
X(TBF_EV_MAX_N3105),
.out_state_mask =
@@ -461,6 +472,7 @@
},
[TBF_ST_WAIT_REUSE_TFI] = {
.in_event_mask =
+ X(TBF_EV_DL_ACKNACK_MISS) |
X(TBF_EV_FINAL_ACK_RECVD),
.out_state_mask =
X(TBF_ST_RELEASING),

To view, visit change 33455. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: Ib0f23a9cc3c614fe428b682e01502930cd2e478f
Gerrit-Change-Number: 33455
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged