osrg / gobgp

BGP implemented in the Go Programming Language
https://osrg.github.io/gobgp/
Apache License 2.0
3.62k stars 688 forks source link

Graceful restart capability #378

Closed pavel-odintsov closed 8 years ago

pavel-odintsov commented 9 years ago

Hello!

I have looked to source code and found support for BGP_CAP_GRACEFUL_RESTART. So I'm looking for some way to specify this option.

I want to keep my announces while gobgp is restarting or server with gobgp become unreachable.

More information you could find here: http://www.juniper.net/techpubs/en_US/junos15.1/topics/concept/bgp-long-lived-graceful-restart.html https://datatracker.ietf.org/doc/draft-uttaro-idr-bgp-persistence/

So we need two directions:

pavel-odintsov commented 8 years ago

Hello!

We have found this feature in source code:

//struct for container bgp:config
type GracefulRestartConfig struct {
    // original -> bgp:enabled
    //bgp:enabled's original type is boolean
    Enabled bool
    // original -> bgp:restart-time
    RestartTime uint16
    // original -> bgp:stale-routes-time
    //bgp:stale-routes-time's original type is decimal64
    StaleRoutesTime float64
    // original -> bgp:helper-only
    //bgp:helper-only's original type is boolean
    HelperOnly bool

But we haven't any idea how to specify it in configuration file :(

fujita commented 8 years ago

GoBGP configuration format is mechanically generated from a YANG model under IETF standardization of BGP configuration: https://datatracker.ietf.org/doc/draft-shaikh-idr-bgp-model/?include_text=1

So you can find bgp configuration items that commonly used but some are not implemented yet. Graceful restart is still on our TODO list.

pavel-odintsov commented 8 years ago

Thanks for information!

pavel-odintsov commented 8 years ago

Hello!

I read this slides https://www.euro-ix.net/m/uploads/2015/10/23/MF_GoBGP-for-euroix_1QFWz3B.pdf

And found "Configuration reload is also fast. using kill –SIGHUP instead of vty".

Could you share some details about current implementation of this feature?

fujita commented 8 years ago

I guess that he meant that updating a config file and sending SIGHUP signal faster than changing the configuration via CLIs like Quagga especially when you need to change lots.

About the original topic of this issue, if the GR feature doesn't work, please create a new issue.

pavel-odintsov commented 8 years ago

It's already implemented and working perfect! This ticket has out of dated information :) Thanks!