| 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. | ||||