<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-yuan-cats-hierarchical-loop-prevention-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.0 -->
  <!-- ***** FRONT MATTER ***** -->

    <front>
    <title abbrev="Microloop Prevention">Microloop Prevention in a Hierarchical Segment Routing
            Solution for CATS</title>
    <seriesInfo name="Internet-Draft" value="draft-yuan-cats-hierarchical-loop-prevention-01"/>
    <author fullname="Dongyu Yuan" initials="D" surname="Yuan">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <phone/>
        <email>yuan.dongyu@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Fenlin Zhou" initials="F" surname="Zhou">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <phone/>
        <email>zhou.fenlin@zte.com.cn</email>
      </address>
    </author>
    <date day="3" month="Jan" year="2024"/>
    <area>RTGWG</area>
    <workgroup>CATS</workgroup>
    <keyword>Microloop Prevention in a Hierarchical Segment Routing Solution for CATS</keyword>
    <abstract>
      <t>Considering computing and networking is quite different in terms of resource
                granularity as well as their status stability, a hierarchical segment routing is
                proposed and introduced as an end-to-end CATS process. However, it brings about
                potential problems as illustrated in <xref target="I-D.yuan-cats-end-to-end-problem-requirement" format="default"/>.
                In order to solve the mentioned problems and to improve and perfect a hierarchical
                solution, corresponding aggregation methods are discussed and hierarchical entries
                are proposed in this draft.</t>
    </abstract>
  </front>
  <!-- ***** MIDDLE MATTER ***** -->

    <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>An end-to-end CATS process is described as a hierarchical two segment routing manner
                in <xref target="I-D.ldbc-cats-framework" format="default"/> and <xref target="I-D.huang-cats-two-segment-routing" format="default"/> and it is
                further analyzed in <xref target="I-D.yuan-cats-end-to-end-problem-requirement" format="default"/>
                which implys that a hierarchical segment routing solution requires incremental
                solutions and designs.</t>
      <t>Compared to non hierarchical routing methods, a hierarchical segment solution has its
                unique features and proposes additional requirements as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Aggregate explicit and detailed information of multiple service instances
                        appropriately to avoid a loop caused by improper routing and forwarding
                        decisions led by inadequate cohesive information.</t>
        </li>
        <li>
          <t>Solve the microloop problem occurred in hierarchical segment routing under a
                        multi-point decision-making circumstance due to inconsistent convergence
                        time.</t>
        </li>
      </ul>
      <t>In IP networks, due to the distributed LSDB of IGP, there might be microloop issues
                when IGP converges out of order. Solutions has proposed such as Order FIB and Order
                Metric, but due to their principles of controlling the convergence order of network
                devices to guarantee orderly convergence, the convergence process becomes much more
                complex and the convergence time increases significantly. Thus, these schemes have
                not been widely applied and deployed in networks. Currently, SR technology is
                commonly used to address microloop issues, such as constructing an acyclic SRv6
                Segment List to eliminate loops.</t>
      <t>However, an explicit destination is determined since the source device in IP routing
                circumstances while a specific service instance may not be designated during the
                first segment in a hierarchical segment service routing process. There is a lack of
                connection between forwarding behaviors on multiple devices. Thus, a conventional SR
                based solution requires incremental designs.</t>
      <t>Therefore, this draft proposes possible aggregation methods, designs hierarchical
                entries including global bases and local bases and introduces a forwarding behaviour
                with Computing Segments.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
                NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are
                to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/>
        <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as
                shown here.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>LSDB: Link State DataBase</t>
        </li>
        <li>
          <t>IGP: Interior Gateway Protocol</t>
        </li>
        <li>
          <t>RIB: Routing Information Base</t>
        </li>
        <li>
          <t>FIB: Forwarding Information Base</t>
        </li>
        <li>
          <t>SR: Segment Routing</t>
        </li>
        <li>
          <t>SRv6: Segment Routing over IPv6</t>
        </li>
        <li>
          <t>GRIB: Global Routing Information Base</t>
        </li>
        <li>
          <t>GFIB: Global Forwarding Information Base</t>
        </li>
        <li>
          <t>LRIB: Local Routing Information Base</t>
        </li>
        <li>
          <t>LFIB: Local Forwarding Information Base</t>
        </li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>Aggregation of Computing Resource Status Information</name>
      <t>Assume that for a computing related service, a Service ID is utilized as an
                identifier as proposed in <xref target="I-D.ma-intarea-identification-header-of-san" format="default"/>. Various computing related services may be sensitive to
                different attributes among metadata of computing resources and network capabilities,
                such as CPU cores, CPU load, I/O, memory, delay, bandwidth, etc.</t>
      <t>For a service instance which is able to provide a computing related service, metadata
                of sensitive attributes collected is capable of indicating the performance at the
                moment. Furthermore, as illustrated in <xref target="I-D.yuan-cats-middle-ware-facility" format="default"/>, a Metric
                value can be calculated with the metadata of sensitive attributes as input
                variables.</t>
      <t>Therefore, the aggregation of computing resource status information is divided into
                the following two categories.</t>
      <t>1. Aggregation of Metric Values.</t>
      <t>As shown below, a set of meta information been sensitive to a computing related
                service is recorded as a Attribute Set, the Attribute Set collected at Instance
                1 for Service ID 1 is Attribute Set 1,1 for instance. </t>
      <t>There are multiple instances located in a edge cloud or a central data center
                connected to corresponding PEs. Based on the respective metadata of dynamic
                computing status and network conditions meta information of these service
                instances at a certain time, corresponding Metric values representing their
                capabilities can be calculated. As shown below, Instance 1, 2 and 3 located at
                PE 1 are all able to provide services represented by Service ID 1, 2 and 3.
                Accordingly, Metric 1,1 to Metric 3,3 are calculated respectively.</t>
      <figure>
        <name>Aggregation of Metrics</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

               +----------+ Service ID1-->Attribute Set 1,1-->Metric 1,1
           +---+Instance 1| Service ID2-->Attribute Set 2,1-->Metric 2,1
           |   +----------+ Service ID3-->Attribute Set 3,1-->Metric 3,1
           |
