From 64cbe652a72ac81a3d5efc4bb01d25dd52166137 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Mon, 28 Mar 2022 20:29:03 +0200 Subject: lib: Fix unidirectional FRCT traffic handling Unidirectional traffic has one of the peers only send bare FRCT packets. These never set a DRF, since they have no sequence number. At the receiver, all these ACKs and window updates were always dropped as the receiver connection record was timed out. Also fixes a SEGV if flow control kicks in (passing NULL timeout to pthread_cond_timedwait). Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/timerwheel.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/lib/timerwheel.c') diff --git a/src/lib/timerwheel.c b/src/lib/timerwheel.c index cfdf2c9f..3225bf35 100644 --- a/src/lib/timerwheel.c +++ b/src/lib/timerwheel.c @@ -228,7 +228,6 @@ static void timerwheel_move(void) goto flow_down; rslot = (rslot + slot + 1) & (RXMQ_SLOTS - 1); - #ifdef RXM_BLOCKING if (ipcp_sdb_reserve(&sdb, r->len) < 0) #else @@ -249,7 +248,6 @@ static void timerwheel_move(void) /* Retransmit the copy. */ pci->ackno = hton32(rcv_lwe); - #ifdef RXM_BLOCKING if (shm_rbuff_write_b(f->tx_rb, idx, NULL) < 0) #else -- cgit v1.2.3