I've been following the "Modeling SRGB Configuration for draft-ietf-spring-sr-yang" thread on this mailing list. I think this discussion reveals an inconsistency in the architecture (as described in draft-ietf-spring-segment-routing-04), and this inconsistency needs to be resolved.

From the spring architecture:

Global Segment: the related instruction is supported by all the SR- capable nodes in the domain. In the MPLS architecture, a Global Segment has a globally-unique index. The related local label at a given node N is found by adding the globally-unique index to the SRGB of node N. In the IPv6 architecture, a global segment is a globally- unique IPv6 address.

and

IGP-prefix Segment, Prefix-SID: an IGP-Prefix Segment is an IGP segment attached to an IGP prefix. An IGP-Prefix Segment is always global within the SR/IGP domain and identifies an instruction to forward the packet over the ECMP-aware shortest-path computed by the IGP to the related prefix. The Prefix-SID is the SID of the IGP- Prefix Segment.

The first paragraph above makes it pretty clear that a node is supposed to have only one SRGB. So even though there seems to be consensus for allowing an SRGB per protocol in the Yang model, that seems to be at odds with the architecture.

However, I think the second paragraph quoted above contradicts the first paragraph. A given network may have multiple topologies, and the paths for a given prefix may be different in each topology. There are numerous ways to set a network up with multiple topologies. One can have OSPF and ISIS running in parallel, or one can have multiple instances of one or the other IGP running in parallel, or one can use the explicit multi-topology feature that each IGP has. An IGP-Prefix Segment would then have to be understood as an instruction to forward a packet over the ECMP-aware shortest-path computed by a particular IGP instance over a particular topology.

I think it is clear that in such a scenario, one cannot use the same MPLS label for a given prefix in all the topologies -- the label must be per-prefix/per-topology. Since the label is computed from the combination of the prefix-SID and the SRGB, this forces us to make a choice between the following two alternatives:

1. Assign multiple SIDs to a given prefix, one per topology (i.e., the prefix-SID is not domain-wide unique, but only topology-wide unique), or

2. Assign a different SRGB to each topology (not merely a different one to each IGP).

The paragraphs I quoted from the architecture seem to prohibit both these alternatives, effectively prohibiting the use of multi-topology techniques in a spring domain. I'm assuming that that was not the intention.

Reading the thread on representing the SRGB in the yang model, I'd conclude that most folks seem to want to be able to assign a domain-wide unique index to the prefixes, which requires alternative 2. But in this case, the index is not "an instruction to forward the packet" over a particular path, it's just an abbreviation for the prefix.

My conclusion is that unless we really want to prohibit the use of multiple topologies in a spring domain, we need to choose between alternatives 1 and 2 above, and the architecture needs to be adjusted accordingly.

BTW, I don't think this issue is just a rehash of the old "should we have global labels?" argument, and we shouldn't approach it that way.

In a multi-topology scenario, alternative 2 does seem to have some operational advantages. In a scenario where there is a single topology, but multiple routing algorithms are combined to create it, one could always assign the same SRGB to each algorithm. Perhaps each node should be configurable with a default SRGB and an optional SRGB per topology. That would give operators the maximum freedom to support both single-topology and multi-topology scenarios as they see fit.

Comments?





_______________________________________________
spring mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/spring

Reply via email to