Network Working Group Kireeti Kompella
Internet Draft Juniper Networks
Expiration Date: January 2001 Daniel O. Awduche
UUNET (MCI Worldcom)
Notes on Path Computation in Constraint-Based Routing
draft-kompella-te-pathcomp-00.txt
1. Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Distribution of this memo is unlimited.
2. Abstract
This draft presents some notes on Constraint-Based Routing. The main
purpose is to standardize the terminology used, and define the
semantics of the various constructs used in Constraint-Based Routing
so that implementations from a wide variety of vendors will have (at
least to the first order) similar results in path selection. A
secondary goal is to define the semantics of optimization, which we
define as the recalculation of routes that have already been computed
and established.
Kompella/Awduche [Page 1]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
3. Introduction
Traffic Engineering is of increasing interest in today's networks.
One of the objectives of Traffic Engineering is to obtain more
control over the path packets take: to be able to specify explicitly
the path that a certain class of packets takes [TE-REQ].
Constrained-Based Routing takes this one step further. Instead of
specifying the path explicitly, link by link, one specifies a route
in terms of the constraints that it should satisfy. The route
specification is then automatically converted into an explicit path.
This frees network administrators from the tedium of maintaining
detailed path specifications, and allows them to view the network at
a higher level of abstraction (i.e., in terms of resources and
constraints rather than nodes and links), resulting in more scalable
network operation. If the path computation and set up can be done
dynamically (by a router), there are further advantages. One is
resilience: if a node or link in an explicit path fails, the router
that set up the path can attempt to compute an alternate acceptable
path. If the explicit path in use becomes sub-optimal, the router
can compute a better path and switch to the new path.
For the purposes of this paper, we define a "route specification" (or
simply "route") to be source IP address and a non-empty sequence of
loose and strict hops (per [IP]) plus a set of constraints. We
define a "path" to mean a sequence of strict hops. By Constraint-
Based Routing, we mean the elaboration of a route specification into
a path whereby each loose hop in the route is transformed into a
sequence of strict hops such that the last strict hop is identical to
the loose hop and the transformation is subject to the route's
constraints. A route's sequence is thus a subsequence of the
elaborated path. We call the process of transforming a loose hop
into a sequence of strict hops a "path computation". If a route is
successfully elaborated into a path, the path can then be
instantiated, that is, signalled and used for forwarding traffic; we
call the route "operational". By "optimization" of a route, we mean
the recomputation of a path for an operational route.
Path computation requires that one has topological information about
the network (in order to elaborate loose hops into paths), as well as
the relevant resource information at each network element (in order
to meet the constraints). Link state protocols distribute the
topology of a network; there are currently standards-track drafts
that specify how link state protocols can distribute the additional
information needed for the computation of Constraint-Based Routes
[ISIS-TE, OSPF-TE]. However, the semantics of such information, as
well as details of path selection are less clearly (or indeed, not at
all) specified. This leads to the raison d'etre for this paper: what
Kompella/Awduche [Page 2]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
kinds of constraints are there, and what does it mean to satisfy
them? If there are several acceptable paths for a route, how does
one decide when one is better than another?
A second objective is to specify when a path resulting from the
optimization of a route should be preferred over the existing path.
The issue here is that switching from an existing path to a new one
could be service disruptive and cause some packet loss. Thus, one
would like to specify the criteria to use to judge that a newly
computed path is sufficiently better than the current path so that a
switch-over is warranted.
This paper does NOT specify how to implement Constraint-Based
Routing. However, the Dijkstra Shortest Path First algorithm is
easily adapted to path computation, based on the semantics presented.
4. Constraints and Resources
Constraints and resources are counterparts to one another: routes
have constraints, network elements have resources. As one explores
paths, one checks the constraints for the route against the resources
along the path to see that the constraints are met. The set of
resource information available during computation thus determines the
meaningful constraints that one can specify on a route. In this
section, we list constraints, their corresponding resources, and a
proposed semantics for each, where by 'semantics' we mean how the
constraint is to be measured up against the resource.
Constraints can be divided into Boolean and quantitative; some
constraints can be of both types. Boolean constraints say whether or
not a path is feasible. Quantitative constraints assign numerical
values to paths, so that one has a means of choosing among feasible
paths.
Resources can be divided into configurable, dynamic and topological.
Configurable resources are those assigned by an administrator, for
example, administrative groups and metrics for links. Dynamic
resources are those that depend on the state of the network, and vary
with time, for example, available bandwidth on a link. Topological
"resources" are those that are enforced by the topology of the
network, for example, path length. This categorization of resources
measures the degree of control that an administrator has over the
path computation process.
Note that Constraint-Based Routing can easily become intractable if
the constraints and their semantics are not carefully chosen. A
seemingly simple problem to compute the shortest path subject to a
Kompella/Awduche [Page 3]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
fixed delay bound is NP-complete. The set of constraints and
methodology described here can indeed be implemented efficiently;
care must be taken when adding new resources, constraints and
semantics that Constraint-Based Routing is still computationally
efficient.
The methodology here is an adaptation of Dijkstra's Shortest Path
First algorithm. With each constraint is associated an attribute.
Each node has a set of attribute values that reflect the properties
of the current best path to that node (in Dijkstra's algorithm, the
analog is the current shortest distance to this node). Each
attribute has an associated accumulator function and either an
acceptor function or a comparator function.
The inductive step in Dijkstra's algorithm is to extend a best path P
to a node S by one link L = (S, E) to a best path P' to a neighboring
node E. An accumulator function is applied at this stage. An
accumulator function for attribute X with associated resource R takes
as input S.X and L.R and produces a candidate value for E.X. The
analog in Dijkstra's algorithm is extending the shortest distance to
a node to a candidate shortest distance to a neighboring node.
An acceptor function says whether the path P' resulting from the
inductive step above satisfies a Boolean constraint (this has no
analog in Dijkstra's algorithm). An acceptor function takes a node's
candidate attribute and a Boolean constraint and outputs ACCept or
REJect. A comparator function says whether a node's candidate
attribute is better than the node's current attribute (the analog is
distance comparison). It takes as input a node's candidate and
current attribute values, and outputs ACCept, REJect or CONTinue.
The next two subsections describe the semantics of Boolean and
quantitative constraints, as well as accumulator and comparator
functions for the associated attributes.
Some terminology: if L is a directed link from node A to node B
(often denoted L = (A, B)), we denote by S(L) the start node A, and
by E(L) the end node B. Resources are values associated with network
elements; each node in the network computes the values of all its own
resources as well as those of each outgoing link, then distributes
all the resource values through extensions to a link state protocol.
Currently, resources are defined only for links; however, in the
future, nodes may also have resources. L. denotes the value of
the resource at link L.
Attributes are values associated with nodes; they are initialized at
the beginning of a path computation, updated during the computation,
and discarded at the end of the path computation. An attribute value
Kompella/Awduche [Page 4]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
to node N depends on the path taken to N (for example, distance from
the start is a node attribute). N. denotes the value of the
attribute at node N. Also, when a candidate alternative path
to N is considered, the attribute of the candidate path at N is
denoted N.cand.
4.1. Boolean Constraints and their Resources
Boolean constraints include: administrative group constraints,
bandwidth availability, delay bounds, and hop count bounds. The
resources corresponding to the Boolean constraints are:
administrative groups configured on links, available bandwidth on
links, configured delay on links and nodes, and path length. (Note
that delay is not carried by the current set of extensions to link
state protocols.)
It is important to note that, in principle, Boolean constraints
should be link-local, i.e., deciding whether or not a link is
acceptable should depend only on the link resources and the
constraints, not on the path so far or other context. If this is not
satisfied, computing constrained routes can easily become an NP-
complete problem. For example, computing a shortest path with
bounded delay is in fact NP-complete. However, delay and hop count
are useful constraints, so we allow them. The downside is that a
modified Dijkstra will not always find the optimal path, and may fail
to find a path even though one exists.
4.1.1. Administrative Groups
Every link in the network can be associated with a set of up to 32
administrative groups, represented as a 32-bit integer. A route can
have administrative group constraints on the links that the path can
traverse.
Current implementations have at least two ways of describing
administrative group constraints. One method is to specify 'include'
and 'exclude' sets; the other is to specify an 'affinity' and 'mask'.
Let the set of administrative groups associated with link L be L.AG,
with bit representation ag.
Let a route have an include set of INC (bit representation = inc) and
an exclude set of EXC (bit representation = exc). If INC
(respectively, EXC) is empty, the include (respectively, exclude)
constraint is defined to be trivially satisfied. Otherwise, link L
satisfies the include constraint iff L.AG includes at least one
Kompella/Awduche [Page 5]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
administrative group from INC; L satisfies the exclude constraint iff
L.AG excludes all administrative groups from EXC. L satisfies the
administrative group constraint iff L satisfies both the include and
the exclude constraints. Equivalently, link L is acceptable iff:
(inc & ag) != 0 && (exc & ag) == 0
where & is bit-wise AND. If a link does not have a set of
administrative groups (as opposed to having an empty set), by
definition, it fails all non-trivial include and exclude constraints.
Let a route have an affinity with bit representation aff, and a mask
with bit representation m. The above link satisfies the affinity-
mask constraint iff:
(mask & ag) == aff
The two methods of specifying administrative group constraints are
close, but not equivalent. Here, equivalent means that given an
include and exclude set, one can produce an affinity and mask that
accept exactly the same set of links, and vice versa. In the
interests of interoperability, it would be good to either converge on
equivalent semantics or provide knobs to choose the semantics.
Service providers and other users should provide guidance here.
Attribute: none
Acceptor: if appropriate conditional is TRUE then ACC else REJ
4.1.2. Bandwidth Availability
A route can specify a required bandwidth RB and a priority p. A link
has three types of bandwidth information: available bandwidth at each
of several priority levels, AB[p]; maximum bandwidth for a route, MB;
and total reservable bandwidth, TB. A link satisfies the bandwidth
constraint iff both its available bandwidth at priority p (AB[p]) and
the maximum bandwidth are at least as much as the specified
bandwidth. If the final computed path includes this link, preemption
will be required if RB > LB[q] for some priority q lower than p.
L.AB[p] is initially the reservable bandwidth of link L; this value
changes as reservations are made and withdrawn.
Attribute: none
Acceptor: if RB <= L.AB[p] && RB <= L.MB then ACC else REJ
Kompella/Awduche [Page 6]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
4.1.3. Delay Bounds
A route can specify the maximum delay Dmax it can tolerate. A link L
is acceptable for this route if the accumulated delay at the start
node for the link (S(L).ND) plus the link delay (L.D) plus is at most
D. L.D is either configured or derived from the link characteristics
of link L.
Attribute: ND
Initial value: 0
Accumulator: E(L).NDcand = S(L).ND + L.D
Acceptor: if E(L).NDcand <= Dmax then ACC else REJ
4.1.4. Hop Count
A route can specify that it can have at most HCmax hops.
Attribute: HC
Initial value: 0
Accumulator: E(L).HCcand = S(L).HC + 1
Acceptor: if E(L).HCcand <= HCmax then ACC else REJ
4.2. Quantitative Constraints and their Resources
Quantitative constraints include residual bandwidth ratio, path
metric, 'resilience' (see below) and hop count. The resources
corresponding to quantitative constraints are: residual bandwidth,
metric, penalty and path length. Each route specifies the list of
qualitative constraints that should be enforced, and in what order
(see section 3).
4.2.1. Path Metric
Path metric (distance) is just the sum of the metrics on all the
links in a path. Each node tracks the current shortest distance to
it in the attribute PM; each link has a resource M which is the
link's configured metric.
Attribute: PM
Kompella/Awduche [Page 7]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
Initial value: 0
Accumulator: PMcand = S(L).PM + L.M
Comparator(PMcand, PM):
if (PMcand == PM) then CONT
else if (PMcand < PM) then ACC else REJ
4.2.2. Residual Bandwidth Ratio
As we saw in the description of Available Bandwidth, a route can
specify a required bandwidth RB and a priority p. The residual
bandwidth of a link L is the available bandwidth of L at priority p
if the route were to go through L, i.e., L.AB[p] - RB. The residual
bandwidth ratio is a measure of the "fullness" of a link, given by
the ratio of the residual bandwidth to the total reservable bandwidth
on a link: (L.AB[p] - RB)/L.TB.
Each node has an attribute that is an array of k RBRs, sorted from
smallest to largest, where k is the number of elements in the array.
Thus, for each path, the k smallest RBRs are tracked.
Attribute: a sorted array AR of k RBRs, smallest to largest. We
suggest that k, the number of elements in the array, be at least 4.
Initial value: AR[i] = 1.0, 0 <= i < k.
Accumulator: E(L).ARcand = S(L).AR + L.RBR, where AR + RBR is
a new array with RBR inserted into AR in sorted order, keeping
only k elements.
Comparator(ARcand, AR): Let i be the smallest index such that
ARcand[i] != AR[i]. If ARcand and AR are identical, set i = k.
if i == k, then CONT
else if ARcand[i] < AR[i] then ACC else REJ.
4.2.3. Resilience
As mentioned earlier, the purpose of a constrained route is to
specify the path over which some class of traffic is carried. Many
implementations allow the specification of multiple paths for a given
traffic class: a primary path and zero or more backup paths. The
idea is to provide some degree of resilience: if the current
operational path fails for any reason, traffic can be switched to a
backup path.
Kompella/Awduche [Page 8]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
The usual reason for path failure is that some network element (node
or link) that it is using fails. That being the case, it is
preferable that backup paths do not have network elements in common
with the primary path. This constraint attempts to accomplish this.
Note that this constraint only applies to backup path computation.
Since the primary is the preferred path, it is not subject to this
constraint; any previously set up backup path that shares a network
element with the primary should be torn down and recomputed: i.e.,
the primary path should have a free run (subject to its own
constraints), and the backup paths adjust themselves to stay away
from the primary.
The notion of Shared Risk Link Group (SRLG) takes this one step
further: it identifies links that are disjoint from a layer 2
perspective, but share a common risk (e.g., they may be in the same
fiber bundle).
In a later version, we will describe how SRLG can be taken into
account when computing backup paths.
5. Path Selection
It is well-known that the shortest path problem with two or more
independent metrics is NP-complete [NPC]. Now, path computation has
multiple metrics, namely, each quantitative constraint. To make path
computation tractable, we enforce an order among the quantitative
constraints. Ideally, this order should be configurable by the
network administrator. As a default ordering of the constraints, we
suggest: path metric, resilience, residual bandwidth ratio and hop
count, in that order.
5.1. Link Acceptance
Suppose we are given a route R with an ordering of its quantitative
constraints, and a loose hop for which we are trying to compute a
path. Suppose further that we have a best path from the starting
point to some node N. We attempt to extend this path to a best path
to each neighbor of N as follows. Let L be a link from N to a node
M. For each attribute of N, apply the appropriate accumulator
function on the pair (N, L) to obtain candidate attribute values for
M.
For each Boolean constraint for R, apply the appropriate acceptor
function on the candidate attribute and constraint. If the output is
REJ, the link L is unacceptable for R. That is, all acceptor
Kompella/Awduche [Page 9]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
functions must return ACC for a link to be acceptable for a route.
5.2. Path Selection
Continuing the scenario in the previous section, suppose that a link
L is deemed acceptable. For each quantitative constraint, in order,
the corresponding comparator function is applied on the candidate and
current attribute of M:
If the result is ACC, we have a new best path to node M.
If the result is REJ, the old best path to M is better.
If the result is CONT, the two paths are tied on this constraint:
go on to the next constraint.
If we have a new best path to node M, all of M's attributes are
changed to the candidate values computed by the accumulator
functions.
6. Optimization
This will be described in a future revision.
7. References
[IP] Postel, J., "Internet Protocol", RFC 791, September 1981.
[TE-REQ] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J.
McManus, "Requirements for Traffic Engineering Over MPLS", RFC
2702, September 1999.
[ISIS-TE] Smit, H., Li, T., "IS-IS extensions for Traffic
Engineering", draft-ietf-isis-traffic-01.txt (work in progress)
[OSPF-TE] Katz, D., Yeung, D., "Traffic Engineering Extensions to
OSPF", draft-katz-yeung-ospf-traffic-01.txt (work in progress)
Kompella/Awduche [Page 10]
Internet Draft draft-kompella-te-pathcomp-00.txt July 2000
8. Security Considerations
Security considerations are not discussed in this memo.
9. Authors' Addresses:
Daniel O. Awduche
UUNET (MCI Worldcom)
22001 Loudoun County Parkway
Ashburn, VA 20147
Phone: 703-886-5277
Email: awduche@uu.net
Kireeti Kompella
Juniper Networks, Inc.
1194 N. Mathilda Ave
Sunnyvale, CA 94089
Email: kireeti@juniper.net
Kompella/Awduche [Page 11]