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