Internet-Draft | PCEP Extensions to Redundancy Policy | July 2022 |
Yang, et al. | Expires 12 January 2023 | [Page] |
- Workgroup:
- PCE Working Group
- Internet-Draft:
- draft-yang-pce-pcep-redundancy-policy-00
- Published:
- Intended Status:
- Standards Track
- Expires:
Path Computation Element Communication Protocol (PCEP) Extensions to Redundancy Policy
Abstract
PCEP is used to provide a communication between a PCC and a PCE. This document defines the extensions to PCEP to support the redundancy paths computation. Specifically, two new TLVs are defined to support the request of redundancy path computation and protection method, and one TLV is defined to distribute the Candidate Path Flag of an SR Policy.¶
Requirements Language
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 .¶
Status of This Memo
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 12 January 2023.¶
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
1. Introduction
Redundancy protection [I-D.ietf-spring-sr-redundancy-protection] is a generalized protection mechanism by replicating and transmitting copies of flow packets on the redundancy node over multiple different and disjoint paths, and further eliminating the redundant packets at the merging node. To support redundancy protection in Segment Routing, Redundancy Policy[I-D.geng-spring-redundancy-policy] is provided to instantiate the segment lists of more than one disjoint forwarding paths. This document extends the PCEP protocols to support the request of redundancy paths computation and protection method, and further distribute the flag of redundancy policy to instantiate more than one segment lists for redundancy forwarding.¶
2. Terminology
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.¶
3. RP Object
The RP (Request Parameters) object defined in [RFC5440] is used to specify various characteristics of the path computation request and MUST be carried within each PCReq and PCRep messages. The format of RP object is as follows:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags |O|B|R| Pri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Request-ID-number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Optional TLVs // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Request Parameters Object¶
3.1. Redundancy Protection TLV
In order to request PCE to compute multiple redundancy forwarding paths with the intention of redundancy protection, this document defines a new TLV named Redundancy Protection TLV. The format of Redundancy Protection TLV is shown as follows.¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = TBD1 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flag | Number | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Redundancy Protection TLV¶
Where:¶
- Type: to be assigned by IANA.¶
- Length: 16-bit value to indicate the length of the value portion in bytes.¶
- Flag: 8-bit bitmap to indicate the redundancy constraint of path computation that PCC requires.¶
0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |R|U|U|U|U|U|U|U| +-+-+-+-+-+-+-+-+¶
where:¶
- a)
- R-Flag: One bit Redundancy Flag is used to indicate whether PCC requires the common path computation or a redundancy path computation. When redundancy flag bit is set to 0, it means PCC requests a common path computation. When redundancy flag bit is set to 1, it means PCC requests a redundancy path computation.¶
- b)
- U-Flag: Unused and undefined¶
- Number: 8-bit value to indicate how many redundancy forwarding paths that PCC requires. The range of the number is recommended from 2 to 8.¶
- Reserved: 16-bit of reserved bits. SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
When PCC requests a redundancy path computation, it MUST include the Redundancy Flag TLV in the RP object in PCReq message. When PCC includes the Redundancy Flag TLV in a path computation request, PCE would reply with the required number of redundancy forwarding paths and the set of Redundancy Flag associated with the computed paths.¶
3.2. Protection Type TLV
As specified in [I-D.geng-spring-redundancy-policy], multiple candidate paths can co-exist with different types of protection. In order to differetiate the types of protection, a new TLV named Protection Type TLV is defined. The format of Protection Type TLV is shown as follows.¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = TBD2 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prot | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Protection Type TLV¶
where:¶
- Type: to be assigned by IANA.¶
- Length: 16-bit value to indicate the length of the value portion in bytes.¶
- Protection: 4-bit value to indicate the protection type of path computation that PCC requires. The following Table gives the values and corresponding protection types.¶
+--------------+-------------------------+ | Value | Protection Type | +--------------+-------------------------+ | 0 | No protection | +--------------+-------------------------+ | 1 | Backup Protection | +--------------+-------------------------+ | 2 | Redundancy Protection | +--------------+-------------------------+ | 3-15 | Undefined | +--------------+-------------------------+¶
Protection Type Values¶
- Reserved: 24-bit of reserved bits. SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
4. PCEP Extensions for Redundancy Policy
As per [I-D.ietf-pce-segment-routing-policy-cp], the mapping between PCEP Associations and SR Policies is always one-to-one, and the mapping between PCEP Tunnels and SR Policy Candidate Paths may be either one-to-one or many-to-one. Regarding Redundancy Policy, the mapping between PCEP Associations and Redundancy Policy is always one-to-one. PCEP Tunnels and Redundancy Policy Candidate Paths are always many-to-one. The definitions of SR Policy Association Type (SRPAT) and SR Policy Association Group (SRPAG) apply same to Redundancy policy.¶
This document introduces a new SR Policy Candidate Path Attribute called Flag, which identify the Flag of SR Policy Candidate Path within the context of an SR Policy. This Flag identifier MUST NOT change for a given LSP during its lifetime. When these rules are not satisfied, the PCE MUST send a PCErr message with Error-Type = 26 "Association Error", Error Value = TBD4 "SR Policy Candidate Path Flag Mismatch".¶
4.1. SR Policy Candidate Path Flag TLV
A new SR Policy Association Type TLV [I-D.ietf-pce-segment-routing-policy-cp] called SR Policy Candidate Path Flag TLV is defined to indicate the Flag of a candidate path. The format of SR Policy Candidate Path Flag TLV is shown in following.¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type (TBD3) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flag | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
where:¶
SRPOLICY-CPPATH-Flag TLV¶
- Type: to be allocated by IANA.¶
- Length: specifies the length of the value field not including Type and Length fields.¶
- Flag: 8-bit bitmap of Flag. A new registry "SR Policy Candidate Path Flags" is created. One flag is defined at this writing:¶
0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |R|U|U|U|U|U|U|U| +-+-+-+-+-+-+-+-+¶
where:¶
- a)
- R-Flag: One bit Redundancy Flag is used to indicate the type of candidate path. When R Flag is set, it represents the candidate path is used for the redundancy forwarding.¶
- b)
- U-Flag: Unused and undefined¶
- RESERVED: 3-octet of reserved bits. SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
4.2. Path Binding TLV
Since Redundancy Policy can be optionally associated with the Binding Segment, specifically the Redundancy Segment, according to [I-D.ietf-pce-segment-routing-policy-cp], the functionality of specified-BSID-only is not mandatory to be enabled. It means that the given Redundancy Segment is not required to be allocated and programmed for the LSP to be operationally up. When there is a Redundancy Segment associated with Redundancy Policy, TE-PATH-BINDIND TLV [I-D.ietf-pce-binding-label-sid] is used to distribute Redundancy Segment as the Binding Segment of Redundancy Policy.¶
5. IANA Considerations
5.1. New TLV Type
This document defines three new TLVs.¶
+-----------------+------------------------------------+----------------+ | Value | Name | Reference | +-----------------+------------------------------------+----------------+ | TBD1 | Redundancy Protection TLV | This document | +-----------------+------------------------------------+----------------+ | TBD2 | Protection Type TLV | This document | +-----------------+------------------------------------+----------------+ | TBD3 | SR Policy Candidate Path Flag TLV | This document | +-----------------+------------------------------------+----------------+¶
5.2. PCEP Errors
This document defines one new Error-Value within the "Association Error" Error-Type. IANA is requested to allocate new error values within the "PCEP-ERROR Object Error Types and Values" sub-registry of the PCEP Numbers registry, as follows:¶
+------------+------------------+-----------------------+-----------+ | Error-Type | Meaning | Error-value | Reference | +------------+------------------+-----------------------+-----------+ | 26 | Association | | [RFC8697] | | | Error | | | +------------+------------------+-----------------------+-----------+ | | | TBD4: SR Policy | This I-D | | | | Candidate Path | | | | | Flag Mismatch | | +------------+------------------+-----------------------+-----------+¶
6. Security Considerations
TBD¶
7. References
7.1. Normative References
- [I-D.geng-spring-redundancy-policy]
- Geng, X., Chen, M., and F. Yang, "Redundancy Policy for Redundancy Protection", Work in Progress, Internet-Draft, draft-geng-spring-redundancy-policy-02, , <https://www.ietf.org/archive/id/draft-geng-spring-redundancy-policy-02.txt>.
- [I-D.ietf-pce-segment-routing-policy-cp]
- Koldychev, M., Sivabalan, S., Barth, C., Peng, S., and H. Bidgoli, "PCEP extension to support Segment Routing Policy Candidate Paths", Work in Progress, Internet-Draft, draft-ietf-pce-segment-routing-policy-cp-07, , <https://www.ietf.org/archive/id/draft-ietf-pce-segment-routing-policy-cp-07.txt>.
- [I-D.ietf-spring-sr-redundancy-protection]
- Geng, X., Chen, M., Yang, F., Garvia, P. C., and G. Mishra, "SRv6 for Redundancy Protection", Work in Progress, Internet-Draft, draft-ietf-spring-sr-redundancy-protection-01, , <https://www.ietf.org/archive/id/draft-ietf-spring-sr-redundancy-protection-01.txt>.
- [RFC2119]
- Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
- [RFC5440]
- Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol (PCEP)", RFC 5440, DOI 10.17487/RFC5440, , <https://www.rfc-editor.org/info/rfc5440>.
- [RFC8174]
- Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
7.2. Informative References
- [I-D.ietf-pce-binding-label-sid]
- Sivabalan, S., Filsfils, C., Tantsura, J., Previdi, S., and C. L. (editor), "Carrying Binding Label/Segment Identifier (SID) in PCE-based Networks.", Work in Progress, Internet-Draft, draft-ietf-pce-binding-label-sid-15, , <https://www.ietf.org/archive/id/draft-ietf-pce-binding-label-sid-15.txt>.