diff options
Diffstat (limited to 'table/table_manager.go')
-rw-r--r-- | table/table_manager.go | 16 |
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 |