diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/fsm.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/server/fsm.go b/server/fsm.go index 2f93ff03..e680f8ec 100644 --- a/server/fsm.go +++ b/server/fsm.go @@ -561,6 +561,21 @@ func capabilitiesFromConfig(pConf *config.Neighbor) []bgp.ParameterCapabilityInt caps = append(caps, bgp.NewCapLongLivedGracefulRestart(ltuples)) } } + + // unnumbered BGP + if pConf.Config.NeighborInterface != "" { + tuples := []*bgp.CapExtendedNexthopTuple{} + families, _ := config.AfiSafis(pConf.AfiSafis).ToRfList() + for _, family := range families { + if family == bgp.RF_IPv6_UC { + continue + } + tuple := bgp.NewCapExtendedNexthopTuple(family, bgp.AFI_IP6) + tuples = append(tuples, tuple) + } + cap := bgp.NewCapExtendedNexthop(tuples) + caps = append(caps, cap) + } return caps } |