summaryrefslogtreecommitdiffhomepage
path: root/table/destination.go
diff options
context:
space:
mode:
Diffstat (limited to 'table/destination.go')
-rw-r--r--table/destination.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/table/destination.go b/table/destination.go
index 6f4f95ad..cef2086f 100644
--- a/table/destination.go
+++ b/table/destination.go
@@ -378,8 +378,8 @@ func (dest *Destination) explicitWithdraw() paths {
for _, withdraw := range dest.withdrawList {
isFound := false
for _, path := range dest.knownPathList {
- // We have a match if the source are same.
- if path.GetSource().Equal(withdraw.GetSource()) {
+ // We have a match if the source and path-id are same.
+ if path.GetSource().Equal(withdraw.GetSource()) && path.GetNlri().PathIdentifier() == withdraw.GetNlri().PathIdentifier() {
isFound = true
// this path is referenced in peer's adj-rib-in
// when there was no policy modification applied.
@@ -430,7 +430,7 @@ func (dest *Destination) implicitWithdraw() paths {
// version num. as newPaths are implicit withdrawal of old
// paths and when doing RouteRefresh (not EnhancedRouteRefresh)
// we get same paths again.
- if newPath.GetSource().Equal(path.GetSource()) {
+ if newPath.GetSource().Equal(path.GetSource()) && newPath.GetNlri().PathIdentifier() == path.GetNlri().PathIdentifier() {
log.WithFields(log.Fields{
"Topic": "Table",
"Key": dest.GetNlri().String(),