+------+   |   +----------+ Service ID1-->Attribute Set 1,2-->Metric 1,2
| PE 1 +---+---+Instance 2| Service ID2-->Attribute Set 2,2-->Metric 2,2
+--++--+   |   +----------+ Service ID3-->Attribute Set 3,2-->Metric 3,2
   ||      |
   ||      |   +----------+ Service ID1-->Attribute Set 1,3-->Metric 1,3
   ||      +---+Instance 3| Service ID2-->Attribute Set 2,3-->Metric 2,3
   ||          +----------+ Service ID3-->Attribute Set 3,3-->Metric 3,3
   ||
   ||  PE 1:
   ||  Service ID1-->Metric 1 = Function(Metric 1,1 Metric 1,2 Metric 1,3)
   ||  Service ID2-->Metric 2 = Function(Metric 2,1 Metric 2,2 Metric 2,3)
   ||  Service ID3-->Metric 3 = Function(Metric 3,1 Metric 3,2 Metric 3,3)
   ||
   vv
+--++--+
| PE 2 |
+------+

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>Based on a framework of hierarchical computing status awareness and segment
                service routing, edge devices apply a corresponding aggregation algorithm to
                these Metric values, and publish and notify the aggregated results to the
                network. For a computing-related service represented by a Service ID,
                aggregation algorithms include but are not limited to:</t>
      <ul spacing="normal">
        <li>
          <t>Take the average of the corresponding Metric values calculated for a
                        specific service among all service instances.</t>
        </li>
        <li>
          <t>Take the weighted average of the corresponding Metric values calculated
                        for a specific service among all service instances.</t>
        </li>
        <li>
          <t>Take the maximum of the corresponding Metric value calculated for a
                        specific service among all service instances.</t>
        </li>
        <li>
          <t>Take the minimum of the corresponding Metric value calculated for a
                        specific service among all service instances.</t>
        </li>
        <li>
          <t>Take the median of the corresponding Metric values calculated for a
                        specific service among all service instances.</t>
        </li>
      </ul>
      <t>The differential evaluation methods of each service can degenerate into a unified
                or service class based evaluation method based on conditions. Specifically here,
                different Service IDs can also correspond to a same Metric value calculated by a
                unified evaluation algorithm or a set of Service IDs corresponds to one Metric.</t>
      <t>2. Aggregation of Metadata Sets.</t>
      <figure>
        <name>Aggregation of Metadata Set</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

               +----------+ Service ID1-->Attribute Set 1,1
           +---+Instance 1| Service ID2-->Attribute Set 2,1
           |   +----------+ Service ID3-->Attribute Set 3,1
           |   Metadata Set 1 =
           |   U(Attribute Set 1,1, Attribute Set 2,1, Attribute Set 3,1)
           |
+------+   |   +----------+ Service ID1-->Attribute Set 1,2
| PE 1 +---+---+Instance 2| Service ID2-->Attribute Set 2,2
+--++--+   |   +----------+ Service ID3-->Attribute Set 3,2
   ||      |   Metadata Set 2 =
   ||      |   U(AttributetSet 1,2, Attribute Set 2,2, Attribute Set 3,2)
   ||      |
   ||      |   +----------+ Service ID1-->Attribute Set 1,3
   ||      +---+Instance 3| Service ID2-->Attribute Set 2,3
   ||          +----------+ Service ID3-->Attribute Set 3,3
   ||          Metadata Set 3 =
   ||          U(AttributetSet 1,3, Attribute Set 2,3, Attribute Set 3,3)
   ||
   ||  PE 1:
   ||  Cohesive Metadata Set =
   ||  Function(Metadata Set 1,Metadata Set 2,Metadata Set 3)
   vv
+--++--+
| PE 2 |
+------+

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>The other aggregation method is shown above. For instance 1 located at PE 1,
                the Attribute Set of Service ID 1 to Service ID 3 are Attribute Set 1 to
                Attribute Set 3 respectively. The union of meta information in these
                Attribute Sets of multiple computing related services is recorded as the
                Metadata Set of instance 1. Similar to the process of aggregating Metric
                values, edge devices can also aggregate multiple Metadata Sets into a
                Cohesive Metadata Set, and then publish and notify the aggregated results to
                the network. For all service instances at an edge device, the aggregation
                algorithm includes but is not limited to:</t>
      <ul spacing="normal">
        <li>
          <t>Take the average value of same elements in Metadata Sets as the
                        corresponding element value of the Cohesive Metadata Set.</t>
        </li>
        <li>
          <t>Take the weighted average of same elements in Metadata Sets as the
                        corresponding element value of the Cohesive Metadata Set.</t>
        </li>
        <li>
          <t>Take the maximum value of same elements in Metadata Sets as the
                        corresponding element value of the Cohesive Metadata Set.</t>
        </li>
        <li>
          <t>Take the minimum value of same elements in Metadata Sets as the
                        corresponding element value of the Cohesive Metadata Set.</t>
        </li>
        <li>
          <t>Take the median value of same elements in Metadata Sets as the
                        corresponding element value of the Cohesive Metadata Set.</t>
        </li>
        <li>
          <t>Apply a corresponding strategy to select an instance and directly use
                        the Metadata Set of the selected instance as the Cohesive metadata
                        set.</t>
        </li>
      </ul>
      <t>In conclusion, a PE can aggregate multiple Metric values or Metadata Sets and further
                publish and advertise the coarse granularity and relatively stable information to
                the network. As analyzed in <xref target="I-D.yuan-cats-end-to-end-problem-requirement" format="default"/>, an
                aggregation result should maintain its comparability to the information of any
                explicit service instance.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Design of Hierarchical Entries</name>
      <t>With the application of appropriate aggregation functions, the exposed entries gain
                essential correctness. However, due to the indeterminacy of forwarding behaviours
                and inseparable entries, a microloop problem still occurs under circumstances of
                sudden failures or dynamic updates. Therefore, a design of hierarchical entries is
                proposed in this section.</t>
      <t>Taking an aggregation of Metric values as an example, Metric values of several
                service instances at an edge device PE are aggregated and published and advertised
                in the network. By collecting and exchanging entries, a Global RIB was constructed.
                On the other hand, PE generates a Local RIB by collecting the running status of its
                local service instances. Afterwards, scheduling strategies are applied in the
                control plane and corresponding decisions are made. Suppose the entry with the
                smallest Metric value is selected as the optimal entry, it will further be
                distributed to the forwarding plane on the device and a Global FIB and a Local FIB
                is generated respectively, ultimately instructing the packet forwarding process.</t>
      <t>A typical form of GRIB, GFIB, LRIB and LFIB, taking PE 4 as an example, is displayed
                as follows. To be noted, the computing status of PE 4 itself is also displayed as an
                entry in the GRIB with an aggregated manner.</t>
      <figure>
        <name>Hierarchical Global and Local Entries</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

 +------------+
 |Instance 1,1+--+        (--------------------)
 +------------+  |       (                      )
 +------------+  |  +------+                  +------+      +------------+
 |Instance 1,2+--+--+ PE 1 |                  | PE 3 +------+Instance 3,1|
 +------------+     +------+                  +------+      +------------+
                   (                                  )
                  (                                    )
                 (                                      )
                 (                                      )
                 (                                      )
                 (                                      )
                  (                                    )
                   (                                  )
                    +------+                  +------+      +------------+
                    | PE 2 |                  | PE 4 +--+---+Instance 4,1|
                    +---+--+                  +------+  |   +------------+
                        |(                      )       |   +------------+
                        | (--------------------)        +---+Instance 4,2|
              +---------+--+                            |   +------------+
              |Instance 2,1|                            |   +------------+
              +------------+                            +---+Instance 4,3|
                                                        |   +------------+
                                                        |   +------------+
                                                        +---+Instance 4,4|
                                                            +------------+
Global RIB:                       Local RIB:
+--------------+-----+----------+ +--------------+-------------+----------+
|  Service ID  | NHP |  Metric  | |  Service ID  |     NHP     |  Metric  |
+--------------+-----+----------+ +--------------+-------------+----------+
| Service ID 1 | PE1 | Metric 1 | | Service ID 1 | Instance4,1 | Metric 5 |
+--------------+-----+----------+ +--------------+-------------+----------+
| Service ID 1 | PE2 | Metric 2 | | Service ID 1 | Instance4,2 | Metric 6 |
+--------------+-----+----------+ +--------------+-------------+----------+
| Service ID 1 | PE3 | Metric 3 | | Service ID 1 | Instance4,3 | Metric 7 |
+--------------+-----+----------+ +--------------+-------------+----------+
| Service ID 1 | PE4 | Metric 4 | | Service ID 1 | Instance4,4 | Metric 8 |
+--------------+-----+----------+ +--------------+-------------+----------+
                                                              Control Plane
---------------------------------------------------------------------------
                                                           Forwarding Plane
Global FIB:                       Local FIB:
+--------------+-----+----------+ +--------------+-------------+----------+
|  Service ID  | NHP |  OutInt  | |  Service ID  |     NHP     |  OutInt  |
+--------------+-----+----------+ +--------------+-------------+----------+
| Service ID 1 | PE1 | Policy 1 | | Service ID 1 | Instance4,1 |Interface1|
+--------------+-----+----------+ +--------------+-------------+----------+

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
    </section>
    <section numbered="true" toc="default">
      <name>Forwarding Behaviours with Computing Segments</name>
      <t>Although a design of hierarchical entries separates entries with information of
                different granularity, global and local entries both further require to be
                correlated with packet features and defined forwarding behaviours.</t>
      <t>As defined in <xref target="I-D.zhou-intarea-computing-segment-san" format="default"/>,
                a Computing Segment is introduced. With the introduction of hierarchical entries
                displayed in the previous sections, a Computing Segment END.C can be further
                assorted as END.CG and END.CL associated with GFIB and LFIB respectively. Except for
                the different entries to lookup, END.CG and END.CL have identical semantics as
                stated in the previous work. The form of a packet delivered in the forwarding
                process is also shown below.</t>
      <figure>
        <name>Hierarchical Service Routing with Computing Segments</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

                           END.CG(PE 1)
                           ^
                           |
                           v
                           Global FIB(PE 1):
                           +--------------+-------------+----------+
                           |  Service ID  |     NHP     |  OutInt  |
                           +--------------+-------------+----------+
       ------------------+ | Service ID 1 |END.CL (PE 4)| Policy 1 |
                         | +--------------+-------------+----------+
+------------+           |
|Instance 1,1+--+        |  (--------------------)
+------------+  |        v (                      )
+------------+  |     +------+                  +------+      +------------+
|Instance 1,2+--+-----+ PE 1 |                  | PE 3 +------+Instance 3,1|
+------------+        +------+                  +------+      +------------+
                     (   \                              )
                    (     \                              )
                   (       \                              )
                   (        \                             )
                   (         \                            )
                   (          \                           )
                    (          ------------------\       )
                     (                            v     )
                      +------+                  +------+ ---> +------------+
                      | PE 2 |                  | PE 4 +--+---+Instance 4,1|
                      +---+--+                  +------+  |   +------------+
                          |(                      )       |   +------------+
                          | (--------------------)        +---+Instance 4,2|
                +---------+--+                            |   +------------+
                |Instance 2,1|                            |   +------------+
                +------------+     END.CL(PE 4)           +---+Instance 4,3|
                                   ^                      |   +------------+
                                   |                      |   +------------+
                                   v                      +---+Instance 4,4|
                                   Local FIB(PE 4):           +------------+
                                   +--------------+-------------+----------+
                                   |  Service ID  |     NHP     |  OutInt  |
                                   +--------------+-------------+----------+
                                   | Service ID 1 | Instance4,1 |Interface1|
                                   +--------------+-------------+----------+
                                 +------------+
                                 |Outer Header|
                                 |            |
                                 |   (with    |
                                 |  possible  |
                                 |    SRH )   |
               +------------+    +------------+    +------------+
               |  Inner SA  |    |  Inner SA  |    |  Inner SA  |
               +------------+    +------------+    +------------+
               |END.CG(PE 1)|    |END.CL(PE 4)|    |Instance 4,1|
               +------------+    +------------+    +------------+
               | Service ID |    | Service ID |    | Service ID |
               +------------+    +------------+    +------------+
             ----------------------------------------------------->
                    Encapsulation During Packets Forwarding

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>As shown above, END.CG(PE 1) and END.CL(PE 4) are Computing Segments configured at PE
                1 and PE 4 respectively. END.CG(PE 1) correlates with GFIB at PE 1 while END.CL(PE
                4) correlates with LFIB at PE 4. The forwarding process is determined by the SIDs
                and corresponding FIBs.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Usecase</name>
      <t>A microloop problem is displayed as follows with a circumstance of non hierarchical
                entries. A minimum Metric value is taken as the aggregated Metric value published by
                a PE. Instance 4,4 located at PE 4 is considered to be the most appropriate service
                instance with the minimum Metric value which represents the best performance when a
                service request accesses from PE 1. With a hierarchical computing status awareness
                and routing scheme, the traffic is first steered to PE 4 and then a sudden failure
                happens at Instance 4,4. PE 4 discovers the invalidity of Instance 4,4 and
                distributes a new FIB entry by recalculating in the control plane. PE 1 is selected
                as the updated next hop determined by PE 4. Thus, the traffic is steered back to PE
                1. However, the event of the invalidity of Instance 4,4 has not been notified to the
                remote PE 1. Therefore, a microloop exists before PE 1 updates its entries.</t>
      <figure>
        <name>Microloop Problem with Non Hierarchical Entries</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

RIB:
+------------+-------------+----------+
| Service ID |     NHP     |  Metric  |
+------------+-------------+----------+
|Service ID 1| Instance1,1 |    25    |
+------------+-------------+----------+
|Service ID 1| Instance1,2 |    30    |
+------------+-------------+----------+
|Service ID 1|     PE2     |    28    | FIB:
+------------+-------------+----------+ +------------+---------+--------+
|Service ID 1|     PE3     |    35    | | Service ID |   NHP   | OutInt |
+------------+-------------+----------+ +------------+---------+--------+
|Service ID 1|     PE4     |    20    | |Service ID 1|   PE4   |        |
+------------+-------------+----------+ +------------+---------+--------+

                         |
                         |
                         |
+------------+           |
|Instance 1,1+--+        |  (--------------------)
+------------+  |        v (                      )
+------------+  |     +------+                  +------+   +------------+
|Instance 1,2+--+-----+ PE 1 |                  | PE 3 +---+Instance 3,1|
+------------+        +------+                  +------+   +------------+
                      (   \ ^                          )
                     (     \ \                          )
                    (       \ \                          )
                    (        \ \                         )
                    (         \ \                        )
                    (          \ \-----------------\     )
                     (          ------------------\ \   )
                      (                            v \ )
                      +------+                  +------+   +------------+
                      | PE 2 |                  | PE 4 +-+-+Instance 4,1|
                      +---+--+                  +------+ | +------------+
                          |(                      )      | +------------+
                          | (--------------------)       +-+Instance 4,2|
                +---------+--+                           | +------------+
                |Instance 2,1|                           | +------------+
                +------------+                           +-+Instance 4,3|
                                                         | +------------+
RIB:                                                     | +------------+
+------------+-------------+--------+                    +-+Instance 4,4|x
| Service ID |     NHP     | Metric |                      +------------+
+------------+-------------+--------+
|Service ID 1| Instance4,1 |   26   |  FIB:
+------------+-------------+--------+  +------------+-----------+--------+
|Service ID 1| Instance4,2 |   36   |  | Service ID |    NHP    | OutInt |
+------------+-------------+--------+  +------------+-----------+--------+
|Service ID 1| Instance4,3 |   34   |  |Service ID 1|Instance4,4|        |
+------------+-------------+--------+  +------------+-----------+--------+
|Service ID 1| Instance4,4 |   20   |x                    |
+------------+-------------+--------+                     |
|Service ID 1|     PE1     |   25   |                     v
+------------+-------------+--------+  +------------+-----------+--------+
|Service ID 1|     PE2     |   28   |  | Service ID |    NHP    | OutInt |
+------------+-------------+--------+  +------------+-----------+--------+
|Service ID 1|     PE3     |   35   |  |Service ID 1|    PE1    |        |
+------------+-------------+--------+  +------------+-----------+--------+

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>An identical condition with introduction of hierarchical entries is analyzed below. A
                global choice is made at the access device which is PE 1 indicated by a END.CG SID.
                Then, PE 4 is selected as the most appropriate next hop with the minimum aggregated
                Metric value. Identically, a sudden failure happens at Instance 4,4 and PE 1 has not
                been notified yet. Unlike the previous mentioned conditions, a specific local
                behaviour to lookup the LFIB denoted by a END.CL SID is implemented at PE 4.
                Although Instance 4,4 becomes invalid, Instance 4,1 is determined as the
                substitution with a suboptimal Metric value. Contrary to early analysis, the traffic
                is not steered back between PEs. Thus, a microloop problem is prevented through the
                design of hierarchical entries and the introduction of Computing Segments.</t>
      <figure>
        <name>Microloop Prevention with Hierarchical Entries</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

  Global RIB:
  +------------+-----------+----------+
  | Service ID |    NHP    |  Metric  |
  +------------+-----------+----------+
  |Service ID 1|    PE1    |    25    |
  +------------+-----------+----------+
  |Service ID 1|    PE2    |    28    | Global FIB:
  +------------+-----------+----------+ +------------+-----------+------+
  |Service ID 1|    PE3    |    35    | | Service ID |    NHP    |OutInt|
  +------------+-----------+----------+ +------------+-----------+------+
  |Service ID 1|    PE4    |    20    | |Service ID 1|    PE4    |      |
  +------------+-----------+----------+ +------------+-----------+------+

                         |
                         |
                         |
+------------+           |
|Instance 1,1+--+        |  (--------------------)
+------------+  |        v (                      )
+------------+  |     +------+                  +------+   +------------+
|Instance 1,2+--+-----+ PE 1 |                  | PE 3 +---+Instance 3,1|
+------------+        +------+                  +------+   +------------+
                      (   \                            )
                     (     \                            )
                    (       \                            )
                    (        \                           )
                    (         \                          )
                    (          \                         )
                     (          ------------------\     )
                      (                            v   )
                      +------+                  +------+ -> +------------+
                      | PE 2 |                  | PE 4 +-+--+Instance 4,1|
                      +---+--+                  +------+ |  +------------+
                          |(                      )      |  +------------+
                          | (--------------------)       +--+Instance 4,2|
                +---------+--+                           |  +------------+
                |Instance 2,1|                           |  +------------+
                +------------+                           +--+Instance 4,3|
                                                         |  +------------+
                                                         |  +------------+
                                                         +--+Instance 4,4|x
                                       Local FIB:           +------------+
                                       +------------+-------------+------+
Local RIB:                             | Service ID |     NHP     |OutInt|
+------------+-------------+--------+  +------------+-------------+------+
| Service ID |     NHP     | Metric |  |Service ID 1| Instance4,4 |      |x
+------------+-------------+--------+  +------------+-------------+------+
|Service ID 1| Instance4,1 |   26   |                     |
+------------+-------------+--------+                     |
|Service ID 1| Instance4,2 |   36   |                     v
+------------+-------------+--------+  +------------+-------------+------+
|Service ID 1| Instance4,3 |   34   |  | Service ID |     NHP     |OutInt|
+------------+-------------+--------+  +------------+-------------+------+
|Service ID 1| Instance4,4 |   20   |x |Service ID 1| Instance4,1 |      |
+------------+-------------+--------+  +------------+-------------+------+

                ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBA.</t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>TBA.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>TBA.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

    <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="I-D.yuan-cats-end-to-end-problem-requirement" target="https://datatracker.ietf.org/doc/html/draft-yuan-cats-end-to-end-problem-requirement-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.yuan-cats-end-to-end-problem-requirement.xml">
        <front>
          <title>Problem Statement and Requirements of end-to-end CATS</title>
          <author fullname="Dongyu Yuan" initials="D." surname="Yuan">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Huijuan Yao" initials="H." surname="Yao">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Zhiqiang Li" initials="Z." surname="Li">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="xuewei wang" initials="X." surname="wang">
            <organization>Ruijie Networks Co.,Ltd</organization>
          </author>
          <date day="22" month="October" year="2023"/>
          <abstract>
            <t>This document describes and proposes problem statement and incremental requirements of an end-to-end computing aware traffic steering (CATS) process illustrated in [I-D.ldbc-cats-framework]. Particularly, this document analyzes the significance of appropriate aggregation algorithms and the necessity of hierarchical forwarding mechanisms.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-yuan-cats-end-to-end-problem-requirement-01"/>
      </reference>
      <reference anchor="I-D.ldbc-cats-framework" target="https://datatracker.ietf.org/doc/html/draft-ldbc-cats-framework-04" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ldbc-cats-framework.xml">
        <front>
          <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
          <author fullname="Cheng Li" initials="C." surname="Li">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Zongpeng Du" initials="Z." surname="Du">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
            <organization>Orange</organization>
          </author>
          <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
            <organization>Telefonica</organization>
          </author>
          <author fullname="John Drake" initials="J." surname="Drake">
            <organization>Juniper Networks, Inc.</organization>
          </author>
          <author fullname="Daniel Huang" initials="D." surname="Huang">
            <organization>ZTE</organization>
          </author>
          <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
            <organization>Verizon Inc.</organization>
          </author>
          <date day="8" month="December" year="2023"/>
          <abstract>
            <t>This document describes a framework for Computing-Aware Traffic Steering (CATS). Particularly, the document identifies a set of CATS components, describes their interactions, and exemplifies the workflow of the control and data planes.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ldbc-cats-framework-04"/>
      </reference>
      <reference anchor="I-D.huang-cats-two-segment-routing" target="https://datatracker.ietf.org/doc/html/draft-huang-cats-two-segment-routing-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.huang-cats-two-segment-routing.xml">
        <front>
          <title>Hierarchical segment routing solution of CATS</title>
          <author fullname="Daniel Huang" initials="D." surname="Huang">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Zongpeng Du" initials="Z." surname="Du">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Chen Zhang" initials="C." surname="Zhang">
            <organization>Purple Moutain Laborotary</organization>
          </author>
          <date day="5" month="September" year="2023"/>
          <abstract>
            <t>CATS (Computing Aware Traffic Steering) is designed to enable the routing network to be aware of computing status thus deliver the service flow accordingly. Nevertheless, computing and networking is quite different in terms of resource granularity as well as its status stability. It would gain significant benefits to accommodate the computing status to that of networking by employing a hierarchical computing routing segment scheme. The network- accommodated computing status could be maintained at remote CATS nodes while the rest could reside at local CATS nodes. By enabling the network to schedule and route computing services in a compatible way with the current IP routing network, CATS would bring benefits to the industry by both efficiently pooling the computing resources and rendering services through perspective of converged networking and computing.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-huang-cats-two-segment-routing-01"/>
      </reference>
      <reference anchor="I-D.ma-intarea-identification-header-of-san" target="https://datatracker.ietf.org/doc/html/draft-ma-intarea-identification-header-of-san-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ma-intarea-identification-header-of-san.xml">
        <front>
          <title>Service Identification Header of Service Aware Network</title>
          <author fullname="Liwei Ma" initials="L." surname="Ma">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="付华楷" initials="" surname="付华楷">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="lihesong" initials="" surname="lihesong">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Dong Yang" initials="D." surname="Yang">
            <organization>Beijing Jiaotong University</organization>
          </author>
          <date day="4" month="May" year="2023"/>
          <abstract>
            <t>As the cloud and computing migrates to edges further away from the traditional centered cloud, the services residing at the distributed cloud start to be delivered in such a ubiquitous and dynamic way. That it is challenging to the ongoing routing and interconnecting scheme under which host address is the global networking identification. This draft proposes a service identification which is designed to be treated both as a service routable ID and an interface to the service requirements as well as service-associated cloud resources. A SAN header which including the service identification is illustrated and specified.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ma-intarea-identification-header-of-san-01"/>
      </reference>
      <reference anchor="I-D.yuan-cats-middle-ware-facility" target="https://datatracker.ietf.org/doc/html/draft-yuan-cats-middle-ware-facility-00" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.yuan-cats-middle-ware-facility.xml">
        <front>
          <title>Middle Ware Facilities for CATS</title>
          <author fullname="Dongyu Yuan" initials="D." surname="Yuan">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
            <organization>ZTE Corporation</organization>
          </author>
          <date day="7" month="July" year="2023"/>
          <abstract>
            <t>This draft proposes a method to perceive and process the running status of computing resources by introducing a logical Middle Ware facility, aiming to avoid directly reflecting continuous and dynamic computing resource status in the network domain, match service requirements and instance conditions, and ultimately achieve computing aware traffic engineering and be applicable to various possible scheduling strategies.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-yuan-cats-middle-ware-facility-00"/>
      </reference>
      <reference anchor="I-D.zhou-intarea-computing-segment-san" target="https://datatracker.ietf.org/doc/html/draft-zhou-intarea-computing-segment-san-03" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.zhou-intarea-computing-segment-san.xml">
        <front>
          <title>Computing Segment for Service Routing in SAN</title>
          <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Dongyu Yuan" initials="D." surname="Yuan">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Dong Yang" initials="D." surname="Yang">
            <organization>Beijing Jiaotong University</organization>
          </author>
          <date day="17" month="October" year="2023"/>
          <abstract>
            <t>Since services provisioning requires delicate coordination among the client, network and cloud, this draft defines a new Segment to provide service routing and addressing functions by leveraging SRv6 Segment programming capabilities. With Computing Segments proposed, the network gains its capability to identify and process a SAN header in need and a complete service routing procedure can be achieved.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-zhou-intarea-computing-segment-san-03"/>
      </reference>
    </references>
  </back>
</rfc>
