<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4915 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4915.xml">
<!ENTITY RFC7684 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7684.xml">
<!ENTITY RFC5120 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5120.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-gulkohegde-routing-planes-using-sr-00" ipr="trust200902">
<front>
<title abbrev="Separating Routing Planes using Segment Routing"> Separating Routing Planes using Segment Routing</title>
<author initials="S." surname="Hegde" fullname="Shraddha Hegde">
<organization>Juniper Networks, Inc.</organization>
<address>
<postal>
<street>Embassy Business Park</street>
<city>Bangalore</city>
<region>KA</region>
<code>560093</code>
<country>India</country>
</postal>
<email>shraddha@juniper.net</email>
</address>
</author>
<author initials="A." surname="Gulko" fullname="Arkadiy Gulko">
<organization>Thomson Reuters</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<email>arkadiy.gulko@thomsonreuters.com</email>
</address>
</author>

<date year="2017"/>
<area>Routing</area>
<workgroup>SPRING</workgroup>
<keyword>SR</keyword>
<keyword>MT</keyword>
<keyword>OSPF</keyword>
<keyword>ISIS</keyword>
<abstract>
<t> Many network deployments arrange the network topologies in two or more planes.
 The traffic generally uses one of the planes and fails over to the other plane when there are link or node failure.
 Certain applications require the traffic to be strictly restricted to a particular plane and should not failover to the other plane.
 This document proposes a solution for the strict planar routing using Segment Routing.</t> 

</abstract>
<note title="Requirements Language">
<t>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 <xref target="RFC2119">RFC 2119</xref>.</t>
</note>
</front>
<middle>

<section title="Introduction" anchor='intro'>

<figure anchor="network_palnes" title="Network Planes">
<artwork>

                    A3----------------------A4                           
                  / |                      /|
                 /  |                     / |
                /   |                    /  |
               A1---|-------------------A2  |
               |    B3------------------|---B4
               |   /                    |   /
               |  /                     |  / 
               | /                      | /
               B1-----------------------B2

</artwork>
</figure>



<t>The above <xref target="network_palnes"/> represents a network topology in two planes.Nodes A1, A2, A3, A4
are in plane A and B1, B2, B3, B4 are in plane B. A1->B1, A2->B2, A3->B3, A4->B4 represent the "shunt links" which connect the two planes.
Certain applications require that the traffic follows plane A and remains in plane A in case of failures and does not cross over to plane B.
Strict routing plane requirements can be met using multiple techniques. This draft focuses on solutions using Segment Routing technology.

</t>
 
</section>

<section title="Motivation" anchor='Motivation'>

<t>The motivation of this document is to provide solutions to strict routing plane requirements using Segment Routing.
The following objectives help to accomplish this in a range of deployment scenarios.</t>
<t>
<list style="numbers">
<t> Maintain strict routing within routing planes. </t>
<t> Allow traffic to failover within routing plane and do not allow traffic to failover to other planes</t>
<t> Achieve ease of configuration and operational management</t>
</list>
</t>
</section>

<section title='Solutions'>

<t> There are multiple ways to address the strict routing plane requirements. <xref target='routing_plane_sid'/>
describes a mechanism by using diferrent SIDs for each plane.Another option is to use Multi-topology SIDs as defined in <xref target='multi_topology'/>. 
 
</t>


<section title='Routing-plane SID' anchor='routing_plane_sid'>
<t>A new SID called Routing-Plane  SID is defined and associated with new algorithm values.
This document  proposes 4 new algorithm values which represent SPF in routing-planes.
When the network topology is organized into two different  planes, each node in plane A associates a new Routing-Plane SID
to one of it's loopback addresses and advertises the SID in the segment routing extension defined in [SR-OSPF]
 section 2.1 and [SR-IS-IS] section 5. 
The prefix-SID sub-TLV carries the new algorithm values corresponding to the routing-plane. The traffic which needs to be
restricted to a certain routing-plane,should use the Routing-Plane SID corresponding to that plane to forward the traffic.
The paths through the Routing planes MAY use single Routing Plane SID or a stack of multiple Routing Plane SIDs.
Adjacency-SIDs can also be used build paths across routing planes. Adjacency-SIDs are not scoped per-algorithm and it is possible that the
protection path for the adjacency SIDs uses a path going over a different routing-plane.It is recommended to use non-protected adjacency-SIDs to 
avoid backup traffic flowing through different plane. </t>


<section title='Elements of procedure' anchor='elements_of_procedure'>

<t> All the nodes that belong to a certain routing-plane MUST  advertise the algorithm corresponding to that
routing-plane in the algorithm sub-TLV as defined in [SR-OSPF] and
[SR-IS-IS]. The nodes SHOULD also advertise Routing-Plane SID 
corresponding to that algorithm in the prefix-SID Sub-TLV.  </t>
<t>A node that receives the algorithm sub-TLV with new algorithm value specified in  <xref target='IANA'/> MUST compute
SPF with all the nodes that advertised the new algorithm. The next-hops and RIB entries for the Routing-Plane SIDs MUST be computed
from the routing-plane SPF. Certain nodes MAY belong to multiple routing-planes. 
Such nodes MUST compute SPF corresponding to each plane and compute the next-hops for the SIDs corresponding
to each plane. </t>

