| < draft-ietf-pce-segment-routing-03.txt | draft-ietf-pce-segment-routing-04.txt > | |||
|---|---|---|---|---|
| Network Working Group S. Sivabalan | Network Working Group S. Sivabalan | |||
| Internet-Draft J. Medved | Internet-Draft J. Medved | |||
| Intended status: Standards Track C. Filsfils | Intended status: Standards Track C. Filsfils | |||
| Expires: October 24, 2015 Cisco Systems, Inc. | Expires: November 20, 2015 Cisco Systems, Inc. | |||
| E. Crabbe | E. Crabbe | |||
| R. Raszuk | R. Raszuk | |||
| Mirantis Inc. | Mirantis Inc. | |||
| V. Lopez | V. Lopez | |||
| Telefonica I+D | Telefonica I+D | |||
| J. Tantsura | J. Tantsura | |||
| Ericsson | Ericsson | |||
| W. Henderickx | W. Henderickx | |||
| Alcatel Lucent | Alcatel Lucent | |||
| J. Hardwick | J. Hardwick | |||
| Metaswitch Networks | Metaswitch Networks | |||
| April 22, 2015 | May 19, 2015 | |||
| PCEP Extensions for Segment Routing | PCEP Extensions for Segment Routing | |||
| draft-ietf-pce-segment-routing-03.txt | draft-ietf-pce-segment-routing-04.txt | |||
| Abstract | Abstract | |||
| Segment Routing (SR) enables any head-end node to select any path | Segment Routing (SR) enables any head-end node to select any path | |||
| without relying on a hop-by-hop signaling technique (e.g., LDP or | without relying on a hop-by-hop signaling technique (e.g., LDP or | |||
| RSVP-TE). It depends only on "segments" that are advertised by Link- | RSVP-TE). It depends only on "segments" that are advertised by Link- | |||
| State Interior Gateway Protocols (IGPs). A Segment Routed Path can | State Interior Gateway Protocols (IGPs). A Segment Routed Path can | |||
| be derived from a variety of mechanisms, including an IGP Shortest | be derived from a variety of mechanisms, including an IGP Shortest | |||
| Path Tree (SPT), explicit configuration, or a Path Computation | Path Tree (SPT), explicit configuration, or a Path Computation | |||
| Element (PCE). This document specifies extensions to the Path | Element (PCE). This document specifies extensions to the Path | |||
| skipping to change at page 2, line 13 ¶ | skipping to change at page 2, line 13 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 24, 2015. | This Internet-Draft will expire on November 20, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 25 ¶ | skipping to change at page 3, line 25 ¶ | |||
| 5.3. ERO Object . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.3. ERO Object . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3.1. SR-ERO Subobject . . . . . . . . . . . . . . . . . . . 10 | 5.3.1. SR-ERO Subobject . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.3.2. NAI Associated with SID . . . . . . . . . . . . . . . 11 | 5.3.2. NAI Associated with SID . . . . . . . . . . . . . . . 11 | |||
| 5.3.3. ERO Processing . . . . . . . . . . . . . . . . . . . . 13 | 5.3.3. ERO Processing . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.4. RRO Object . . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.4. RRO Object . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.4.1. RRO Processing . . . . . . . . . . . . . . . . . . . . 14 | 5.4.1. RRO Processing . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.5. METRIC Object . . . . . . . . . . . . . . . . . . . . . . 15 | 5.5. METRIC Object . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 15 | 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7. Management Considerations . . . . . . . . . . . . . . . . . . 15 | 7. Management Considerations . . . . . . . . . . . . . . . . . . 15 | |||
| 7.1. Policy . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7.1. Policy . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.2. The PCEP Data Model . . . . . . . . . . . . . . . . . . . 15 | 7.2. The PCEP Data Model . . . . . . . . . . . . . . . . . . . 16 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 9.1. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . . 16 | 9.1. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 9.2. PCEP-Error Object . . . . . . . . . . . . . . . . . . . . 16 | 9.2. PCEP-Error Object . . . . . . . . . . . . . . . . . . . . 16 | |||
| 9.3. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . . 17 | 9.3. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . . 17 | |||
| 9.4. New Path Setup Type . . . . . . . . . . . . . . . . . . . 17 | 9.4. New Path Setup Type . . . . . . . . . . . . . . . . . . . 17 | |||
| 9.5. New Metric Type . . . . . . . . . . . . . . . . . . . . . 17 | 9.5. New Metric Type . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . . 18 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 18 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . . 19 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 1. Introduction | 1. Introduction | |||
| SR technology leverages the source routing and tunneling paradigms. | SR technology leverages the source routing and tunneling paradigms. | |||
| A source node can choose a path without relying on hop-by-hop | A source node can choose a path without relying on hop-by-hop | |||
| signaling protocols such as LDP or RSVP-TE. Each path is specified | signaling protocols such as LDP or RSVP-TE. Each path is specified | |||
| as a set of "segments" advertised by link-state routing protocols | as a set of "segments" advertised by link-state routing protocols | |||
| (IS-IS or OSPF). [I-D.filsfils-rtgwg-segment-routing] provides an | (IS-IS or OSPF). [I-D.filsfils-rtgwg-segment-routing] provides an | |||
| introduction to SR architecture. The corresponding IS-IS and OSPF | introduction to SR architecture. The corresponding IS-IS and OSPF | |||
| extensions are specified in | extensions are specified in | |||
| skipping to change at page 10, line 44 ¶ | skipping to change at page 10, line 44 ¶ | |||
| Length contains the total length of the subobject in octets, | Length contains the total length of the subobject in octets, | |||
| including the L, Type and Length fields. Length MUST be at least | including the L, Type and Length fields. Length MUST be at least | |||
| 8, and MUST be a multiple of 4. As mentioned earlier, an SR-ERO | 8, and MUST be a multiple of 4. As mentioned earlier, an SR-ERO | |||
| subobject MUST have at least SID or NAI. The length should take | subobject MUST have at least SID or NAI. The length should take | |||
| into consideration SID or NAI only if they are not null. The | into consideration SID or NAI only if they are not null. The | |||
| flags described below used to indicate whether SID or NAI field is | flags described below used to indicate whether SID or NAI field is | |||
| null. | null. | |||
| SID Type (ST) indicates the type of information associated with the | SID Type (ST) indicates the type of information associated with the | |||
| SID contained in the object body. The SID-Type values are | SID contained in the object body. When ST value is 0, SID MUST | |||
| described later in this document. | NOT be null and NAI MUST be null. Other ST values are described | |||
| later in this document. | ||||
| Flags is used to carry any additional information pertaining to SID. | Flags is used to carry any additional information pertaining to SID. | |||
| Currently, the following flag bits are defined: | Currently, the following flag bits are defined: | |||
| * M: When this bit is set, the SID value represents an MPLS label | * M: When this bit is set, the SID value represents an MPLS label | |||
| stack entry as specified in [RFC5462] where only the label | stack entry as specified in [RFC5462] where only the label | |||
| value is specified by the PCE. Other fields (TC, S, and TTL) | value is specified by the PCE. Other fields (TC, S, and TTL) | |||
| fields MUST be considered invalid, and PCC MUST set these | fields MUST be considered invalid, and PCC MUST set these | |||
| fields according to its local policy and MPLS forwarding rules. | fields according to its local policy and MPLS forwarding rules. | |||
| skipping to change at page 11, line 29 ¶ | skipping to change at page 11, line 29 ¶ | |||
| MPLS forwarding rules. | MPLS forwarding rules. | |||
| * S: When this bit is set, the SID value in the subobject body is | * S: When this bit is set, the SID value in the subobject body is | |||
| null. In this case, the PCC is responsible for choosing the | null. In this case, the PCC is responsible for choosing the | |||
| SID value, e.g., by looking up its TED using the NAI which, in | SID value, e.g., by looking up its TED using the NAI which, in | |||
| this case, MUST be present in the subobject. | this case, MUST be present in the subobject. | |||
| * F: When this bit is set, the NAI value in the subobject body is | * F: When this bit is set, the NAI value in the subobject body is | |||
| null. | null. | |||
| Editorial Note: we need to decide how to treat an SR-ERO subobject | ||||
| in which both NAI and SID are null. | ||||
| SID is the Segment Identifier. | SID is the Segment Identifier. | |||
| NAI contains the NAI associated with the SID. Depending on the | NAI contains the NAI associated with the SID. Depending on the | |||
| value of ST, the NAI can have different format as described in the | value of ST, the NAI can have different format as described in the | |||
| following section. | following section. | |||
| 5.3.2. NAI Associated with SID | 5.3.2. NAI Associated with SID | |||
| This document defines the following NAIs: | This document defines the following NAIs: | |||
| skipping to change at page 13, line 26 ¶ | skipping to change at page 13, line 26 ¶ | |||
| Figure 5: NAI for Unnumbered adjacency with IPv4 Node IDs | Figure 5: NAI for Unnumbered adjacency with IPv4 Node IDs | |||
| Editorial Note: We are yet to decide if another SID subobject is | Editorial Note: We are yet to decide if another SID subobject is | |||
| required for unnumbered adjacency with 128 bit node ID. | required for unnumbered adjacency with 128 bit node ID. | |||
| 5.3.3. ERO Processing | 5.3.3. ERO Processing | |||
| A PCEP speaker that does not recognize the SR-ERO subobject in PCRep, | A PCEP speaker that does not recognize the SR-ERO subobject in PCRep, | |||
| PCInitiate, PCUpd or PCRpt messages MUST reject the entire PCEP | PCInitiate, PCUpd or PCRpt messages MUST reject the entire PCEP | |||
| message and MUST send a PCE error message with Error-Type=3 ("Unknown | message and MUST send a PCErr message with Error-Type=3 ("Unknown | |||
| Object") and Error-Value=2 ("Unrecognized object Type") or Error- | Object") and Error-Value=2 ("Unrecognized object Type") or Error- | |||
| Type=4 ("Not supported object") and Error-Value=2 ("Not supported | Type=4 ("Not supported object") and Error-Value=2 ("Not supported | |||
| object Type"), defined in [RFC5440]. | object Type"), defined in [RFC5440]. | |||
| When the SID represents an MPLS label (i.e. the M bit is set), its | When the SID represents an MPLS label (i.e. the M bit is set), its | |||
| value (20 most significant bits) MUST be larger than 15, unless it is | value (20 most significant bits) MUST be larger than 15, unless it is | |||
| special purpose label, such as an Entropy Label Indicator (ELI). If | special purpose label, such as an Entropy Label Indicator (ELI). If | |||
| a PCEP speaker receives a label ERO subobject with an invalid value, | a PCEP speaker receives a label ERO subobject with an invalid value, | |||
| it MUST send the PCE error message with Error-Type = 10 ("Reception | it MUST send a PCErr message with Error-Type = 10 ("Reception of an | |||
| of an invalid object") and Error Value = TBD ("Bad label value"). If | invalid object") and Error Value = TBD ("Bad label value"). If both | |||
| both M and C bits of an ERO subobject are set, and if a PCEP speaker | M and C bits of an ERO subobject are set, and if a PCEP speaker finds | |||
| finds erroneous setting in one or more of TC, S, and TTL fields, it | erroneous setting in one or more of TC, S, and TTL fields, it MUST | |||
| MUST send a PCE error with Error-Type = 10 ("Reception of an invalid | send a PCErr message with Error-Type = 10 ("Reception of an invalid | |||
| object") and Error-Value = TBD ("Bad label format"). | object") and Error-Value = TBD ("Bad label format"). | |||
| If a PCC receives a stack of SR-ERO subobjects, and the number of | If a PCC receives a stack of SR-ERO subobjects, and the number of | |||
| stack exceeds the maximum number of SIDs that the PCC can impose on | stack exceeds the maximum number of SIDs that the PCC can impose on | |||
| the packet, it MAY send a PCE error with Error-Type = 10 ("Reception | the packet, it MAY send a PCErr message with Error-Type = 10 | |||
| of an invalid object") and Error-Value = TBD ("Unsupported number of | ("Reception of an invalid object") and Error-Value = TBD | |||
| Segment ERO subobjects"). | ("Unsupported number of Segment ERO subobjects"). | |||
| When a PCEP speaker detects that all subobjects of ERO are not | When a PCEP speaker detects that all subobjects of ERO are not | |||
| identical, and if it does not handle such ERO, it MUST send PCE error | identical, and if it does not handle such ERO, it MUST send a PCErr | |||
| with Error-Type = 10 ("Reception of an invalid object") and Error- | message with Error-Type = 10 ("Reception of an invalid object") and | |||
| Value = TBD ("Non-identical ERO subobjects"). | Error-Value = TBD ("Non-identical ERO subobjects"). | |||
| If a PCEP speaker receives an SR-ERO subobject in which both SID and | If a PCEP speaker receives an SR-ERO subobject in which both SID and | |||
| NAI are absent, it MUST consider the entire ERO object invalid and | NAI are absent, it MUST consider the entire ERO object invalid and | |||
| send a PCE error with Error-Type = 10 ("Reception of an invalid | send a PCErr message with Error-Type = 10 ("Reception of an invalid | |||
| object") and Error-Value = TBD ("Both SID and NAI are absent in ERO | object") and Error-Value = TBD ("Both SID and NAI are absent in ERO | |||
| subobject"). | subobject"). | |||
| When a PCEP speaker receives an SR-ERO subobject in which ST is 0, | ||||
| SID MUST be present and NAI MUST NOT be present(i.e., S-flag MUST be | ||||
| 0, F-flag MUST be 1, and the Length MUST be 8). Otherwise, it MUST | ||||
| consider the entire ERO object invalid and send a PCErr message with | ||||
| Error-Type = 10 ("Reception of an invalid object") and Error-Value = | ||||
| TBD ("Malformed object"). The PCEP speaker MAY include the malformed | ||||
| SR-ERO object in the PCErr message as well. | ||||
| 5.4. RRO Object | 5.4. RRO Object | |||
| A PCC can record SR-TE LSP and report the LSP to a PCE via RRO. An | A PCC can record SR-TE LSP and report the LSP to a PCE via RRO. An | |||
| RRO object contains one or more subobjects called "SR-RRO subobjects" | RRO object contains one or more subobjects called "SR-RRO subobjects" | |||
| whose format is shown below: | whose format is shown below: | |||
| 0 1 2 3 | 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 | 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 | Length | ST | Flags |F|S|C|M| | | Type | Length | ST | Flags |F|S|C|M| | |||
| skipping to change at page 14, line 44 ¶ | skipping to change at page 14, line 52 ¶ | |||
| information about the topmost label, and the last subobject contains | information about the topmost label, and the last subobject contains | |||
| information about the bottommost label of the SR-TE LSP. | information about the bottommost label of the SR-TE LSP. | |||
| 5.4.1. RRO Processing | 5.4.1. RRO Processing | |||
| Processing rules of SR-RRO subobject are identical to those of SR-ERO | Processing rules of SR-RRO subobject are identical to those of SR-ERO | |||
| subobject. | subobject. | |||
| If a PCEP speaker receives an SR-RRO subobject in which both SID and | If a PCEP speaker receives an SR-RRO subobject in which both SID and | |||
| NAI are absent, it MUST consider the entire RRO object invalid and | NAI are absent, it MUST consider the entire RRO object invalid and | |||
| send a PCE error with Error-Type = 10 ("Reception of an invalid | send a PCErr message with Error-Type = 10 ("Reception of an invalid | |||
| object") and Error-Value = TBD ("Both SID and NAI are absent in RRO | object") and Error-Value = TBD ("Both SID and NAI are absent in RRO | |||
| subobject"). | subobject"). | |||
| If a PCE detects that all subobjects of RRO are not identical, and if | If a PCE detects that all subobjects of RRO are not identical, and if | |||
| it does not handle such RRO, it MUST send PCE error with Error-Type = | it does not handle such RRO, it MUST send a PCErr message with Error- | |||
| 10 ("Reception of an invalid object") and Error-Value = TBD ("Non- | Type = 10 ("Reception of an invalid object") and Error-Value = TBD | |||
| identical RRO subobjects"). | ("Non-identical RRO subobjects"). | |||
| 5.5. METRIC Object | 5.5. METRIC Object | |||
| If a PCEP session is established with an MSD value of zero, then the | If a PCEP session is established with an MSD value of zero, then the | |||
| PCC MAY specify the MSD for an individual path computation request | PCC MAY specify the MSD for an individual path computation request | |||
| using the METRIC object defined in [RFC5440]. This document defines | using the METRIC object defined in [RFC5440]. This document defines | |||
| a new type for the METRIC object to be used for this purpose as | a new type for the METRIC object to be used for this purpose as | |||
| follows: | follows: | |||
| o T = TBD (suggested value 11): Maximum SID Depth of the requested | o T = TBD (suggested value 11): Maximum SID Depth of the requested | |||
| skipping to change at page 17, line 4 ¶ | skipping to change at page 17, line 13 ¶ | |||
| Error-value = TBD (recommended 2): Bad label value | Error-value = TBD (recommended 2): Bad label value | |||
| Error-value = TBD (recommended 3): Unsupported number | Error-value = TBD (recommended 3): Unsupported number | |||
| of Segment ERO | of Segment ERO | |||
| subobjects | subobjects | |||
| Error-value = TBD (recommended 4): Bad label format | Error-value = TBD (recommended 4): Bad label format | |||
| Error-value = TBD (recommended 5): Non-identical ERO | Error-value = TBD (recommended 5): Non-identical ERO | |||
| subobjects | subobjects | |||
| Error-value = TBD (recommended 6): Both SID and NAI | Error-value = TBD (recommended 6): Both SID and NAI | |||
| are absent in ERO | are absent in ERO | |||
| subobject | subobject | |||
| Error-value = TBD (recommended 7): Both SID and NAI | Error-value = TBD (recommended 7): Both SID and NAI | |||
| are absent in RRO | are absent in RRO | |||
| subobject | subobject | |||
| Error-value = TBD (recommended 9): Default MSD is | Error-value = TBD (recommended 9): Default MSD is | |||
| specified for the | specified for the | |||
| PCEP session | PCEP session | |||
| Error-value = TBD (recommended 10): Non-identical RRO | Error-value = TBD (recommended 10): Non-identical RRO | |||
| subobjects | subobjects | |||
| Error-value = TBD (recommended 11): Malformed object | ||||
| 9.3. PCEP TLV Type Indicators | 9.3. PCEP TLV Type Indicators | |||
| IANA is requested to allocate a new code point in the PCEP TLV Type | IANA is requested to allocate a new code point in the PCEP TLV Type | |||
| Indicators registry, as follows: | Indicators registry, as follows: | |||
| Value Meaning Reference | Value Meaning Reference | |||
| ------------------------- ---------------------------- -------------- | ------------------------- ---------------------------- -------------- | |||
| TBD (recommended 26) SR-PCE-CAPABILITY This document | TBD (recommended 26) SR-PCE-CAPABILITY This document | |||
| End of changes. 19 change blocks. | ||||
| 30 lines changed or deleted | 36 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||