summaryrefslogtreecommitdiffhomepage
path: root/server/zclient.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/zclient.go')
-rw-r--r--server/zclient.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/server/zclient.go b/server/zclient.go
index eb3e0b81..5b1ba483 100644
--- a/server/zclient.go
+++ b/server/zclient.go
@@ -210,7 +210,11 @@ func (m *nexthopTrackingManager) filterPathToRegister(paths pathList) pathList {
func filterOutExternalPath(paths pathList) pathList {
filteredPaths := make(pathList, 0, len(paths))
for _, path := range paths {
- if path == nil || path.IsFromExternal() {
+ // Here filters out:
+ // - Nil path
+ // - External path (advertised from Zebra) in order avoid sending back
+ // - Unreachable path because invalidated by Zebra
+ if path == nil || path.IsFromExternal() || path.IsNexthopInvalid {
continue
}
filteredPaths = append(filteredPaths, path)