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