diff --git a/route/route.go b/route/route.go index f9251bbcef51371005215b99b1efa58fae17d26a..e6b46ee6bd3e4bd69927f9cb97ec386dae0aaa56 100644 --- a/route/route.go +++ b/route/route.go @@ -28,7 +28,7 @@ type Route struct { ecmpPaths uint } -// NewRoute generates a new route with paths p +// NewRoute generates a new route with path p func NewRoute(pfx net.Prefix, p *Path) *Route { r := &Route{ pfx: pfx, @@ -43,6 +43,23 @@ func NewRoute(pfx net.Prefix, p *Path) *Route { return r } +// NewRouteAddPath generates a new route with paths p +func NewRouteAddPath(pfx net.Prefix, p []*Path) *Route { + r := &Route{ + pfx: pfx, + } + + if p == nil { + r.paths = make([]*Path, 0) + return r + } + + for _, path := range p { + r.paths = append(r.paths, path) + } + return r +} + // Copy returns a copy of route r func (r *Route) Copy() *Route { if r == nil {