]> git.puffer.fish Git - matthieu/frr.git/commit
isisd: fix loss of packets after circuit is brought up
authorRenato Westphal <renato@opensourcerouting.org>
Thu, 24 Nov 2016 23:28:03 +0000 (21:28 -0200)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 25 Nov 2016 00:56:59 +0000 (19:56 -0500)
commit18653436b7e7e5cb7a3ea8ba8a182598cbfbd247
tree5b5a790b69a416ba82bc6f2b59f1b7aacb0e679a
parentb4863129a37ff4cdec567426aa8608a8a6631ec7
isisd: fix loss of packets after circuit is brought up

The last parameter of THREAD_TIMER_ON() is the timeout, and we were
using circuit->fd for that. So, when a circuit was brought up, isisd
would miss all received packets on this circuit for quite a few seconds,
slowing down the convergence process.

To fix this, use the same logic we use in isis_receive() to calculate
this timeout.

This bug doesn't happen on Linux, which uses a different method to read
packets from the network.

Fixes the following ANVL tests on FreeBSD: ISIS-17.1, ISIS-18.6 (and
probably others too).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
isisd/isis_circuit.c