]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: timers config is accepted but not recorded in running config
authorDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 20 Jan 2017 04:17:09 +0000 (04:17 +0000)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 30 Jan 2017 18:40:53 +0000 (13:40 -0500)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-14463

bgpd/bgpd.c

index 244b1930b31cdc018a270df367d11ea7975d77c2..ef633c16e74de81d0c895b3c6e1a1299ae08bd7f 100644 (file)
@@ -6680,26 +6680,27 @@ bgp_config_write_peer_global (struct vty *vty, struct bgp *bgp,
     }
 
   /* advertisement-interval */
-  if (CHECK_FLAG (peer->config, PEER_CONFIG_ROUTEADV)
-      && peer->v_routeadv != BGP_DEFAULT_EBGP_ROUTEADV
-      && ! peer_group_active (peer))
+  if (CHECK_FLAG (peer->config, PEER_CONFIG_ROUTEADV) &&
+      ((! peer_group_active (peer) && peer->v_routeadv != BGP_DEFAULT_EBGP_ROUTEADV) ||
+       (peer_group_active (peer) && peer->v_routeadv != g_peer->v_routeadv)))
     {
       vty_out (vty, " neighbor %s advertisement-interval %d%s",
                addr, peer->v_routeadv, VTY_NEWLINE);
     }
 
   /* timers */
-  if (CHECK_FLAG (peer->config, PEER_CONFIG_TIMER)
-      && (peer->keepalive != BGP_DEFAULT_KEEPALIVE || peer->holdtime != BGP_DEFAULT_HOLDTIME)
-      && ! peer_group_active (peer))
+  if (CHECK_FLAG (peer->config, PEER_CONFIG_TIMER) &&
+      ((! peer_group_active (peer) && (peer->keepalive != BGP_DEFAULT_KEEPALIVE || peer->holdtime != BGP_DEFAULT_HOLDTIME)) ||
+       (peer_group_active (peer) && (peer->keepalive != g_peer->keepalive || peer->holdtime != g_peer->holdtime))))
     {
       vty_out (vty, " neighbor %s timers %d %d%s", addr,
                peer->keepalive, peer->holdtime, VTY_NEWLINE);
     }
 
   if (CHECK_FLAG (peer->config, PEER_CONFIG_CONNECT) &&
-      peer->connect != BGP_DEFAULT_CONNECT_RETRY &&
-      ! peer_group_active (peer))
+      ((! peer_group_active (peer) && peer->connect != BGP_DEFAULT_CONNECT_RETRY) ||
+       (peer_group_active (peer) && peer->connect != g_peer->connect)))
+
     {
       vty_out (vty, " neighbor %s timers connect %d%s", addr,
                peer->connect, VTY_NEWLINE);