Explicit Route Path LSPs
An explicit route is a specified path through a routed network topology.
The path can be strictly or loosely specified. If strictly specified, each
node or group of nodes along the path must be configured. Thus, no deviation from the
specified path is allowed.
Loosely specified paths allow for local flexibility in fulfilling the
requested path to the destination. This feature allows for significant leeway by the LSR
in choosing the next hop when incomplete information about the details of the path is
generated by the LER. Each node along the path may use other metrics to pick the next
hop along the path, such as bandwidth available, class of service, or link cost. The
command configure mpls rsvp-te path path_name add ero is used to add
an Explicit Route Object to a path container.
An explicit routed path is encoded using the explicit route object
(ERO) and is transmitted in the path message. The ERO consists of
a list of subobjects, each of which describes an abstract node. By
definition, an abstract node can be an IP prefix or an autonomous
system (AS) number. The ExtremeXOS RSVP-TE implementation supports
only IPv4 abstract nodes. The ExtremeXOS RSVP-TE implementation
supports both strict and loose IPv4 abstract nodes. Received path messages
with EROs that contain any other subobject type result in the transmittal
of an Unknown object class error message. All LSRs along the specified
path must support the inclusion of the ERO in the path message for
an explicitly routed path to be successfully set up.
An LSR receiving a path message containing an ERO must determine
the next hop for this path.
The steps for selection of the next hop are as follows:
- The receiving LSR evaluates the first subobject. If the
subobject type is not supported or there is no subobject, a Bad ERO error is
returned. The abstract node is evaluated to ensure that this LSR was the valid next
hop for the path message. If the subobject is a strict abstract node, the abstract
node definition must match the local interface address. If it does, then this LSR is
considered to be a member of the abstract node. Additionally, if the /32 address
matches a local interface address, the path message must have been received on the
direct interface corresponding to the /32 address. If the abstract node is an IP
prefix, the subnet configured for the interface from which the path message was
received must match the abstract node definition. In the event that this LSR is not
part of the strict abstract node definition, a Bad initial subobject error is
returned. If the subobject is a loose abstract node, the LSR determines if the
abstract node definition corresponds to this LSR. If it doesn't, the path message is
transmitted along the best-routed or constrained optimized path to the endpoint and
the ERO is not modified. If it is, then processing of the ERO continues.
- If there is no second subobject, the ERO is removed from the
path message. If this LSR is not the end of the path, the next hop is determined by
the constrained optimized path (through Constrained Shortest Path First—CSPF) to the
path message endpoint.
- If there is a second subobject, a check is made to determine if
this LSR is a member of the abstract node. If it is, the first subobject is deleted
and the second subobject becomes the first subobject. This process is repeated until
either there is only one subobject or this LSR is not a member of the abstract node
as defined by the second subobject. Processing of the ERO is then repeated with step
2. By repeating steps 2 and 3, any redundant subobjects that are part of this LSRs
abstract node can be removed from the ERO. If this operation were not performed, the
next hop LSR might reject the path message.
- The LSR uses its CSPF to determine the next hop to the second
subobject. If the first object is a /32 address, the first subobject is removed,
since it would not be part of the next hop's abstract node. The path message is then
sent along the explicit path to the path message endpoint. No determination is made
to verify that the abstract node defined in the subobject is topologically adjacent
to this LSR. The next hop should verify this as part of its processing as defined in
step 1.
If CSPF determines that a specific path needs to be taken through
the network, additional EROs are inserted into the path message.