peer: add accepted route counter

cut time of gobgp neighbor command

Signed-off-by: ISHIDA Wataru <[email protected]>
This commit is contained in:
ISHIDA Wataru
2015-09-30 16:20:32 +09:00
parent eaa7810893
commit bbdfde029d
2 changed files with 11 additions and 4 deletions
+10 -3
View File
@@ -43,6 +43,7 @@ type Peer struct {
outgoing chan *bgp.BGPMessage
inPolicies []*policy.Policy
defaultInPolicy config.DefaultPolicyType
accepted uint32
importPolicies []*policy.Policy
defaultImportPolicy config.DefaultPolicyType
exportPolicies []*policy.Policy
@@ -291,13 +292,11 @@ func (peer *Peer) ToApiStruct() *api.Peer {
advertized := uint32(0)
received := uint32(0)
accepted := uint32(0)
if f.state == bgp.BGP_FSM_ESTABLISHED {
for _, rf := range peer.configuredRFlist() {
advertized += uint32(peer.adjRib.GetOutCount(rf))
received += uint32(peer.adjRib.GetInCount(rf))
// FIXME: we should store 'accepted' in memory
accepted += uint32(len(peer.ApplyPolicy(POLICY_DIRECTION_IN, peer.adjRib.GetInPathList(rf))))
}
}
@@ -331,7 +330,7 @@ func (peer *Peer) ToApiStruct() *api.Peer {
Uptime: uptime,
Downtime: downtime,
Received: received,
Accepted: accepted,
Accepted: peer.accepted,
Advertized: advertized,
OutQ: uint32(len(peer.outgoing)),
Flops: s.Flops,
@@ -443,6 +442,9 @@ func (peer *Peer) ApplyPolicy(d PolicyDirection, paths []*table.Path) []*table.P
switch result {
case policy.ROUTE_TYPE_ACCEPT:
newpaths = append(newpaths, newpath)
if d == POLICY_DIRECTION_IN {
peer.accepted += 1
}
case policy.ROUTE_TYPE_REJECT:
log.WithFields(log.Fields{
"Topic": "Peer",
@@ -454,3 +456,8 @@ func (peer *Peer) ApplyPolicy(d PolicyDirection, paths []*table.Path) []*table.P
}
return newpaths
}
func (peer *Peer) DropAll(rf bgp.RouteFamily) {
peer.adjRib.DropAll(rf)
peer.accepted = 0
}
+1 -1
View File
@@ -733,7 +733,7 @@ func (server *BgpServer) handleFSMMessage(peer *Peer, e *fsmMsg, incoming chan *
}
for _, rf := range peer.configuredRFlist() {
peer.adjRib.DropAll(rf)
peer.DropAll(rf)
}
msgs = append(msgs, server.dropPeerAllRoutes(peer)...)