IS-IS for IP Internets S. Previdi, Ed. Internet-Draft C. Filsfils Intended status: Standards Track A. Bashandy Expires: December 30, 2013 Cisco Systems, Inc. B. Decraene S. Litkowski Orange R. Geib Deutsche Telekom I. Milojevic Telekom Srbija R. Shakir British Telecom S. Ytti TDC Oy W. Henderickx Alcatel-Lucent J. Tantsura Ericsson June 28, 2013 IS-IS Extensions for Segment Routing draft-previdi-isis-segment-routing-extensions-00 Abstract Segment Routing (SR) allows for a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological sub-paths, called "segments". These segments are advertised by the link-state routing protocols (IS-IS and OSPF). This draft describes the necessary IS-IS extensions that need to be introduced for Segment Routing. 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 RFC 2119 [RFC2119]. 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 Previdi, et al. Expires December 30, 2013 [Page 1] Internet-Draft IS-IS Extensions for Segment Routing June 2013 working documents as Internet-Drafts. The list of current Internet- Drafts is at http://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 December 30, 2013. Copyright Notice Copyright (c) 2013 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 (http://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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Previdi, et al. Expires December 30, 2013 [Page 2] Internet-Draft IS-IS Extensions for Segment Routing June 2013 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Segment Routing Identifiers . . . . . . . . . . . . . . . . . 4 2.1. Prefix Segment Identifier (Prefix-SID Sub-TLV) . . . . . . 4 2.2. Adjacency Segment Identifier (Adj-SID) . . . . . . . . . . 6 2.2.1. Adj-SID and Interface Address . . . . . . . . . . . . 7 2.2.2. Adj-SID and Forwarding Adjacencies . . . . . . . . . . 7 2.2.3. Adjacency Segment Identifier (Adj-SID) Sub-TLV . . . . 7 2.2.4. Adjacency Segment Identifiers in LANs . . . . . . . . 10 3. Segment Routing Capabilities . . . . . . . . . . . . . . . . . 12 3.1. Segment Routing Capability Sub-TLV (SR-Cap) . . . . . . . 12 3.2. Segment Routing Mapping Server . . . . . . . . . . . . . . 14 3.2.1. SR Mapping Server Sub-TLV . . . . . . . . . . . . . . 14 3.3. Segment Routing Mirroring Context Sub-TLV (SRMC) . . . . . 17 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 5. Manageability Considerations . . . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.1. Normative References . . . . . . . . . . . . . . . . . . . 19 8.2. Informative References . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 Previdi, et al. Expires December 30, 2013 [Page 3] Internet-Draft IS-IS Extensions for Segment Routing June 2013 1. Introduction Segment Routing (SR) allows for a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological sub-paths, called "segments". These segments are advertised by the link-state routing protocols (IS-IS and OSPF). Two types of segments are defined, Prefix segments and Adjacency segments. Prefix segments represent an ecmp-aware shortest-path to a prefix, as per the state of the IGP topology. Adjacency segments represent a hop over a specific adjacency between two nodes in the IGP. A prefix segment is typically a multi-hop path while an adjacency segment, in most of the cases, is a one-hop path. SR's control-plane can be applied to both IPv6 and MPLS data-planes, and do not require any additional signaling (other than the regular IGP). For example, when used in MPLS networks, SR paths do not require any LDP or RSVP-TE signaling. Still, SR can interoperate in the presence of LSPs established with RSVP or LDP . This draft describes the necessary IS-IS extensions that need to be introduced for Segment Routing. This draft replaces [I-D.previdi-filsfils-isis-segment-routing]. Segment Routing architecture is described in [draft-filsfils-rtgwg-segment-routing-00]. Segment Routing use cases are described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. 2. Segment Routing Identifiers Segment Routing architecture defines different types of Segment Identifiers (SID). This document defines the IS-IS encodings for the IGP-Prefix-SID and IGP-Adjacency-SID. 2.1. Prefix Segment Identifier (Prefix-SID Sub-TLV) A new IS-IS Sub-TLV is defined: the Prefix Segment Identifier Sub-TLV (Prefix-SID Sub-TLV). The Prefix-SID Sub-TLV carries the Segment Routing IGP-Prefix-SID and has flags and fields that may be used, in future extensions of Segment Routing, for carrying other types of SIDs. A Prefix-SID Sub-TLV is associated to a prefix advertised by a node and MAY be present in any of the following TLVs: Previdi, et al. Expires December 30, 2013 [Page 4] Internet-Draft IS-IS Extensions for Segment Routing June 2013 TLV-135 (IPv4) defined in [RFC5305]. TLV-235 (MT-ipv4) defined in [RFC5120]. TLV-236 (IPv6) defined in [RFC5308]. TLV-237 (MT-IPv6) defined in [RFC5120]. The Prefix-SID Sub-TLV has the following format: 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Segment Identifier (SID) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Type: TBA Length: multiple of 6 octets. Flags: 2 octets field of following flags: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|N|P|G| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: R-Flag: Re-advertisement flag. If set, then the prefix to which this Prefix-SID is attached, has been propagated by the router either from another level (i.e.: from level-1 to level-2 or the opposite) or from redistribution (e.g.: from another protocol). N-Flag: Node-SID flag. If set, then the Prefix-SID refers to the router identified by the prefix. Typically, the N-Flag is set on Prefix-SIDs attached to a router loopback address. The N-Flag is set when the Prefix-SID is a Node-SID as described in [draft-filsfils-rtgwg-segment-routing-00]. This flag is optional. Previdi, et al. Expires December 30, 2013 [Page 5] Internet-Draft IS-IS Extensions for Segment Routing June 2013 P-Flag: no-PHP flag. If set, then the penultimate hop MUST NOT pop the Prefix-SID before delivering the packet to the node that advertised the Prefix-SID. G-Flag: Global flag. When set, the SID value has global significance which means the SID has been allocated from the Global Segment Routing Block (SRGB) as described in [draft-filsfils-rtgwg-segment-routing-00]. When unset, the SID value has local (within the router) significance which means the SID has NOT been allocated from the SRGB. When the IS-IS Prefix-SID Sub-TLV carries an IGP Prefix SID, then the G-flag MUST be set. Other bits: MUST be zero when originated and ignored when received. Prefix Segment Identifier (SID): 32 bits of Prefix-SID. Multiple Prefix-SIDs MAY appear on the same prefix in which case each SID is encoded as a tuple . When multiple Prefix- SIDs are present, the receiving router MUST use the first encoded SID and MAY use the subsequent ones. The No-PHP flag MUST be set on the Prefix-SIDs allocated to Level-2 prefixes that are originated by the router based on Level-1 reachability (i.e.: prefixes that are propagated from Level-1 into Level-2). The No-PHP flag MUST be set on Prefix-SIDs allocated to Level-1 prefixes that are originated by the router based on Level-2 reachability (i.e.: prefixes that are leaked from Level-2 into Level-1). The R-Flag MUST be set for prefixes that are advertised because of propagation (Level-1 into Level-2), leaking (Level-2 into Level-1) and redistribution (e.g.: from another protocol). 2.2. Adjacency Segment Identifier (Adj-SID) A new IS-IS Sub-TLV is defined: the Adjacency Segment Identifier Sub- TLV (Adj-SID Sub-TLV). The Adj-SID Sub-TLV is an optional Sub-TLV carrying the Segment Routing IGP-Adjacency-SID with flags and fields that may be used, in future extensions of Segment Routing, for carrying other types of SIDs. IS-IS adjacencies are advertised using one of the IS-Neighbor TLVs Previdi, et al. Expires December 30, 2013 [Page 6] Internet-Draft IS-IS Extensions for Segment Routing June 2013 below: TLV-22 [RFC5305] TLV-222 [RFC5120] TLV-23 [RFC5311] TLV-223 [RFC5311] TLV-141 [RFC5316] Currently, [RFC5316] defines TLV-141 with the purpose of inter-AS connectivity. In the Segment Routing context, we relax the constraint and we allow TLV-141 to be used for advertising any link that is external to the IS-IS domain no matter if it connects another AS or not. Multiple Adj-SID Sub-TLVs MAY be associated with a single IS- neighbor. Examples where more than one Adj-SID may be used per IS- neighbor are described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. 2.2.1. Adj-SID and Interface Address When advertising one or more Adj-SID Sub-TLVs, the router MUST also advertise Interface Address and Neighbor Address Sub-TLVs (IPv4 or IPv6). The encoding is defined in [RFC5305] for IPv4 and in [RFC6119] for IPv6. 2.2.2. Adj-SID and Forwarding Adjacencies Forwarding Adjacencies are defined in [RFC4206] and allow a router to advertise an MPLS RSVP-TE LSP as if it was a regular IS-IS adjacency. Segment Routing supports FAs and Adj-SIDs can be assigned to FA advertisements. A new sub-TLV (defined below) is introduced in order to give the optional ability to advertise the explicit path represented by a FA. 2.2.3. Adjacency Segment Identifier (Adj-SID) Sub-TLV The following format is defined for the Adj-SID Sub-TLV: Previdi, et al. Expires December 30, 2013 [Page 7] Internet-Draft IS-IS Extensions for Segment Routing June 2013 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Adj-SID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ERO (optional and variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Type: TBA Length: variable. Flags: 2 octets field of following flags: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|I|V|E|G|T| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: F-Flag: FA flag. Optional and, if set, then Adj-SID refers to a Forwarding Adjacency. I-Flag: IPv4 flag. Optional and, if set, then the Adj-SID refers to an adjacency with outgoing IPv4 encapsulation. V-Flag: IPv6 flag. Optional and, if set, then the Adj-SID refers to an adjacency with outgoing IPv6 encapsulation. E-Flag: ERO presence flag. Optional and, If set, it indicates presence of the ERO object. G-Flag: Global flag. When set, the SID value has global significance which means the SID has been allocated from the Segment Routing Global Block (SRGB) as described in [draft-filsfils-rtgwg-segment-routing-00]. When unset, the SID value has local (within the router) significance which means the SID has NOT been allocated from the SRGB. When the IS-IS Adj-SID Sub-TLV carries the IGP Adjacency SID, then the G-Flag MUST be unset. Previdi, et al. Expires December 30, 2013 [Page 8] Internet-Draft IS-IS Extensions for Segment Routing June 2013 T-Flag: Protected-flag. Optional and, if set, the Adj-SID refers to an adjacency being protected (e.g.: using IPFRR or MPLS-FRR) as described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. Other bits: MUST be zero when originated and ignored when received. Adj-SID: 32 bits of Adjacency Segment Identifier (Adj-SID). An SR capable router SHOULD allocate an Adj-SID for each of its adjacencies and set the T-Flag when the adjacency is protected by a FRR mechanism (IP or MPLS) as described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. If both the I and V flag are set, then the encapsulation MUST be determined by the inspection of the first 4 bits of the IP packet (IPv4 or IPv6). Both the I and V flags are optional. When the I or V flags are set, they take precedence over the I or V flags defined in Section 3.1. If the E-flag is set, then the explicit path taken by the Forwarding Adjacency MUST be encoded using the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Explicit Route Hop #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Explicit Route Hop #... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .... | where: Length: 1 octet of length of the ERO object. Flags: 1 octet flag field where following flags are defined: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |I|V|R| | +-+-+-+-+-+-+-+-+ where: Previdi, et al. Expires December 30, 2013 [Page 9] Internet-Draft IS-IS Extensions for Segment Routing June 2013 I-Flag is the IPv4 flag. When set the content of the Explicit Route Object contains IPv4 addresses. V-Flag is the IPv6 flag. When set the content of the Explicit Route Object contains IPv6 addresses. R-Flag is the Segment Routing flag. When set the content of the Explicit Route Object contains SIDs. Explicit Route Hop: addresses of the explicit route. IPv4 and SR hops are encoded using a 32 bit value while IPv6 hops are encoded as 128 bit values. Only one flag MUST be set among the I, V and R flags. If more than one are set , the receiving router MUST ignore the ERO object and SHOULD log an error. 2.2.4. Adjacency Segment Identifiers in LANs In LAN subnetworks, the Designated Intermediate System (DIS) is elected and originates the Pseudonode-LSP (PN-LSP) including all neighbors of the DIS. When Segment Routing is used, each router in the LAN MUST advertise the Adj-SID of each of its neighbors. Since, on LANs, each router only advertises one adjacency to the DIS (and doesn't advertise any other adjacency), each router advertises the set of Adj-SIDs (for each of its neighbors) inside a newly defined Sub-TLV part of the TLV advertising the adjacency to the DIS (e.g.: TLV-22). Inside the Adj-SID Sub-TLV described in Section 2.2.3 the following new Sub-TLV is defined: LAN-Adj-SID which contains the set of Adj- SIDs the router assigned to each of its LAN neighbors. The format of the LAN-Adj-SID Sub-TLV is as follows: Previdi, et al. Expires December 30, 2013 [Page 10] Internet-Draft IS-IS Extensions for Segment Routing June 2013 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Adj-SID #1 (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | System-ID #1 (6 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .... | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Adj-SID #n (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | System-ID #n | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Type: TBA. Length: is 2 + multiple of 10 octets. Flags: 2 octets field of following flags: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I|V|T| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: I-Flag: IPv4 flag. If set, then the Adj-SID refers to an adjacency with outgoing SR IPv4 encapsulation. V-Flag: IPv6 flag. If set, then the Adj-SID refers to an adjacency with outgoing SR IPv6 encapsulation. T-Flag: Protected-flag: set if the LAN interface is being protected (e.g.: using IPFRR or MPLS-FRR) as described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. Previdi, et al. Expires December 30, 2013 [Page 11] Internet-Draft IS-IS Extensions for Segment Routing June 2013 Other bits: MUST be zero when originated and ignored when received. Adj-SID: 32 bits of SID. System-ID: IS-IS System-ID of length "ID Length" as defined in [ISO10589]. Multiple tuples SHOULD be encoded in one Sub- TLV. In case one TLV-22/23/222/223 (reporting the adjacency to the DIS) can't contain the whole set of Adj-SID Sub-TLVs, multiple advertisement of the adjacency to the DIS MUST be used. Each router within the level, by receiving the DIS PN LSP as well as the non-PN LSP of each router in the LAN, is capable of reconstructing the LAN topology as well as the set of Adj-SID each router uses for each of its neighbors. 3. Segment Routing Capabilities Segment Routing requires each router to advertise its capabilities to the rest of the routing domain. IS-IS Router Capability TLV-242 is defined in [RFC4971] and describes the router capabilities. For the purposes of Segment Routing we define following additional Sub-TLVs: Segment Routing Capability Sub-TLV (SR-Cap) Segment Routing Mapping Server Sub-TLV (SRMS) Segment Routing Mirroring Context SID Sub-TLV (SRMC) The Router Capability TLV specifies flags that control its advertisement. The SR-Cap, SRMS and SRMC Sub-TLVs MUST be propagated throughout the entire routing domain and therefore the Router Capability TLV distribution flags MUST be set accordingly, i.e.: the S flag must be set and the D flag MUST be set when the Capability TLV is leaked into level-1. 3.1. Segment Routing Capability Sub-TLV (SR-Cap) The SR-Cap Sub-TLV is advertised by the SR-capable router in order to advertise its support of SR signaling. The SR-Cap Sub-TLV MUST appear only once and has following format: Previdi, et al. Expires December 30, 2013 [Page 12] Internet-Draft IS-IS Extensions for Segment Routing June 2013 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First SID Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Last SID Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Type: TBA. Length: 2 octets + 8 octets if SID Values are advertised. Flags: 2 octets field of following flags: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |X|M|I|V| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: X-Flag: Index flag. If set, then each SID with the G-Flag set that is advertised by this router represents an index in the label space also advertised by this router (using the encodings defined below). Indexed SID values are described in [draft-filsfils-rtgwg-segment-routing-00]. If the X-Flag is not set, then SID values 0-63 are reserved and MUST NOT be used by the SR control plane for either node or adjacency segments. Any SID which is received with a value 0-63 and the X-Flag unset MUST be ignored and the router SHOULD log an error. M-Flag: SID space flag. If set, the router advertises SID space. I-Flag: IPv4 flag. If set, then the router is capable of outgoing IPv4 encapsulation on all interfaces. V-Flag: IPv6 flag. If set, then the router is capable of outgoing IPv6 encapsulation on all interfaces. Other bits: MUST be zero when originated and ignored when received. Previdi, et al. Expires December 30, 2013 [Page 13] Internet-Draft IS-IS Extensions for Segment Routing June 2013 First SID Value and Last SID Value represent the local SID range of the router. The semantic and procedures of these values are described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. I-Flag and V-Flag define the outgoing encapsulations the router is capable of on all its interfaces. The equivalent flags are defined in Section 2.2.3 and allow to advertise interface-specific outgoing encapsulation overriding the one advertised in the SR-Cap Sub-TLV. 3.2. Segment Routing Mapping Server One or more SR capable routers may act as a Segment Routing Mapping Server (SRMS). One example (but not limited to) of SR Mapping Server use is when some of the routers in the network do not support Segment Routing and therefore they won't advertise any Prefix-SID. In such case the SRMS advertises the mappings on behalf of the non-SR capable routers. The details on the Segment Routing Mapping Server capability are described in [draft-filsfils-rtgwg-segment-routing-use-cases-00]. 3.2.1. SR Mapping Server Sub-TLV The SR Mapping Server Sub-TLV (SRMS Sub-TLV) is used in order to advertise Prefix-SID mappings on behalf of routers. The SRMS Sub-TLV is optional and MAY appear more than once in the Router Capability TLV. The SRMS Sub-TLV has the following format: 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | where: Type: TBD. Length: variable. Flags. Following flags are defined: Previdi, et al. Expires December 30, 2013 [Page 14] Internet-Draft IS-IS Extensions for Segment Routing June 2013 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I|V|R| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: I-flag: IPv4 flag. If set then the carried mappings refer to an IPv4 prefix. V-flag: IPv6 flag. If set then the carried mappings refer to an IPv6 prefix. R-Flag: Range flag. When set, the mappings are expressed using range values. The combination of the I, V flags with the R flag tells the Address Family and type of encodings. When the R-flag is not set, the following encoding format is used: 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Masklength and Prefix #1 (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix-SID #1 (4 octet length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Masklength and Prefix #n (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix-SID #n (4 octet length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Masklength and Prefix: the prefix to be mapped into a Prefix-SID consisting of 1 octet of prefix length followed by 0 to 16 octets of IPv4 or IPv6 prefix (determined by the I and V flags). Prefix-SID: 4 octet Node Segment Identifier mapped to the prefix. The 8 bits of prefix length can have the values 0-128 and indicate the number of significant bits in the prefix. The prefix is encoded Previdi, et al. Expires December 30, 2013 [Page 15] Internet-Draft IS-IS Extensions for Segment Routing June 2013 in the minimal number of octets for the given number of significant bits as follows: Prefix octets = integer of ((prefix length + 7) / 8) The range option (the R bit) provides the ability to specify a range of addresses and the associated Prefix-SIDs. In fact, then the R bit allows to specify the first address, the number of addresses that need to be mapped into a Prefix-SID and the starting value of the Prefix-SID range. Therefore, with the R bit set, the following encoding is used: 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 | Length | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Masklength and Prefix #1 (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Prefix-SID #1 (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Range Size #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | ... | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Masklength and Prefix #n (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Prefix-SID #n (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Range Size #n | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ For example, if the following router addresses (loopback addresses) need to be mapped into the corresponding Prefix-SIDs: Router-A: 192.0.2.1/32, Prefix-SID: 1001 Router-B: 192.0.2.2/32, Prefix-SID: 1002 Router-C: 192.0.2.3/32, Prefix-SID: 1003 Router-D: 192.0.2.4/32, Prefix-SID: 1004 The R-bit allows the following encoding: Previdi, et al. Expires December 30, 2013 [Page 16] Internet-Draft IS-IS Extensions for Segment Routing June 2013 First Masklength and Prefix: 1 octet of length with value: 32 4 octets of prefix with value: 192.0.2.1 First Prefix-SID: 4 octets of Prefix-SID with value: 1001 Range Size: 2 octets with value: 4 The Segment Routing Mapping Server MUST NOT advertise overlapping ranges or Prefix-SID mappings. In case of overlap, the receiver SHOULD log an error and ignore the smaller range or the specific Prefix-SID mapping which is part of a range. 3.3. Segment Routing Mirroring Context Sub-TLV (SRMC) The SRMC Sub-TLV allows a node (called the mirroring node) to advertise its capability to mirror another node (called the mirrored node). The mirroring node is identified by its IPv4/IPv6 address or its related Prefix-SID. The mirroring node advertises in the SRMC Sub-TLV the context segment that needs to be used in order to invoke its mirroring service for the mirrored node. Examples of mirroring services use cases are defined in [draft-filsfils-segment-routing-use-cases] and [I-D.minto-rsvp-lsp-egress-fast-protection]. The SRMC Sub-TLV is optional and MAY be present in the Router Capability TLV (TLV-242), MAY appear more than once and has following format: 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 | Length | SRMC Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mirrored Address (variable) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Context-SID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: Previdi, et al. Expires December 30, 2013 [Page 17] Internet-Draft IS-IS Extensions for Segment Routing June 2013 Type: TBA. Length: variable. SRMC Flags: 2 octets field of flags. Following flags are defined: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I|V|R| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: I-flag: IPv4 flag. If set, the Mirrored Address is an IPv4 address. V-flag: IPv6 flag. If set, the Mirrored Address is an IPv6 address. R-flag: Segment Routing Identifier. If set, the Mirrored Address is a SID. Other bits: MUST be zero when originated and ignored when received. Mirrored Address: the IPv4 or IPv6 or SID value representing the mirrored element. Context-SID: 32 bit value of Segment Identifier for the Mirroring Service. 4. IANA Considerations TBD 5. Manageability Considerations TBD 6. Security Considerations TBD Previdi, et al. Expires December 30, 2013 [Page 18] Internet-Draft IS-IS Extensions for Segment Routing June 2013 7. Acknowledgements We would like to thank Les Ginsberg, Dave Ward, Dan Frost, Stewart Bryant, Hannes Gredler, Pierre Francois and Martin Horneffer for their contribution to the content of this document. 8. References 8.1. Normative References [ISO10589] International Organization for Standardization, "Intermediate system to Intermediate system intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode Network Service (ISO 8473)", ISO/ IEC 10589:2002, Second Edition, Nov 2002. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Engineering (TE)", RFC 4206, October 2005. [RFC4971] Vasseur, JP., Shen, N., and R. Aggarwal, "Intermediate System to Intermediate System (IS-IS) Extensions for Advertising Router Information", RFC 4971, July 2007. [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)", RFC 5120, February 2008. [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic Engineering", RFC 5305, October 2008. [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, October 2008. [RFC5311] McPherson, D., Ginsberg, L., Previdi, S., and M. Shand, "Simplified Extension of Link State PDU (LSP) Space for IS-IS", RFC 5311, February 2009. [RFC5316] Chen, M., Zhang, R., and X. Duan, "ISIS Extensions in Support of Inter-Autonomous System (AS) MPLS and GMPLS Traffic Engineering", RFC 5316, December 2008. Previdi, et al. Expires December 30, 2013 [Page 19] Internet-Draft IS-IS Extensions for Segment Routing June 2013 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic Engineering in IS-IS", RFC 6119, February 2011. 8.2. Informative References [I-D.minto-rsvp-lsp-egress-fast-protection] Jeganathan, J., Gredler, H., and Y. Shen, "RSVP-TE LSP egress fast-protection", draft-minto-rsvp-lsp-egress-fast-protection-02 (work in progress), April 2013. [I-D.previdi-filsfils-isis-segment-routing] Previdi, S., Filsfils, C., Bashandy, A., Horneffer, M., Decraene, B., Litkowski, S., Milojevic, I., Shakir, R., Ytti, S., Henderickx, W., and J. Tantsura, "Segment Routing with IS-IS Routing Protocol", draft-previdi-filsfils-isis-segment-routing-02 (work in progress), March 2013. [draft-filsfils-rtgwg-segment-routing-00] Previdi, S. and C. Filsfils, "Segment Routing", May 2013. [draft-filsfils-rtgwg-segment-routing-use-cases-00] Filsfils, C., "Segment Routing Use Cases", May 2013. Authors' Addresses Stefano Previdi (editor) Cisco Systems, Inc. Via Del Serafico, 200 Rome 00142 Italy Email: sprevidi@cisco.com Clarence Filsfils Cisco Systems, Inc. Brussels, BE Email: cfilsfil@cisco.com Previdi, et al. Expires December 30, 2013 [Page 20] Internet-Draft IS-IS Extensions for Segment Routing June 2013 Ahmed Bashandy Cisco Systems, Inc. 170, West Tasman Drive San Jose, CA 95134 US Email: bashandy@cisco.com Bruno Decraene Orange FR Email: bruno.decraene@orange.com Stephane Litkowski Orange FR Email: stephane.litkowski@orange.com Rudiger Geib Deutsche Telekom DE Email: Rudiger.Geib@telekom.de Igor Milojevic Telekom Srbija Takovska 2 Belgrade RS Email: igormilojevic@telekom.rs Rob Shakir British Telecom London UK Email: rob.shakir@bt.com Previdi, et al. Expires December 30, 2013 [Page 21] Internet-Draft IS-IS Extensions for Segment Routing June 2013 Saku Ytti TDC Oy Mechelininkatu 1a TDC 00094 FI Email: saku@ytti.fi Wim Henderickx Alcatel-Lucent Copernicuslaan 50 Antwerp 2018 BE Email: wim.henderickx@alcatel-lucent.com Jeff Tantsura Ericsson 300 Holger Way San Jose, CA 95134 US Email: Jeff.Tantsura@ericsson.com Previdi, et al. Expires December 30, 2013 [Page 22]