diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2020-05-01 23:44:46 +0200 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2020-05-02 11:34:28 +0200 |
commit | 4ba228a8b373f64de541baab1f11449448cb7be2 (patch) | |
tree | f8256805ac6e3f54c662060bed1dd2e430a4a099 /src | |
parent | 25d1721e7dc9fa15c8a7c5513f30e636e9bda397 (diff) | |
download | ouroboros-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>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/rxmwheel.c | 4 |
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)) { |