summaryrefslogtreecommitdiff
path: root/src/lib/timerwheel.c
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2020-10-11 14:42:16 +0200
committerSander Vrijders <sander@ouroboros.rocks>2020-10-11 14:47:52 +0200
commit3294170daecaf14a43e97d4e435d4ed0308444f8 (patch)
tree349075344cdc08681fa2491ab7bf0b4c32b730b7 /src/lib/timerwheel.c
parentda871be70c8039015edfe93d4581e3b9347ff882 (diff)
downloadouroboros-3294170daecaf14a43e97d4e435d4ed0308444f8.tar.gz
ouroboros-3294170daecaf14a43e97d4e435d4ed0308444f8.zip
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 <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/timerwheel.c')
-rw-r--r--src/lib/timerwheel.c2
1 files changed, 1 insertions, 1 deletions
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);