<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?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-wang-lsr-redistribution-credibility-id-01"
     ipr="trust200902">
  <front>
    <title abbrev="TTR for Avoiding Routing Loop">Route Redistribution
    Credibility ID for Avoiding Routing Loop</title>

    <author fullname="Qiang Wang" initials="Q." surname="Wang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing,</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>wangqiang88@huawei.com</email>
      </address>
    </author>

    <date day="16" month="August" year="2023"/>

    <abstract>
      <t>The route redistribution is often deployed in current network between
      two different protocols domain or instance/process, such as the ISIS
      domain redistribute to OSPF domain, the OSPF domain redistribute to BGP
      domain, IS-IS redistribute to another IS-IS instance/process and so on.
      The existing network have more complex multiple IGP domains
      architecture. Therefore, bidirectional route redistribution deployment
      is more complex for different protocols or instances/processes to learn
      routes from each other. In recent years, these route redistributions
      have had many routing loops cases that cause network incident.</t>

      <t>This document proposes a simplified method to positively avoid
      routing loop, and introduces new sub-TLVs to support advertisement IPv4
      and IPv6 prefix extended attribute as Redistribution Credibility ID,
      while redistributing route from one protocol domain or instance/process
      to another.</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">
      <t>Due to network scope, architecture or network management requirement,
      many existing network have multiple different IGP protocol domains,
      including multiple routing protocol and multiple routing
      instance/process with same protocol. These IGP domains boundary routers
      need to deploy bidirectional route redistribution to learn routing
      prefix information for each other. Because of reliability design
      consideration, these route redistribution configuration have been
      deployed at least two routers, or even more boundary routers between
      these adjacent IGP domain.</t>

      <t>However, there is no routing loop prevention mechanism in multiple
      routing protocol domain or instance/process scenario. As traditional
      method, these redistribution routers must be configured complex route
      control policies, using IP prefix, cost and preference/ administrative
      distance (AD) and etc., to avoid routing loops and nonoptimal routing
      problems.</t>

      <t>As the network scale grows and irregular distribution, these multiple
      Route Redistribution node configuration become more and more difficult
      to control. Maybe any network change have to adjust these route
      redistribution configuration. The manually configured routing policy
      adjustment mode have more complex and high risky that cannot meet the
      requirements of the current network. As a result, many serious network
      loop accidents occur and service traffic had been affected. A simple and
      low-cost Layer 3 routing loop prevention solution is urgently
      needed.</t>
    </section>

    <section title="Terminology">
      <t>IS-IS: Intermediate System to Intermediate System</t>

      <t>OSPF: Open Shortest Path First</t>

      <t>TTR: Times-to-Redistribution</t>

      <t>Cred route-type: Credibility route-type</t>
    </section>

    <section title="Route Redistribution Credibility ID">
      <t>This document defines a new Route Redistribution Credibility ID
      sub-TLV to solve the Layer 3 routing loop problem. The Route
      Redistribution Credibility ID indicates the Route Credit Rating when
      this routing prefix has been propagated across multiple routing protocol
      domain or instance/process. The Route Redistribution Credibility ID is
      automatically attenuated when the routing prefix cross redistribution
      node. If a route is redistributed more times, this route&rsquo;s risk
      probability of routing loop is higher and its Credibility is lower.</t>

      <section title="IS-IS Redistribution Credibility ID Sub-TLV">
        <t>This section describes the Route Redistribution Credibility ID
        Sub-TLV for IS-IS.</t>

        <t/>

        <t><figure>
            <artwork align="center"><![CDATA[ 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    |   
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Redistribution Credibility ID                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  Figure 1: IS-IS Route Redistribution Credibility ID Sub-TLV
]]></artwork>
          </figure>where:</t>

        <t>Type: 33(is suggested)</t>

        <t>Length: (1 octet), the length value is 4 octets</t>

        <t>Redistribution Credibility ID: (4 octets), includes:</t>

        <t><list style="numbers">
            <t>Times-to-Redistribution (called TTR, 1 octet)</t>

            <t>Credibility route-type (called Cred route-type, 1 octet)</t>

            <t>Reserved (2 octet)</t>
          </list></t>

        <t>The format of Redistribution Credibility ID sub-TLV in ISIS is as
        the following:</t>

        <t><figure>
            <artwork align="center"><![CDATA[ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      TTR      |Cred route-type|           Reserved            | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
      Figure 2: Route Redistribution Credibility ID Field
]]></artwork>
          </figure>where:</t>

        <t>TTR: Times-to-Redistribution (called TTR, 1 octet), it indicates
        the number of redistribution times, the value from 0 to 255 is used as
        quantity of routing domain (means different routing protocol domain or
        instance/process) to be traveled across from the routing prefix
        original node to this route redistribution node. For example, each
        time the route is redistributed, the Times-to-Redistribution (called
        TTR) value decreases by 1, the route with greater
        Times-to-Redistribution (called TTR) value can be preferred. This
        indicate that the route is more closed to the route original node.
        When the Times-to-Redistribution (called TTR) value is 0, it indicate
        the route is not trusted.</t>

        <t>Cred route-type: Credibility route-type (called Cred route-type, 1
        octet), it indicate that the route is internal or external Cred route
        type according to network administration scope. For the routing prefix
        with same Times-to-Redistribution(called TTR) value scenario, the
        internal Cred route-type that network administration scope
        identification is the same as local, can be preferred rather than
        external Cred route-type with different identification. The network
        administration scope is specified according to the network layer of
        logical architecture. The different routing domains (means different
        routing protocol domain or instance/process) may have a same network
        administration scope identification, or may have different network
        administration scope identification.</t>

        <t/>
      </section>

      <section title="OSPF Redistribution Credibility ID Sub-TLV">
        <t>TBD</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests that IANA allocates new IS-IS Route
      Redistribution Credibility ID sub-TLV types from the "IS-IS Sub-TLVs for
      TLVs Advertising Prefix Reachability" registry as specified.</t>

      <texttable align="center"
                 title="IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability Registry">
        <ttcol>Type</ttcol>

        <ttcol>Description</ttcol>

        <ttcol>27</ttcol>

        <ttcol>135</ttcol>

        <ttcol>235</ttcol>

        <ttcol>236</ttcol>

        <ttcol>237</ttcol>

        <ttcol>Reference</ttcol>

        <c>33 (is suggested)</c>

        <c>Redistribution Credibility ID</c>

        <c>y</c>

        <c>y</c>

        <c>y</c>

        <c>y</c>

        <c>y</c>

        <c>This document</c>
      </texttable>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document introduces the Route Redistribution Credibility ID, The
      feature introduces the advertisement of avoiding routing Loop capability
      information to all routers in routing domain. This information can be
      confirmed for discovery and verification that all routers in the routing
      domain support the capability before the feature is turned on.
      Advertisement of the information defined in this document introduces no
      new security concerns.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The author would like to thank people for their comments on this
      work.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
    </references>
  </back>
</rfc>
