diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2022-03-10 08:23:15 +0100 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2022-03-11 17:51:27 +0100 |
commit | f300e609e7975dacc06996d407170fe58aa49439 (patch) | |
tree | b6210cb429de6ab1a3cd555562b8b4b15a7f82c0 /src/irmd | |
parent | a7032da6bbe875596ea1cb348a747123cda7d408 (diff) | |
download | ouroboros-f300e609e7975dacc06996d407170fe58aa49439.tar.gz ouroboros-f300e609e7975dacc06996d407170fe58aa49439.zip |
lib: Fix buffer allocation when retransmitting0.19.0
The timerwheel was retransmitting packets and the error check for
negative values of the rbuff allocation was instead checking for
non-zero values, causing a buffer allocation to succeed but the
program to continue down the unhappy path leaving that packet stuck in
the buffer unattended.
Also fixes wrongly scheduled retransmissions that cause packet storms.
FRCP is much more stable now. Still needs some work for high
bandwidth-delay products (fast-retransmit).
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/irmd')
-rw-r--r-- | src/irmd/main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c index fab9497d..6d7f7a2a 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1401,6 +1401,9 @@ static int flow_alloc(pid_t pid, int state; uint8_t * hash; + log_info("Allocating flow for %d to %s.\n", + pid, dst); + ipcp = join ? get_ipcp_entry_by_layer(dst) : get_ipcp_by_dst_name(dst, pid); if (ipcp == NULL) { |