IGP Flexible
Algorithm with Common AddressHuaweiHuawei Bld., No.156 Beiqing Rd.Beijing100095Chinahuzhibo@huawei.comHuaweiHuawei Bld., No. 156 Beiqing Rd.Beijing100095Chinaxuguoqi@huawei.comHuaweiHuawei Bld., No.156 Beiqing Rd.Beijing100095Chinajie.dong@huawei.comAn IGP Flexible Algorithm (Flex-Algorithm) allows IGPs to compute
constraint-based paths. IGP Flex-Algorithm can be used with Segment
Routing (SR) or IP data plane. When used with SR data plane,
Flex-Algorithm requires to allocate algorithm specific Prefix Segment
Identifiers (SIDs) or algorithm specific SRv6 Locators. When used with
IP data plane, Flex-Algorithm requires to allocate algorithm specfic
IPv4 or IPv6 prefixes. This increases the complexity and overhead of
managing, advertising and maintaining additional SR SIDs, SRv6 Locators
and IPv4 or IPv6 prefixes, which may not be affordable to some networks
and network devices.This document extends IGP Flex-Algorithm to allow the use of common
SR SIDs, SRv6 Locators and IP prefixes among multiple
Flex-Algorithms.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 [RFC2119]
[RFC8174] when, and only when, they appear in all capitals, as shown
here.The IGP Flexible Algorithm (Flex-Algorithm) specifies a way of computing a
constraint-based path using IGP. IGP Flex-Algorithm can be used with
Segment Routing (SR) or IP data plane . When used with SR data plane,
Flex-Algorithm requires to allocate algorithm specific Prefix Segment
Identifiers (SIDs) or algorithm specific SRv6
Locators . When used with IP data plane,
Flex-Algorithm requires to allocate algorithm specfic IPv4 or IPv6
prefixes . The current
Flex-Algorithm mechanism increases the complexity and overhead of
managing, advertising and maintaining additional SR SIDs, SRv6 Locators
and IPv4 prefixes, which may not be affordable to some networks and
devices.For example, and
define the IGP
Extensions to support SRv6. For each Flex-Algorithm, separate SRv6
locators, End SIDs and End.X SIDs needs to be allocated and advertised.
As the number of Flex-Algorithm increases, it the pressure on the IGP
would increase accordingly.In addition, SInce the SRv6 VPN SIDs are always associated with the
Flex-Algorithm to which the SRv6 Locator is allocated, it is impossible
to steer different service flows of an SRv6 VPN using different
Flex-Algorithm.To overcome the above issues and limitation with IGP Flex-Algo, this
document defines the Common Address (CA) Flex-Algorithm extensions to
allow the use of the same set of SR SIDs, SRv6 Locators, or IP prefixes
among multiple Flex-Algorithms. Here the term Common Address (CA) refers
to the common set of SR SIDs, SRv6 Locators or IP prefixes respectively
for SR or IP data plane.Based on the CA Flex-Algo mechanism, constrainet-based path
computation is done for each Flex-Algorithm, and the routing entries for
each Flex-Algorithm is maintained in a separate Routing Information Base
(RIB). For packet forwarding, some additional data plane field in packet
header is needed to select the correct RIB for the incoming packet
lookup to make the forwarding decision. proposes the IPv6 extensions to carry
the topology and/or Algorithm ID in the data plane. The extensions to
other data plane are for further study. Such data plane mechanisms
together with the control plane extensions in this document provides a
CA Flex-Algo solution.To guarantee loop free forwarding, all routers that participate in a
Flex-Algorithm MUST agree on the Flex-Algorithm Definition (FAD).The advertisement of FAD for CA Flex-Algorithm is not changed.
Selected nodes within the IGP domain MUST advertise FADs as described in
Sections 5, 6, and 7 of .When a router is configured to support a particular CA
Flex-Algorithm, we say it is participating in that CA Flex-Algorithm.To
guarantee the presence of the application specific forwarding state
associated with a particular Flex-Algorithm, a router MUST advertise its
participation for a particular Flex-Algorithm.The following sections describe how the CA Flex-Algorithm
participation is advertised in IGP protocols.The ISIS [ISO10589] CA Algorithm Sub-TLV is a sub-TLV of the IS-IS
Router Capability TLV and has the following
format:Type: TBDLength: VariableAlgorithm (1 octet): Value from 128 to 255.The CA Algorithm Sub-TLV MUST be propagated throughout the level
and MUST NOT be advertised across level boundaries. Therefore, the S
bit in the Router Capability TLV, in which the CA Algorithm Sub-TLV is
advertised, MUST NOT be set.The CA Algorithm Sub-TLV is optional. It MUST NOT be advertised
more than once at a given level. A router receiving multiple CA
Algorithm sub-TLVs from the same originator MUST select the first
advertisement in the lowest-numbered LSP and subsequent instances of
the CA Algorithm Sub-TLV MUST be ignored.The CA Flex-Algorithm participation advertised in the IS-IS CA
Algorithm Sub-TLV is topology independent. When a router advertises
participation in the IS-IS CA Algorithm Sub-TLV, the participation
applies to all topologies in which the advertising node
participates.The CA Algorithm TLV is a top-level TLV of the OSPFv3 Router
Information Opaque LSA and has the following
format:Type: TBDLength: VariableAlgorithm (1 octet): Value from 128 to 255.When multiple of the CA Algorithm TLVs are received from a given
router, the receiver MUST use the first occurrence of the TLV in the
OSPFv3 Router Information Opaque LSA. If the CA Algorithm TLV appears
in multiple Router Information Opaque LSAs that have different
flooding scopes, the CA Algorithm TLV in the Router Information Opaque
LSA with the area-scoped flooding scope MUST be used. If the CA
Algorithm TLV appears in multiple Router Information Opaque LSAs that
have the same flooding scope, the CA Algorithm TLV in the Router
Information (RI) Opaque LSA with the numerically smallest Instance ID
MUST be used and subsequent instances of the CA Algorithm TLV MUST be
ignored.The RI LSA can be advertised at any of the defined opaque flooding
scopes (link, area, or Autonomous System (AS)). For the purpose of CA
Algorithm TLV advertisement, area-scoped flooding is REQUIRED.The SRv6 locator TLV is defined in and , which contains an
algorithm and indicates that the locator only performs path calculation
in this algorithm plane.This document defines a new flag in the SRv6 Locator TLV to indicate
that the locator has the ability to be used for path calculations in
multiple CA Flex-Algorithms planes. The position of this flag is BIT(1)
in IS-IS and BIT(2) in OSPFv3.This bit is set in the Flags in the Locator TLV in which the value of
the algorithm field is 0. When the algorithm is non-zero, the flag MUST
NOT be set.C-Flag: CA Flex-Algorithm Flag.A receiver do not support machanisms defined in this document MUST
ignore this flag.The SRv6 SIDs associated with Adjacencies is defined in
[I-D.ietf-lsr-isis-srv6-extensions] and
[I-D.ietf-lsr-ospfv3-srv6-extensions] and is explicitly allocated by the
locator.A new Flag calle is defined to specify that the locator associated
with the adjacent SID has the C flag.C-Flag: CA Flex-Algorithm Flag.The position of this flag is BIT(4) in IS-IS and OSPFv3.This bit is set in Flags in SRv6 END.X and LAN END.X SID TLV in which
the value of the algorithm field is 0. When the Locator corresponding to
the End.X SID does not have the C flag set, the C flag in the END.X and
LAN END.X SID TLV MUST NOT be set.A receiver do not support machanisms defined in this document MUST
ignore this flag.The CA Flex-Algorthm can considered as yet another data-plane of the
Flex-Algorithm as described .Participation for the CA Flex-Algorithm is signalled as described in
Section 3 and is specific to the CA Flex-Algorithm data-plane.The calculation of CA Flex-Algorithm paths follows what is described
in . This computation uses the CA
Flex- Algorithm data-plane participation and is independent of the
Flex-Algorithm calculation done for native SR or IP data plane.The CA Flex-Algorithm data-plane only considers the participating
nodes during the Flex-Algorithm calculation. When computing paths for a
given CA Flex-Algorithm, all nodes that do not advertise participation
for the CA Flex-Algorithm, as described in Section 3, MUST be pruned
from the topology.This document updates the ISIS "Sub-TLVs for TLV 242" registry as
follows:This document updates the OSPFv3 Router Information (RI) TLVs
registry as follows:This document updates the ISIS Locator Flags registry as follows:This document updates the OSPFv3 Locator Flags registry as
follows:This document also updates the ISIS and OSPFv3 SRv6 END.X and LAN
END.X SID TLV Flags registry as follows: