From 93f767c6dba6b1353bfb852457b57a602402924f Mon Sep 17 00:00:00 2001 From: Oliver Herms <oliver.herms@exaring.de> Date: Thu, 18 Oct 2018 16:09:27 +0200 Subject: [PATCH] Cleanup --- routingtable/adjRIBOut/adj_rib_out.go | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go index e195ff01..7aa1eb77 100644 --- a/routingtable/adjRIBOut/adj_rib_out.go +++ b/routingtable/adjRIBOut/adj_rib_out.go @@ -138,29 +138,28 @@ func (a *AdjRIBOut) RemovePath(pfx bnet.Prefix, p *route.Path) bool { return false } + q := p if a.addPathTX { for _, q := range r.Paths() { if q.Select(p) == 0 { a.rt.RemovePath(pfx, q) + + // try to find the PathID + pathID, err := a.pathIDManager.releasePath(p) + if err != nil { + log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err) + return true + } + + p = p.Copy() + p.BGPPath.PathIdentifier = pathID } } } else { a.rt.RemovePath(pfx, p) } - // If the neighbor has AddPath capabilities, try to find the PathID - if a.addPathTX { - pathID, err := a.pathIDManager.releasePath(p) - if err != nil { - log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err) - return true - } - - p = p.Copy() - p.BGPPath.PathIdentifier = pathID - } - - a.removePathFromClients(pfx, p) + a.removePathFromClients(pfx, q) return true } -- GitLab