From 3294170daecaf14a43e97d4e435d4ed0308444f8 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 11 Oct 2020 14:42:16 +0200 Subject: lib: Add Rendez-Vous mechanism for flow control This adds the rendez-vous mechanism to handle the case where the sending window is closed and window updates get lost. If the sending window is closed, the sender side will send an RDVS every DELT_RDV time (100ms), and give up after MAX_RDV time (1 second). Upon reception of a RDVS packet, a window update is sent immediately. We can make this much more configurable later on (build options for defaults, fccntl for runtime tuning). Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/timerwheel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lib/timerwheel.c') diff --git a/src/lib/timerwheel.c b/src/lib/timerwheel.c index 4443832d..cd3074cb 100644 --- a/src/lib/timerwheel.c +++ b/src/lib/timerwheel.c @@ -294,7 +294,7 @@ static void timerwheel_move(void) rw.map[j & (ACKQ_SLOTS - 1)][a->fd] = false; if (f->flow_id == a->flow_id && f->frcti != NULL) - frct_send_ack(a->frcti); + send_frct_pkt(a->frcti); free(a); -- cgit v1.2.3