Hi all,

   Anyone meet the issue as below reason that cause BGP hold timer timeout (keepalive_time > hold_time) and switch action between  closing and opening session? 

Thanks

Arvin

 

From: Arvin Gan
Sent: Friday, June 08, 2018 3:22 PM
To: 'Ondrej Zajicek' <santiago@crfreenet.org>
Cc: bird-users@network.cz
Subject: BGP keepalive_time

 

Hi all,

     When I used bird, found a question that BGP session received OPEN message, hold_time is updated with min(config_hold_time, peer_hold_time), but keepalive_time is not updated if keepalive_time is not zero,  that maybe cause keepalive_time is more than  the updated hold_time after received OPEN message.

 

Line 702 in packets.cc for bgp protocol :

    conn->keepalive_time = p->cf->keepalive_time ? : conn->hold_time / 3;

 

  RFC 4271:

4.4. KEEPALIVE Message Format

BGP does not use any TCP-based, keep-alive mechanism to determine if

peers are reachable. Instead, KEEPALIVE messages are exchanged

between peers often enough not to cause the Hold Timer to expire. A

reasonable maximum time between KEEPALIVE messages would be one third

of the Hold Time interval. KEEPALIVE messages MUST NOT be sent more

frequently than one per second. An implementation MAY adjust the

rate at which it sends KEEPALIVE messages as a function of the Hold

Time interval.

 

Thanks

Arvin