rfc9272.original | rfc9272.txt | |||
---|---|---|---|---|
BIER Z. Zhang | Internet Engineering Task Force (IETF) Z. Zhang | |||
Internet-Draft A. Przygienda | Request for Comments: 9272 A. Przygienda | |||
Updates: 8401, 8444 (if approved) Juniper Networks | Updates: 8401, 8444 Juniper Networks | |||
Intended status: Standards Track A. Dolganow | Category: Standards Track A. Dolganow | |||
Expires: 13 November 2022 Individual | ISSN: 2070-1721 Individual | |||
H. Bidgoli | H. Bidgoli | |||
Nokia | Nokia | |||
I. Wijnands | IJ. Wijnands | |||
Individual | Individual | |||
A. Gulko | A. Gulko | |||
Edward Jones Wealth Management | Edward Jones Wealth Management | |||
12 May 2022 | September 2022 | |||
BIER Underlay Path Calculation Algorithm and Constraints | Underlay Path Calculation Algorithm and Constraints for Bit Index | |||
draft-ietf-bier-bar-ipa-13 | Explicit Replication (BIER) | |||
Abstract | Abstract | |||
This document specifies general rules for the interaction between the | This document specifies general rules for the interaction between the | |||
BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | |||
path calculation. The semantics defined in this document update | path calculation within the Bit Index Explicit Replication (BIER) | |||
RFC8401 and RFC8444. This document also updates the BIER Algorithm | architecture. The semantics defined in this document update RFC 8401 | |||
registry established in RFC8401. | and RFC 8444. This document also updates the "BIER Algorithm" | |||
registry established in RFC 8401. | ||||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "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. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9272. | |||
material or to cite them other than as "work in progress." | ||||
This Internet-Draft will expire on 13 November 2022. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Updated Definition for BAR and IPA Fields . . . . . . . . . . 3 | 1.1. Requirements Language | |||
3. General Rules for the BAR and IPA Interaction . . . . . . . . 3 | 2. Updated Definitions for IPA and BAR Fields | |||
3.1. When BAR Is Not Used . . . . . . . . . . . . . . . . . . 4 | 3. General Rules for the BAR and IPA Interaction | |||
3.2. Exceptions/Extensions to the General Rules . . . . . . . 4 | 3.1. When BAR Is Not Used | |||
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Exceptions or Extensions to the General Rules | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 4. Examples | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 5. IANA Considerations | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 | 6. Security Considerations | |||
8. Normative References . . . . . . . . . . . . . . . . . . . . 5 | 7. Normative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | Acknowledgements | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
In the Bit Index Explicit Replication (BIER) architecture [RFC8279], | In the Bit Index Explicit Replication (BIER) architecture [RFC8279], | |||
packets with a BIER encapsulation header are forwarded to the | packets with a BIER encapsulation header are forwarded to the | |||
neighbors on the underlay paths towards Bit-Forwarding Egress Routers | neighbors on the underlay paths towards Bit-Forwarding Egress Routers | |||
(BFERs) that are represented by bits set in the BIER header's | (BFERs) that are represented by bits set in the BIER header's | |||
BitString. The paths are calculated in the underlay topology for | BitString. The paths are calculated in the underlay topology for | |||
each sub-domain following a calculation algorithm specific to the | each sub-domain following a calculation algorithm specific to the | |||
sub-domain. The topology or algorithm may or may not be congruent | sub-domain. The topology or algorithm may or may not be congruent | |||
with unicast. The algorithm could be a BIER specific algorithm or | with unicast. The algorithm could be a BIER-specific algorithm or | |||
could be a generic IGP one, e.g., Shortest Path First (SPF). | could be a generic IGP one, e.g., Shortest Path First (SPF). | |||
In [RFC8401] and [RFC8444], an 8-bit BAR (BIER Algorithm) field and | In [RFC8401] and [RFC8444], an 8-bit BAR (BIER Algorithm) field and | |||
8-bit IPA (IGP Algorithm) field are defined to signal the BIER | 8-bit IPA (IGP Algorithm) field are defined to signal the BIER- | |||
specific algorithm and generic IGP Algorithm respectively and only | specific algorithm and generic IGP Algorithm, respectively, and only | |||
value 0 is allowed for both fields in those two documents. | value 0 is allowed for both fields in those two documents. | |||
This document specifies general rules for the interaction between the | This document specifies general rules for the interaction between the | |||
BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | |||
path calculation when other BAR and/or IPA values are used. The | path calculation when other BAR and/or IPA values are used. The | |||
semantics defined in this document update [RFC8401], [RFC8444]. This | semantics defined in this document update [RFC8401] and [RFC8444]. | |||
document also updates the BIER Algorithm registry defined in | This document also updates the "BIER Algorithm" registry defined in | |||
[RFC8401] by renaming the "Experimental Use" range to "Private or | [RFC8401] by renaming the "Experimental Use" range to "Private or | |||
Experimental Use". | Experimental Use". | |||
2. Updated Definition for BAR and IPA Fields | 1.1. Requirements Language | |||
The definition for the BAR and IPA fields in Section 6.1 of [RFC8401] | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
and Section 2.1 of [RFC8444] are updated as follows. | "SHOULD", "SHOULD NOT", "RECOMMENDED", "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. | ||||
IPA: IGP Algorithm. Specifies a generic Routing Algorithm (RA) and | 2. Updated Definitions for IPA and BAR Fields | |||
related Routing Constraints (RC) to calculate underlay paths to reach | ||||
other Bit-Forwarding Routers (BFRs). Values are from the "IGP | ||||
Algorithm Types" registry. One Octet. | ||||
BAR: BIER Algorithm. Specifies a BIER-specific Algorithm (BA) and | The definitions for the IPA and BAR fields in Section 6.1 of | |||
BIER-specific Constraints (BC) used to either modify, enhance, or | [RFC8401] and Section 2.1 of [RFC8444] are updated as follows. | |||
replace the calculation of underlay paths to reach other BFRs as | ||||
defined by the IPA value. Values are allocated from the "BIER | ||||
Algorithm" registry. One Octet. | ||||
When a BAR value is defined, the corresponding BA and BC semantics | IPA: IGP Algorithm. Specifies a generic Routing Algorithm and | |||
SHOULD be specified. For an IGP Algorithm to be used as a BIER IPA, | related Routing Constraints to calculate underlay paths to reach | |||
its RA and RC semantics SHOULD be specified. If any of these | other Bit-Forwarding Routers (BFRs). Values are from the "IGP | |||
semantics is not specified, it MUST be interpreted as "NULL" | Algorithm Types" registry. One octet. | |||
algorithm or constraint. For example, the IGP Algorithm 0 defined in | ||||
[RFC8665] is treated as having a NULL RC, i.e., no constraints (see | ||||
Section 3). | ||||
If a specification is not available for a specific BAR value, its | BAR: BIER Algorithm. Specifies a BIER-specific Algorithm and BIER- | |||
value MUST be from the Private or Experimental Use range of the | specific Constraints used to either modify, enhance, or replace | |||
registry. | the calculation of underlay paths to reach other BFRs as defined | |||
by the IPA value. Values are allocated from the "BIER Algorithm" | ||||
registry. One octet. | ||||
When a BAR value is defined, the corresponding BIER-specific | ||||
Algorithm (BA) and BIER-specific Constraint (BC) semantics SHOULD | ||||
be specified. For an IGP Algorithm to be used as a BIER IPA, its | ||||
Routing Algorithm (RA) and Routing Constraint (RC) semantics | ||||
SHOULD be specified. If any of these semantics is not specified, | ||||
it MUST be interpreted as the "NULL" algorithm or constraint. For | ||||
example, the IGP Algorithm 0 defined in [RFC8665] is treated as | ||||
having a NULL RC, i.e., no constraints (see Section 3). | ||||
If a specification is not available for a specific BAR value, its | ||||
value MUST be from the Private or Experimental Use range of the | ||||
registry. | ||||
3. General Rules for the BAR and IPA Interaction | 3. General Rules for the BAR and IPA Interaction | |||
For a particular sub-domain, all BFRs MUST be provisioned with and | For a particular sub-domain, all BFRs MUST be provisioned with and | |||
signal the same BAR and IPA values. If a BFR discovers another BFR | signal the same BAR and IPA values. If a BFR discovers another BFR | |||
advertising different BAR or IPA value for a sub-domain, it MUST | advertising a different BAR or IPA value for a sub-domain, it MUST | |||
treat the advertising router as incapable of supporting BIER for that | treat the advertising router as incapable of supporting BIER for that | |||
sub-domain (one way of handling incapable routers is documented in | sub-domain. (One way of handling incapable routers is documented in | |||
Section 6.9 of [RFC8279] and additional methods may be defined in the | Section 6.9 of [RFC8279], and additional methods may be defined in | |||
future). | the future.) | |||
For a particular topology X that a sub-domain is associated with, a | For a particular topology X that a sub-domain is associated with, a | |||
router MUST calculate the underlay paths according to its BAR and IPA | router MUST calculate the underlay paths according to its BAR and IPA | |||
values in the following way: | values in the following way: | |||
1. Apply the BIER constraints, resulting in BC(X). If BC is NULL, | 1. Apply the BIER constraints, resulting in BC(X). If BC is NULL, | |||
then BC(X) is X itself. | then BC(X) is X itself. | |||
2. Apply the routing constraints, resulting in RC(BC(X)). If RC is | 2. Apply the routing constraints, resulting in RC(BC(X)). If RC is | |||
NULL, then RC(BC(X)) is BC(X). | NULL, then RC(BC(X)) is BC(X). | |||
3. Select the algorithm AG as following: | 3. Select the algorithm AG as follows: | |||
a. If BA is NULL, AG is set to RA. | a. If BA is NULL, AG is set to RA. | |||
b. If BA is not NULL, AG is set to BA. | b. If BA is not NULL, AG is set to BA. | |||
4. Run AG on RC(BC(X)). | 4. Run AG on RC(BC(X)). | |||
It's possible that the resulting AG is not applicable to BIER, In | It's possible that the resulting AG is not applicable to BIER. In | |||
that case, no BIER paths will be calculated and it is a network | that case, no BIER paths will be calculated, and this is a network | |||
design issue that an operator needs to avoid when choosing BAR/IPA. | design issue that an operator needs to avoid when choosing the BAR or | |||
IPA. | ||||
3.1. When BAR Is Not Used | 3.1. When BAR Is Not Used | |||
BAR value 0 is defined as "No BIER-specific algorithm is used" | BAR value 0 is defined as "No BIER-specific algorithm is used" | |||
[RFC8401]. This value indicates NULL BA and BC. Following the rules | [RFC8401]. This value indicates NULL BA and BC. Following the rules | |||
defined above, the IPA value alone identifies the calculation | defined above, the IPA value alone identifies the calculation | |||
algorithm and constraints to be used for a particular sub-domain. | algorithm and constraints to be used for a particular sub-domain. | |||
3.2. Exceptions/Extensions to the General Rules | 3.2. Exceptions or Extensions to the General Rules | |||
Exceptions or extensions to the above general rules may be specified | Exceptions or extensions to the above general rules may be specified | |||
in the future for specific BAR and/or IPA values. When that happens, | in the future for specific BAR and/or IPA values. When that happens, | |||
compatibility with defined BAR and/or IPA values and semantics need | compatibility with defined BAR and/or IPA values and semantics need | |||
to be specified. | to be specified. | |||
4. Examples | 4. Examples | |||
As an example, one may define a new BAR with a BIER specific | As an example, one may define a new BAR with a BIER-specific | |||
constraint of "excluding BIER incapable routers". No BIER specific | constraint of "excluding BIER-incapable routers". No BIER-specific | |||
algorithm is specified, and the BIER specific constraint can go with | algorithm is specified, and the BIER-specific constraint can go with | |||
any IPA - whatever RC defined by the IPA is augmented with "excluding | any IPA, i.e., any RC defined by the IPA is augmented with "excluding | |||
BIER incapable routers", i.e., routers that do not support BIER are | BIER-incapable routers". (Routers that do not support BIER are not | |||
not considered when applying the IGP Algorithm. | considered when applying the IGP Algorithm.) | |||
If the BC and RC happen to conflict and lead to an empty topology, | If the BC and RC happen to conflict and lead to an empty topology, | |||
then no BIER forwarding path will be found. For example, the BC | then no BIER forwarding path will be found. For example, the BC | |||
could be "exclude BIER-incapable routers" and the RC could be | could be "exclude BIER-incapable routers", and the RC could be | |||
"include green links only". If all the green links are associated | "include green links only". If all the green links are associated | |||
with BIER-incapable routers, it results in an empty topology. That | with BIER-incapable routers, it results in an empty topology. This | |||
is a network design issue that an operator needs to avoid when | is a network design issue that an operator needs to avoid when | |||
choosing BAR/IPA. | choosing the BAR or IPA. | |||
In another example, a BAR value can be specified to use Steiner Tree | In another example, a BAR value can be specified to use the Steiner | |||
algorithm and used together with IPA 0 (which uses SPF algorithm). | tree algorithm and used together with IPA 0 (which uses an SPF | |||
According to the general rules, the BIER specific algorithm takes | algorithm). According to the general rules, the BIER-specific | |||
precedence so SPF is not used. | algorithm takes precedence so SPF is not used. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document requests the following changes to the "BIER Algorithm" | The "BIER Algorithm" registry has been updated as follows: | |||
registry: | ||||
1. Rename the "Experimental Use" range to "Private or Experimental | 1. The "Experimental Use" range has been renamed "Private or | |||
Use" | Experimental Use". | |||
2. Add this document as a reference | 2. This document has been added as a reference both for the registry | |||
itself and for values 240-254 in the registry. | ||||
6. Security Considerations | 6. Security Considerations | |||
This document specifies general rules for the interaction between the | This document specifies general rules for the interaction between the | |||
BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | BIER Algorithm (BAR) and the IGP Algorithm (IPA) used for underlay | |||
path calculation. It does not change the security aspects as | path calculation. It does not change the security aspects as | |||
discussed in [RFC8279], [RFC8401], [RFC8444]. | discussed in [RFC8279], [RFC8401], and [RFC8444]. | |||
7. Acknowledgements | ||||
The authors thank Alia Atlas, Eric Rosen, Senthil Dhanaraj and many | ||||
others for their suggestions and comments. In particular, the | ||||
BC/BA/RC/RA representation for the interaction rules is based on | ||||
Alia's write-up. | ||||
8. Normative References | 7. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
skipping to change at page 6, line 28 ¶ | skipping to change at line 253 ¶ | |||
Extensions for Bit Index Explicit Replication (BIER)", | Extensions for Bit Index Explicit Replication (BIER)", | |||
RFC 8444, DOI 10.17487/RFC8444, November 2018, | RFC 8444, DOI 10.17487/RFC8444, November 2018, | |||
<https://www.rfc-editor.org/info/rfc8444>. | <https://www.rfc-editor.org/info/rfc8444>. | |||
[RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, | [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, | |||
H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | |||
Extensions for Segment Routing", RFC 8665, | Extensions for Segment Routing", RFC 8665, | |||
DOI 10.17487/RFC8665, December 2019, | DOI 10.17487/RFC8665, December 2019, | |||
<https://www.rfc-editor.org/info/rfc8665>. | <https://www.rfc-editor.org/info/rfc8665>. | |||
Acknowledgements | ||||
The authors thank Alia Atlas, Eric Rosen, Senthil Dhanaraj and many | ||||
others for their suggestions and comments. In particular, the | ||||
BC/BA/RC/RA representation for the interaction rules is based on | ||||
Alia's write-up. | ||||
Authors' Addresses | Authors' Addresses | |||
Zhaohui Zhang | Zhaohui Zhang | |||
Juniper Networks | Juniper Networks | |||
Email: zzhang@juniper.net | Email: zzhang@juniper.net | |||
Antoni Przygienda | Antoni Przygienda | |||
Juniper Networks | Juniper Networks | |||
Email: prz@juniper.net | Email: prz@juniper.net | |||
End of changes. 35 change blocks. | ||||
112 lines changed or deleted | 115 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |