The retransmission was always disabling the DRF flag. This caused
problems with the loss of the first packet, which of course needs a
DRF flag set. The retransmitted packet will now contain a the original
DRF flag and an updated ack number.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
---
src/lib/rxmwheel.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/lib/rxmwheel.c b/src/lib/rxmwheel.c
index dbdd937..9602c5f 100644
--- a/src/lib/rxmwheel.c
+++ b/src/lib/rxmwheel.c
@@ -199,15 +199,11 @@ static void rxmwheel_move(struct rxmwheel * rw)
head = shm_du_buff_head(sdb);
memcpy(head, r->head, r->tail - r->head);
- /* Release the old copy. */
ipcp_sdb_release(r->sdb);
- /* Disable using this seqno as rto probe. */
check_probe(r->frcti, r->seqno);
- /* Update ackno and make sure DRF is not set. */
((struct frct_pci *) head)->ackno = ntoh32(rcv_lwe);
- ((struct frct_pci *) head)->flags &= ~FRCT_DRF;
/* Retransmit the copy. */
if (shm_rbuff_write_b(f->tx_rb, idx, NULL)) {
--
2.26.2