First a warning: I can’t really reproduce this manually. It seems like
it might
be related to some previous config from my long compliance test (i.e.
something configured
and unconfigured but somehow didn’t reset internal state). I am able
to reproduce
it with my automated scripts and looking at the pcap it definitely is
wrong.
Here is the issue:
During the OpenSent state, Quagga sometimes uses default hold timer and
NOT the configured
timers as it should. (I use the per-neighbor timer configuration). So
with the new default
hold time of 9sec now in effect, I get sometimes 9sec instead of the
configured (180s) as before.
Background on “OpenSent” state:
When Quagga opens a new connection to a neighbor, it opens the TCP
session and then
sends the BGP open message. At this time the state is in “OpenSent”.
If the neighbor
does not respond with the holdtime with it’s open, then Quagga sends a
notification
with “Hold Timer expired” and closes the connection.
(See RFC4271, Sect. 8.2.2, p 62 “OpenSent”)
How I test:
In my test, I configure Quagga with a hold time of 180s (and keepalive
of 60s)
I’ve let then Quagga send the BGP Open, but without returning the BGP
Response
(But ack the TCP protocol). Expected would be to get the Hold timer
expiration
notification after 180s, but in my tests I get it already after 9
seconds
The pcap confirms that Quagga is confirmed with 180s hold time (as seen
in the BGP
Open message), but something internally still thinks it’s 9 sec.
I’ve tried to do this manually (i.e. just having ncat listen on the
other side,
but it always works so far in my manual tests.
If anyone has some patch to suggest then send it my way. I should be
able to
verify the fix.
Regards,
Martin Winter
[email protected]
PS: Not sure if this is related to the last round of patches. I assume
it might have
been there all the time, but in the past I didn’t test with
non-default timers and
might have missed it.
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev