diff options
author | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2016-01-23 20:40:16 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-02-10 22:15:04 -0800 |
commit | 36f8911cee2557a0065ee291d03a6c6d88b537c0 (patch) | |
tree | b8eabbef187660c8a4b03cdbed0685c8581fec87 /table/path.go | |
parent | c3dbc58040a289aed7673149145e7d3a4944e183 (diff) |
table: support sending/receiving EOR msg
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'table/path.go')
-rw-r--r-- | table/path.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/table/path.go b/table/path.go index 3837333f..bb3eb7a3 100644 --- a/table/path.go +++ b/table/path.go @@ -54,6 +54,7 @@ type originInfo struct { isFromZebra bool key string uuid []byte + eor bool } type Path struct { @@ -89,6 +90,24 @@ func NewPath(source *PeerInfo, nlri bgp.AddrPrefixInterface, isWithdraw bool, pa } } +func NewEOR(family bgp.RouteFamily) *Path { + afi, safi := bgp.RouteFamilyToAfiSafi(family) + nlri, _ := bgp.NewPrefixFromRouteFamily(afi, safi) + return &Path{ + info: &originInfo{ + nlri: nlri, + eor: true, + }, + } +} + +func (path *Path) IsEOR() bool { + if path.info != nil && path.info.eor { + return true + } + return false +} + func cloneAsPath(asAttr *bgp.PathAttributeAsPath) *bgp.PathAttributeAsPath { newASparams := make([]bgp.AsPathParamInterface, len(asAttr.Value)) for i, param := range asAttr.Value { |