summaryrefslogtreecommitdiffhomepage
path: root/table/table_manager.go
diff options
context:
space:
mode:
Diffstat (limited to 'table/table_manager.go')
-rw-r--r--table/table_manager.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/table/table_manager.go b/table/table_manager.go
index 7a913b6d..0967f5d1 100644
--- a/table/table_manager.go
+++ b/table/table_manager.go
@@ -336,21 +336,29 @@ func NewAdjRib() *AdjRib {
return r
}
-func (adj *AdjRib) UpdateIn(pathList []Path) {
+func (adj *AdjRib) update(rib map[RouteFamily]map[string]*ReceivedRoute, pathList []Path) {
for _, path := range pathList {
rf := path.getRouteFamily()
key := path.getPrefix().String()
if path.isWithdraw() {
- _, found := adj.adjRibIn[rf][key]
+ _, found := rib[rf][key]
if found {
- delete(adj.adjRibIn[rf], key)
+ delete(rib[rf], key)
}
} else {
- adj.adjRibIn[rf][key] = NewReceivedRoute(path, false)
+ rib[rf][key] = NewReceivedRoute(path, false)
}
}
}
+func (adj *AdjRib) UpdateIn(pathList []Path) {
+ adj.update(adj.adjRibIn, pathList)
+}
+
+func (adj *AdjRib) UpdateOut(pathList []Path) {
+ adj.update(adj.adjRibOut, pathList)
+}
+
type ReceivedRoute struct {
path Path
filtered bool