summaryrefslogtreecommitdiffhomepage
path: root/table/table_manager.go
diff options
context:
space:
mode:
authorISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>2016-01-23 20:40:16 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-02-10 22:15:04 -0800
commit36f8911cee2557a0065ee291d03a6c6d88b537c0 (patch)
treeb8eabbef187660c8a4b03cdbed0685c8581fec87 /table/table_manager.go
parentc3dbc58040a289aed7673149145e7d3a4944e183 (diff)
table: support sending/receiving EOR msg
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'table/table_manager.go')
-rw-r--r--table/table_manager.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/table/table_manager.go b/table/table_manager.go
index ebfd0beb..afb4deac 100644
--- a/table/table_manager.go
+++ b/table/table_manager.go
@@ -105,6 +105,9 @@ func ProcessMessage(m *bgp.BGPMessage, peerInfo *PeerInfo, timestamp time.Time)
pathList = append(pathList, withdraw2Path(m, peerInfo, timestamp)...)
pathList = append(pathList, mpreachNlri2Path(m, peerInfo, timestamp)...)
pathList = append(pathList, mpunreachNlri2Path(m, peerInfo, timestamp)...)
+ if y, f := m.Body.(*bgp.BGPUpdate).IsEndOfRib(); y {
+ pathList = append(pathList, NewEOR(f))
+ }
return pathList
}
@@ -236,7 +239,7 @@ func (manager *TableManager) ProcessPaths(pathList []*Path) []*Destination {
m := make(map[string]bool, len(pathList))
dsts := make([]*Destination, 0, len(pathList))
for _, path := range pathList {
- if path == nil {
+ if path == nil || path.IsEOR() {
continue
}
rf := path.GetRouteFamily()