summaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/config/bgp_configs.go
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@gmail.com>2019-04-01 21:22:11 +0900
committerFUJITA Tomonori <fujita.tomonori@gmail.com>2019-04-02 16:01:29 +0900
commitccdc2e6277020e571da7792c1d9e76cf13e82f44 (patch)
treec3df5db11d72ec9a2314ba41bfccc9ea9fd47feb /internal/pkg/config/bgp_configs.go
parent805d02fdfbc5092ef7a676b1c3a63dfb32571b47 (diff)
add secondary-route feature for router server
if an export policy rejects a selected route, try the next route in order until one that is accepted is found or all routes for the peer are rejected. the default is disabled. You can enable this feature in the following way: [neighbors.route-server.config] route-server-client = true secondary-route = true Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
Diffstat (limited to 'internal/pkg/config/bgp_configs.go')
-rw-r--r--internal/pkg/config/bgp_configs.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/pkg/config/bgp_configs.go b/internal/pkg/config/bgp_configs.go
index f5a8215b..8dee732d 100644
--- a/internal/pkg/config/bgp_configs.go
+++ b/internal/pkg/config/bgp_configs.go
@@ -2020,6 +2020,12 @@ type RouteServerState struct {
// gobgp:route-server-client's original type is boolean.
// Configure the neighbor as a route server client.
RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"`
+ // original -> gobgp:secondary-route
+ // gobgp:secondary-route's original type is boolean.
+ // if an export policy rejects a selected route, try the next route in
+ // order until one that is accepted is found or all routes for the peer
+ // are rejected.
+ SecondaryRoute bool `mapstructure:"secondary-route" json:"secondary-route,omitempty"`
}
// struct for container gobgp:config.
@@ -2030,6 +2036,12 @@ type RouteServerConfig struct {
// gobgp:route-server-client's original type is boolean.
// Configure the neighbor as a route server client.
RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"`
+ // original -> gobgp:secondary-route
+ // gobgp:secondary-route's original type is boolean.
+ // if an export policy rejects a selected route, try the next route in
+ // order until one that is accepted is found or all routes for the peer
+ // are rejected.
+ SecondaryRoute bool `mapstructure:"secondary-route" json:"secondary-route,omitempty"`
}
func (lhs *RouteServerConfig) Equal(rhs *RouteServerConfig) bool {
@@ -2039,6 +2051,9 @@ func (lhs *RouteServerConfig) Equal(rhs *RouteServerConfig) bool {
if lhs.RouteServerClient != rhs.RouteServerClient {
return false
}
+ if lhs.SecondaryRoute != rhs.SecondaryRoute {
+ return false
+ }
return true
}