From de64c4e34c364debd49e2b3210b5eaaae14c0609 Mon Sep 17 00:00:00 2001 From: Shi Su <67605788+shi-su@users.noreply.github.com> Date: Sat, 27 Mar 2021 11:36:56 -0700 Subject: [PATCH] [bgp]: Reduce bgp connect retry timer to 10 seconds (#7169) The default bgp connect retry timer is 120 seconds. A reconnection will happen 120 seconds if the initial connection fails. This PR aims to allow a more frequent retry. --- .../docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 | 1 + .../tests/data/general/instance.conf/result_all_v4.conf | 1 + .../tests/data/general/instance.conf/result_all_v6.conf | 1 + .../tests/data/general/instance.conf/result_base_v4.conf | 1 + .../tests/data/general/instance.conf/result_base_v6.conf | 1 + .../tests/data/general/instance.conf/result_l2vpn.conf | 1 + .../tests/data/general/instance.conf/result_shutdown_1.conf | 1 + .../tests/data/general/instance.conf/result_shutdown_2.conf | 1 + .../tests/data/general/instance.conf/result_timers_1.conf | 1 + .../tests/data/general/instance.conf/result_timers_2.conf | 1 + 10 files changed, 10 insertions(+) diff --git a/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 b/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 index c8c9906bc98d..836561e4263b 100644 --- a/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 +++ b/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 @@ -8,6 +8,7 @@ or (bgp_session['holdtime'] is defined and bgp_session['holdtime'] | int != 180) %} neighbor {{ neighbor_addr }} timers {{ bgp_session['keepalive'] | default("60") }} {{ bgp_session['holdtime'] | default("180") }} {% endif %} + neighbor {{ neighbor_addr }} timers connect 10 ! {% if 'admin_status' in bgp_session and bgp_session['admin_status'] == 'down' or 'admin_status' not in bgp_session and 'default_bgp_status' in CONFIG_DB__DEVICE_METADATA['localhost'] and CONFIG_DB__DEVICE_METADATA['localhost']['default_bgp_status'] == 'down' %} neighbor {{ neighbor_addr }} shutdown diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v4.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v4.conf index a6102cdb87a2..73ea68eafc97 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v4.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v4.conf @@ -4,6 +4,7 @@ neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer neighbor 10.10.10.10 timers 5 30 + neighbor 10.10.10.10 timers connect 10 neighbor 10.10.10.10 shutdown address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v6.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v6.conf index aa06657d91a8..d2efba293767 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v6.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_all_v6.conf @@ -4,6 +4,7 @@ neighbor fc::10 remote-as 555 neighbor fc::10 description remote_peer neighbor fc::10 timers 5 30 + neighbor fc::10 timers connect 10 neighbor fc::10 shutdown address-family ipv6 neighbor fc::10 peer-group PEER_V6 diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v4.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v4.conf index 2990d5aef7c7..077704d36468 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v4.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v4.conf @@ -3,6 +3,7 @@ ! neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer + neighbor 10.10.10.10 timers connect 10 address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 neighbor 10.10.10.10 activate diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v6.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v6.conf index 38ec714894ae..678eef780daf 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v6.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_base_v6.conf @@ -3,6 +3,7 @@ ! neighbor fc00::2 remote-as 555 neighbor fc00::2 description remote_peer + neighbor fc00::2 timers connect 10 address-family ipv6 neighbor fc00::2 peer-group PEER_V6 neighbor fc00::2 activate diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_l2vpn.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_l2vpn.conf index b30eaaa62a35..7efc4950d06d 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_l2vpn.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_l2vpn.conf @@ -3,6 +3,7 @@ ! neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer + neighbor 10.10.10.10 timers connect 10 address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 neighbor 10.10.10.10 activate diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_1.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_1.conf index 9303e3b9ab7f..617df7369b9c 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_1.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_1.conf @@ -3,6 +3,7 @@ ! neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer + neighbor 10.10.10.10 timers connect 10 neighbor 10.10.10.10 shutdown address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_2.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_2.conf index 2990d5aef7c7..077704d36468 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_2.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_shutdown_2.conf @@ -3,6 +3,7 @@ ! neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer + neighbor 10.10.10.10 timers connect 10 address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 neighbor 10.10.10.10 activate diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_1.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_1.conf index ffca0e6b69e6..53663f1d5173 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_1.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_1.conf @@ -4,6 +4,7 @@ neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer neighbor 10.10.10.10 timers 5 180 + neighbor 10.10.10.10 timers connect 10 address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 neighbor 10.10.10.10 activate diff --git a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_2.conf b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_2.conf index 3a8ac3d90e3f..280e7396598f 100644 --- a/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_2.conf +++ b/src/sonic-bgpcfgd/tests/data/general/instance.conf/result_timers_2.conf @@ -4,6 +4,7 @@ neighbor 10.10.10.10 remote-as 555 neighbor 10.10.10.10 description remote_peer neighbor 10.10.10.10 timers 60 240 + neighbor 10.10.10.10 timers connect 10 address-family ipv4 neighbor 10.10.10.10 peer-group PEER_V4 neighbor 10.10.10.10 activate