summaryrefslogtreecommitdiffhomepage
path: root/internal/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'internal/pkg')
-rw-r--r--internal/pkg/config/bgp_configs.go15
-rw-r--r--internal/pkg/config/util.go2
2 files changed, 17 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
}
diff --git a/internal/pkg/config/util.go b/internal/pkg/config/util.go
index 2c2a78c8..78a0e713 100644
--- a/internal/pkg/config/util.go
+++ b/internal/pkg/config/util.go
@@ -522,6 +522,7 @@ func NewPeerFromConfigStruct(pconf *Neighbor) *api.Peer {
},
RouteServer: &api.RouteServer{
RouteServerClient: pconf.RouteServer.Config.RouteServerClient,
+ SecondaryRoute: pconf.RouteServer.Config.SecondaryRoute,
},
GracefulRestart: &api.GracefulRestart{
Enabled: pconf.GracefulRestart.Config.Enabled,
@@ -587,6 +588,7 @@ func NewPeerGroupFromConfigStruct(pconf *PeerGroup) *api.PeerGroup {
},
RouteServer: &api.RouteServer{
RouteServerClient: pconf.RouteServer.Config.RouteServerClient,
+ SecondaryRoute: pconf.RouteServer.Config.SecondaryRoute,
},
GracefulRestart: &api.GracefulRestart{
Enabled: pconf.GracefulRestart.Config.Enabled,