diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2010-01-15 16:22:10 +0300 |
---|---|---|
committer | Denis Ovsienko <infrastation@yandex.ru> | 2010-01-15 16:22:10 +0300 |
commit | 65957886bfd0dd9d95360d8b015781fc82cc09be (patch) | |
tree | 71352e214bd59277a50a43779bb2cbafbace6cc3 /bgpd/bgp_packet.c | |
parent | 2cd754de60210748e61069fed2c9d4086d24c21e (diff) | |
download | quagga-65957886bfd0dd9d95360d8b015781fc82cc09be.tar.bz2 quagga-65957886bfd0dd9d95360d8b015781fc82cc09be.tar.xz |
bgp: use monotonic clock for time of day
BGP uses time() to get system time of day; but that value
fluctuates with time adjustments from NTP. This can cause premature
flapping of peer sessions and other failures.
Use the system monotonic clock supported by Quagga thread library
to avoid issue.
See: http://bugzilla.vyatta.com/show_bug.cgi?id=4467
* bgpd/bgp_fsm.c
* bgp_uptime_reset(): dismiss function
* bgpd/bgpd.c
* bgp_clock(): new function
* bgpd/bgp_damp.c
* bgp_reuse_timer(): employ bgp_clock() instead of time(NULL)
* bgp_damp_withdraw(): idem
* bgp_damp_update(): idem
* bgp_damp_scan(): idem
* bgp_damp_info_vty(): idem
* bgp_damp_reuse_time_vty(): idem
* bgpd/bgp_fsm.c
* bgp_routeadv_timer(): idem
* bgp_stop(): idem
* bgp_establish(): idem
* bgpd/bgp_packet.c
* bgp_update_receive(): idem
* bgpd/bgp_route.c
* bgp_update_rsclient(): idem
* bgp_update_main(): idem
* bgp_static_update_rsclient(): idem
* bgp_static_update_main(): idem
* bgp_static_update_vpnv4(): idem
* bgp_aggregate_route(): idem
* bgp_aggregate_add(): idem
* bgp_redistribute_add(): idem
* bgpd/bgp_snmp.c
* bgpPeerTable(): idem
* bgpTrapEstablished(): idem
* bgpTrapBackwardTransition(): idem
* bgpd/bgpd.c
* peer_create(): idem
* peer_uptime(): idem
* bgp_master_init(): idem
Diffstat (limited to 'bgpd/bgp_packet.c')
-rw-r--r-- | bgpd/bgp_packet.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 61534191..b29bc1f0 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -1805,7 +1805,7 @@ bgp_update_receive (struct peer *peer, bgp_size_t size) /* Increment packet counter. */ peer->update_in++; - peer->update_time = time (NULL); + peer->update_time = bgp_clock (); /* Generate BGP event. */ BGP_EVENT_ADD (peer, Receive_UPDATE_message); |