<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="exp" docName="draft-li-ioam-path-protection-00" ipr="trust200902">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="IOAM Path Protection">IOAM Linkage Solution for the Protection Cases of 5G Bearer Network</title>

   <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

   <author fullname="Zhenwen Li" initials="Z.LI" role="editor"
           surname="Li">
     <organization>CAICT</organization>

     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city>Beijing</city>

         <region></region>

         <code></code>

         <country>CN</country>
       </postal>

       <phone></phone>

       <email>lizhenwen@caict.ac.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
   </author>

   <date year="2021" />

   <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>General</area>

   <workgroup>Internet Engineering Task Force</workgroup>

   <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>template</keyword>

   <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
     <t>
     In-situ operation and maintenance management (IOAM, In-situ OAM), as a network performance monitoring technology, is based on the principle of path-associated detection to perform specific field marking/coloring and identification on actual service flows, and perform packet loss and delay measurement. It can quickly perceive network performance-related faults, and accurately delimit boundaries and do troubleshooting. However, the current IOAM solution has shortcomings too. For example, after the service traffic path switching, the IOAM cannot continue working. This paper proposes a scheme to achieve automatic performance monitoring through service path switching and linkage with IOAM, which enhances the feasibility of the IOAM scheme in large-scale deployment and the completeness of IOAM technology.
     </t>
   </abstract>
 </front>

 <middle>
   <section title="Introduction">
     <t>In-situ operation and maintenance management (In-situ OAM, IOAM) is a flow monitoring technology with high accuracy. It does not need to use out-of-band monitoring messages, and measures network KPIs such as packet loss and delay directly. But there are also shortcomings: in the current solution, performance monitoring can only be performed based on traffic quintuple information (pre-configuration or learning from traffic flow). If the path of this flow changes, it cannot working in most cases.
