Route Representation¶
Open/R provides flexible ways of expressing reachability information. It allows
a network operator to express Preference
, Performance
, and Policy Metadata
with every route announcement. This document describes the route representation
in detail.
Design Rationale¶
Simplicity and flexibility are the two main criteria that we considered into the design of Open/R route. Traditional protocols like BGP, OSPF, and ISIS influenced the design. The key takeaways
Numeric metrics to indicate route preference
Customizable forwarding behaviors within Area
Meta-data for influencing route policing at Area Border
Expressing performance requirements
Path tracing
Definitions¶
transitive
¶
Attributes that are preserved during route re-distribution at Area Border. Note
that not all transitive
attributes are mutable
by the policy.
non-transitive
is the opposite of transitive
.
mutable
¶
The route attribute that can be altered by the policy during route
re-distribution at Area Border. immutable
is the opposite of mutable
.
Attributes¶
> prefix
¶
transitive
, immutable
Express Network Layer Reachability Information (NLRI)
for IPv4 or IPv6. This is a key attribute of the advertised route.
> metrics
¶
Expresses the relative preference of route among all received advertisements. The metrics can be tuned to prefer one network path over another or prefer certain applications over another in-case of anycast addresses. Open/R supports 3 dimensions of metrics to express a preference. The design allows us to add more metrics in the future based on the use-case. All metrics are numeric by definition, as it greatly simplifies the understanding and implementation.
metrics.path_preference
numeric
, transitive
, mutable
,
prefer-higher
, 1st criterion
Network path preference for this route. This is
set at the origination point. It is either retained (transitive) or updated as
the route traverses the network. e.g. LIVE-PATH=1000, DRAINED-PATH=500
metrics.source_preference
numeric
, transitive
, immutable
,
prefer-higher
, 2nd criterion
User or Application preference of the route.
Set at the origination point and is never modified as route propagates in the
network. e.g. HIGH-PRI=200, LOW-PRI=100
metrics.distance
numeric
, transitive
, mutable
, prefer-lower
,
3rd criterion
Cost to reach the originating node from the current area border.
By default incremented by igp_cost
of the route within the area during route
re-distribution across area. Should never decrease if manipulated via policy to
ensure loop-free routing. This resembles AS-Path length of BGP
Take a look at Decision Route Computation for understanding best route selection process
> area_stack
¶
list[string]
, transitive
, immutable
An ordered list of areas the route has
traversed so far. The entry at the front indicates the originating area
, while
entry at the back indicates the peer area
re-distributing the route. This
helps in preventing route looping and debugging.
You can draw similar to BGP AS-Path. However, note that it is not used in best route selection and can’t be modified by the policy.
> forwarding-algorithm
¶
non-transitive
, mutable
Link-state algorithm for route computaion. Open/R
supports two forwarding algorithm, SP_ECMP
(Shortest Path ECMP) and
KSP2_ED_ECMP
(K-Shortest Path). The algorithm with the lowest value is chosen
in-case of conflicting advertisements.
> forwarding-type
¶
non-transitive
, mutable
Data plane forwarding mechanism to use. Open/R
supports two forwarding types, IP
(Usual IP routing) and SR_MPLS
(Source
Routing with MPLS data plane). The type with the lowest value is chosen in-case
of conflicting advertisements.
NOTE:
KSP2_ED_ECMP
is only compatible withSR_MPLS
forwarding type.
> min-nexthops
¶
optional[numeric]
, non-transitive
, mutable
Expresses the minimum number of
next-hops on a computed route. The route is programmed and hence re-distributed
if min-next-hop criteria is met. Kind of a performance requirement. This feature
helps to avoid funneling in the CLOS-Fabric networks when the capacity of one of
the planes is reduced greatly compared to others because of maintenance or
device failure.