BGP GR Tune EndOfRib send logic to be more aggressive

Bug #1690258 reported by Ananth Suryanarayana
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.2
Fix Committed
Medium
Ananth Suryanarayana
R4.0
Fix Committed
Medium
Ananth Suryanarayana
Trunk
Fix Committed
Medium
Ananth Suryanarayana

Bug Description

Currently, EoR time configured in the schema is considered as the minimum time to wait.. This is not ideal as route convergence will always take at least the configured time (default 30s), even though there may be no reason to wait for that long a period of time in most environments.

Tweak this to interpret it as the maximum time to wait and change the default to 300s instead.

Send EoR a lot sooner, if there is no more updated to be sent to the peer, but never wait for more than the configured time. With this logic, eor shall be sent quite quickly, soon after all the updates have been sent out.

Nischal Sheth (nsheth)
tags: added: contrail-control
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/31520
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R4.0

Review in progress for https://review.opencontrail.org/31662
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/31520
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R4.0

Review in progress for https://review.opencontrail.org/31662
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/31662
Committed: http://github.com/Juniper/contrail-controller/commit/478f6c5c7c761166de022e9e098d860b7ed6af19
Submitter: Zuul (<email address hidden>)
Branch: R4.0

commit 478f6c5c7c761166de022e9e098d860b7ed6af19
Author: Ananth Suryanarayana <email address hidden>
Date: Thu May 11 17:19:33 2017 -0700

Tweak end-of-rib send logic for bgp peers

o Interpret end-of-rib timer value configured in the schema as the maximum time
to wait (not the minimum)
o During startup-phase, do not send end-of-rib until 20% of configured time has
passed (for all families except route-target).
o For route-targets, first wait for end-of-config to be proceesed and then
send eor if the rtarget table is not updated for at least 2% of the
configured time.
o During normal times, send end-of-rib asap. However, eor is not sent if
output queue is non-empty (for bgp peers).
o eor send logic is constantly retried (once every second) to ensure that eor
is sent asap
o clean up time stamps to resolution of seconds to simplify
o Indicate to bgp peers if we are in restarting-phase or not in the GR
capability
o Update unit tests accordingly

Partial-Bug: #1690258
Change-Id: I2cccd84b269f358ed4a60fd250f0f84278f56fd5

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/31520
Committed: http://github.com/Juniper/contrail-controller/commit/8c0c8e8bfa1fd059d3952e7d19e522747a5c7598
Submitter: Zuul (<email address hidden>)
Branch: master

commit 8c0c8e8bfa1fd059d3952e7d19e522747a5c7598
Author: Ananth Suryanarayana <email address hidden>
Date: Thu May 11 17:19:33 2017 -0700

Tweak end-of-rib send logic for bgp peers

o Interpret end-of-rib timer value configured in the schema as the maximum time
to wait (not the minimum)
o During startup-phase, do not send end-of-rib until 20% of configured time has
passed (for all families except route-target).
o For route-targets, first wait for end-of-config to be proceesed and then
send eor if the rtarget table is not updated for at least 2% of the
configured time.
o During normal times, send end-of-rib asap. However, eor is not sent if
output queue is non-empty (for bgp peers).
o eor send logic is constantly retried (once every second) to ensure that eor
is sent asap
o clean up time stamps to resolution of seconds to simplify
o Indicate to bgp peers if we are in restarting-phase or not in the GR
capability
o Update unit tests accordingly

Partial-Bug: #1690258
Change-Id: I2cccd84b269f358ed4a60fd250f0f84278f56fd5

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.2

Review in progress for https://review.opencontrail.org/31797
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/31797
Committed: http://github.com/Juniper/contrail-controller/commit/ccada2a67aad2420f1e680329f84dd59ab13aea0
Submitter: Zuul (<email address hidden>)
Branch: R3.2

commit ccada2a67aad2420f1e680329f84dd59ab13aea0
Author: Ananth Suryanarayana <email address hidden>
Date: Thu May 11 17:19:33 2017 -0700

Tweak end-of-rib send logic for bgp peers

o Interpret end-of-rib timer value configured in the schema as the maximum time
to wait (not the minimum)
o During startup-phase, do not send end-of-rib until 20% of configured time has
passed (for all families except route-target).
o For route-targets, first wait for end-of-config to be proceesed and then
send eor if the rtarget table is not updated for at least 2% of the
configured time.
o During normal times, send end-of-rib asap. However, eor is not sent if
output queue is non-empty (for bgp peers).
o eor send logic is constantly retried (once every second) to ensure that eor
is sent asap
o clean up time stamps to resolution of seconds to simplify
o Indicate to bgp peers if we are in restarting-phase or not in the GR
capability
o Update unit tests accordingly

Change-Id: I58fd6bfc86db084a8128593fab9bbdbc0caf178a
Partial-Bug: #1690258

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.