However, In real network , the service flow path is not stable. There are many reasons for the change of the flow path, such as the interruption of the working fiber link in the network and the error code exceeding the threshold, or switching traffic to the backup link temporarily because of the equipments'  upgrade. Regardless of the cause of the service traffic path switching, it is of great significance to monitor the performance on the new path after the switching automatically. Service path switching is a key event in the network. If the switched service path is not monitored in real time, it is impossible to ensure that the switched path can meet the requirements of the upper-layer service; on the contrary, if the IOAM performance monitoring of the switched path can be used to detect the deterioration of the network KPI after the switch in time , the operator may optimize and adjust the service path as soon as possible. Except for the manual and planned switching, it is difficult to predict the time for other switching caused by network failures, which will also cause the network operator to be unable to redeploy and start IOAM performance monitoring in time after the switching. </t>

     <section 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>
     </section>
     
     <section title="Terminology">
       <t>IOAM:In-situ Operation And Maintenance Management </t>
       <t>KPI:Key Performance Indicator</t>
       <t>HSB:Hot Standby</t>
       <t>APS:Automatic Protect Switch</t>
       <t>Ti-LFA:Topology Independent Loop Free Alternate</t>
       <t>SD:Signal Degrade</t>
       <t>UNI:User Network Interface</t>
       <t>NNI:Network Network Interface</t>
     </section>
   </section>
   
   <section title="IOAM basic processing analysis">
   	 <t>IOAM Data collection and analysis process is shown in the figure1:</t>

     <figure align="center" anchor="xml">
       <preamble></preamble>

       <artwork align="left"><![CDATA[
                           +---------------------+
                 ----------| Statistical analysis|--------
                 |         |  module for IOAM    |       |
                 |         +---------------------+       |
                 |                   |                   |
                 |                   |                   |
                 |                   |                   |
           +---------+         +---------+         +--------+
      ---->| Ingress |---------| Transit |---------| Egress |------>
           | PE      |         | P       |         | PE     |
           +---------+         +---------+         +--------+
           ]]></artwork>

       <postamble>IOAM Data collection and analysis process</postamble>
     </figure> 
     
     <t><list style="symbols">
         <t>At the ingress PE, the UNI side uses ACL to match the quintuple information of the service flow, dyes the matched traffic packets and sends the statistics to the statistical analysis module in the network controller. The NNI side encapsulates the IOAM header and service label (SR-TE/SR-BE and VPN label);</t>
         <t>The P device reads the IOAM header information (Flow ID and colored bit information).  The IOAM header is inside the SR label and the VPN label, and there is no need to decapsulate and recapsulate it to avoid too much impact on the forwarding performance; this step only involves hop-by-hop monitoring, not end-to-end monitoring.</t>
         <t>At the egress PE, decapsulate the packet, read the information in the IOAM header, report to the statistical analysis module, and then send the original user payload from the UNI side;</t>
         <t>The statistical analysis module combines the topology information to perform statistical analysis on the data sent by the network equipments, and present it through reports or graphics.</t>
       </list> </t>
  
   </section>
   	
   <section title="The impact of service path switching on IOAM">
      <section title="Analysis of Service Protection Mechanism">
       <t>If it is an automatic switching triggered by a network failure, it can be divided into signal failure (SF, often caused by line fiber break, equipment power failure), signal degradation (SD, line error or packet loss over the threshold of performance availability, due to aging of fiber. Switching occurs when the error rate or the accumulated packet loss rate reaches the detection threshold). Fiber breakage, power failure of P node, and SD error codes will trigger HSB or APS switching (for SR-TE tunnel) or Ti-LFA protection (for SR-BE tunnel), the tail node power failure will trigger VPN FRR(Fast reroute) protection.</t>
       <t>If the switching is triggered because of network expansion, upgrade, etc., the switching mechanism is basically the same as the network failure trigger, and the impact on IOAM is also the same, so it will not be analyzed separately.</t>
     </section>
     
     <section title="The impact of service path switching on IOAM">
       <t>As shown in Figure2 below, network equipments A, C, and G are PE devices; B ,E and F are P devices, and D is CE devices. Under normal condition, services are forwarded through the working tunnel path, which is A-B-C-D ; The protection tunnel path is A-E-F-G-C-D (one by one protection path of the tunnel), and the tail node protection path is A-E-F-G-D.</t>
       
     <figure align="center" anchor="xml1">
       <preamble></preamble>

       <artwork align="left"><![CDATA[
       
                      +----+      +----+
              +-------|  B |------| C  |------+
              |       +----+      +----+      |
           +----+        |           |        |
      gNB->| A  |        |           |        |
           +----+        |           |        |
              |          |           |     +----+
              |          |           |     |  D |---->5GC                                                                              
           +----+        |           |     +----+
           | E  |        |           |        |
           +----+        |           |        |
              |       +----+      +----+      |
              +-------|  F |------| G  |------+ 
                      +----+      +----+
       
           ]]></artwork>

       <postamble>5G Bearer Network with Backup Path</postamble>
     </figure> 

       <t><list style="numbers">
         <t>When the working path is normal, configure IOAM end-to-end instances on A and C respectively, or configure IOAM hop-by-hop instances on A, B, and C to monitor the delay and packet loss.</t>
         <t>Taking the L3VPN over SR-TE tunnel as an example, when the Node B or the link between A and C fails, the HSB protection of the SR-TE tunnel is triggered, and the service traffic switchs to A-E-F-G-C-G, the end-to-end IOAM monitoring is not affected; because Node B fails , the hop-by-hop monitoring instance cannot continue to obtain the data reported by B, so the relevant configuration of the monitoring instance needs to be switched to each node of the backup path, that is, the IOAM monitoring instance needs to be newly configured at node E, F, and G.</t>
         <t>When the node C fails, the VPN FRR protection is triggered. Because the PE is switched to node G, the end-to-end and the hop by hop monitoring instance will become invalid, and it is impossible to continue to monitor the KPI of the service on the protection path. IOAM monitoring needs to be newly configured at nodes E, F, and G.</t>
         <t>The statistical analysis module in the network controller combines the topology information to perform statistical analysis on the data sent by the network equipments, and present it through reports or graphics.</t>
       </list> </t>
     </section>
     
     <section title="Summary">
       <t>From the above, it can be seen that the change in the flow direction caused by the switching of the active and standby service paths will directly affect the data collection and reporting of the IOAM monitoring instance. Based on the existing solution, one way to continue monitoring after the switch is to deploy IOAM monitoring on all nodes of the active and standby paths. When there is no traffic on the standby path, the nodes along the way do not report monitoring data; whenever traffic reaches, the monitoring data will be reported again. There are two issues with this solution: the first one is that after the traffic is switched, because there is no linkage, the upper-layer statistical analysis module in the controller does not perceive the change of the service path, and does not know what the real service path is, so it may not be able to calculate the result of delay and packet loss normally; the second one is that it will cause waste of IOAM resources configured on the device that no traffic passes through. Therefore, if a certain linkage mechanism can be established between the IOAM and the service path to dynamically perceive this path change, and reconfigure in time, continuous IOAM monitoring will be performed automatically when the service path switches and recovers(except a short interruption during the switching process), and no additional IOAM resources are occupied.</t>
     </section>
       
   </section>

   

   <!-- This PI places the pagebreak correctly (before the section title) in the text output. -->

   <?rfc needLines="8" ?>
 
   
   <section title="IOAM monitoring is associated with service path">
     <section title="Key points of the linkage solution">
       <section title="Service path changes notice IOAM module">
         <t>When the service path changes, the IOAM management module in the network controller can be notified through the alarms or events reported by the device; in addition, after the IGP on the device detects the network topology change, it will also notify network controller to perform the topology
         refresh through the BGP-LS protocol.</t>
       </section>
     	 <section title="Reconfigure mechanism">
     	 	  <t><list style="letters">
     	    <t>Identify the equipment that needs to be configured:according to the principle that the UNI interface on the access side(node A,connect to gNB) will remain unchanged and the corresponding relationship between the UNI interface -> VPN instance -> SR-TE/SR-BE tunnel index, the corresponding  tunnel path can be queried, and then the node that needs to reconfigure the IOAM instance can be determined; The UNI interface on the core side(node C and G,connect to 5GC) may change due to the power failure or recovery of the PE device(node C), so the nodes of the IOAM instance in the downstream direction(5GC to gNB) cannot be queried in the same way as in the upstream direction(gNB to 5GC), so how to get the tunnel path and nodes in this direcion will be considered later,and updated in new version of this draft. For nodes that already have IOAM configuration, reconfiguration will not cause problems.</t>
     	      <t>Information and sources to be configured, as shown below:
     	         <list style="symbols">
                 <t>IOAM instance:End-to-end or hop-by-hop, unchanged before and after switching</t>
                 <t>Node type:PE or P, determined according to the tunnel path information, the source and tail nodes are PE, and the others are P</t>
                 <t>Flow ID:The same before and after the switching</t>
                 <t>Stream quintuple:The same before and after switching</t>
                 <t>UNI interface and VLAN on the access side:The same before and after switching</t>
                 <t>UNI interface and VLAN on the core side:To be disscussed in new version of draft</t>
                 <t>Telemetry configuration:Relatively fixed, generated by the controller</t>
               </list> </t>
            <t>Configuration protocol:Use Netconf protocol for configuration delivery.</t>
          </list> </t>
     	 </section> 
     </section>
     <section title="The process of the linkage solution">
       <figure align="center" anchor="xml2">
       <preamble></preamble>

       <artwork align="left"><![CDATA[
       	
      -------------------------------------------------------
      |                    SDN Controller                   |
      |     -------2-----------------                       |
      |     |                       |                       |  
      |     v                       v                       |
      | +------+   +--------+   +------+   +--------------+ |
      |	|Alarm |   |Topology|   |IOAM  |   |IOAM statistic| |
      |	|manage|   |manage  |-2-|manage|   |and analysis  | |
      |	+------+   +--------+   +------+   +--------------+ |
      |-----^----------^----------^------------^------------| 	
      	    |          |          |            |
       	    |-----------          |            |
            |                     |            |
           1|           +----+    |  +----+    |
            | +---------|  B |----|--| C  |----|----+
            v |         +----+    |  +----+    |    |
           +----+                 |            |    |
      ---->| A  |                 |            |    |
           +----+                3|           4|    |
              |                   |            |  +----+
              |                   |            |  | D  |---->                                                                              
           +----+            ------------------   +----+
           | E  |            |                      |
           +----+            v                      |
              |         +------+      +------+      |
              +---------|   F  |------|   G  |------+ 
                        +------+      +------+
       
           ]]></artwork>

       <postamble>Process of IOAM and service path linkage scheme</postamble>
     </figure> 
       
       <t><list style="numbers">
         <t>For link or node failure, perform the corresponding fast switching (HSB/VPN FRR or Ti-LFA), and generate an alarm and send it to the network controller. IGP also detects the topology changes and reports to the controller through BGP-LS.</t>
         <t>Alarm management module and topology management module in the network controller notify the IOAM management module after receiving the fast switching trigger event or alarm sent by devices, or after the BGP-LS topology is refreshed.</t>
         <t>The IOAM management module queries the tunnel path information after the switching, and determines the node that needs to reconfigure IOAM and the required information according to the method in section 2) above: "Reconfigure mechanism", and perform configuration provision.</t>
         <t>The IOAM management module starts the monitoring instance, the device reports the collected data with Telemetry, and the IOAM statistical analysis module analyzes and presents the monitoring results.</t>
         <t>When the network failure recovers, the controller notifies the IOAM management module to reconfigure according to the received switching recovery event or BGP-LS topology refresh.</t>
         <t>After the configuration of the IOAM management module is completed, the monitoring instance is started, and the monitoring results based on the restored path are presented.</t> 
       </list> </t>
     </section>
   </section>  
   

     <!-- It would be nice to see the next piece (12 lines) all on one page. -->

     <?rfc needLines="12" ?>

   <section anchor="Acknowledgements" title="Acknowledgements">
     <t>TBD</t>

   </section>

   <!-- Possibly a 'Contributors' section ... -->

   <section anchor="IANA" title="IANA Considerations">
     <t>This memo includes no request to IANA.</t>
   </section>

   <section anchor="Security" title="Security Considerations">
     <t>TBD</t>
   </section>
 </middle>

 <!--  *****BACK MATTER ***** -->

 <back>
   <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references title="Normative References">
     <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
     &RFC2119;

     
   </references>

   <references title="Informative References">
     <!-- Here we use entities that we defined at the beginning. -->


     <!-- A reference written by by an organization not a person. -->

     <reference anchor="RFC8321"
                target="https://datatracker.ietf.org/doc/rfc8321/">
       <front>
         <title>Alternate-Marking Method for Passive and Hybrid Performance Monitoring.</title>

         <author>
           <organization>G.Fioccola</organization>
         </author>

         <date year="2018" />
       </front>
     </reference>
     
     <reference anchor="YDT38262021">
       <front>
         <title>General Technical Requirements for Slicing Packet Network(SPN).</title>

         <author>
           <organization>CCSA</organization>
         </author>

         <date year="2021" />
       </front>
     </reference>
     
   </references>

 </back>
</rfc>
