]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: enable send of Graceful Restart Preserve State F bit
authorJulien Courtat <julien.courtat@6wind.com>
Fri, 20 May 2016 10:10:07 +0000 (12:10 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Fri, 6 Jan 2017 14:08:45 +0000 (15:08 +0100)
Enhance struct bgp to add a new flag BGP_FLAG_GR_PRESERVE_FWD, which
allow to set the Preserve State F bit of Graceful Restart capability in
OPEN messages.

Signed-off-by: Julien Courtat <julien.courtat@6wind.com>
bgpd/bgp_open.c
bgpd/bgpd.h

index 4c698562befbcf8f9d298ade28df2618f1be4d44..af3c0486e5dd3e69ded4c73a45b83930e981e76c 100644 (file)
@@ -1537,7 +1537,10 @@ bgp_open_capability (struct stream *s, struct peer *peer)
             {
               stream_putw (s, afi);
               stream_putc (s, (safi == SAFI_MPLS_VPN) ? SAFI_MPLS_LABELED_VPN : safi);
-              stream_putc (s, 0); //Forwarding is not retained as of now.
+              if (bgp_flag_check(peer->bgp, BGP_FLAG_GR_PRESERVE_FWD))
+                stream_putc (s, RESTART_F_BIT);
+              else
+                stream_putc (s, 0);
             }
     }
 
index 86fa207b6b7f4ae694acbbe01ebb600449004c9f..b82cf9dde9d87656cc61edd2b56d7a6d66a3daa0 100644 (file)
@@ -289,6 +289,7 @@ struct bgp
 #define BGP_FLAG_MULTIPATH_RELAX_AS_SET   (1 << 17)
 #define BGP_FLAG_FORCE_STATIC_PROCESS     (1 << 18)
 #define BGP_FLAG_SHOW_HOSTNAME            (1 << 19)
+#define BGP_FLAG_GR_PRESERVE_FWD          (1 << 20)
 
   /* BGP Per AF flags */
   u_int16_t af_flags[AFI_MAX][SAFI_MAX];