summaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/fsm.go3
-rw-r--r--server/fsm_test.go2
-rw-r--r--server/peer.go12
3 files changed, 9 insertions, 8 deletions
diff --git a/server/fsm.go b/server/fsm.go
index c255c021..c9950a5d 100644
--- a/server/fsm.go
+++ b/server/fsm.go
@@ -391,8 +391,7 @@ func capabilitiesFromConfig(gConf *config.Global, pConf *config.Neighbor) []bgp.
caps = append(caps, bgp.NewCapRouteRefresh())
for _, rf := range pConf.AfiSafis.AfiSafiList {
k, _ := bgp.GetRouteFamily(rf.AfiSafiName)
- afi, safi := bgp.RouteFamilyToAfiSafi(k)
- caps = append(caps, bgp.NewCapMultiProtocol(afi, safi))
+ caps = append(caps, bgp.NewCapMultiProtocol(k))
}
caps = append(caps, bgp.NewCapFourOctetASNumber(gConf.GlobalConfig.As))
return caps
diff --git a/server/fsm_test.go b/server/fsm_test.go
index db9be4b3..72dfe05f 100644
--- a/server/fsm_test.go
+++ b/server/fsm_test.go
@@ -313,7 +313,7 @@ func open() *bgp.BGPMessage {
p1 := bgp.NewOptionParameterCapability(
[]bgp.ParameterCapabilityInterface{bgp.NewCapRouteRefresh()})
p2 := bgp.NewOptionParameterCapability(
- []bgp.ParameterCapabilityInterface{bgp.NewCapMultiProtocol(3, 4)})
+ []bgp.ParameterCapabilityInterface{bgp.NewCapMultiProtocol(bgp.RF_IPv4_UC)})
g := bgp.CapGracefulRestartTuples{4, 2, 3}
p3 := bgp.NewOptionParameterCapability(
[]bgp.ParameterCapabilityInterface{bgp.NewCapGracefulRestart(2, 100,
diff --git a/server/peer.go b/server/peer.go
index 67e2c437..45cb1c79 100644
--- a/server/peer.go
+++ b/server/peer.go
@@ -135,7 +135,7 @@ func (peer *Peer) handleBGPmessage(m *bgp.BGPMessage) ([]*table.Path, bool, []*b
if c.Code() == bgp.BGP_CAP_MULTIPROTOCOL {
m := c.(*bgp.CapMultiProtocol)
- r[bgp.AfiSafiToRouteFamily(m.CapValue.AFI, m.CapValue.SAFI)] = true
+ r[m.CapValue] = true
}
}
}
@@ -246,17 +246,19 @@ func (peer *Peer) ToApiStruct() *api.Peer {
f := peer.fsm
c := f.pConf
- remoteCap := make([]*api.Capability, 0, len(peer.capMap))
+ remoteCap := make([][]byte, 0, len(peer.capMap))
for _, c := range peer.capMap {
for _, m := range c {
- remoteCap = append(remoteCap, m.ToApiStruct())
+ buf, _ := m.Serialize()
+ remoteCap = append(remoteCap, buf)
}
}
caps := capabilitiesFromConfig(&peer.gConf, &peer.conf)
- localCap := make([]*api.Capability, 0, len(caps))
+ localCap := make([][]byte, 0, len(caps))
for _, c := range caps {
- localCap = append(localCap, c.ToApiStruct())
+ buf, _ := c.Serialize()
+ localCap = append(localCap, buf)
}
conf := &api.PeerConf{