summaryrefslogtreecommitdiffhomepage
path: root/table/path.go
diff options
context:
space:
mode:
Diffstat (limited to 'table/path.go')
-rw-r--r--table/path.go19
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 {