<t> Each router MAY assign different IP address corresponding to each plane or MAY use the same IP address  
to assign the node-SIDs and Routing-Plane SIDs. The ingress routers MAY advertise binding-SIDs as 
defined in [SR-ARCH]section 3.5.2,
for the label stacks that are constructed using routing-Plane SIDs. The ingress routers MAY map the incoming IP traffic
onto the Routing-Plane SIDs, the mechanisms to do so is implementation dependant and outside the scope of this document.
</t>
<t> When the network topology is organized into multiple IGP levels or areas, the Routing Plane SIDs MAY be re-originated from one IGP domain
into the other domain by the border routers. The border IGP routers MUST re-advertise the Routing-Plane SIDs if they belong to the corresponding Routing plane and has
advertised the algorithm corresponding to the routing-plane. </t>
</section>
    
</section>



<section title='Multi-topology SID' anchor='multi_topology'>
<t> Multi topology Routing defines mechanisms to support multiple topologies in a single physical network. ISIS and OSPF extensions to 
support multi-topology routing is defined in <xref target='RFC5120'/> and <xref target='RFC4915'/> respectively.
Multi-topology routing defined in  <xref target='RFC5120'/> and <xref target='RFC4915'/>
describes mechanisms to separate topologies in ISIS and OSPF by advertising separate MT-TLVs in ISIS and multi-topology scoped Router LSA in OSPF.
 The different routing planes 
in customer network can be assigned with different MT-ID for each routing-plane and the multi-topology SIDs can be advertised for each MT-ID as described in
[SR-OSPF] and [SR-IS-IS].
 Multi-topology SIDs are associated with algorithm 0 and no new algorithm definition is required.
 All the nodes in the network MUST also support multi-topology routing as defined in <xref target='RFC5120'/> and <xref target='RFC4915'/>.
 All the nodes in the network compute separate SPF per MT-ID and program the forwarding planes with MT-SIDs accordingly.
 Multi-topology SIDs are used to build the explicit paths through the network. Multi-topology based solution has an advantage of possibility of assigning
 different IGP costs to links for different MTs. For deployments that do not need separate IGP costs and topologies for each routing plane, 
 it comes with an additional operational overhead of maintaining multi-topology configurations.
</t>
</section>
</section>
<section title='Backward compatibility'>
   <t>The mechanism described in the document is fully backward compatible. If a node does not support the extensions defined in this 
   document, it will not advertise the additional algorithm values in the algorithm sub-TLV. All the computing nodes will not consider
   the node in the SPF computation if it has not advertised the specific algorithm. For the multi-topology based solution
   backward compatibility mechanism described in  <xref target='RFC5120'/> and <xref target='RFC4915'/> are applicable.</t>

</section>



<section title='Security Considerations' anchor='sec-con'>
<t>
This document does not introduce any further security issues other
than those discussed in [SR-OSPF]
 and [SR-IS-IS].
</t>
</section>
<section anchor="IANA" title="IANA Considerations">

<t>This specification updates  OSPF and ISIS registry:</t>
<t><vspace blankLines="1"/>
OSPF Router Information (RI) TLVs Registry</t>

   <t> 8 (IANA Preallocated) - SR-Algorithm TLV</t>
   <t> Algorithm 2 -5 : SPF in routing plane</t>
<t><vspace blankLines="1"/>
 ISIS Sub TLVs for Type 242</t>
<t>Type: TBD (suggested value 19)</t>
<t>Description: Segment Routing Algorithm</t>
<t>Algorithm 2-5 : SPF in Routing Plane</t>


</section>
<section title='Acknowledgements'>
<t></t>
</section>


</middle>
<back>

<references title='Normative References'>
&RFC2119;
&RFC4915;
&RFC5120;


 <reference anchor="SR-IS-IS">
        <front>
          <title>IS-IS Extensions for Segment Routing,
          draft-ietf-isis-segment-routing-extensions-11(work in
          progress)</title>

          <author fullname="Previdi, S., et al"/>

          <date month="October" year="2016"/>
        </front>
      </reference>

      <reference anchor="SR-OSPF">
        <front>
          <title>OSPF Extensions for Segment Routing,
          draft-ietf-ospf-segment-routing-extensions-11(work in
          progress)</title>

          <author fullname="Psenak, P., et al"/>

          <date month="July" year="2016"/>
        </front>
      </reference>

      <reference anchor="SR-OSPFv3">
        <front>
          <title>OSPFv3 Extensions for Segment Routing,
          draft-ietf-ospf-ospfv3-segment-routing-extensions-06(work in
          progress)</title>

          <author fullname="Psenak, P., et al"/>

          <date month="July" year="2016"/>
        </front>
      </reference>

    
</references>
<references title='Informative References'>
&RFC7684;
<reference anchor="SR-ARCH">
        <front>
          <title>Segment Routing Architecture,
          draft-ietf-spring-segment-routing-09(work in progress)</title>

          <author fullname="Filsfils, C., et al"/>

          <date month="July" year="2016"/>
        </front>
      </reference>

</references>

</back>
</rfc>