summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2020-05-01 23:44:46 +0200
committerSander Vrijders <sander@ouroboros.rocks>2020-05-02 11:34:28 +0200
commit4ba228a8b373f64de541baab1f11449448cb7be2 (patch)
treef8256805ac6e3f54c662060bed1dd2e430a4a099
parent25d1721e7dc9fa15c8a7c5513f30e636e9bda397 (diff)
downloadouroboros-4ba228a8b373f64de541baab1f11449448cb7be2.tar.gz
ouroboros-4ba228a8b373f64de541baab1f11449448cb7be2.zip
lib: Fix retransmission DRF update
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> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
-rw-r--r--src/lib/rxmwheel.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/lib/rxmwheel.c b/src/lib/rxmwheel.c
index dbdd9377..9602c5f9 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)) {